LinuxでCPU温度やファン回転数などの情報を得る

mousyo

Linux lm_sensors CPU FAN

もうすぐ夏でである。今年は5月からすでに25度近くの気温が何日かありましたね。今年の夏は猛暑なのでしょうか?それとの冷夏なのでしょうか?

先日ある日、LinuxPC(パソコン クライアント)のカーネルメッセージからCPU温度上昇の警告アラートがありました。私の場合メールにて警告を知らせるようにしてある。

結果的にCPUクーラー・フィンのホコリがたまり、冷却できずに温度上昇していた訳で、パソコン内部の清掃をすることで解決、通常どおり安定温度に戻ることができました。

あらためて「PC内部の掃除はしないと」と思いつつ、他のパソコンやサーバをチェックした今日この頃でした。皆さんも夏本番前にチェック・お掃除をおすすめします。

lm_sensors

さて、CPUやM/B(マザーボード)などの温度状況をチェックするにはどうすればいいでしょうか?

私の場合Linuxではlm_sensorsのコマンドsensorsを使用しています。このsensorsコマンドは、M/Bのチップセットの機能を用いて、CPU温度、M/B温度、CPUファンやケースファン(M/Bから電源供給されている)の回転数、そして電圧状況を知ることができます。

大抵 CPUやM/Bの温度上昇の原因は、「冒頭に述べたホコリ」や「ファン回転数の劣化」などが主な原因で、sensorsコマンドはこれらのチェックに役に立ちます。また、パソコンやサーバ(コンピュータ全般)で故障の原因は、私の経験上で1にHDD、2に電源ボックスが主となっていて、電圧状況の把握は便利に使っています。実際に「おかしい」と思った電源確認は、テスターできちんと電圧チェックしています。

sensorsコマンド使うには、lm_sensorsをインストールしている必要があります。CentOS RedHat Debian Ubuntuなどは、lm_sensorsのパッケージで探してインストールしてください。

まず最初に、lm_sensorsは、M/Bのセンサー機能のLinuxドライバをロードする必要があります。これは、sensors-detectコマンドで検知させます。

# sensors-detect

RedHat系(CentOS Fedora)では /etc/sysconfig/lm_sensors に カーネル・ドライバ(ロードモジュール)が保存されます。

例) /etc/sysconfig/lm_sensors
このマシンでは it87 ドライバを使う
MODULE_0=w83627hf

後は、sensors実行すれば、以下のような情報を得ることができます。
# sensors
w83627thf-isa-0290
Adapter: ISA adapter
VCore: +1.57 V (min = +0.00 V, max = +3.84 V)
+12V: +12.04 V (min = +0.43 V, max = +0.24 V) ALARM
+3.3V: +3.30 V (min = +1.79 V, max = +1.39 V) ALARM
+5V: +4.96 V (min = +1.57 V, max = +2.91 V) ALARM
-12V: +6.06 V (min = -11.21 V, max = -14.91 V) ALARM
V5SB: +5.00 V (min = +6.24 V, max = +3.14 V) ALARM
VBat: +3.15 V (min = +0.38 V, max = +1.07 V) ALARM
fan1: 0 RPM (min = 78 RPM, div = 128) ALARM
CPU Fan: 2518 RPM (min = 5273 RPM, div = 4) ALARM
fan3: 0 RPM (min = 100 RPM, div = 128) ALARM
M/B Temp: +38°C (high = +48°C, hyst = +8°C) sensor = thermistor
CPU Temp: +36.0°C (high = +80°C, hyst = +75°C) sensor = diode
temp3: -48.0°C (high = +80°C, hyst = +75°C) sensor = thermistor
vid: +1.525 V (VRM Version 9.0)
alarms:
beep_enable:
Sound alarm enabled

sensors-detect コマンドでNGになるケース

そういえば、最近組み立てたマシンでは、sensors-detectコマンドで検知できず、調べて手動でLinuxモジュールをロードしました。新しいM/B、チップセットはちょっと細工が必要かもしれません。

Intel H61 チップセットのM/B

モジュールを手動でロード(rc.local などで自動化させるといいです)
# modprobe it87 force_id=0x8721

# sensors
it8721-isa-0290
Adapter: ISA adapter
in0: +1.04 V (min = +0.00 V, max = +3.06 V)
in1: +2.23 V (min = +0.00 V, max = +3.06 V)
in2: +3.00 V (min = +0.00 V, max = +3.06 V)
in3: +3.00 V (min = +0.00 V, max = +3.06 V)
in4: +2.23 V (min = +0.00 V, max = +3.06 V)
in5: +1.04 V (min = +0.00 V, max = +3.06 V)
in6: +1.52 V (min = +0.00 V, max = +3.06 V)
3VSB: +3.36 V (min = +0.00 V, max = +6.12 V)
Vbat: +3.12 V
fan1: 1229 RPM (min = 0 RPM)
fan2: 0 RPM (min = 0 RPM)
temp1: +32.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor
temp2: -55.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor
temp3: +27.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor
intrusion0: ALARM

チリやホコリの掃除はまめに

私もなかなかできないものですが、マメにするとコンピュータのトラブル改善につながるのは間違いないです。補足ですが、PCやサーバなどの「お手入れ」では通電などのショートなどならないよう気をつけましょう。

関連したページ

nexia access map
x