気温の上がる夏[1]は、コンピューターの筐体内の温度も高くなりがちです。そこで今回は、温度監視のトピックをお届けします。
Linux Hardware Monitoringプロジェクト
LinuxにはLm_sensors(Linux hardware Monitoring)というプロジェクトがあります。このプロジェクトは、コンピューターを構成する部品のうち、マザーボードやCPU、グラッフィックカードに搭載されているセンサーから各種情報を取得することを目的としています。取得することのできる情報は温度に限らず、稼働電圧、ファンの回転数なども含まれます。
Ubuntuに導入するには、UbuntuソフトウェアセンターやSynapticパッケージマネジャーでパッケージ「lm-sensors」をインストールしてください。
センサーに対応するカーネルモジュールの特定
lm-sensorsは、各種情報を取得するために各ハードウェアにアクセスします。この際、それぞれのハードウェアに応じたドライバーが有効となっている必要があります。Linuxの場合はドライバーがカーネルモジュールの形で実装されています。パッケージ「lm-sensors」をインストールした直後にするべきことは、お使いのハードウェアに対応するカーネルモジュールの特定です。
特定はコマンド操作で行います。Ubuntuのメニューから端末(gnome-terminal)を開き、以下のコマンドを実行します。
パスワードを入力すると、端末上にてハードウェアとカーネルモジュールを検出するプロセスが始まります。
それぞれの検出セクションでYES/noの選択を迫られます。そのままエンターキーを押すと大文字で表示されている選択肢が選ばれます。
ハードウェアとそれに対応するカーネルモジュールが検出されていきます。なお、新しいマザーボードやグラフィックカードの場合は、対応するドライバーがまだ開発されておらず、特定に失敗することもあります。
カーネルモジュールの自動有効設定
検出プロセスをひと通り終えると、ハードウェアに対応するカーネルモジュールの一覧が表示されます。
上の例では、マザーボードのセンサーに対して「it87」、NVIDIA社のグラッフィックカードのセンサーに対して「adt7475」、CPUのセンサーに対して「coretemp」の各カーネルモジュールが特定されています。lm-sensorsが情報を取得するためには、これらカーネルモジュールが有効化されている必要があります。
カーネルモジュールの作法として、ファイル「/etc/modules」に記述されているカーネルモジュールはシステム起動時に自動で有効化されというものがあり、出力の最後でこのファイルへの追記をするかしないかの選択を迫られます。追記をする場合はyesを入力してエンターキーを押してください。そのままエンターキーを押すとNOが選択されてしまいますが、この場合はテキストエディタを使って自分でファイル「/etc/modules」を編集する必要がありますので、yesを選択しておくほうが簡単でしょう。
ファイル「/etc/modules」への記述が終わったら、次回以降の起動から必要なカーネルモジュールが自動で有効化されるようになりますので、システムの再起動をしてください。
情報の表示
さて、情報を表示してみましょう。同じく端末で以下のコマンドを実行してください。
温度に関しては、Core 0~3で4コアCPUの、temp1~3でマザーボードの情報が取得できています。temp1~3がマザーボードのどの箇所にあるセンサーを参照しているのかは、マザーボードのマニュアルを読んで推定する必要があります。
ハードディスクの場合
ハードディスクも温度センサーを持っています。ハードディスクには故障情報を取得するためのS.M.A.R.T.(Self-Monitoring, Analysis and Reporting Technology)という仕組みが実装されており、そのひとつとして温度情報も取得することができます。
この情報を利用する場合は、パッケージ「hddtemp」をインストールしてください。インストールを開始すると以下の画面が表示されます。これは、システム起動時にhddtempを自動起動するかどうかの設定となりますので、チェックボックスにチェックを入れて進んでください。
インストールが終了したら、システムを再起動して下さい。
ハードディスクの温度を表示するには、端末上で以下のコマンドを実行します。「/dev/sda」の値は、システムに搭載しているハードディスクに合わせ、適宜変更してください。
デスクトップ環境への表示
ここまでで、温度情報を取得するための設定が終了しました。これらの情報を表示するのに端末だけでは少々不便ですので、デスクトップ環境に表示するソフトウェアを設定してみましょう。
Unityの場合
実はUbuntu 11.04からUbuntu標準のデスクトップ環境となったUnityには、温度表示のための仕組みがまだ設けられていません。そのため、AWN(Avant Window Navigator)といった、単独で起動するソフトウェアを用意する必要があります。
現在、Unityのindicatorの仕組みを利用して温度表示をするソフトウェアが開発中で、PPAからベータ版を試すことができます。今後、Unity環境に関しては改善が進むと思います。
GNOME2デスクトップ環境の場合
UbuntuはUnityを採用する前まで、GNOME2の提供する旧来のデスクトップ環境(表示上は「Ubuntuクラシック」となっている)を利用していました。筆者が常用しているUbuntu Studioは11.04でもこのデスクトップ環境を利用しており[2]、パネルに表示するGNOME Sensors Appletを使い続けることができます。これは、パッケージ「sensors-applet」をインストールし、パネルに追加することで利用できます。
KDE4の場合
KDE4の場合は、標準でインストールされるパッケージ「plasma-widgets-workspace」に温度表示ウィジェットが含まれています。パネルに「ハードウェアの温度」ウィジェットを追加し、表示項目を設定してください。
Xfce4デスクトップ環境の場合
Xfce4の場合は、パッケージ「xfce4-sensors-plugin」でインストールされる「センサプラグイン」をパネルに追加することで、温度表示することができます。