web-dev-qa-db-ja.com

ファン制御を機能させるにはどうすればよいですか?

システムの換気速度を制御できるファンコントロールと呼ばれるものがあります。私のラップトップが非常に簡単に熱くなるので、ファンを少し速く回転させたいと思います。私が見つけたすべてのチュートリアルと内容は、Ubuntuの古いバージョン用であり、もう機能していないようです。

誰かが私に説明したり、Ubuntuでそれを動作させる方法についての良いリンクを教えてもらえますか?同じ効果で異なるものでも大丈夫です。

34
RobinJ

i8kutilsは、Dell Vostro 3350ラップトップのファンを制御するために機能します。

#Dellラップトップのみ:
 $ Sudo apt-get install i8kutils 
 $ i8kfan 1 2#左ファンを低速に設定します(1);高速で正しいもの(2)。
8
user1902715

この回答に記載されている方法で、i8kctlファンコマンドをオーバーライドする別の方法で問題を解決できる可能性が高いでしょう。完全を期すために、Dellラップトップのファン制御に関する一般的な注意事項とi8kutilsの完全な説明を含めます。

おそらく機能しないもの

残念ながら、ラップトップのファンを制御するための2つの一般的で簡単な手段は、残念ながらACPIとPWMピンです。

  • デルのラップトップには ACPI ファン制御機能がありません(* 1)

    • 結果として、ACPIブートパラメータなどを試すと失敗します
  • 私の知る限り、Dell Latitudeラップトップにはpwm制御可能ファンがありません(* 2)

    • 結果として、fancontrol/pwmconfigプログラムは機能しません。

i8kutils を使用します

ただし、 SMM BIOS を介してDell Inspironラップトップのファンを制御するために書かれたi8kutilsというパッケージがあります。一部のユーザーは、DellLaitudeラップトップでも成功を報告しています(私はそのうちの1人で、Dell Latitude E7440を使用しています)-ただし、干渉を取り除くには、しばしばトリックが必要ですBIOSファン制御。以前のコメントによると、あなたもそれに苦しんでいます。

i8kutilsをインストールします:

$ Sudo apt-get install i8kutils

それを試してみてください:

$ i8kfan 2 2     # set to max speed
$ i8kfan 0 0     # set to 0 speed

...それが機能するかどうかを確認します。

BIOSファン制御を無効にする

動作するが、設定速度(Dell Latitudeラップトップの多くのユーザーが報告)で他の何かが反撃している場合、これはファンの速度を戻すSMMセッションのスケジュールによるものです。幸運にも SMMレジスタに書き込むことでBIOSファン制御を無効にする の方法があります。

警告:smm.cの上部にある警告を参照してください。このメソッドはSMMレジスタに書き込みます。ただし、これが問題を引き起こすというユーザーの報告はありません。また、これを試すことに関するすべてのレポートは、BIOSファン制御の無効化に成功したことを示しています。

i8kutilsにはプログラムのソースsmmが含まれますが、i8kutilsパッケージにはコンパイルされたバイナリは含まれません。 i8kutilsのソースコードをダウンロードし、プログラムsmmをコンパイルし、適切な引数で実行して、SMMレジスタに書き込むことでBIOSファン制御を無効にします。

ビルドに必要なパッケージをダウンロードします。

$ Sudo apt-get build-dep i8kutils

i8kutilsソースコードをダウンロードし、ディレクトリを抽出して入力します(正確な名前はi8kバージョンによって異なります)。

$ apt-get source i8kutils
$ tar xvf i8kutils_1.33.tar.gz
$ cd i8kutils-1.33/

コンパイルsmm

  • 32-bitシステムの場合:

    $ make
    

    (上記はgcc -g -O2 -Wall -I. -o smm smm.cを実行します。)

  • 64-bitシステムの場合:

    $ gcc -g -O2 -Wall -I. -o smm -m32 smm.c
    

引数30a3を指定してsmmを実行して、SMMファン制御を無効にします。

