当前位置:操作系统 > Unix/Linux >>

利用lm_sensors和gkrellm检视CPU温度

原文更新: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.5Driver `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 algorithmmodprobe i2c-viapromodprobe i2c-isa# I2C chip driversmodprobe eeprommodprobe w83781d#----剪切结束----注释: 为了使温度模块工作正常,以下内容需要添加到 /etc/modules.conf 或者 /etc/conf.modules:代码 2.7#----剪切开始----#I2C module optionsalias 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.7eeprom-i2c-0-50Adapter: bt848 #0Algorithm: Bit-shift algorithmeeprom-i2c-1-50Adapter: SMBus Via Pro adapter at 5000Algorithm: Non-I2C SMBus adapterMemory type:

  DDR SDRAM DIMM SPDSDRAM Size (MB):

  256eeprom-i2c-1-51Adapter: SMBus Via Pro adapter at 5000Algorithm: Non-I2C SMBus adapterMemory type:

  DDR SDRAM DIMM SPDSDRAM Size (MB):

  256w83697hf-isa-0290Adapter: ISA adapterAlgorithm: ISA algorithmVCore:

  +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伏。这些是可修正的:
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,