Ubuntuのsensors

—

by

in

Ubuntuでハードウェア温度を監視する「sensors」入門

CPU・GPU・ハードディスクなど、Linux環境で温度やファン回転数を取得したいときに必須のツール「lm‑sensors」の使い方と、よくあるトラブルへの対処法を徹底解説します。

lm‑sensors とは?

Ubuntu(や他の多くの Linux ディストリビューション)でハードウェアの温度、電圧、ファン回転数などを取得できるコマンドラインユーティリティです。lm-sensors パッケージに含まれる以下のコマンドが主に使われます。

  • sensors …… 検出されたセンサーの現在値を表示
  • sensors-detect …… カーネルモジュールを自動で探し、ロード用スクリプトを生成
  • fancontrol …… ファンの回転数を温度に応じて自動調整(追加パッケージ fancontrol)

インストールと基本設定

Ubuntu の公式リポジトリに含まれているので、端末で以下のコマンドを実行するだけです。

# apt update
# apt install lm-sensors
# apt install fancontrol      # ファン制御を使う場合は別途インストール

インストール後、すぐに sensors を実行すると「Could not find any sensors」が出ることがあります。これはまだカーネルモジュールがロードされていないためです。

ハードウェアの検出 (sensors-detect)

次に sensors-detect を実行し、ハードウェア情報を自動で検出させます。スクリプトは対話式なので、質問に「Yes」か「No」で答えていきます。

# sudo sensors-detect

主な質問例:

  • Are you sure you want to scan? (y/N) → y
  • Do you want to add the new modules to /etc/modules? (y/N) → y

検出が完了したら、提案されたモジュールをロードします。

# sudo service kmod start          # もしくは
# sudo modprobe coretemp           # 例: CPU 温度センサー
# sudo modprobe w83627ehf          # 例: チップセットベースのセンサー

再起動すると自動でロードされます。

実際に温度を読む

モジュールが正しくロードされたら、sensors コマンドで取得できます。

$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +48.0°C  (high = +80.0°C, crit = +100.0°C)
Core 0:        +46.0°C  (high = +80.0°C, crit = +100.0°C)
Core 1:        +45.0°C  (high = +80.0°C, crit = +100.0°C)

acpitz-virtual-0
Adapter: Virtual device
temp1:        +30.0°C  (crit = +105.0°C)

出力はハードウェアごとに「Adapter」欄が付き、温度、警告閾値 (high)、致命的閾値 (crit) が表示されます。必要に応じて、/etc/sensors3.conf で表示フォーマットや閾値をカスタマイズできます。

ファン制御 (fancontrol)

CPU や GPU の温度が上がったときに自動でファンを高速回転させたい場合は、fancontrol デーモンを使用します。設定は少し手間ですが、以下の手順で構築できます。

  1. pwmconfig の実行
    # sudo pwmconfig
    

    接続されている PWM (Pulse‑Width Modulation) ファンを検出し、テスト用に回転数を変化させます。テストが正常に終了すれば、/etc/fancontrol が生成されます。

  2. fancontrol デーモンの起動
    # sudo systemctl enable fancontrol
    # sudo systemctl start fancontrol
    
  3. 設定の微調整/etc/fancontrol の内容は次のようになっています。
    # /etc/fancontrol
    INTERVAL=10
    FCTEMPS=hwmon0/pwm1=hwmon0/temp2_input
    FCFANS=hwmon0/pwm1=hwmon0/fan1_input
    MINTEMP=hwmon0/pwm1=30
    MAXTEMP=hwmon0/pwm1=70
    MINSTART=hwmon0/pwm1=150
    MINSTOP=hwmon0/pwm1=80
    

    それぞれの項目は「PWM 出力 ↔ 温度入力」や「最小回転数」「最大回転数」などを指定します。自分の環境に合わせて調整してください。

注意:ノートPC などでは BIOS がファン制御を行っているケースが多く、fancontrol が有効にならないことがあります。その場合は BIOS の設定や tlp などの電源管理ツールで対処してください。

GUI で見える化するツール

コマンドラインだけでなく、デスクトップ環境上で温度やファン情報をグラフ表示したい場合は以下のアプリが便利です。

  • Psensor – sudo apt install psensor でインストール。リアルタイムで温度・ファン・CPU 使用率をトレイアイコンに表示。
  • hardinfo – sudo apt install hardinfo。システム情報とともに「Sensors」タブで数値を確認。
  • GNOME Sensors Applet – GNOME Shell 用の拡張機能。extensions.gnome.org からインストール。

これらのツールは lm-sensors がバックエンドとして動作するため、まずは sensors が正常に動作していることを確認してから導入してください。

よくあるトラブルと対処法

1. センサーが検出されない

  • BIOS/UEFI で「Hardware Monitoring」や「Fan Control」系の設定が無効になっていないか確認する。
  • 最新のカーネルにアップデートし、古いカーネルモジュールが原因の場合は新バージョンで解決されることが多い。
  • PCI デバイスの場合は pciutils パッケージの lspci -v で該当チップが認識されているか確認。

2. fancontrol が起動しない

  • PWM 出力がロックされている(BIOS が独占)場合は BIOS のファン制御オプションを「Manual」や「User」へ変更。
  • systemctl status fancontrol でエラーログを確認し、設定ファイルのパスや権限が正しいかチェック。
  • Ubuntu 22.04 以降は systemd-modules-load.service が自動でモジュールをロードしますが、手動で modprobe したあとに systemctl restart fancontrol すると解決することがあります。

3. 温度が非常に高い/低いと表示される

  • センサーのキャリブレーションが必要なケース。/etc/sensors.d/ に手動で temp1_offset などのオフセットを設定。
  • CPU の SMT(Hyper‑Threading)を無効にすると温度測定が安定する場合があります(ただしパフォーマンス低下に注意)。
警告:無理なファン速度上限設定や過度なオーバークロックはハードウェア故障の原因になります。温度閾値は必ずメーカーの仕様書を参照し、十分な安全マージンを保ってください。

まとめ

Ubuntu でハードウェアの温度やファン速度を監視・制御するには、まず lm-sensors パッケージをインストールし、sensors-detect で検出したモジュールをロードします。その後は sensors コマンドで簡単に数値を確認でき、必要に応じて fancontrol による自動ファン制御や、Psensor・hardinfo といった GUI ツールで視覚的に管理可能です。

トラブルが出たときは「モジュールのロード状態」「BIOS の設定」「カーネルバージョン」の3点を中心にチェックすれば、ほとんどの問題は解決できます。

快適で安全な Ubuntu 環境を保つために、ぜひ本記事の手順を参考に lm-sensors を活用してみてください。