原文更新:2004年7月22日
内容简介:利用 lm_sensors 和 gkrellm 检视 CPU 温度
1. 前言
本文所介绍技巧已经在一台 Athlon XP 1800+ 和一块使用威盛 KT266A 芯片组的磐英 8KHA+ 主板上实验成功,如果你的实验结果与我不同,请阅读后面其它朋友及其系统的跟帖。我并没有打算成为一个在 CPU 主板散热方面的问题专家,我只是在两小时内整理出了一篇介绍自己经验的文章。如果你在 lm-sensors 或者其它平台上有任何问题,可以在我的一张技术支持帖里回帖咨询: http://forums.gentoo.org/viewtopic.php?p=326081
2. 开始
当你编译内核时请在字符设备(Character Devices)里启用 I2C 支持,I2C 接口设备支持以及 I2C /proc 界面,如果你像我一样有一块 tvtuner 卡,应该已经启用了这些选项了,如果你还未启用他们请这样做以后并进行下面操作:
代码 2.1 #make modules #make modules_install编译完内核后请继续:
代码 2.2 #emerge i2c lm-sensors gkrellm如果你使用 kde 你可以使用 ksensors 代替 gkrellm。
代码 2.3 # emerge ksensors然后运行sensors-detect 探测
代码 2.4 #sensors-detect请你在得到下面提示后按下[回车]键继续
你将得到以下信息:
代码 2.5 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 编译进内核,这样这一步更有理由省下了 代码 2.6 #----剪切开始---- #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: 代码 2.7 #----剪切开始---- #I2C module options alias char-major-89 i2c-dev #----剪切结束----3. 最后的工作
添加 i2c-viapro, i2c-isa, eeprom 和 w83791d 到 /etc/modules.autoload
代码 3.1 #nano -w /etc/modules.autoload/你的内核 代码 3.2 # emerge sync 注释: 确认你的/etc/modules.conf文件中包含alias char-major-89 i2c-dev使 lm_sensors 在开机时加载:
代码 3.3 # rc-update add lm_sensors default作为 Linux 用户我们不需要重新启动计算机,只需要直接加载所需模块:
代码 3.4 # modprobe i2c-viapro # modprobe i2c-isa # modprobe eeprom # modprobe w83781d让我们来启动 lm_sensors:
代码 3.5 # /etc/init.d/lm_sensors start你可以通过下面命令来检查是否工作正常:
代码 3.6 # sensors你将得到一个类似下面的输出:
代码 3.7 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: +28C (limit = +60C) sensor = thermistor temp2: +41.5C (limit = +60C, hysteresis = +50C) sensor = thermistor alarms: beep_enable: Sound alarm disabled现在,我想我的输出内容并不完全正常,但你的未必如此。 例如:我并没有使用一个普通的3口插头 CPU 风扇,我使用了一个80毫米的巨型水冷散热器,我也知道我的核心温度并不是1.52伏。这些是可修正的:
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14102/viewspace-116550/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14102/viewspace-116550/