質問
私は私のコンピュータのファンが不必要に最高速度でオンになっていることに気づき始め、それを制御するためにi8kmonサービスをインストールしました。 BIOSファン制御を手動で無効にするまで、i8kmonはi8kfanコマンドを使用してファンを制御できないようです。
私の設定
- デルXPS 13 9380
- Ubuntu18.04
丸太
サービスが実行中です。
root@pl438-pro:/home/inzaghi# /etc/init.d/i8kmon status
● i8kmon.service - Dell laptop thermal monitoring
Loaded: loaded (/lib/systemd/system/i8kmon.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-05-07 09:58:26 CEST; 20min ago
Docs: man:i8kmon
Main PID: 1222 (tclsh)
Tasks: 2 (limit: 4915)
CGroup: /system.slice/i8kmon.service
└─1222 tclsh /usr/bin/i8kmon --nouserconfig
mai 07 10:18:40 pl438-pro i8kmon[1222]: temp, left fan state, right fan state, ac state: 50 0 0 0
サービスは高温を検出しましたが、コマンドは無視されました。
May 7 10:14:32 pl438-pro i8kmon[1222]: temp, left fan state, right fan state, ac state: 65 0 0 0
May 7 10:14:32 pl438-pro i8kmon[1222]: # (65>=65), state=1, low=55, high=75
May 7 10:14:32 pl438-pro i8kmon[1222]: /usr/bin/i8kfan 1 1
May 7 10:14:34 pl438-pro i8kmon[1222]: temp, left fan state, right fan state, ac state: 65 0 0 0
構成ファイル/etc/i8kmon.conf
# Sample i8kmon configuration file (/etc/i8kmon.conf, ~/.i8kmon).
set config(use_conf) 1
set config(auto) 1
# External program to control the fans
set config(i8kfan) /usr/bin/i8kfan
# Report status on stdout, override with --verbose option
set config(verbose) 1
# Status check timeout (seconds), override with --timeout option
set config(timeout) 2
# Temperature threshold at which the temperature is displayed in red
set config(t_high) 80
# Temperature thresholds: {fan_speeds low_ac high_ac low_batt high_batt}
# These were tested on the I8000. If you have a different Dell laptop model
# you should check the BIOS temperature monitoring and set the appropriate
# thresholds here. In doubt start with low values and gradually rise them
# until the fans are not always on when the cpu is idle.
set config(0) {{0 0} -1 60 -1 65}
set config(1) {{1 1} 50 70 55 75}
set config(2) {{2 2} 60 80 65 85}
set config(3) {{2 2} 70 128 75 128}
# Speed values are set here to avoid i8kmon probe them at every time it starts.
set status(leftspeed) "0 1000 2000 3000"
set status(rightspeed) "0 1000 2000 3000"
# end of file
解決策
サービスを再起動しても/etc/init.d/i8kmon
何も変更されませんでした。 BIOSもファンを制御しようとしていることを発見し、BIOSをインストールしました。https://github.com/TomFreudenberg/dell-bios-fan-controlスナップショットを使用すると、実行が/snap/dell-bios-fan-control/2/dell-bios-fan-control 0
スムーズに行われます。
この設定はBIOSに永久に保存されていると思いましたが、コンピュータの電源を入れるたびに実行する必要があるようです。サービスとして追加する必要がありますか?
答え1
dell-bios-fan-control 0
編集2:ついに解決策をさらに「きれいに」しました。起動時に実行されるサービスを作成しました。
編集:もう機能しないか、非常にランダムに動作します。機能するには、まだ実行して再起動する/snap/dell-bios-fan-control/2/dell-bios-fan-control 0
必要があります。i8kmod
次のように設定ファイルdell-smm-hwmon
にモジュールを追加することを忘れたようです。/etc/modules
/etc/modprobe.d/dell-smm-hwmon.conf
options dell-smm-hwmon restricted=0
今は動作するために何も設定する必要はありません。
答え2
Dell-bios-fan-controlのスナップバージョンがUbuntu 22.04およびDell Precision 5520でクラッシュする
# dell-bios-fan-control 0
ioperm:: Operation not permitted
ioperm:: Operation not permitted
Segmentation fault (core dumped)
ソースからコンパイルしました - https://github.com/TomFreudenberg/dell-bios-fan-control——ついにファンを止めさせました!