私のファンはLinuxで動作しません。温度が非常に高くなると、ラップトップの電源が切れるのではないかと心配しています。
次のコマンドを実行しました。
dmesg | grep -I fan
これは私に与えました:
ACPI: Fan [FAN0] (off)
ACPI: Fan [FAN1] (off)
ディレクトリ/proc/acpi/fan
は存在しません。ファンを機能させるにはどうすればよいですか?
ファンは通常、CPUとOSではなく、システム管理コントローラーによって制御されます。これにより、OSに障害が発生した場合でも機能します。
残念ながら、これは通常「ファンオフ」エラーがハードウェアの問題であることを意味します。読む:ファン(アセンブリ)を交換する必要があります。
唯一の例外は、ファンをシャットダウンできる非常に壊れたACPI実装です。この場合、ファンはBIOSでrunになります。ただし、そのような構成については聞いたことがありません。
ファンは想定 ACPIによって管理されます。これにより、カーネルはBIOSと連携して温度を監視し、BIOSが提供するルールを使用してファン速度を自動的に調整できます。残念ながら、私はまだ単一のBIOSベンダーが実際にこの規格に準拠しているのを見ていません。/sys/class/thermalを調べて、その下にファンが表示されているかどうか、および設定を変更できるかどうかを確認します。通常、BIOS ACPIテーブルはファンインターフェイスを提供せず、管理するハードウェアコントローラーに任せます。
これらのハードウェアコントローラーの多くは、lm-sensorsパッケージで検出できます。 sensors-detect
を実行すると、既知のコントローラーをプローブし、それを操作するために読み込まれる正しいドライバーを構成できます。これにより、sensors
がさまざまな温度と電圧の読み取り値を報告できるようになり、fancontrol
スクリプト(Debian/Ubuntuに個別にパッケージ化)は、温度に応じてファン速度を操作するように構成できます。読み。
これらのモジュールの多くは、ロードするカーネルコマンドラインにacpi_enforce_resources=lax
を追加する必要があります。
1/0をcooling_deviceのcur_stateファイルに手動でエコーすると、オン/オフになります。
for cdev in /sys/class/thermal/cooling_device*; do
[ $(cat $cdev/type) == "Fan" ] && { echo 1 | Sudo tee $cdev/cur_state; }
done
組み込みコントローラーを使用してファンを制御することが可能です。 CPU温度とファン制御レジスタの一部がECに公開される場合があります。 Linuxでは、非常に簡単にアクセスして、それらのレジスタをダンプできます。私のラップトップも機能しませんでした。ACPIは設計上壊れており、ファンは主にBIOSによって制御され、永久にオンになります。 Windowsでは、RWのすべてのツールをダウンロードして、ecをチェックできます。 RWすべてのツールを使用すると、一部の値を変更することもできます。これは私のボックスで機能し、ファンの自動および手動モードと速度を制御できます。