web-dev-qa-db-ja.com

Linuxでファンを手動で起動するにはどうすればよいですか?

私のファンはLinuxで動作しません。温度が非常に高くなると、ラップトップの電源が切れるのではないかと心配しています。

次のコマンドを実行しました。

dmesg | grep -I fan

これは私に与えました:

ACPI: Fan [FAN0] (off)
ACPI: Fan [FAN1] (off)

ディレクトリ/proc/acpi/fanは存在しません。ファンを機能させるにはどうすればよいですか?

11
Igor

ファンは通常、CPUとOSではなく、システム管理コントローラーによって制御されます。これにより、OSに障害が発生した場合でも機能します。

残念ながら、これは通常「ファンオフ」エラーがハードウェアの問題であることを意味します。読む:ファン(アセンブリ)を交換する必要があります。

唯一の例外は、ファンをシャットダウンできる非常に壊れたACPI実装です。この場合、ファンはBIOSでrunになります。ただし、そのような構成については聞いたことがありません。

5
Turbo J

ファンは想定 ACPIによって管理されます。これにより、カーネルはBIOSと連携して温度を監視し、BIOSが提供するルールを使用してファン速度を自動的に調整できます。残念ながら、私はまだ単一のBIOSベンダーが実際にこの規格に準拠しているのを見ていません。/sys/class/thermalを調べて、その下にファンが表示されているかどうか、および設定を変更できるかどうかを確認します。通常、BIOS ACPIテーブルはファンインターフェイスを提供せず、管理するハードウェアコントローラーに任せます。

これらのハードウェアコントローラーの多くは、lm-sensorsパッケージで検出できます。 sensors-detectを実行すると、既知のコントローラーをプローブし、それを操作するために読み込まれる正しいドライバーを構成できます。これにより、sensorsがさまざまな温度と電圧の読み取り値を報告できるようになり、fancontrolスクリプト(Debian/Ubuntuに個別にパッケージ化)は、温度に応じてファン速度を操作するように構成できます。読み。

これらのモジュールの多くは、ロードするカーネルコマンドラインにacpi_enforce_resources=laxを追加する必要があります。

4
psusi

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
2
Asain Kujovic

組み込みコントローラーを使用してファンを制御することが可能です。 CPU温度とファン制御レジスタの一部がECに公開される場合があります。 Linuxでは、非常に簡単にアクセスして、それらのレジスタをダンプできます。私のラップトップも機能しませんでした。ACPIは設計上壊れており、ファンは主にBIOSによって制御され、永久にオンになります。 Windowsでは、RWのすべてのツールをダウンロードして、ecをチェックできます。 RWすべてのツールを使用すると、一部の値を変更することもできます。これは私のボックスで機能し、ファンの自動および手動モードと速度を制御できます。

1
Gigamegs