AMD Fusionのマザボのセンサ情報
自宅サーバのCPUの温度やファン回転数を取得しようと四苦八苦。
そもそもubuntu 11.04のカーネルでは取得出来なかったのだが、ごにょごにょカスタマイズしてセンサ値を取得出来るようになった。
ついでにサーバでその値を取得&表示するとこまで出来た!!
せっかく出来たのでここにボチボチまとめようと思う。
現在のCPUとマザボの温度センサー値
現在のCPUとケースファンの回転数
モジュールのソース入手
自宅サーバのマザーボード「ASRock E350M1/USB3」はNCT6775FというNuvoton社のSuperIOチップを採用しているので、まずはlm-sensorsの関係をチップ名でググってみたところ同じ問題に直面した人々を発見。
[lm-sensors] Standalone driver for W83677HG-I, NCT6775F, NCT6776F
最終的にはフォーラムの中でパッチを当てたドライバを公開しているお方に感謝しつつw83627ehfの修正版を入手&make&make install。
このモジュールは手動で読み込むとちゃんと温度や電圧、ファン回転数が取得できた。
hogehoge@host:~$ sensors
k10temp-pci-00c3
Adapter: PCI adapter
temp1: +47.9°C (high = +70.0°C)
(crit = +75.0°C, hyst = +72.0°C)
nct6775-isa-0290
Adapter: ISA adapter
Vcore: +0.76 V (min = +0.00 V, max = +1.74 V)
in1: +0.95 V (min = +0.00 V, max = +0.00 V) ALARM
AVCC: +3.34 V (min = +2.98 V, max = +3.63 V)
+3.3V: +3.34 V (min = +2.98 V, max = +3.63 V)
in4: +1.35 V (min = +0.00 V, max = +0.00 V) ALARM
in5: +1.86 V (min = +0.00 V, max = +0.00 V) ALARM
in6: +1.73 V (min = +0.00 V, max = +0.00 V) ALARM
3VSB: +3.46 V (min = +2.98 V, max = +3.63 V)
Vbat: +3.44 V (min = +2.70 V, max = +3.30 V) ALARM
fan1: 1278 RPM (min = 0 RPM, div = 8 ) ALARM
fan2: 4440 RPM (min = 0 RPM, div = 16) ALARM
fan3: 0 RPM (min = 0 RPM, div = 128)
fan4: 0 RPM (div = 128)
SYSTIN: +40.0°C (high = +0.0°C, hyst = +0.0°C) ALARM sensor = thermistor
CPUTIN: +37.0°C (high = +80.0°C, hyst = +75.0°C) sensor = thermistor
AUXTIN: -14.5°C (high = +80.0°C, hyst = +75.0°C) sensor = thermistor
cpu0_vid: +0.000 V
一部の温度が氷点下になっているのはご愛嬌。いずれ治るでしょう。(他力本願)
ASUS E35M1-M ProはNCT6776Fというチップなのだが同じドライバなのでこの方法で解決出来ると思う。
カーネルの再構築
手動で読み込ませるのがイマイチスマートではないので、カーネルをAMD-CPU用に最適化再構築ついでに組み込むことにした。
ubuntuのカーネル再構築については先人の知恵をお借りして、ソースツリーの中「/drivers/hwmon/」にあるw83627ehf.cとlm75.hをパッチ済みのものと差し替えてからmake-kpkg。
あまり深く解析せずにやってみたのだが、すんなり大成功。少々拍子抜け。
snmpの設定
サーバはKVMゲストなので、センサの値をホストからゲストに渡す方法を悩む。
mrtgの設定
apacheでセンサ値の遷移を公開するにはmrtgだ!四苦八苦してみる。
編集中