$ Sudo ./smm 30a3

これで、BIOSファン制御が無効になります。 i8kctlで速度を設定してみて、ファンの音を聞き、速度が持続することを確認してください。

注:これは、再起動と電源オフを保持する設定です。 BIOSファン制御は、$ Sudo ./smm 31a3で再度有効にできます。


* 1:これに関する公式ソースを見たが、今は見つからない。ハードウェアに不足していることを確認したい場合は、こちらの手順に従ってください: https://wiki.ubuntu.com/DebuggingACPI

* 2:これを確認するには、pwmconfigを実行します。Sudo apt-get install fancontrolSudo pwm-configは、pwm対応のファンが存在するかどうかを示します

14
Carl

パッケージ lm-sensorsInstall lm-sensors はあなたが探しているものかもしれません。

そして、あなたが示唆したように fancontrolInstall fancontrol

ソフトウェア経由で制御しようとしているすべてのファンに4ピンコネクタがあることを確認してください。

「通常、PWM対応のファンは4ピンコネクタに接続されています(ピン配列:グラウンド、+ 12V、センス、制御)。」 source

Fancontrolの一部であるpwmconfigを実行すると、

/usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed互換性のあるハードウェアをお持ちの場合にガイドします。

ここ は、生成された構成ファイルと組み合わせて使用​​するスクリプトです。ここでより高い値を設定できると思います。

label fan1 "Side Fan"
set fan1_min 1000
label fan2 "PSU Fan"
set fan2_min 1000
label fan5 "CPU Fan"
set fan5_min 1000

しかし、私が言ったように、ハードウェアがサポートしていないので、これを自分でテストすることはできません。BIOSからファンを制御することはできますが、グレード3です。

14
filescraps

OK、これはあなたが探している答えではないかもしれませんが、換気口に掃除機を置いてほこりを取り除くと、私の過熱問題は解決しました。低CPU周波数で過熱が発生した場合は、試してみる価値があります。小さい部品が吸い込まれる可能性があることに注意してください。運がよければ、この方法で過熱問題を解決できるかもしれません。

5
Ewald

BIOSがi8kfan設定を上書きしていたため、Dell Latitude e4200を使用しており、次の方法でうまくいきました。私のコンピューターの初期温度は105°Fで、これらの手順(ファン設定= 2)を使用してから約10分後、CPU /コアの温度は96°Fに下がりました。この手順は既に誰かによって投稿されていました:

手順1. i8ktutilsをダウンロードしてインストールします。

# Sudo apt-get install i8kutils

ステップ2. BIOSをオーバーライドして、カスタムファン設定を中断させないようにします。これを行うには、ソースコードをダウンロードし、プログラム(SMM)をコンパイルします。

# Sudo apt-get build-dep i8kutils

その後:

# apt-get source i8kutils

手順3.ソースコードを抽出し、ディレクトリに移動します。

# tar xvf i8kutils_1.33.tar.gz

その後:

# cd i8kutils-1.33/

ステップ4. SMMをコンパイルする

For 32-bit systems:

# make SMM

(Output: # gcc -g -O2 -Wall -I. -o smm smm.c.)

For 64-bit systems

# make SMM:

(Output: # gcc -g -O2 -Wall -I. -o smm -m32 smm.c)

ステップ5.パラメーターを指定してSMMを実行します。

# Sudo ./smm 30a3

ステップ6.ファンの速度を設定します。

# i8kfan 2 2 (Listen as this will set fans to maximum speed)

# i8kfan 1 1 (This will set fans to slow speed)

これで、BIOSファン制御がファン設定を上書きすることはありません。この設定は、システムを再起動しても残ります。何らかの理由でBIOSに制御を戻すには、次の手順を実行します。

# Sudo ./smm 31a3.

Lm_sensorsを使用してtempを確認する方法もあります。

http://www.cyberciti.biz/faq/howto-linux-get-sensors-information/
3
user245946