[翻译]: 利用 lm_sensors 和 gkrellm 检视 CPU 温度。
原文地址:
译者注:前一段时间我卖了块 Celeron 566 给 winme,并帮助他超频到 850Mhz, winme 问起我如何在 Linux 上检视 CPU 温度,遂翻译此文以献给他。
--------------------------------------------------------------
导言
本文所介绍技巧已经在一台 Athlon XP 1800+ 和一块使用威盛 KT266A 芯片组的磐
英 8KHA+ 主板上实验成功,如果你的实验结果与我不同,请阅读后面其它朋友及其
系统的跟帖。我并没有打算成为一个在 CPU 主板散热方面的问题专家,我只是在两小
时内整理出了一篇介绍自己经验的文章。如果你在 lm-sensors 或者其它平台上有任
何问题,可以在我的一张技术支持帖里回帖咨询:
开始
当你编译内核时请在字符设备(Character Devices)里启用 I2C 支持,I2C 接口设备
支持以及 I2C /proc 界面,如果你像我一样有一块 tvtuner 卡,应该已经启用了这
些选项了,如果你还未启用他们请这样做以后并进行下面操作:
[code:1]# make modules && make modules_install[/code:1]
编译完内核后请继续:
[code:1]emerge i2c lm-sensors gkrellm[/code:1]
如果你使用 kde 你可以使用 ksensors 代替 gkrellm。
[code:1]# emerge ksensors[/code:1]
然后运行
[code:1]# sensors-detect[/code:1]
请你在得到下面提示后按下[回车]键继续。
[code:1]下面将列出系统探测结果,请按下回车键继续:(Now follows a summary
of the probes I have just done. Just press ENTER to continue:[/code:1]
你将得到类似于以下内容的温度及目录:
[code:1]Driver `eeprom' (should be inserted):
Detects correctly:
* Bus `bt848 #0' (Bit-shift algorithm)
Busdriver `UNKNOWN', I2C address 0x50
Chip `Serial EEPROM (SDRAM DIMM)' (confidence: 8)
* Bus `SMBus Via Pro adapter at 5000' (Non-I2C SMBus adapter)
Busdriver `i2c-viapro', I2C address 0x50
Chip `Serial EEPROM (SDRAM DIMM)' (confidence: 8)
* Bus `SMBus Via Pro adapter at 5000' (Non-I2C SMBus adapter)
Busdriver `i2c-viapro', I2C address 0x51
Chip `Serial EEPROM (SDRAM DIMM)' (confidence: 8)
Driver `w83781d' (should be inserted):
Detects correctly:
* ISA bus address 0x0290 (Busdriver `i2c-isa')
Chip `Winbond W83697HF' (confidence: 8)
我现在将键入一些命令以加载 I2C 模块,有时芯片可以同时使用于 ISA 总线和 I2C
总线上。ISA 总线存取速度稍快,但你需要为它加载一些附加驱动模块。你是否希望
选择 ISA 总线或者说 I2C/SMBus(ISA/smbus)呢?
警告!如果你将某些功能编译进了内核, 而下面的列表是假设你将所有功能都编译为
内核时产生的,它包含了所有所需模块。请根据你的自身实际情况取消掉部分模块。
所有功能全部需要,请将它们添加到 /etc/rc* 下的某些启动脚本里。
(译者注:其实这一步有多余的嫌疑,这些模块没必要开机便加载,当 gkrellm 启动
并 Call 温度模块中函数时 Linux 内核会自动加载这些模块的,
/etc/modules.autoload 也是比 rc 脚本相对更加实用的选择。不过我更倾向于直接将 I2C 编译进内核,这样这一步更有理由省下了)
#----剪切开始----
# I2C adapter drivers
# modprobe unknown adapter bt848 #0 using Bit-shift algorithm
# modprobe unknown adapter bt848 #0 using Bit-shift algorithm
modprobe i2c-viapro
modprobe i2c-isa
# I2C chip drivers
modprobe eeprom
modprobe w83781d
#----剪切结束----
为了使温度模块工作正常,以下内容需要添加到 /etc/modules.conf 或者
/etc/conf.modules:
#----剪切开始----
# I2C module options
alias char-major-89 i2c-dev
#----剪切结束----
[/code:1]
完成以上内容以后,我添加了 i2c-viapro, i2c-isa, eeprom 和 w83791d 到
/etc/modules.autoload)。请确认你的
/etc/modules.conf文
件中包含
alias char-major-89 i2c-dev。lm_sensors ebuild
已经添加了
/etc/init.d/lm_sensors启动脚本。所以运行下面命
令使 lm_sensors 在开机时加载:
[code:1]# rc-update add lm_sensors default[/code:1]
作为 Linux 用户我们不需要重新启动计算机,只需要直接加载所需模块:
[code:1]# modprobe i2c-viapro
# modprobe i2c-isa
# modprobe eeprom
# modprobe w83781d[/code:1]
然后启动 lm_sensors:
[code:1]# /etc/init.d/lm_sensors start[/code:1]
你可以通过下面命令来检查是否工作正常:
[code:1]# sensors[/code:1]
你将得到一个类似下面的输出:
[code:1]eeprom-i2c-0-50
Adapter: bt848 #0
Algorithm: Bit-shift algorithm
eeprom-i2c-1-50
Adapter: SMBus Via Pro adapter at 5000
Algorithm: Non-I2C SMBus adapter
Memory type: DDR SDRAM DIMM SPD
SDRAM Size (MB): 256
eeprom-i2c-1-51
Adapter: SMBus Via Pro adapter at 5000
Algorithm: Non-I2C SMBus adapter
Memory type: DDR SDRAM DIMM SPD
SDRAM Size (MB): 256
w83697hf-isa-0290
Adapter: ISA adapter
Algorithm: ISA algorithm
VCore: +1.76 V (min = +0.00 V, max = +0.00 V)
+3.3V: +1.52 V (min = +2.97 V, max = +3.63 V)
+5V: +4.89 V (min = +4.50 V, max = +5.48 V)
+12V: +12.58 V (min = +10.79 V, max = +13.11 V)
-12V: +2.10 V (min = -13.21 V, max = -10.90 V)
-5V: +0.58 V (min = -5.51 V, max = -4.51 V)
V5SB: +5.53 V (min = +4.50 V, max = +5.48 V)
VBat: +3.13 V (min = +2.70 V, max = +3.29 V)
fan1: 0 RPM (min = 3000 RPM, div = 2)
fan2: 0 RPM (min = 3000 RPM, div = 2)
temp1: +28癈 (limit = +60癈) sensor = thermistor
temp2: +41.5癈 (limit = +60癈, hysteresis = +50癈) sensor = thermistor
alarms:
beep_enable:
Sound alarm disabled
[/code:1]
现在,我想我的输出内容并不完全正常,但你的未必如此。
例如:我并没有使用一个普通的3口插头 CPU 风扇,我使用了一个80毫米的巨型水冷
散热器,我也知道我的核心温度并不是1.52伏。这些可以修正于:
[code:1]/etc/sensors.conf[/code:1]
介于本教程中使用主板的特殊性质(希望新教程正在撰写中),但是你可以在下面主
页中找到更多关于你主板的内容:
- [/list:u]
结束
现在你可以运行 gtkrellm2了,在 gkrellm 中按下 F1 键。展开内置菜单并单击温度(
sensors)。在这里你可以设置你想在 gkrellm 中查看哪些设备的温度。一个小技巧是
因为我在美国所以可以在选项页里选择华氏温度计量方式。Ksensors 页可以同样在右
键属性窗口中设置。
这是我在本论坛中第一次发表经验,请多加批评指正!
修改历史:修正 typo,添加 ksensors 相关内容,添加 sensors 命令内、添
加 categories,添加了超酷的紫色标题,添加了刻度
信息(感谢 puddpunk),将lm_sensors修改为lm-sensors。