CPU0: Temperature above threshold的解决
公司最近又一台机老报这个错误:
Message from syslogd@oddscollector7 at Thu Jan 10 05:42:08 2008 ...
oddscollector7 kernel: CPU0: Temperature above threshold
Message from syslogd@oddscollector7 at Thu Jan 10 05:42:08 2008 ...
oddscollector7 kernel: CPU1: Temperature above threshold
Message from syslogd@oddscollector7 at Thu Jan 10 05:42:08 2008 ...
oddscollector7 kernel: CPU1: Running in modulated clock mode
Message from syslogd@oddscollector7 at Thu Jan 10 05:42:08 2008 ...
oddscollector7 kernel: CPU0: Running in modulated clock mode
据说是2.6 内核的温度阀值过低造成
屏蔽掉这个提示的办法:
修改/etc/syslog.conf,注释掉 *.emerg 这一行,然后:
/etc/init.d/syslogd restart
P4处理器的thermal monitoring打印的信息.(你的是P4吧?), 这个信息
说明你的CPU核的温度已经超出范围. (你从哪里看到你的温度是正常的?)
注:AMD的CPU也一样(我的机器是AMD双核4000/+)
P4处理器内部的thermal monitoring设置了技术来检测是否P4 core温度是否
超过一个阀值(trip temperature, 厂家定义), 这个温度传感器检测到的温度
若超过的trip temperature(也即是打印信息中的那个threashold阀值), 就产生
一个中断.
linux kernel定义了这个中断句柄, 即打印下面的这些信息.
若不想看到这个信息, 可以重编译内核禁用CONFIG_X86_MCE_P4THERMAL选项,
即make menuconfig中的
[Processor type and features]-> [check for P4 thermal throttling interrupt.]
这个选项去除.
若不想编译内核, 就在启动时增加命令行选项nomce, 但这样做就禁用了
所有P4的Machine Check能力(包括CPU热监视能力)cat /proc/cpuinfo 然后在flags那一项可以看到是否支持MCE(大部分都支持)
. 用root登陆。
2. 编辑启动配置文件:/boot/grub/menu.lst
3. 添加“nomce”启动选项
例如:
title Red Hat Enterprise Linux AS (2.6.9-xx.ELsmp)
root (hd0,0)
kernel /vmlinuz-2.6.9-xx.ELsmp ro root=/dev/VolGroup00/LogVol00 rhgb quiet nomce
最后, 不管你怎么不愿意看到这些信息, 都无法否定你的CPU已经过热, 你的
CPU时钟的触发(上升下降研)频率已经被降低, 你的系统性能应该已经降低了.
最治本的方法是再修理你的CPU啊, 风扇啊, 主板啊.
如果BIOS中有相关温度报警的选项可以关掉.