URN Logo
UNIX Resources » Linux » China Linux Forum » Linux 安装与入门 » 18 » 用好你的主板传感器
announcement 声明: 本页内容为中国Linux论坛的内容镜像,文章的版权以及其他所有的相关权利属于中国Linux论坛和相应文章的作者,如果转载,请注明文章来源及相关版权信息。
Resources
China Linux Forum(finished)
Linux Forum(finished)
FreeBSD China(finished)
linuxforum.net
  业界新闻与评论
  自由软件杂谈
  IT 人生
  Linux软件快递
  翻译作坊
  Linux图书与评论
  GNU Emacs/XEmacs
  Linux 中文环境和中文化
  Linux桌面与办公软件
  Linux 多媒体与娱乐版
  自由之窗Mozilla
  笔记本电脑上的Linux
  Gentoo
  Debian 一族
  网络管理技术
  Linux 安装与入门
  WEB服务器和FTP服务器
  域名服务器和邮件服务器
  Linux防火墙和代理服务器应用
  文件及打印服务器
  技术培训与认证
  Linux内核技术
  Linux 嵌入技术
  Linux设备驱动程序
  Linux 集群技术
  LINUX平台数据库
  系统和网络安全
  CPU 与 编译器
  系统计算研究所专栏
  Linux下的GUI软件开发
  C/C++编程版
  PHP 技 术
  Java&jsp技术
  Shell编程技术
  Perl 编 程
  Python 编 程
  XML/Web Service 技术
  永远的Unix
  FreeBSD世界
   
用好你的主板传感器
Author: ecloud    Posted: 2005-12-02 13:24    Length: 4,726 byte(s)
[Original] [Print] [Top]
本文适用对象:拥有一定的硬件基础、Linux基础、主板有温度传感器、热爱钻研的linux爱好者
本文作者及版权:Copyleft under Free Documentation License (FDL) by elcoud e.cloud@163.com
本文适用版本:适用于任何Linux发行版,建议使用2.6内核

现在的主板一般都带有温度传感器和风扇转速传感器,尤其对于7X24服务器来说,实时监控这些数据是非常重要的!
2.6版本的内核支持常见的绝大多数主板传感器,传感器的驱动也是一般的kernel module形式。不过需要一个软件来把这些信息读出来并且加以监测,这个软件就是lm_sensors (http://www.lm-sensors.nu/)

名词解释:
SMBus: "System Management Bus" 系统管理总线,它是一个“双线、低速、串行通讯总线”,用于基本的系统健康传感器数据传输,它是I2C标准总线的一个特殊实现(以上翻译自)" target="_blank">http://www.lm-sensors.nu/[/url])
简要的讲,SMBus就是专门给传感器设备用的总线,它是I2C总线规则的一个特殊实现(这有点类似于XML是SGML的特殊实现,或者 Framerelay是X.25的一个特殊实现)。I2C是传感器设备的工业标准,不光只使用于PC,同样适用于很多工业领域。我们常见的主板基本上都是使用SMBus总线的传感器设备。在他们出现以前,传感器是基于ISA总线的设备。

绝大多数发行版都带有lm_sensors软件包,但是在安装的时候几乎都没有对传感器进行配置,因此它并不会奏效。所以我们需要手工配置一下传感器。 lm_sensors软件包提供了一个非常好的命令:sensors-detect,它类似win中软件常见的“下一步”模式,引导你配置好传感器,并且能够自动检测出你的主板使用的那种传感器硬件!在向导中绝大多数问题你都可以直接回答“yes”,只有一处需要你自己选择一下,就是某些传感器同时支持 ISA总线和SMBus总线(PCI总线)的访问模式,如果是这种情况的话,你选择哪种工作方式。在这里他的提示说ISA模式会快一些,不过传感器不是用来传数据的,快一点慢一点我觉得无所谓。而且如果使用ISA模式的话还要装载ISA总线的内核模块,这对于现在绝大多数新机器来说是完全额外的模块,因此我们选择smbus模式。自动检测完成以后,sensors-detect最后会提示你做一些粘贴和复制一个启动脚本,不要搭理它!因为绝大多数发行版自带的lm_sensors软件包都已经替我们做好了这些工作了。最后他会自动修改/etc/sysconfig/lm_sensors文件,注意这个文件很重要,这里面列出了你的传感器需要的内核模块,也就是传感器的驱动程序,这个在系统启动中会自行加载的。如果不能自动加载的话,你再按照上面 sensors-detect最后提示给你的那些内容粘贴到相应的文件中去。我当时的做法是把sensors-detect最后输出的那一段东西复制到一个临时文件中去,全部配好以后重启动系统,看看一切正常,则把临时文件删除。如果不正常,则可以根据临时文件里面的步骤操作。

传感器硬件配置好以后要重起lm_sensor服务:service lm_sensors restart
重起以后运行命令:sensors
这时应该看到类似的输出:

eeprom-i2c-0-52
Adapter: SMBus I801 adapter at d800
Memory type: DDR SDRAM DIMM
Memory size (MB): 512

eeprom-i2c-0-50
Adapter: SMBus I801 adapter at d800
Memory type: DDR SDRAM DIMM
Memory size (MB): 512

adm1027-i2c-0-2e
Adapter: SMBus I801 adapter at d800
ERROR: Can't get alarm mask data!
V1.5: +1.497 V (min = +1.42 V, max = +1.58 V)
VCore: +1.336 V (min = +0.00 V, max = +0.00 V) ALARM
V3.3: +3.352 V (min = +3.13 V, max = +3.47 V)
V5: +5.182 V (min = +4.74 V, max = +5.26 V)
V12: +11.875 V (min = +11.38 V, max = +12.62 V)
CPU_Fan: 2846 RPM (min = 4000 RPM) ALARM
CPU: +34.00°C (low = +10°C, high = +50°C)
Board: +20.00°C (low = +10°C, high = +35°C)
Remote: -128.00°C (low = +10°C, high = +35°C) ALARM FAULT
CPU_PWM: 255
Fan2_PWM: 255
Fan3_PWM: 77

这就表明你的主板传感器已经可以正常运作了!
你可能看到上面有一些报警参数设置的不合适,这些参数都在配置文件:/etc/sensors.conf 里面,这个文件很大,因为包含所有他支持的传感器,你要找到你的硬件相对应的那一节,修改里面的设置。比如我上面的硬件就是:adm1027这个型号。 lm_sensors软件包里面含有非常丰富的文档,针对于每个传感器型号都有,文档中含有配置例子和解释。
一般来讲,我们主要利用“三剑客”awk,sed,grep来过滤sensors命令的输出,可以得到我们关心的某个数据,将此脚本作为crontab任务定时运行,就可以实时监测我们的系统健康状况了。如果使用perl或者python等脚本,还能够实现较为复杂的实时响应。lm_sensors- devel这个包还包含C语言用的API头文件,呵呵,这后面的东西,就靠大家自己来发挥了:)
----
[Original] [Print] [Top]
« Previous thread
如何写一个自启动程序啊
Linux 安装与入门
18
Next thread »
X-windows配置疑问?
     

Copyright © 2007 UNIX Resources Network, All Rights Reserved.      About URN | Privacy & Legal | Help | Contact us
备案序号: 京ICP备05006143    webmaster: webmaster@unixresources.net
This page created on 2008-07-17 02:17:41, cost 0.022960901260376 ms.