Lubuntu(LXQt) デスクトップ に ファン速度 を表示する
手持ちの サブPC(自作機) に Lubuntu 20.04LTS をインストール後、LXQt デスクトップ にシステムモニター Conky を設定してみたところ CPUクーラーファンの回転速度(以降 ファン速度)の設定ができませんでした。
原因は Lubuntu のシステム起動時に ハードウェア モニタリング センサーチップ(ICチップ)のドライバーであるカーネルモジュールが ロード(読込み)されないためです。
その結果 sensorsコマンドの実行結果にファン速度が表示されず、Conky設定ファイルである .conkyrc にファン速度を表示するコードを記述できないからです。
このページでは センサーチップのドライバーを確認しシステム起動時にカーネルモジュールをロードする方法と Conky にファン速度を表示する方法を掲載しています。(2021年7月)
ドライバーの確認
このセクションでは センサーチップのカーネルモジュールを確認する方法一例を紹介します。あくまでも一例なのでマザーボードの種類により搭載されているチップは異なるので環境に合わせて読み替えてください。
ここに登場するセンサーチップは msi™ Z77A-GD65 マザーボードのものです。
下表は事前にインストールした Conky 関連のアプリケーションパッケージです。
conky-all | システム情報の表示 |
---|---|
lm-sensors | CPU 温度情報の取得 |
hddtemp | HDD 温度情報の取得 |
端末から、もしくは Muonパッケージマネージャーでインストールできます。
下記は lm-sensrs の sensers-detectコマンドの実行結果です。
QTerminal :
$ sudo sensers-detect
︙ (前略) Found 'Fintek F71889A Super IO Sensors' Success! (address 0x290, driver 'f71882fg') ︙ (中略) To load everything that is needed, add this to /etc/modules: #----cut here---- # Chip drivers coretemp f71882fg #----cut here---- If you have some drivers built into your kernel, the list above will contain too many modules. Skip the appropriate ones! Do you want to add these lines automatically to /etc/mdules? (yes/NO) _ (後略) ︙
上記 --cut here-- 間の f71882fg がカーネルモジュールです。
以下、The Linux Kernel documentation「Kernel driver f71882fg 」から一部を引用した内容です。日本語訳は Google自動翻訳です。
“
(前略)
Description|説明
Fintek F718xx/F8000 Super I/O chips include complete hardware monitoring capabilities. They can monitor up to 9 voltages, 4 fans and 3 temperature sensors.
Fintek F718xx / F8000スーパーI / Oチップには、完全なハードウェア監視機能が含まれています。最大9つの電圧、4つのファン、3つの温度センサーを監視できます。
These chips also have fan controlling features, using either DC or PWM, in three different modes (one manual, two automatic).
これらのチップには DCまたはPWMのいずれかを使用して3つの異なるモード(1つは手動、2つは自動)のファン制御機能もあります。
The driver assumes that no more than one chip is present, which seems reasonable.
ドライバーは、チップが1つしか存在しないと想定しますが、これは妥当と思われます。
Monitoring|監視
The Voltage, Fan and Temperature Monitoring uses the standard sysfs interface as documented in sysfs-interface, without any exceptions.
電圧、ファン、および温度の監視では、sysfs-interfaceに記載されている標準のsysfsインターフェースを例外なく使用します。
Fan Control|ファン制御
Both PWM (pulse-width modulation) and DC fan speed control methods are supported. The right one to use depends on external circuitry on the motherboard, so the driver assumes that the BIOS set the method properly.
PWM(パルス幅変調)とDCファン速度制御方式の両方がサポートされています。どちらを使用するかはマザーボードの外部回路に依存するため、ドライバはBIOSがメソッドを適切に設定していると想定します。
(後略)
”
次のセクションで f71882fg をロードする設定を行います。
カーネルモジュールをロードする
システム起動の際カーネルモジュール f71882fg をロードするには、カーネルに次のオプションを付けてブートシーケンスを開始します。
acpi_enforce_resources=lax
直訳すると「ACPIのリソースを強制する」で、その意味については こちら を参照してください。参照先のページでは、一時的にロードする方法と恒久的にロードする方法を掲載しています。
ここでは恒久的な方法を紹介します。
GRUB設定ファイルにオプションを記述する
ブートローダーGRUBの設定ファイルに起動オプションを記述することで恒久的にロードされます。
端末から
$ sudo nano /etc/default/grub
を実行し、既存のコマンドラインをコメントアウトして次のように記述して保存します。
GNU nano : #GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_enforce_resources=lax"
下の画像は GRUB設定ファイルのスクリーンショットです。
最後に次のコマンドを忘れずに実行します。
$ sudo update-grub
PCを再起動して設定完了です。
下の画像は設定後に sensorsコマンドを実行した結果です。
f71889a-isa-0290 Adapter: ISA adapter +3.3V: 3.36 V ︙ (中略) fan1: 1754 RPM fan2: 0 RPM ALARM fan3: 0 RPM ALARM (後略) ︙
ご覧のように、ファンの回転速度が表示されます。ただしここに表示されるのはマザーボードのコネクタに接続したファンのみです。それ以外の、例えばファンコントローラーに接続のファンは認識されません。
次のセクションで Conkyの設定を行います。
Conky 設定
sensorsコマンド実行結果から .conkyrc に次のようなコードを記述します。
${color green}CPU:${color deepskyblue} ${alignr}${execi 5 sensors | grep 'fan1' | cut -c14-21}
このコードを訳すと
CPUの文字色をグリーンで表示する。5秒間隔で sensorsコマンドを実行し、fan1の行の14列目から21列目の文字(ファン回転速度)を、文字色ディープスカイブルーで表示する。
となります。下の画像は Lubuntu 20.04LTS デスクトップのスクリーンショットです。
CPUクーラーファンの回転速度が表示されました。