「Lm sensors」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
 
(校正(でき・出来))
 
(4人の利用者による、間の27版が非表示)
1行目: 1行目:
  +
{{DISPLAYTITLE:lm_sensors}}
{{lowercase title}}
 
[[Category:状態監視と通知]]
+
[[Category:システムモニタ]]
 
[[Category:CPU]]
 
[[Category:CPU]]
[[cs:Lm sensors]]
+
[[cs:Lm-sensors]]
 
[[de:Lm sensors]]
 
[[de:Lm sensors]]
 
[[en:Lm sensors]]
 
[[en:Lm sensors]]
[[es:Lm sensors]]
+
[[es:Lm-sensors]]
[[ru:Lm sensors]]
+
[[ru:Lm-sensors]]
[[uk:Lm sensors]]
+
[[uk:Lm-sensors]]
[[zh-CN:Lm sensors]]
+
[[zh-hans:Lm sensors]]
 
{{Related articles start}}
 
{{Related articles start}}
  +
{{Related|ファンスピード制御}}
{{Related2|hddtemp|hddtemp}}
 
  +
{{Related|hddtemp}}
  +
{{Related|I2C}}
 
{{Related|monitorix}}
 
{{Related|monitorix}}
 
{{Related articles end}}
 
{{Related articles end}}
[http://www.lm-sensors.org/ lm_sensors] (Linux monitoring sensors) は温度、電圧、ファンを監視するフリーオープンソースなツルとライバです。
+
[http://www.lm-sensors.org/ lm_sensors] (Linux monitoring sensors) は温度、電圧、ファンを監視するためのツールやドライバーを提供するフリーオープンソースアプリケションです。このキュメントは lm_sensors をインストール・設定・使用する方法を説明します。
このドキュメントでは lm_sensors のインストール・設定の方法と、CPU 温度やマザーボードの温度、ファンスピードを監視する方法を説明します。
 
   
== 使い方 ==
+
== インストール ==
  +
[[公式リポジトリ]]から {{Pkg|lm_sensors}} パッケージをインストールしてください。
=== インストール ===
 
{{Pkg|lm_sensors}} を[[Official Repositories|公式リポジトリ]]からインストールします。
 
   
  +
{{Note|[https://github.com/groeck/lm-sensors/tree/master/doc GitHub リポジトリ] に詳しいドキュメントが存在します。将来的にはドキュメントもインストールされるようになります。{{Bug|48354}} を参照。}}
=== lm_sensors の設定 ===
 
  +
  +
== 設定 ==
  +
  +
root で ''sensors-detect'' を使用して、カーネルモジュールのリストを検出して生成します。
  +
  +
{{Warning|何をしているのか正確に理解していない限り、デフォルトのオプション ({{ic|Enter}} を押すだけ) 以外は使用しないでください。 [[lm_sensors#センサー検出の実行後にノートパソコンの画面に問題が発生する]] を参照してください。}}
   
検出とカーネルモジュールのリストを作成するために '''sensors-detect''' を使用します。
 
 
# sensors-detect
 
# sensors-detect
上のコマンドを実行すると、{{ic|sensors}} デーモンが起動時に自動的にカーネルモジュールを読み込むためのファイル {{ic|/etc/conf.d/lm_sensors}} が作成されます。どのハードウェアを検索したいかどうか質問されるでしょう。デフォルトが "安全" な答えに設定されているので大抵の場合、全ての質問に {{ic|Enter}} を押すだけでかまいません。
 
   
  +
さまざまなハードウェアを調査するよう求められます。"安全な" 回答がデフォルトであるため、すべての質問に対して {{ic|Enter}} を押していれば、通常は問題が発生しません。これにより、起動時にカーネルモジュールを自動的にロードするために {{ic|lm_sensors.service}} によって使用される {{ic|/etc/conf.d/lm_sensors}} 設定ファイルが作成されます。
一連の検出が終わったら検出の結果が提示されます。例:
 
  +
  +
{{Tip|{{ic|--auto}} フラグを使用すると、{{ic|sensors-detect}} に対するすべての安全な回答を自動的に受け入れることができます。}}
  +
  +
検知が完了したら、調査結果が表示されます。
  +
  +
例:
  +
 
{{hc|# sensors-detect|<nowiki>
 
{{hc|# sensors-detect|<nowiki>
  +
This program will help you determine which kernel modules you need
  +
to load to use lm_sensors most effectively. It is generally safe
  +
and recommended to accept the default answers to all questions,
  +
unless you know what you're doing.
  +
  +
Some south bridges, CPUs or memory controllers contain embedded sensors.
  +
Do you want to scan for them? This is totally safe. (YES/no):
  +
Module cpuid loaded successfully.
  +
Silicon Integrated Systems SIS5595... No
  +
VIA VT82C686 Integrated Sensors... No
  +
VIA VT8231 Integrated Sensors... No
  +
AMD K8 thermal sensors... No
  +
AMD Family 10h thermal sensors... No
  +
  +
...
  +
 
Now follows a summary of the probes I have just done.
 
Now follows a summary of the probes I have just done.
Just press ENTER to continue:
+
Just press ENTER to continue:
  +
Driver `it87':
 
* ISA bus, address 0x290
 
Chip `ITE IT8718F Super IO Sensors' (confidence: 9)
 
 
Driver `coretemp':
 
Driver `coretemp':
* Chip `Intel Core family thermal sensor' (confidence: 9)
+
* Chip `Intel digital thermal sensor' (confidence: 9)
</nowiki>}}
 
もしあなたがデーモンを使う気でいるなら、{{ic|/etc/conf.d/lm_sensors}} を作成するかどうか聞かれた時に '''YES''' と答えてください。
 
   
  +
Driver `lm90':
起動時に自動的にカーネルモジュールを読み込むには、次を実行する必要があります:
 
  +
* Bus `SMBus nForce2 adapter at 4d00'
systemctl enable lm_sensors.service
 
  +
Busdriver `i2c_nforce2', I2C address 0x4c
  +
Chip `Winbond W83L771AWG/ASG' (confidence: 6)
   
  +
Do you want to overwrite /etc/conf.d/lm_sensors? (YES/no):
また、デーモンを使う代わりに、モジュールを {{ic|/etc/modules-load.d/lm_sensors.conf}} の {{ic|MODULES}} 配列に追加することもできます:
 
  +
ln -s '/usr/lib/systemd/system/lm_sensors.service' '/etc/systemd/system/multi-user.target.wants/lm_sensors.service'
coretemp
 
  +
Unloading i2c-dev... OK
it87
 
  +
Unloading cpuid... OK
acpi-cpufreq
 
  +
</nowiki>}}
   
  +
{{Note|{{ic|/etc/conf.d/lm_sensors}} の生成について '''YES''' と答えると systemd サービスが自動的に有効になります。また、サービスが自動的に起動します。}}
=== lm_sensors をテストする ===
 
セットアップをテストするには、手動で、もしくは [[systemd|systemd]] のサービスファイルを利用し、[[kernel modules|カーネルモジュール]]を読み込む必要があります。両方使用してはいけません。
 
   
  +
== sensors の実行 ==
例: 手動で読み込む方法
 
  +
{{ic|sensors}} の実行例:
# modprobe it87
 
# modprobe coretemp
 
例: スクリプトを利用する方法
 
# systemctl enable lm_sensors
 
# systemctl start lm_sensors
 
 
sensors を実行するとこのようなものが表示されるはずです。
 
 
{{hc|$ sensors|<nowiki>
 
{{hc|$ sensors|<nowiki>
 
coretemp-isa-0000
 
coretemp-isa-0000
 
Adapter: ISA adapter
 
Adapter: ISA adapter
Core 0: +30.0°C (high = +76.0°C, crit = +100.0°C)
+
Core 0: +35.0°C (crit = +105.0°C)
  +
Core 1: +32.0°C (crit = +105.0°C)
   
  +
w83l771-i2c-0-4c
coretemp-isa-0001
 
Adapter: ISA adapter
+
Adapter: SMBus nForce2 adapter at 4d00
Core 1: +30.0°C (high = +76.0°C, crit = +100.0°C)
+
temp1: +28.0°C (low = -40.0°C, high = +70.0°C)
  +
(crit = +85.0°C, hyst = +75.0°C)
 
  +
temp2: +37.4°C (low = -40.0°C, high = +70.0°C)
coretemp-isa-0002
 
  +
(crit = +110.0°C, hyst = +100.0°C)
Adapter: ISA adapter
 
  +
</nowiki>}}
Core 2: +32.0°C (high = +76.0°C, crit = +100.0°C)
 
 
coretemp-isa-0003
 
Adapter: ISA adapter
 
Core 3: +30.0°C (high = +76.0°C, crit = +100.0°C)
 
 
it8718-isa-0290
 
Adapter: ISA adapter
 
in0: +1.17 V (min = +0.00 V, max = +4.08 V)
 
in1: +1.31 V (min = +1.28 V, max = +1.68 V)
 
in2: +3.28 V (min = +2.78 V, max = +3.78 V)
 
in3: +2.88 V (min = +2.67 V, max = +3.26 V)
 
in4: +2.98 V (min = +2.50 V, max = +3.49 V)
 
in5: +1.34 V (min = +0.58 V, max = +1.34 V) ALARM
 
in6: +2.02 V (min = +1.04 V, max = +1.36 V) ALARM
 
in7: +2.83 V (min = +2.67 V, max = +3.26 V)
 
Vbat: +3.28 V
 
fan1: 1500 RPM (min = 3245 RPM) ALARM
 
fan2: 0 RPM (min = 3245 RPM) ALARM
 
fan3: 0 RPM (min = 3245 RPM) ALARM
 
temp1: +18.0°C (low = +127.0°C, high = +64.0°C) sensor = thermal diode
 
temp2: +32.0°C (low = +127.0°C, high = +64.0°C) sensor = thermistor
 
temp3: +38.0°C (low = +127.0°C, high = +64.0°C) sensor = thermistor
 
cpu0_vid: +2.050 V
 
   
  +
=== メモリモジュールから SPD の値を読み込む (任意) ===
acpitz-virtual-0
 
Adapter: Virtual device
 
temp1: +18.0°C (crit = +64.0°C)
 
</nowiki>}}
 
   
  +
メモリモジュールから SPD のタイミング値を読み込むには {{pkg|i2c-tools}} パッケージをインストールしてください。インストールしたら {{ic|eeprom}} [[カーネルモジュール]]をロードしてください:
=== SPD の値をメモリーモジュールから読み込む (任意) ===
 
SPD タイミングの値をあなたのメモリーモジュールから読み込むには、{{pkg|i2c-tools}} を[[Official Repositories|公式リポジトリ]]からインストールします。
 
i2c-tools をインストールしたら、{{ic|eeprom}} [[Kernel modules|カーネルモジュール]]を読み込む必要があります。
 
 
# modprobe eeprom
 
# modprobe eeprom
最後に、あなたのメモリー情報を {{ic|decode-dimms}} で見る事ができます。
 
   
  +
最後に {{ic|decode-dimms}} でメモリ情報を確認してください。
以下はあるマシンの出力の一部です:
 
{{hc|$ decode-dimms|<nowiki>
 
# decode-dimms version 5733 (2009-06-09 13:13:41 +0200)
 
   
  +
以下は出力の例です:
  +
{{hc|# decode-dimms|<nowiki>
 
Memory Serial Presence Detect Decoder
 
Memory Serial Presence Detect Decoder
 
By Philip Edelbrock, Christian Zuckschwerdt, Burkart Lingner,
 
By Philip Edelbrock, Christian Zuckschwerdt, Burkart Lingner,
172行目: 163行目:
 
== センサーデータの利用 ==
 
== センサーデータの利用 ==
 
=== グラフィカルフロントエンド ===
 
=== グラフィカルフロントエンド ===
  +
センサーデータのフロントエンドが多数あります。
 
  +
センサーのデータを表示するための様々なフロントエンドが存在します:
*{{Pkg|xsensors}} - lm_sensors の X11 インターフェースです。
 
  +
*{{Pkg|xfce4-sensors-plugin}} - lm_sensors を [[Xfce|Xfce]] パネルへ追加するためのプラグインです。
 
  +
* {{App|psensor|温度やファン速度などのハードウェアセンサーを監視するための GTK アプリケーション。マザーボードと CPU (lm-sensors を使用)、Nvidia GPU (XNVCtrl を使用)、およびハードディスク ([[hddtemp]] または libashismart を使用) を監視します。|https://wpitchoune.net/psensor/|{{Pkg|psensor}}}}
*[[conky|conky]] - Conky は高度で設定を行うことができる torsmo ベースの X 向けシステムモニターです。
 
  +
* {{App|xsensors|lm_sensors の X11 インターフェイス|https://github.com/Mystro256/xsensors|{{Pkg|xsensors}}}}
*{{Pkg|kdeutils-superkaramba}} - Superkaramba は KDE デスクトップのためのウィジェット作成をできるようにするツールです。
 
  +
* {{App|Netdata|Web ベースのシステムモニター ([[netdata]])。|https://github.com/netdata/netdata| {{Pkg|netdata}}}}
詳しくは [http://www.kde-look.org/index.php?xcontentmode=38 kde-look.org の karamba セクション] を見てください。例えばセンサーデータのための karamba フロントエンドがあります。
 
  +
* {{App|CoolerControl|冷却装置を監視および制御するプログラム。|https://gitlab.com/coolercontrol/coolercontrol|{{AUR|coolercontrol}}}}
*{{AUR|sensors-applet}} - [[GNOME|GNOME]] パネルにハードウェアセンサーからの情報、CPU 温度・ファンスピード・電圧などを表示するためのアプレットです。
 
  +
  +
[[デスクトップ環境]]で使えるフロントエンド:
  +
  +
* {{App|Freon (GNOME Shell extension)|[[GNOME]] シェルで CPU 温度、ディスク温度、ビデオカード温度、電圧、ファン RPM を表示するための拡張機能。|https://github.com/UshakovVasilii/gnome-shell-extension-freon|{{AUR|gnome-shell-extension-freon}}}}
  +
* {{App|GNOME Sensors Applet|CPU 温度、ファン速度、電圧測定値などのハードウェアセンサーからの測定値を表示する [[GNOME]] パネル用のアプレット。|http://sensors-applet.sourceforge.net/|{{Pkg|sensors-applet}}}}
  +
* {{App|lm-sensors (LXPanel plugin)|lm-sensorsを通じて [[LXDE]] の温度/電圧/ファン速度を監視します。|https://danamlund.dk/sensors_lxpanel_plugin/|{{AUR|sensors-lxpanel-plugin}}}}
  +
* {{App|MATE Sensors Applet|[[MATE]] パネルにハードウェアセンサーからの測定値を表示します。|https://github.com/mate-desktop/mate-sensors-applet|{{Pkg|mate-sensors-applet}}}}
  +
* {{App|Sensors (Xfce4 panel plugin)|[[Xfce]] パネル用のハードウェアセンサープラグイン。|https://goodies.xfce.org/projects/panel-plugins/xfce4-sensors-plugin|{{Pkg|xfce4-sensors-plugin}}}}
  +
* {{App|Thermal Monitor (Plasma 5 applet)|[[KDE]] CPU、GPU、およびその他の利用可能な温度センサーを監視するための Plasma アプレット。|https://gitlab.com/agurenko/plasma-applet-thermal-monitor|{{Pkg|plasma5-applets-thermal-monitor}}}}
   
 
=== sensord ===
 
=== sensord ===
sensord ({{Pkg|lm_sensors}} パッケージの中に入っています) と呼ばれるオプショナルデーモンが存在し、ラウンドロビンデータベース (rrd) にデータを記録して後で視覚化することができます。詳細は sensord の man ページを読んでください。
 
   
  +
''sensord'' と呼ばれるオプションのデーモンが ({{Pkg|lm_sensors}} パッケージに含まれています) データをラウンドロビンデータベース (rrd) に記録し、後でグラフィカルに視覚化できます。詳細については、{{man|8|sensord}} のマニュアル ページを参照してください。
== Tips and Tricks ==
 
  +
  +
== ヒントとテクニック ==
  +
 
=== 値の調整 ===
 
=== 値の調整 ===
  +
場合によって、表示されるデータが間違っていたり出力をリネームしたいということがあるでしょう。以下のようなユースケースが考えられます:
 
  +
ときとして、表示されるデータが間違っていたり出力をリネームしたいという場合があります。例:
* オフセットが間違っているために温度の値が間違っている (つまり実際の温度よりも20 °C 高く報告される)。
 
  +
* オフセットが間違っているために温度の値が間違っている (実際の温度よりも 20 °C も高く報告されるなど)
* センサーの出力をリネームしたい。
 
  +
* 特定のセンサーの出力をリネームしたい。
 
* 表示されるコアの順番が間違っている。
 
* 表示されるコアの順番が間違っている。
   
上記は全て {{ic|/etc/sensors.d/foo}} を作成して {{ic|/etc/sensors3.conf}} にあるパッケージ設定を上書きすることで調整できます。'foo' はマザーボードのブランド名に置き換えることを推奨しますが命名は任意です
+
上記は全て {{ic|/etc/sensors.d/foo}} を作成して {{ic|/etc/sensors3.conf}} パッケージ設定を上書きすることで調整できます。'foo' はマザーボードのブランド名に置き換えることを推奨しますが特に命名に決まりありません
   
 
{{Note|{{ic|/etc/sensors3.conf}} を直接編集しないでください。パッケージのアップデートによって上書きされてしまいます。}}
 
{{Note|{{ic|/etc/sensors3.conf}} を直接編集しないでください。パッケージのアップデートによって上書きされてしまいます。}}
   
 
==== 例 1. 温度のオフセットを調整 ====
 
==== 例 1. 温度のオフセットを調整 ====
  +
以下は Zotac ION-ITX-A-U マザーボードの実際の例です。coretemp の 20 °C ずれており (高すぎる) Intel の仕様にあわせて低く調整します。
 
  +
以下は Zotac ION-ITX-A-U マザーボードの実例です。coretemp の値が 20 °C だけずれている (高すぎる) ので Intel の仕様にあわせて低く調整します:
   
 
{{hc|$ sensors|<nowiki>
 
{{hc|$ sensors|<nowiki>
240行目: 244行目:
   
 
==== 例 2. ラベルの名前の変更 ====
 
==== 例 2. ラベルの名前の変更 ====
  +
以下は Asus A7M266 での実際の例です。温度のラベル 'temp1' と 'temp2' にもっとちゃんとした名前を付けます:
 
  +
以下は Asus A7M266 の実例です。温度のラベル 'temp1' と 'temp2' にもっとちゃんとした名前を付けます:
 
{{hc|$ sensors|<nowiki>
 
{{hc|$ sensors|<nowiki>
 
as99127f-i2c-0-2d
 
as99127f-i2c-0-2d
268行目: 273行目:
   
 
==== 例 3. マルチ CPU 環境でコアの番号を再定義する ====
 
==== 例 3. マルチ CPU 環境でコアの番号を再定義する ====
  +
稀に、マルチ CPU マザーボードでは実際の物理コアのナンバリングが間違っていることがあります。
 
  +
以下はデュアル CPU の Xeon を搭載した HP Z600 ワークステーションの実例です。物理コアの順番が間違っています: 0, 1, 9, 10 が2番目の CPU でも繰り返されてしまっています。0, 1, 2, 3, 4, 5, 6, 7 と連続した順番でコアの温度を表示してほしいと大抵のユーザーは思うでしょう。
Xeon を2個搭載した HP Z600 ワークステーションの例を示します:
 
 
{{hc|$ sensors|<nowiki>
 
{{hc|$ sensors|<nowiki>
 
coretemp-isa-0000
 
coretemp-isa-0000
284行目: 289行目:
 
Core 9: +60.0°C (high = +85.0°C, crit = +95.0°C)
 
Core 9: +60.0°C (high = +85.0°C, crit = +95.0°C)
 
Core 10: +61.0°C (high = +85.0°C, crit = +95.0°C)
 
Core 10: +61.0°C (high = +85.0°C, crit = +95.0°C)
  +
...
 
smsc47b397-isa-0480
 
Adapter: ISA adapter
 
fan1: 1730 RPM
 
fan2: 1746 RPM
 
fan3: 1224 RPM
 
fan4: 2825 RPM
 
temp1: +46.0°C
 
temp2: +37.0°C
 
temp3: +23.0°C
 
temp4: -128.0°C
 
 
</nowiki>}}
 
</nowiki>}}
   
コアの番号が 0,1,9,10 となっていて、2番目の CPU でも同じ番号が繰り返されていることに注意してください。多くのユーザーは 0,1,2,3,4,5,6,7 といった順番でコアの温度を表示してほしいでしょう。2段階でこの問題を解決します。物理チップに対してどのようなオプションが利用できるか {{ic|sensors}} に {{ic|-u}} スイッチをつけて調べてください:
+
物理チップに対してどのようなオプションが利用できるか {{ic|sensors}} に {{ic|-u}} スイッチをつけて調べてください:
   
 
{{hc|$ sensors -u coretemp-isa-0000|<nowiki>
 
{{hc|$ sensors -u coretemp-isa-0000|<nowiki>
343行目: 338行目:
 
temp12_max: 85.000
 
temp12_max: 85.000
 
temp12_crit: 95.000
 
temp12_crit: 95.000
  +
...
 
</nowiki>}}
 
</nowiki>}}
   
  +
デフォルトの値を上書きするために以下のファイルを作成:
結果を元に、新しい定義を {{ic|/etc/sensors.d/cores.conf}} に作成します:
 
  +
{{hc|/etc/sensors.d/HP_Z600|<nowiki>
 
{{hc|/etc/sensors.d/cores.conf|<nowiki>
 
 
chip "coretemp-isa-0000"
 
chip "coretemp-isa-0000"
  +
label temp2 "Core 0"
 
label temp2 "Core 0"
+
label temp3 "Core 1"
label temp3 "Core 1"
+
label temp11 "Core 2"
label temp11 "Core 2"
+
label temp12 "Core 3"
label temp12 "Core 3"
 
   
 
chip "coretemp-isa-0004"
 
chip "coretemp-isa-0004"
  +
label temp2 "Core 4"
  +
label temp3 "Core 5"
  +
label temp11 "Core 6"
  +
label temp12 "Core 7"</nowiki>}}
   
  +
{{ic|sensors}} を実行すると調整された値が表示されるようになります:
label temp2 "Core 4"
 
label temp3 "Core 5"
 
label temp11 "Core 6"
 
label temp12 "Core 7"</nowiki>}}
 
 
問題は解決しました。これらのステップが完了した結果を示します:
 
 
 
{{hc|$ sensors|<nowiki>
 
{{hc|$ sensors|<nowiki>
 
coretemp-isa-0000
 
coretemp-isa-0000
378行目: 370行目:
 
Core6: +59.0°C (high = +85.0°C, crit = +95.0°C)
 
Core6: +59.0°C (high = +85.0°C, crit = +95.0°C)
 
Core7: +60.0°C (high = +85.0°C, crit = +95.0°C)
 
Core7: +60.0°C (high = +85.0°C, crit = +95.0°C)
  +
...
 
smsc47b397-isa-0480
 
Adapter: ISA adapter
 
fan1: 1734 RPM
 
fan2: 1726 RPM
 
fan3: 1222 RPM
 
fan4: 2827 RPM
 
temp1: +45.0°C
 
temp2: +37.0°C
 
temp3: +23.0°C
 
temp4: -128.0°C
 
 
</nowiki>}}
 
</nowiki>}}
   
=== 自動で lm_sensors を配置 ===
+
=== lm_sensors の自動デプロイ ===
複数のマシンに lm-sensors を配置したい場合、以下のどちらかで利用できます:
 
   
  +
複数のマシンに lm_sensors をデプロイしたい場合、以下のどちらかの方法でできます:
1. 質問に対してデフォルトで承認:
 
  +
  +
1. 質問に対してデフォルトの答えを設定:
 
# sensors-detect --auto
 
# sensors-detect --auto
   
 
2. デフォルトを上書きして全ての質問に YES で答える:
 
2. デフォルトを上書きして全ての質問に YES で答える:
 
# yes | sensors-detect
 
# yes | sensors-detect
  +
  +
=== S.M.A.R.T. ドライブの温度 ===
  +
  +
[https://hwmon.wiki.kernel.org/device_support_status カーネル 5.6 以降] {{ic|drivetemp}} モジュールは hwmon を通じて SATA/SAS 温度を報告しますが、{{ic|sensors-detect}} は自動的に検出しませんしたがって、モジュールは [[カーネルモジュール#手動でモジュールを扱う|手動ロード]] でなければなりません。
  +
  +
# modprobe drivetemp
  +
  +
{{ic|sensors}} の出力に次のようなエントリが表示されるはずです。
  +
  +
{{hc|sensors|2=
  +
drivetemp-scsi-1-0
  +
Adapter: SCSI adapter
  +
temp1: +33.0°C
  +
  +
drivetemp-scsi-2-0
  +
Adapter: SCSI adapter
  +
temp1: +32.0°C (low = +0.0°C, high = +70.0°C)
  +
(crit low = +0.0°C, crit = +70.0°C)
  +
(lowest = +29.0°C, highest = +41.0°C)
  +
}}
  +
  +
[[カーネルモジュール#モジュールの自動ロード|起動時にモジュールをロード]]できるようになりました。あるいは、{{ic|/etc/conf.d/lm-sensors}} の {{ic|HWMON_MODULES}} 行に手動で追加します。{{ic|sensors-detect}} がこのファイルに再び書き込むことを許可される場合、このファイルは自動的に追加されないことに注意してください。
  +
  +
=== 永続的なデバイス名 ===
  +
  +
多くのソフトウェアはセンサーデバイスが {{ic|/sys/class/hwmon/hwmonX}} に配置されることを期待していますが、多くの場合、hwmon インターフェイスを提供するデバイスが 1 〜 2 つ以上あるシステムではそうではありません。ソフトウェアはおそらく {{ic|hwmon?/name}} を解析するか、lmsensors ライブラリを使用する必要がありますが、残念ながら多くの場合、そうではありません。一部のソフトウェア (例: [[Monitorix]] またはその特定のモジュール、つまり amdgpu) は、別の場所に永続的な名前が必要です。
  +
  +
したがって、次の種類の udev ルールが役立つ可能性があります。すべてのソフトウェアがこれらを使用できるわけではありません (たとえば、KDE ​​システムモニター - 悲しいことに、多くのシステムでこれらのソフトウェアはほとんど役に立ちません) 多くの場合、udev ルールで hwmon サブシステムと適切な名前をマッチさせるだけで十分です、ルールの書き方については、[[Udev]]ページを見てください。
  +
  +
{{ic|/sys}} 階層では名前を変更したりシンボリックリンクを作成したりすることはできません。{{ic|1=SYMLINK+=}} ステートメントも機能しません。したがって、{{ic|1=RUN+=}} ステートメントを使用する必要があります (この例のように、シンボリックリンクは {{ic|/dev}} の下にある必要はありません。)
  +
  +
{{hc|/etc/udev/rules.d/99-persistent-hwmon-names.rules|<nowiki>
  +
# my motherboard sensor chip:
  +
ACTION=="add", SUBSYSTEM=="hwmon", ATTRS{name}=="nct6687", RUN+="/bin/sh -c 'ln -s /sys$devpath /dev/nct6678'"
  +
# an USB device providing sensors:
  +
ACTION=="add", SUBSYSTEM=="hwmon", ATTRS{name}=="corsaircpro", RUN+="/bin/sh -c 'ln -s /sys$devpath /dev/corsaircpro'"
  +
# my GPU:
  +
ACTION=="add", SUBSYSTEM=="hwmon", ATTRS{vendor}=="0x1002", ATTRS{device}=="0x73bf", RUN+="/bin/sh -c 'ln -s /sys$devpath /dev/rx6900xt'"
  +
</nowiki>}}
   
 
== トラブルシューティング ==
 
== トラブルシューティング ==
   
===K10Temp モジュール===
+
=== K10Temp モジュール ===
   
K10 プロセッサでは温度センサー問題が起こることがあります。カーネルドキュメントより ({{ic|linux-&lt;version&gt;/Documentation/hwmon/k10temp}}):
+
一部の K10 プロセッサでは温度センサー問題が起こることがあります。カーネルドキュメントより ({{ic|linux-&lt;version&gt;/Documentation/hwmon/k10temp}}):
:''All these processors have a sensor, but on those for Socket F or AM2+, the sensor may return inconsistent values (erratum 319). The driver will refuse to load on these revisions unless users specify the {{ic|1=force=1}} module parameter.''
 
   
  +
:''全てのプロセッサにはセンサーが搭載されていますが、Socket F や AM2+ のプロセッサでは、センサーの返す値がおかしいことがあります (erratum 319) これらの CPU では {{ic|1=force=1}} モジュールパラメータを指定しないかぎりドライバーはロードされません。''
:''Due to technical reasons, the driver can detect only the mainboard's socket type, not the processor's actual capabilities. Therefore, users of an AM3 processor on an AM2+ mainboard, can safely use the {{ic|1=force=1}} parameter.''
 
  +
  +
:''技術上の問題のため、ドライバーが認識できるのはマザーボードのソケットタイプだけです。プロセッサの実際の機能はわかりません。AM2+ マザーボードで AM3 プロセッサを使っている場合は {{ic|1=force=1}} パラメータを設定しても大丈夫です。''
  +
  +
影響を受けるマシンではモジュールは "unreliable CPU thermal sensor; monitoring disabled" と報告します。強制的に使用するには:
   
影響があるマシンではモジュールは "unreliable CPU thermal sensor; monitoring disabled" と報告します。強制的に使用するには:
 
 
# rmmod k10temp
 
# rmmod k10temp
 
# modprobe k10temp force=1
 
# modprobe k10temp force=1
  +
センサーが問題なく確かなことを確認して下さい。大丈夫のようなら、{{ic|/etc/modprobe.d/k10temp.conf}} を編集して次を追加:
 
  +
センサーが問題ないことを確認してください。確認がとれたのであれば {{ic|/etc/modprobe.d/k10temp.conf}} を編集して以下を追加:
  +
 
options k10temp force=1
 
options k10temp force=1
  +
 
これでモジュールがブート時にロードされるようになります。
 
これでモジュールがブート時にロードされるようになります。
   
  +
=== Asus B450M-A/A320M-K/A320M-K-BR マザーボード ===
=== Linux 2.6.31 から Sensors が動きません ===
 
  +
2.6.21 の変更でいくつかの sensors が動かないようになりました。詳しい説明とエラーの例が [http://www.lm-sensors.org/wiki/FAQ/Chapter3#Mysensorshavestoppedworkinginkernel2.6.31 この FAQ エントリ] にあります。これを修復するには、次の[[kernel parameters|カーネルパラメータ]]を追加してください:
 
  +
これらのマザーボードは IT8655E チップを使用していますが、2020 年 11 月現在、it87 カーネル ドライバーではサポートされていません [https://docs.kernel.org/hwmon/it87.html] ただし、カーネルドライバーのアップストリームバージョン [https://github.com/bbqlinux/it87/blob/master/it87.c#L22] ではサポートされています。[[DKMS]] バリアントは {{AUR|it87-dkms-git}} に含まれています。
  +
  +
=== AM4 ソケットを備えた Asus B450/X399/X470 マザーボード ===
  +
  +
最近の Asus マザーボードの一部は ITE IT8665E チップを使用しており、温度、ファン、電圧センサーにアクセスするには {{ic|asus-wmi-sensors}} モジュールが必要な場合があります。これは 5.17 以降のメインラインカーネルの一部です。{{ic|asus-wmi-sensors}} [[カーネルモジュール]] をロードして下さい。これには UEFI インターフェイスを使用し、一部のボードでは BIOS アップデートが必要な場合があります [https://github.com/electrified/asus-wmi-sensors#supported-hardware]
  +
  +
あるいは、{{ic|it87}} モジュールはチップから値を直接読み取り、{{AUR|it87-dkms-git}} をインストールして、{{ic|it87}} [[カーネルモジュール]] をロードします。
  +
  +
=== Asus H97/Z97/Z170/Z370i/X570/B550 マザーボード ===
  +
最近の Asus マザーボードの一部では、ファンと電圧センサーにアクセスするには、{{ic|nct6775}} [[カーネルモジュール]] をロードする必要がある場合があります。
  +
  +
次の [[カーネルパラメータ]] を追加する必要がある場合もあります。
  +
 
acpi_enforce_resources=lax
 
acpi_enforce_resources=lax
{{Warning|場合によって、この設定が危険なこともあります。詳しくは FAQ を見て下さい。}}
 
   
  +
詳細については、https://bugzilla.kernel.org/show_bug.cgi?id=204807 を参照してください。
大抵は問題のハードウェアについて他のモジュールを使って (例: ACPI モジュール) 情報にアクセスできます。多くのユーティリティとモニタ (例: {{ic|/usr/bin/sensors}}) は複数のソースから情報を収集します。可能であれば、それが推奨される方法です。
 
  +
  +
注意: カーネル 5.16 [https://bugzilla.kernel.org/show_bug.cgi?id=204807#c199] 以降、上記の [[カーネルパラメータ]] はほとんどのボードで必要なくなりましたので、避ける必要があります。
  +
  +
=== Asrock Deskmini H470 ===
  +
  +
Deskmini H470 の STX ボードは NCT6683 チップを使用しており、温度、ファン、電圧センサーにアクセスするには、{{ic|nct6683}} モジュールのロードが必要です。
  +
  +
{{ic|nct6683}} モジュールの適切な値を得るには、モジュール設定ファイルを作成します:
  +
  +
{{hc|/etc/modprobe.d/nct6683.conf|<nowiki>
  +
options nct6683 force=1
  +
</nowiki>}}
  +
  +
=== Gigabyte B250/Z370/B450M/B560M/B660M/Z690 マザーボード ===
  +
  +
一部の Gigabyte マザーボードでは、ITE IT8686E、ITE8689 (B560 および B660M 用)、または ITE8689E (Z690 用) チップを使用していますが、2019 年 5 月の時点では、it87 カーネルドライバーではサポートされていません [https://docs.kernel.org/hwmon/it87.html] ただし、カーネルドライバーのアップストリームバージョン [https://github.com/bbqlinux/it87/blob/master/it87.c#L24] ではサポートされています。[[DKMS]] バリアントは {{AUR|it87-dkms-git}} に含まれています。[[lm_sensors#Asus H97/Z97/Z170/Z370i/X570/B550 マザーボード]] と同様に、モジュールをインストールする前に [[カーネルパラメータ]] が必要です:
  +
  +
acpi_enforce_resources=lax
  +
  +
さらに、モジュールをロードするときに次のようにチップの ID を指定します:
  +
  +
# modprobe it87 force_id=0x8686
  +
もしくは
  +
# modprobe it87 force_id=0x8689 # for B560
  +
# modprobe it87 force_id=0x8628 # for Z690
  +
  +
または、次の 2 つのファイルを作成することで、ブートプロセス中に [[カーネルモジュール|モジュールをロード]] することもできます。
  +
  +
{{hc|/etc/modules-load.d/it87.conf|
  +
it87
  +
}}
  +
  +
Z690 用
  +
{{hc|/etc/modprobe.d/it87.conf|<nowiki>
  +
options it87 force_id=0x8628
  +
</nowiki>}}
  +
  +
他の場合
  +
{{hc|/etc/modprobe.d/it87.conf|<nowiki>
  +
options it87 ignore_resource_conflict=1
  +
</nowiki>}}
  +
  +
モジュールがロードされたら、''センサー'' ツールを使用してチップをプローブできます。
  +
[[fancontrol]] を使用してケースファンの速度ステップを制御することもできるようになりました。
  +
  +
オプションで {{AUR|zenpower3-dkms}} をインストールすると、マザーボードの冷却システムをより細かく調整できる場合があります。ただし、デフォルトの k10temp モジュールは無効になります。
  +
  +
=== Gigabyte GA-J1900N-D3V ===
  +
  +
(電圧やマザーボードの温度、ファンの速度を測定するために) ITE IT8620E チップを使用するマザーボードですが、2014年10月6日現在、lm_sensors は ITE IT8620E をサポートしていません [http://www.lm-sensors.org/wiki/Devices] [http://comments.gmane.org/gmane.linux.drivers.sensors/35168]。lm_sensors の開発者はハードウェアの監視部分については IT8728F と互換性があることを報告しています。ただし、2016年8月現在では [https://www.kernel.org/doc/Documentation/hwmon/it87] に IT8620E がサポートされていると載っています。
  +
  +
modprobe を使うことで動的にモジュールをロードできます:
  +
  +
$ modprobe it87 force_id=0x8728
  +
  +
もしくは、以下の2つのファイルを作成することで起動時に[[カーネルモジュール#ロード|モジュール]]をロードすることもできます:
  +
  +
{{hc|/etc/modules-load.d/it87.conf|2=
  +
it87
  +
}}
  +
  +
{{hc|/etc/modprobe.d/it87.conf|2=
  +
options it87 force_id=0x8603
  +
}}
  +
  +
モジュールがロードされたら ''sensors'' ツールで情報を読み取ることができます。
  +
  +
また、[[ファンスピード制御|fancontrol]] を使ってケースファンの速度を制御することも可能です。
  +
  +
=== MAG B650 TOMAHAWK WIFI (MS-7D75) ===
  +
  +
このマザーボードは、ファン、電圧、温度の読み取りに Nuvoton NCT6687-R チップを使用しています。これらの値にアクセスするには、カーネルモジュール {{AUR|nct6687d-dkms-git}} が必要です。
  +
  +
{{Tip|以前に ''sensors-dectect'' を実行した場合は、別の nuvoton モジュールが自動ロードされるように構成されている可能性があります。 ''/etc/conf.d/lm_sensors'' を正しいモジュール名に更新すると、起動時にモジュールがロードされるようになります。}}
  +
  +
インストールしたらモジュールをロードできます
  +
  +
$ modprobe nct6687
  +
  +
そしてセンサーの出力を確認します
  +
  +
$ sensors
  +
  +
=== Asrock B650M Pro RS ===
  +
  +
このマザーボードは、ファン、電圧、温度の読み取りに Nuvoton NCT6796D-S を使用しています。チップのこの正確なバリアントは異なる ID を持っているため、モジュール構成ファイルがなければ検出されません。
  +
  +
{{hc|/etc/modprobe.d/nct6775.conf|2=
  +
options nct6775 force_id=0xd801
  +
}}
  +
  +
=== sensors-detect を実行した後にノートパソコンのディスプレイに問題が発生する ===
  +
  +
lm-sensors がセンサーを調べるときにディスプレイの Vcom 値を変えてしまうのが原因です。フォーラムに解決法が載っています: https://bbs.archlinux.org/viewtopic.php?id=193048 。ただし、フォーラムに書かれているコマンドを安易に実行する前によく中身を読んでください。

2024年7月10日 (水) 20:29時点における最新版

関連記事

lm_sensors (Linux monitoring sensors) は、温度、電圧、ファン、を監視するためのツールやドライバーを提供するフリーなオープンソースアプリケーションです。このドキュメントでは lm_sensors をインストール・設定・使用する方法を説明します。

インストール

公式リポジトリから lm_sensors パッケージをインストールしてください。

ノート: GitHub リポジトリ に詳しいドキュメントが存在します。将来的にはドキュメントもインストールされるようになります。FS#48354 を参照。

設定

root で sensors-detect を使用して、カーネルモジュールのリストを検出して生成します。

警告: 何をしているのか正確に理解していない限り、デフォルトのオプション (Enter を押すだけ) 以外は使用しないでください。 lm_sensors#センサー検出の実行後にノートパソコンの画面に問題が発生する を参照してください。
# sensors-detect

さまざまなハードウェアを調査するよう求められます。"安全な" 回答がデフォルトであるため、すべての質問に対して Enter を押していれば、通常は問題が発生しません。これにより、起動時にカーネルモジュールを自動的にロードするために lm_sensors.service によって使用される /etc/conf.d/lm_sensors 設定ファイルが作成されます。

ヒント: --auto フラグを使用すると、sensors-detect に対するすべての安全な回答を自動的に受け入れることができます。

検知が完了したら、調査結果が表示されます。

例:

# sensors-detect
This program will help you determine which kernel modules you need
to load to use lm_sensors most effectively. It is generally safe
and recommended to accept the default answers to all questions,
unless you know what you're doing.

Some south bridges, CPUs or memory controllers contain embedded sensors.
Do you want to scan for them? This is totally safe. (YES/no): 
Module cpuid loaded successfully.
Silicon Integrated Systems SIS5595...                       No
VIA VT82C686 Integrated Sensors...                          No
VIA VT8231 Integrated Sensors...                            No
AMD K8 thermal sensors...                                   No
AMD Family 10h thermal sensors...                           No

...

Now follows a summary of the probes I have just done.
Just press ENTER to continue: 

Driver `coretemp':
  * Chip `Intel digital thermal sensor' (confidence: 9)

Driver `lm90':
  * Bus `SMBus nForce2 adapter at 4d00'
    Busdriver `i2c_nforce2', I2C address 0x4c
    Chip `Winbond W83L771AWG/ASG' (confidence: 6)

Do you want to overwrite /etc/conf.d/lm_sensors? (YES/no): 
ln -s '/usr/lib/systemd/system/lm_sensors.service' '/etc/systemd/system/multi-user.target.wants/lm_sensors.service'
Unloading i2c-dev... OK
Unloading cpuid... OK
ノート: /etc/conf.d/lm_sensors の生成について YES と答えると systemd サービスが自動的に有効になります。また、サービスが自動的に起動します。

sensors の実行

sensors の実行例:

$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +35.0°C  (crit = +105.0°C)
Core 1:       +32.0°C  (crit = +105.0°C)

w83l771-i2c-0-4c
Adapter: SMBus nForce2 adapter at 4d00
temp1:        +28.0°C  (low  = -40.0°C, high = +70.0°C)
                       (crit = +85.0°C, hyst = +75.0°C)
temp2:        +37.4°C  (low  = -40.0°C, high = +70.0°C)
                       (crit = +110.0°C, hyst = +100.0°C)

メモリモジュールから SPD の値を読み込む (任意)

メモリモジュールから SPD のタイミング値を読み込むには i2c-tools パッケージをインストールしてください。インストールしたら eeprom カーネルモジュールをロードしてください:

# modprobe eeprom

最後に decode-dimms でメモリ情報を確認してください。

以下は出力の例です:

# decode-dimms
Memory Serial Presence Detect Decoder
By Philip Edelbrock, Christian Zuckschwerdt, Burkart Lingner,
Jean Delvare, Trent Piepho and others


Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/0-0050
Guessing DIMM is in                             bank 1

---=== SPD EEPROM Information ===---
EEPROM CRC of bytes 0-116                       OK (0x583F)
# of bytes written to SDRAM EEPROM              176
Total number of bytes in EEPROM                 512
Fundamental Memory type                         DDR3 SDRAM
Module Type                                     UDIMM

---=== Memory Characteristics ===---
Fine time base                                  2.500 ps
Medium time base                                0.125 ns
Maximum module speed                            1066MHz (PC3-8533)
Size                                            2048 MB
Banks x Rows x Columns x Bits                   8 x 14 x 10 x 64
Ranks                                           2
SDRAM Device Width                              8 bits
tCL-tRCD-tRP-tRAS                               7-7-7-33
Supported CAS Latencies (tCL)                   8T, 7T, 6T, 5T

---=== Timing Parameters ===---
Minimum Write Recovery time (tWR)               15.000 ns
Minimum Row Active to Row Active Delay (tRRD)   7.500 ns
Minimum Active to Auto-Refresh Delay (tRC)      49.500 ns
Minimum Recovery Delay (tRFC)                   110.000 ns
Minimum Write to Read CMD Delay (tWTR)          7.500 ns
Minimum Read to Pre-charge CMD Delay (tRTP)     7.500 ns
Minimum Four Activate Window Delay (tFAW)       30.000 ns

---=== Optional Features ===---
Operable voltages                               1.5V
RZQ/6 supported?                                Yes
RZQ/7 supported?                                Yes
DLL-Off Mode supported?                         No
Operating temperature range                     0-85C
Refresh Rate in extended temp range             1X
Auto Self-Refresh?                              Yes
On-Die Thermal Sensor readout?                  No
Partial Array Self-Refresh?                     No
Thermal Sensor Accuracy                         Not implemented
SDRAM Device Type                               Standard Monolithic

---=== Physical Characteristics ===---
Module Height (mm)                              15
Module Thickness (mm)                           1 front, 1 back
Module Width (mm)                               133.5
Module Reference Card                           B

---=== Manufacturer Data ===---
Module Manufacturer                             Invalid
Manufacturing Location Code                     0x02
Part Number                                     OCZ3G1600LV2G     

...

センサーデータの利用

グラフィカルフロントエンド

センサーのデータを表示するための様々なフロントエンドが存在します:

  • psensor — 温度やファン速度などのハードウェアセンサーを監視するための GTK アプリケーション。マザーボードと CPU (lm-sensors を使用)、Nvidia GPU (XNVCtrl を使用)、およびハードディスク (hddtemp または libashismart を使用) を監視します。
https://wpitchoune.net/psensor/ || psensor
  • xsensors — lm_sensors の X11 インターフェイス
https://github.com/Mystro256/xsensors || xsensors
  • Netdata — Web ベースのシステムモニター (netdata)。
https://github.com/netdata/netdata || netdata
  • CoolerControl — 冷却装置を監視および制御するプログラム。
https://gitlab.com/coolercontrol/coolercontrol || coolercontrolAUR

デスクトップ環境で使えるフロントエンド:

  • Freon (GNOME Shell extension)GNOME シェルで CPU 温度、ディスク温度、ビデオカード温度、電圧、ファン RPM を表示するための拡張機能。
https://github.com/UshakovVasilii/gnome-shell-extension-freon || gnome-shell-extension-freonAUR
  • GNOME Sensors Applet — CPU 温度、ファン速度、電圧測定値などのハードウェアセンサーからの測定値を表示する GNOME パネル用のアプレット。
http://sensors-applet.sourceforge.net/ || sensors-applet
  • lm-sensors (LXPanel plugin) — lm-sensorsを通じて LXDE の温度/電圧/ファン速度を監視します。
https://danamlund.dk/sensors_lxpanel_plugin/ || sensors-lxpanel-pluginAUR
  • MATE Sensors AppletMATE パネルにハードウェアセンサーからの測定値を表示します。
https://github.com/mate-desktop/mate-sensors-applet || mate-sensors-applet
  • Sensors (Xfce4 panel plugin)Xfce パネル用のハードウェアセンサープラグイン。
https://goodies.xfce.org/projects/panel-plugins/xfce4-sensors-plugin || xfce4-sensors-plugin
  • Thermal Monitor (Plasma 5 applet)KDE CPU、GPU、およびその他の利用可能な温度センサーを監視するための Plasma アプレット。
https://gitlab.com/agurenko/plasma-applet-thermal-monitor || plasma5-applets-thermal-monitor

sensord

sensord と呼ばれるオプションのデーモンが (lm_sensors パッケージに含まれています) データをラウンドロビンデータベース (rrd) に記録し、後でグラフィカルに視覚化できます。詳細については、sensord(8) のマニュアル ページを参照してください。

ヒントとテクニック

値の調整

ときとして、表示されるデータが間違っていたり出力をリネームしたいという場合があります。例:

  • オフセットが間違っているために温度の値が間違っている (実際の温度よりも 20 °C も高く報告されるなど)
  • 特定のセンサーの出力をリネームしたい。
  • 表示されるコアの順番が間違っている。

上記は全て /etc/sensors.d/foo を作成して /etc/sensors3.conf のパッケージ設定を上書きすることで調整できます。'foo' はマザーボードのブランド名に置き換えることを推奨しますが特に命名に決まりはありません。

ノート: /etc/sensors3.conf を直接編集しないでください。パッケージのアップデートによって上書きされてしまいます。

例 1. 温度のオフセットを調整

以下は Zotac ION-ITX-A-U マザーボードの実例です。coretemp の値が 20 °C だけずれている (高すぎる) ので Intel の仕様にあわせて低く調整します:

$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +57.0°C  (crit = +125.0°C)
Core 1:       +55.0°C  (crit = +125.0°C)
...

物理チップに対してどのようなオプションが利用できるか sensors-u スイッチをつけて調べてください (raw モード):

$ sensors -u
coretemp-isa-0000
Adapter: ISA adapter
Core 0:
  temp2_input: 57.000
  temp2_crit: 125.000
  temp2_crit_alarm: 0.000
Core 1:
  temp3_input: 55.000
  temp3_crit: 125.000
  temp3_crit_alarm: 0.000
...

デフォルトの値を上書きするために以下のファイルを作成:

/etc/sensors.d/Zotac-IONITX-A-U
chip "coretemp-isa-0000"
  label temp2 "Core 0"
  compute temp2 @-20,@-20

  label temp3 "Core 1"
  compute temp3 @-20,@-20

sensors を実行すると調整された値が表示されるようになります:

$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +37.0°C  (crit = +105.0°C)
Core 1:       +35.0°C  (crit = +105.0°C)
...

例 2. ラベルの名前の変更

以下は Asus A7M266 の実例です。温度のラベル 'temp1' と 'temp2' にもっとちゃんとした名前を付けます:

$ sensors
as99127f-i2c-0-2d
Adapter: SMBus Via Pro adapter at e800
...
temp1:        +35.0°C  (high =  +0.0°C, hyst = -128.0°C)
temp2:        +47.5°C  (high = +100.0°C, hyst = +75.0°C)
...

デフォルトの値を上書きするために以下のファイルを作成:

/etc/sensors.d/Asus_A7M266
chip "as99127f-*"
  label temp1 "Mobo Temp"
  label temp2 "CPU0 Temp"

sensors を実行すると調整された値が表示されるようになります:

$ sensors
as99127f-i2c-0-2d
Adapter: SMBus Via Pro adapter at e800
...
Mobo Temp:        +35.0°C  (high =  +0.0°C, hyst = -128.0°C)
CPU0 Temp:        +47.5°C  (high = +100.0°C, hyst = +75.0°C)
...

例 3. マルチ CPU 環境でコアの番号を再定義する

以下はデュアル CPU の Xeon を搭載した HP Z600 ワークステーションの実例です。物理コアの順番が間違っています: 0, 1, 9, 10 が2番目の CPU でも繰り返されてしまっています。0, 1, 2, 3, 4, 5, 6, 7 と連続した順番でコアの温度を表示してほしいと大抵のユーザーは思うでしょう。

$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +65.0°C  (high = +85.0°C, crit = +95.0°C)
Core 1:       +65.0°C  (high = +85.0°C, crit = +95.0°C)
Core 9:       +66.0°C  (high = +85.0°C, crit = +95.0°C)
Core 10:      +66.0°C  (high = +85.0°C, crit = +95.0°C)

coretemp-isa-0004
Adapter: ISA adapter
Core 0:       +54.0°C  (high = +85.0°C, crit = +95.0°C)
Core 1:       +56.0°C  (high = +85.0°C, crit = +95.0°C)
Core 9:       +60.0°C  (high = +85.0°C, crit = +95.0°C)
Core 10:      +61.0°C  (high = +85.0°C, crit = +95.0°C)
...

物理チップに対してどのようなオプションが利用できるか sensors-u スイッチをつけて調べてください:

$ sensors -u coretemp-isa-0000
coretemp-isa-0000
Adapter: ISA adapter
Core 0:
  temp2_input: 61.000
  temp2_max: 85.000
  temp2_crit: 95.000
  temp2_crit_alarm: 0.000
Core 1:
  temp3_input: 61.000
  temp3_max: 85.000
  temp3_crit: 95.000
  temp3_crit_alarm: 0.000
Core 9:
  temp11_input: 62.000
  temp11_max: 85.000
  temp11_crit: 95.000
Core 10:
  temp12_input: 63.000
  temp12_max: 85.000
  temp12_crit: 95.000
$ sensors -u coretemp-isa-0004
coretemp-isa-0004
Adapter: ISA adapter
Core 0:
  temp2_input: 53.000
  temp2_max: 85.000
  temp2_crit: 95.000
  temp2_crit_alarm: 0.000
Core 1:
  temp3_input: 54.000
  temp3_max: 85.000
  temp3_crit: 95.000
  temp3_crit_alarm: 0.000
Core 9:
  temp11_input: 59.000
  temp11_max: 85.000
  temp11_crit: 95.000
Core 10:
  temp12_input: 59.000
  temp12_max: 85.000
  temp12_crit: 95.000
...

デフォルトの値を上書きするために以下のファイルを作成:

/etc/sensors.d/HP_Z600
chip "coretemp-isa-0000"
  label temp2 "Core 0"
  label temp3 "Core 1"
  label temp11 "Core 2"
  label temp12 "Core 3"

chip "coretemp-isa-0004"
  label temp2 "Core 4"
  label temp3 "Core 5"
  label temp11 "Core 6"
  label temp12 "Core 7"

sensors を実行すると調整された値が表示されるようになります:

$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Core0:        +64.0°C  (high = +85.0°C, crit = +95.0°C)
Core1:        +63.0°C  (high = +85.0°C, crit = +95.0°C)
Core2:        +65.0°C  (high = +85.0°C, crit = +95.0°C)
Core3:        +66.0°C  (high = +85.0°C, crit = +95.0°C)

coretemp-isa-0004
Adapter: ISA adapter
Core4:        +53.0°C  (high = +85.0°C, crit = +95.0°C)
Core5:        +54.0°C  (high = +85.0°C, crit = +95.0°C)
Core6:        +59.0°C  (high = +85.0°C, crit = +95.0°C)
Core7:        +60.0°C  (high = +85.0°C, crit = +95.0°C)
...

lm_sensors の自動デプロイ

複数のマシンに lm_sensors をデプロイしたい場合、以下のどちらかの方法でできます:

1. 質問に対してデフォルトの答えを設定:

# sensors-detect --auto

2. デフォルトを上書きして全ての質問に YES で答える:

 # yes | sensors-detect

S.M.A.R.T. ドライブの温度

カーネル 5.6 以降 drivetemp モジュールは hwmon を通じて SATA/SAS 温度を報告しますが、sensors-detect は自動的に検出しませんしたがって、モジュールは 手動ロード でなければなりません。

# modprobe drivetemp

sensors の出力に次のようなエントリが表示されるはずです。

sensors
drivetemp-scsi-1-0
Adapter: SCSI adapter
temp1:        +33.0°C 

drivetemp-scsi-2-0
Adapter: SCSI adapter
temp1:        +32.0°C  (low  =  +0.0°C, high = +70.0°C)
                       (crit low =  +0.0°C, crit = +70.0°C)
                       (lowest = +29.0°C, highest = +41.0°C)

起動時にモジュールをロードできるようになりました。あるいは、/etc/conf.d/lm-sensorsHWMON_MODULES 行に手動で追加します。sensors-detect がこのファイルに再び書き込むことを許可される場合、このファイルは自動的に追加されないことに注意してください。

永続的なデバイス名

多くのソフトウェアはセンサーデバイスが /sys/class/hwmon/hwmonX に配置されることを期待していますが、多くの場合、hwmon インターフェイスを提供するデバイスが 1 〜 2 つ以上あるシステムではそうではありません。ソフトウェアはおそらく hwmon?/name を解析するか、lmsensors ライブラリを使用する必要がありますが、残念ながら多くの場合、そうではありません。一部のソフトウェア (例: Monitorix またはその特定のモジュール、つまり amdgpu) は、別の場所に永続的な名前が必要です。

したがって、次の種類の udev ルールが役立つ可能性があります。すべてのソフトウェアがこれらを使用できるわけではありません (たとえば、KDE ​​システムモニター - 悲しいことに、多くのシステムでこれらのソフトウェアはほとんど役に立ちません) 多くの場合、udev ルールで hwmon サブシステムと適切な名前をマッチさせるだけで十分です、ルールの書き方については、Udevページを見てください。

/sys 階層では名前を変更したりシンボリックリンクを作成したりすることはできません。SYMLINK+= ステートメントも機能しません。したがって、RUN+= ステートメントを使用する必要があります (この例のように、シンボリックリンクは /dev の下にある必要はありません。)

/etc/udev/rules.d/99-persistent-hwmon-names.rules
# my motherboard sensor chip:
ACTION=="add", SUBSYSTEM=="hwmon", ATTRS{name}=="nct6687", RUN+="/bin/sh -c 'ln -s /sys$devpath /dev/nct6678'"
# an USB device providing sensors:
ACTION=="add", SUBSYSTEM=="hwmon", ATTRS{name}=="corsaircpro", RUN+="/bin/sh -c 'ln -s /sys$devpath /dev/corsaircpro'"
# my GPU:
ACTION=="add", SUBSYSTEM=="hwmon", ATTRS{vendor}=="0x1002", ATTRS{device}=="0x73bf", RUN+="/bin/sh -c 'ln -s /sys$devpath /dev/rx6900xt'"

トラブルシューティング

K10Temp モジュール

一部の K10 プロセッサでは温度センサーに問題が起こることがあります。カーネルドキュメントより (linux-<version>/Documentation/hwmon/k10temp):

全てのプロセッサにはセンサーが搭載されていますが、Socket F や AM2+ のプロセッサでは、センサーの返す値がおかしいことがあります (erratum 319) これらの CPU では force=1 モジュールパラメータを指定しないかぎりドライバーはロードされません。
技術上の問題のため、ドライバーが認識できるのはマザーボードのソケットタイプだけです。プロセッサの実際の機能はわかりません。AM2+ マザーボードで AM3 プロセッサを使っている場合は force=1 パラメータを設定しても大丈夫です。

影響を受けるマシンではモジュールは "unreliable CPU thermal sensor; monitoring disabled" と報告します。強制的に使用するには:

# rmmod k10temp
# modprobe k10temp force=1

センサーが問題ないことを確認してください。確認がとれたのであれば /etc/modprobe.d/k10temp.conf を編集して以下を追加:

options k10temp force=1

これでモジュールがブート時にロードされるようになります。

Asus B450M-A/A320M-K/A320M-K-BR マザーボード

これらのマザーボードは IT8655E チップを使用していますが、2020 年 11 月現在、it87 カーネル ドライバーではサポートされていません [1] ただし、カーネルドライバーのアップストリームバージョン [2] ではサポートされています。DKMS バリアントは it87-dkms-gitAUR に含まれています。

AM4 ソケットを備えた Asus B450/X399/X470 マザーボード

最近の Asus マザーボードの一部は ITE IT8665E チップを使用しており、温度、ファン、電圧センサーにアクセスするには asus-wmi-sensors モジュールが必要な場合があります。これは 5.17 以降のメインラインカーネルの一部です。asus-wmi-sensors カーネルモジュール をロードして下さい。これには UEFI インターフェイスを使用し、一部のボードでは BIOS アップデートが必要な場合があります [3]

あるいは、it87 モジュールはチップから値を直接読み取り、it87-dkms-gitAUR をインストールして、it87 カーネルモジュール をロードします。

Asus H97/Z97/Z170/Z370i/X570/B550 マザーボード

最近の Asus マザーボードの一部では、ファンと電圧センサーにアクセスするには、nct6775 カーネルモジュール をロードする必要がある場合があります。

次の カーネルパラメータ を追加する必要がある場合もあります。

acpi_enforce_resources=lax

詳細については、https://bugzilla.kernel.org/show_bug.cgi?id=204807 を参照してください。

注意: カーネル 5.16 [4] 以降、上記の カーネルパラメータ はほとんどのボードで必要なくなりましたので、避ける必要があります。

Asrock Deskmini H470

Deskmini H470 の STX ボードは NCT6683 チップを使用しており、温度、ファン、電圧センサーにアクセスするには、nct6683 モジュールのロードが必要です。

nct6683 モジュールの適切な値を得るには、モジュール設定ファイルを作成します:

/etc/modprobe.d/nct6683.conf
options nct6683 force=1 

Gigabyte B250/Z370/B450M/B560M/B660M/Z690 マザーボード

一部の Gigabyte マザーボードでは、ITE IT8686E、ITE8689 (B560 および B660M 用)、または ITE8689E (Z690 用) チップを使用していますが、2019 年 5 月の時点では、it87 カーネルドライバーではサポートされていません [5] ただし、カーネルドライバーのアップストリームバージョン [6] ではサポートされています。DKMS バリアントは it87-dkms-gitAUR に含まれています。lm_sensors#Asus H97/Z97/Z170/Z370i/X570/B550 マザーボード と同様に、モジュールをインストールする前に カーネルパラメータ が必要です:

acpi_enforce_resources=lax

さらに、モジュールをロードするときに次のようにチップの ID を指定します:

# modprobe it87 force_id=0x8686
もしくは
# modprobe it87 force_id=0x8689  # for B560
# modprobe it87 force_id=0x8628  # for Z690

または、次の 2 つのファイルを作成することで、ブートプロセス中に モジュールをロード することもできます。

/etc/modules-load.d/it87.conf
it87

Z690 用

/etc/modprobe.d/it87.conf
options it87 force_id=0x8628

他の場合

/etc/modprobe.d/it87.conf
options it87 ignore_resource_conflict=1

モジュールがロードされたら、センサー ツールを使用してチップをプローブできます。 fancontrol を使用してケースファンの速度ステップを制御することもできるようになりました。

オプションで zenpower3-dkmsAUR をインストールすると、マザーボードの冷却システムをより細かく調整できる場合があります。ただし、デフォルトの k10temp モジュールは無効になります。

Gigabyte GA-J1900N-D3V

(電圧やマザーボードの温度、ファンの速度を測定するために) ITE IT8620E チップを使用するマザーボードですが、2014年10月6日現在、lm_sensors は ITE IT8620E をサポートしていません [7] [8]。lm_sensors の開発者はハードウェアの監視部分については IT8728F と互換性があることを報告しています。ただし、2016年8月現在では [9] に IT8620E がサポートされていると載っています。

modprobe を使うことで動的にモジュールをロードできます:

$ modprobe it87 force_id=0x8728

もしくは、以下の2つのファイルを作成することで起動時にモジュールをロードすることもできます:

/etc/modules-load.d/it87.conf
it87
/etc/modprobe.d/it87.conf
options it87 force_id=0x8603

モジュールがロードされたら sensors ツールで情報を読み取ることができます。

また、fancontrol を使ってケースファンの速度を制御することも可能です。

MAG B650 TOMAHAWK WIFI (MS-7D75)

このマザーボードは、ファン、電圧、温度の読み取りに Nuvoton NCT6687-R チップを使用しています。これらの値にアクセスするには、カーネルモジュール nct6687d-dkms-gitAUR が必要です。

ヒント: 以前に sensors-dectect を実行した場合は、別の nuvoton モジュールが自動ロードされるように構成されている可能性があります。 /etc/conf.d/lm_sensors を正しいモジュール名に更新すると、起動時にモジュールがロードされるようになります。

インストールしたらモジュールをロードできます

$ modprobe nct6687

そしてセンサーの出力を確認します

$ sensors

Asrock B650M Pro RS

このマザーボードは、ファン、電圧、温度の読み取りに Nuvoton NCT6796D-S を使用しています。チップのこの正確なバリアントは異なる ID を持っているため、モジュール構成ファイルがなければ検出されません。

/etc/modprobe.d/nct6775.conf
options nct6775 force_id=0xd801

sensors-detect を実行した後にノートパソコンのディスプレイに問題が発生する

lm-sensors がセンサーを調べるときにディスプレイの Vcom 値を変えてしまうのが原因です。フォーラムに解決法が載っています: https://bbs.archlinux.org/viewtopic.php?id=193048 。ただし、フォーラムに書かれているコマンドを安易に実行する前によく中身を読んでください。