Tips記事
» 2002年01月23日 00時00分 UPDATE

CPUファンの回転数や温度、電圧などを監視したい〜Lm_sensor〜

[木田佳克,ITmedia]

 次のようなチップが搭載されている場合,マザーボード上の各種電圧(+3.3V,+5V,+12V,-5V,-12V,VCCなど)やCPUファンのスピード,温度などが測定できる。

■代表的なモニタチップ
メーカー名 チ ッ プ 名
National Semiconductor LM75,LM78,LM78-J,LM79,LM80
Winbond W83781D,W83782D,W83783S,
W83627HF
Asus AS99127F
Genesys Logic GL518SM,GL520SM

 モニタチップの監視は,通常BIOS上で確認ができるようになっているが,OS上でも見ることができるようさまざまなツールが用意されている。

 Linux上でこれらのモニタチップから情報取得したい場合,Lm_sensorと呼ばれるツールを利用すれば比較的容易だ。導入手順を紹介していこう。

画面
Lm_sensorインストール後にコマンドラインでモニタチップ状態を確認したところ

 Lm_sensorは,Linuxカーネルの状態によってはあらかじめパッチを当てておかなければならない。ここで挙げるRed Hat Linux 7.2(カーネル2.4.7)ではパッチを当てる必要がないため,Red Hat作成のRPM版パッケージをインストールするだけで済む。Lm_sensorのサイトには,2002年1月現在,Red Hat Linux 6.1/6.2,Mandrake Linux 7.0用のRPMが公開されている

 Red Hat Linux 6.2環境であれば,kernel-i2c-2.5.1-1rh62.i386.rpmをインストール(パッチ当て)しておく必要がある。

# mount /mnt/cdrom
# cd /mnt/cdrom/RedHat/RPMS/
# rpm -Uvh lm_sensors-2.5.5-6.i386.rpm

# sensors-detect

〜途中のログを全部見る〜

To load everything that is needed, add this to some /etc/rc* file:

#----cut here----
# I2C adapter drivers
modprobe i2c-i801
modprobe i2c-isa
# I2C chip drivers
modprobe eeprom
modprobe w83781d
#----cut here----

To make the sensors modules behave correctly, add these lines to either
/etc/modules.conf or /etc/conf.modules:

#----cut here----
# I2C module options
alias char-major-89 i2c-dev
#----cut here----

 ここまででインストールからセットアップまでが終了する。ほとんどの問い合わせでは,標準のまま(英大文字の選択肢)で進めれば自動的にチップが認識されるだろう。

 次に,設定最後に表示されたように2つのファイルを編集しておいて,マシン起動時に必要なモジュールが読み込まれるようにしておく。

# vi /etc/rc.d/rc.local

〜以下の行を加える(モニタチップ環境に依存するので,この例の設定をそのまま使えるとは限らない)〜
# I2C adapter drivers
modprobe i2c-i801
modprobe i2c-isa
# I2C chip drivers
modprobe eeprom
modprobe w83781d

 次に,/etc/modules.conf,あるいは/etc/conf.modulesにエイリアスを加えておく。

# vi /etc/modules.conf

〜以下の行を加える(モニタチップ環境に依存するので,この例の設定をそのまま使えるとは限らない)〜
# I2C module options
alias char-major-89 i2c-dev

 これでマシンを再起動(# reboot)すれば,i2cモジュールが有効となってモニタチップの状態を見られるようになる。

 再起動後は,次のようにコマンド入力すれば,電圧やファン回転数,温度などが確認できるはずだ。

# sensors
W83627HF (I/O controller w/ HW monitoring W83782D, fan speed control)
w83627hf-isa-0290
Adapter: ISA adapter
Algorithm: ISA algorithm
VCore 1: +1.68 V (min = +1.53 V, max = +1.87 V)
VCore 2: +1.45 V (min = +1.53 V, max = +1.87 V)
+3.3V: +3.26 V (min = +2.97 V, max = +3.63 V)
+5V: +4.94 V (min = +4.50 V, max = +5.48 V)
+12V: +11.86 V (min = +10.79 V, max = +13.11 V)
-12V: -11.88 V (min = -13.21 V, max = -10.90 V)
-5V: +2.71 V (min = -5.51 V, max = -4.51 V)
V5SB: +5.39 V (min = +4.50 V, max = +5.48 V)
VBat: +3.12 V (min = +2.70 V, max = +3.29 V)
fan1: 4383 RPM (min = 3000 RPM, div = 2)
fan2: 0 RPM (min = 3000 RPM, div = 2)
fan3: 0 RPM (min = 750 RPM, div = 8)
temp1: +35.0庵 (limit = +60庵, hysteresis = +50庵) sensor = thermistor
temp2: +39.0庵 (limit = +60庵, hysteresis = +50庵) sensor = thermistor
temp3: +36.0庵 (limit = +60庵, hysteresis = +50庵) sensor = thermistor
vid: +1.70 V
alarms: Chassis intrusion detection
beep_enable:
Sound alarm disabled


〜注:「庵」は,温度単位が文字化けしているもの〜

 上記の表示例で温度が3つ表示されていることが分かるが,temp1とtemp3がマザーボード上,temp2がCPU温度を示していることが多い。ファン回転数は,通常fan1だけに表示されるためひと目で分かるだろう。

 また,これらの情報は次のように指定しても確認することができる。

# cd /proc/sys/dev/sensors ; grep -r . . | grep isa
./w83627hf-isa-0290/sensor3:3435
./w83627hf-isa-0290/sensor2:3435
./w83627hf-isa-0290/sensor1:3435
./w83627hf-isa-0290/pwm2:255
./w83627hf-isa-0290/pwm1:255
./w83627hf-isa-0290/beep:0 0
./w83627hf-isa-0290/alarms:0
./w83627hf-isa-0290/fan_div:2 2 8
./w83627hf-isa-0290/vid:1.70
./w83627hf-isa-0290/temp3:60.0 50.0 37.5
./w83627hf-isa-0290/temp2:60.0 50.0 41.5
./w83627hf-isa-0290/temp1:60.0 50.0 37.0
./w83627hf-isa-0290/fan3:750 0
./w83627hf-isa-0290/fan2:3000 0
./w83627hf-isa-0290/fan1:3000 4383
./w83627hf-isa-0290/in8:2.70 3.29 3.15
./w83627hf-isa-0290/in7:2.68 3.26 3.21
./w83627hf-isa-0290/in6:0.70 1.02 3.32
./w83627hf-isa-0290/in5:0.33 0.78 0.59
./w83627hf-isa-0290/in4:2.84 3.45 3.12
./w83627hf-isa-0290/in3:2.68 3.26 2.92
./w83627hf-isa-0290/in2:2.97 3.63 3.26
./w83627hf-isa-0290/in1:1.53 1.87 1.45
./w83627hf-isa-0290/in0:1.53 1.87 1.68
./chips:264 w83627hf-isa-0290

 ここまでの値は,何らかの加工なくしては生きてこないだろう。もっとグラフィカルに統計として見たい場合には,MRTGやRRDToolにデータを取り込ませるのもよいだろう。次のようなグラフとして見せることも可能だ

画面
Lm_sensor経由でデータを受け取ってCPU温度をRRDToolでグラフ化したもの

 今回は,Lm_sensorのインストールをRPMで行った例を紹介した。ほかのディストリビュートバージョンでは,ソースからのコンパイルが必要なことも多く,その場合は手間がかかるだろう。機会を改めて紹介したい。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