上次提到了无线网络,现在来说一下intel的双核处理器Core2 Duo/Solo在gentoo安装中的设置。要让Core 2 Duo/Solo处理器在gentoo里工作得正常需要从5个方面来设置。下面我一一来说明。
1.Cflags
Intel Core 2 Duo/Quad / Xeon 51xx/53xx, Pentium Dual-Core T23xx+/Exxxx的硬件信息为:
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Core(TM)2 CPU XXXX @ XXXGHz
对于32bit的系统,安全的Cflags是这样的:
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=prescott -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
对于64bit的系统,安全的Cflags是这样的:
CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=nocona -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
2.内核设置
对于所有的Core2系列CPU,你都应该激活下面的选项:
Linux Kernel Configuration:
Processor type and features --->
Subarchitecture Type () --->
(X) PC-compatible
Processor family () --->
(X) Pentium M
[ ] Generic x86 support
如果你的处理器是双核的,那么激活这个选项:
Linux Kernel Configuration:
Processor type and features --->
[*] Symmetric multi-processing support
(2) Maximum number of CPUs (2-256)
[ ] SMT (Hyperthreading) scheduler support
[*] Multi-core scheduler support
如果你的系统是32bit的,那么激活这个选项:
Linux Kernel Configuration:
Processor type and features --->
[*] Machine Check Exception
< > Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4
如果是64bit的,激活这个选项:
Linux Kernel Configuration:
Processor type and features --->
-- Machine check support
[*] Intel MCE features
Executable file formats / Emulations --->
[*] IA32 Emulation
3.自动降频
内核的配置
Linux Kernel Configuration: CPU frequency scaling
Power management options --->
ACPI (Advanced Configuration and Power Interface) Support --->
[*] ACPI Support
<*> Processor
CPU Frequency scaling --->
[*] CPU Frequency scaling
<*> CPU frequency translation statistics
[*] CPU frequency translation statistics details
省电方式(Governor)
它们决定了你的CPU运行的频率。最常用到的可能是'按需分配(ondemand)'和'保守(conservative)'了。你可以按照你的需要来进行调整。
Conservative 将CPU设置为最省电的状态,当CPU需要使用更多电力的时候一步步地提升CPU的频率.
Ondemand 将CPU的频率设置为最低,当CPU在最低频率时如果使用率达到100%把CPU的频率提升到额定频率。
Powersave将CPU的频率一直设置为最低。
Performance 使CPU保持额定频率运行。
Userspace 允许你手动设置CPU的频率。
你可以随时改变你的CPU的省电方式。
Linux Kernel Configuration: governor
Power management options --->
CPU Frequency scaling --->
# E.g. for ondemand
<*> 'ondemand' cpufreq policy governor
自动降频的驱动
你需要启用系统的CPU频率调整驱动.intel Core Solo/Duo, Intel Core2 Solo/Duo 的驱动是ACPI Processor P-States driver 。它已经被包含到内核中了。编译时在下面这个位置启用。
Linux Kernel Configuration: CPU frequency scaling driver
Power management options --->
CPU Frequency scaling --->
# E.g. for Intel Core2 Duo
<*> ACPI Processor P-States driver
软件
现在你需要安装一些软件来完成自动降频的工作.
emerge --ask --verbose cpufrequtils
下面这个命令可以查看具体有哪些哪些省电方式:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
现在你知道你需要使用哪种省电方式了,编辑/etc/conf.d/cpufrequtils文件来设置你想要的方式。默认的是ondemand.
最后,启用CPU自动降频
/etc/init.d/cpufrequtils start
你启用了它之后它不会在每次启动后自动运行,所以你需要把它加入rc脚本中。
rc-update add cpufrequtils boot
4.硬件监控
内核中包含有CPU温度传感器(coretemp)的驱动,如果你想要启用它,编译内核时需要这样设置:
Linux Kernel Configuration: Coretemp
Device Drivers --->
Hardware Monitoring support --->
<M> Hardware Monitoring support
<M> Intel Core (2) Duo/Solo temperature sensor
重新编译你的内核,然后查看Lm sensors guide来进一步设置
注意: 对于thinkpad,请不要安装lm_sensors,可能会对硬件造成损害,而导致不能开机。thinkpad用户推荐使用tp_smapi替代lm_sensors.lm_sensor和thinkpad的问题
5.微码(microcode)
现代的处理器在芯片内内置了微代码,操作系统可以通过升级微代码来修正处理器的BUG。升级的方法如下:
内核设置:
Linux Kernel Configuration:
Processor type and features --->
<M> /dev/cpu/microcode - Intel IA32 CPU microcode support
软件:
安装sys-apps/microcode-ctl:
emerge -av microcode-ctl
更新微代码
/etc/init.d/microcode_ctl start
因为微代码不能被写进处理器中,所以你必须在每次开机的时候更新微代码。把microcode_ctl加入到rc脚本中:
rc-update add microcode_ctl default