web-dev-qa-db-ja.com

ファンの速度を制御する方法は?

コンピューターのファン速度を制御するにはどうすればよいですか?

Windowsには SpeedFan という素晴らしいプログラムがあります。

173
grizwako

開始する前の注意:

この機能は、ハードウェアとソフトウェアの両方に依存します。ハードウェアがファン速度制御をサポートしていない場合、またはOSに表示しない場合、このソリューションを使用できなかった可能性が非常に高くなります。それはするが、ソフトウェア(カーネル)がそれを制御する方法を知らない場合、あなたは運がありません。


  1. lm-sensors および fancontrol パッケージをインストールします。
  2. 構成lm-sensors

    1. ターミナルでSudo sensors-detectと入力し、すべてのYES/NO質問にYESと答えます。
      (潜在的に、これはシステムに損傷を与えたり、システムクラッシュを引き起こす可能性があります。多くのシステムでは安全です。このプロセスがシステムに永久的な損傷を与えないという保証はありません。そのような致命的な障害の可能性は本当に低いと考えてください。確信が持てない場合は、コメントを読んでWebを検索し、すべてをYESにする前に高レベルの概要を取得してみてください。YES-ESを選択するだけで十分でしょう)
    2. Sensors-detectの最後に、ロードする必要のあるモジュールのリストが表示されます。 「yes」と入力して、sensors-detectがそれらのモジュールを/ etc/modulesに挿入するか、/ etc/modulesを自分で編集します。
    3. Sudo service module-init-tools restartを実行します。これは、ステップ3で/etc/modulesに加えた変更を読み取り、新しいモジュールをカーネルに挿入します。
      • :Ubuntu 13.04以降を実行している場合、この3番目のステップのコマンドはSudo service kmod startに置き換える必要があります。
  3. 構成fancontrol

    1. 端末でSudo pwmconfigと入力します。このスクリプトは、各ファンを5秒間停止して、どのPWMハンドルでどのファンを制御できるかを調べます。スクリプトがすべてのファンをループした後、どのファンがどの温度に対応するかを構成できます。
    2. 使用するセンサーを指定する必要があります。これは少し注意が必要です。ファンが1つしかない場合は、コアに温度センサーを使用して、ファン制御速度の基準にしてください。
    3. プロンプトを実行して、変更をデフォルトの場所に保存します。
    4. /etc/fancontrolを微調整し、Sudo service fancontrol restartを使用して変更を適用します。 (私の場合、間隔を2秒に設定します。)
  4. セットアップfancontrolサービス

    1. Sudo service fancontrol startを実行します。これにより、システムの起動時にfancontrolサービスが自動的に実行されます。

私の場合、使用したCPUの/etc/fancontrol

Hwmon0/device/pwm2の設定:
(hwmon0/device/temp2_inputに依存)(hwmon0/device/fan2_inputを制御)

INTERVAL=2
MINTEMP=40  
MAXTEMP=60  
MINSTART=150  
MINSTOP=0  
MINPWM=0  
MAXPWM=255 

また、別のシステムでは次のとおりです。

INTERVAL=10
DEVPATH=hwmon1=devices/platform/coretemp.0 hwmon2=devices/platform/nct6775.2608
DEVNAME=hwmon1=coretemp hwmon2=nct6779
FCTEMPS=hwmon2/pwm2=hwmon1/temp2_input
FCFANS=hwmon2/pwm2=hwmon2/fan2_input
MINTEMP=hwmon2/pwm2=49
MAXTEMP=hwmon2/pwm2=83
MINSTART=hwmon2/pwm2=150
MINSTOP=hwmon2/pwm2=15
MINPWM=hwmon2/pwm2=14
MAXPWM=hwmon2/pwm2=255

ここ 設定とそれらが実際に行うことに関するいくつかの有用な情報です

149
grizwako

ThinkPadを所有している場合、thinkfanというソフトウェアがあります。名前から明らかなように、ThinkPad専用に作成されています(thinkpad_acpi)。

thinkfanソフトウェアは、標準のubuntuソフトウェアリポジトリで使用できますが、設定するにはいくつかの手順が必要です。

簡単なステップバイステップガイドを次に示します。

http://staff.science.uva.nl/~kholshei/thinkfan_guide/

(基本的にこのドイツ語ガイドの翻訳版です: http://thinkwiki.de/Thinkfan


投稿からの関連情報:

ステップ1。thinkfanソフトウェアとセンサーをインストールします。

Sudo apt-get install thinkfan lm-sensors

ステップ2。thinkpad.confファイルを編集して、デーモンがファンを制御していることを確認します。

Sudo nano /etc/modprobe.d/thinkfan.conf

次の行を追加します。

options thinkpad_acpi fan_control=1

ステップ3。ファイルを編集して、起動時にデーモンを自動的にロードします。

Sudo nano /etc/default/thinkfan

sTARTキーがyesに設定されていることを確認します。つまり、次のような行があるはずです。

START=yes

ステップ4。ラップトップのセンサーを検出します:

Sudo sensors-detect

enterキーを押してプロンプトが表示されたら、デフォルトの回答を選択します。

ステップ5。新しいモジュールをロードします。 ubuntu 13.10から:

Sudo service kmod start

一方、13.04のような以前のバージョンでは、代わりに以下を行う必要があります。

Sudo service module-init-tools start

ステップ6。使用されているセンサーを把握します。

sensors

(0度を示すものは使用されていません。なぜそれらが「検出される」のかわかりません)。使用中のものを覚えておいてください。

ステップ7。これらのセンサーの完全なパスを見つけます:

find /sys/devices -type f -name "temp*_input"

出力は、/ sys/devices/...などのパスのリストである必要があります.

ステップ8。センサーへのパスをコピーして、構成ファイル/etc/thinkpad.confに貼り付けます。これを行うには、まずファイルを開きます:

Sudo nano /etc/thinkfan.conf

すでに次のような行があるはずです

#sensor /proc/acpi/ibm/thermal (0, 10, 15, 2, 10, 5, 0, 3, 0, 3) 

(#記号は、その行がコメント化されていることを意味します)。センサーで始まる行を追加し(#記号なし)、最初のセンサーをコピーして貼り付けます。複数のセンサーがある場合は、これを繰り返します。たとえば、私のマシンでは、ステップ7の出力は次のようになります

/sys/devices/virtual/hwmon/hwmon0/temp1_input
/sys/devices/platform/thinkpad_hwmon/temp3_input
/sys/devices/platform/thinkpad_hwmon/temp4_input
/sys/devices/platform/thinkpad_hwmon/temp5_input
/sys/devices/platform/thinkpad_hwmon/temp6_input
/sys/devices/platform/thinkpad_hwmon/temp7_input
/sys/devices/platform/thinkpad_hwmon/temp1_input
/sys/devices/platform/thinkpad_hwmon/temp8_input
/sys/devices/platform/thinkpad_hwmon/temp2_input
/sys/devices/platform/coretemp.0/temp4_input
/sys/devices/platform/coretemp.0/temp2_input 

私のマシンで使用されているのは、最初と最後の2行の行なので、次の3行を追加しました。

sensor /sys/devices/virtual/hwmon/hwmon0/temp1_input
sensor /sys/devices/platform/coretemp.0/temp4_input
sensor /sys/devices/platform/coretemp.0/temp2_input 

ステップ9。最後に、構成ファイルでファン速度レベルを設定できます。 /etc/thinkpad.confファイルを開きます(まだ開いていない場合)。

Sudo nano /etc/thinkfan.conf

ThinkPad x201で使用するファンレベルは次のとおりです。

(0, 0, 51)
(1, 50, 52)
(2, 51, 55)
(3, 54, 58)
(4, 56, 63)
(5, 60, 70)
(6, 66, 79)
(7, 74, 92)
(127, 85, 32767) 

最後の行は、完全なファン速度を保証します(127 =「解除」、つまり規制なし)。あなたのニーズ/希望に合うようにこれらのレベルをいじることができますが、注意してください!

ステップ10。再起動します。すべてが動作するはずです。 thinkpadが正しく実行されているかどうかを確認するには、次を使用します

Sudo thinkfan -n

thinkfanを冗長モードで起動します。最初にthinkfanデーモンを停止することをお勧めします。

Sudo /etc/init.d/thinkfan stop

Thinkfanデーモンを再び起動する場合は、次のように入力します。

Sudo /etc/init.d/thinkfan start

完了するために、私の/etc/thinkfan.conf構成ファイルは次のとおりです。

# IMPORTANT:
#
# To keep your HD from overheating, you have to specify a correction value for
# the sensor that has the HD's temperature. You need to do this because
# thinkfan uses only the highest temperature it can find in the system, and
# that'll most likely never be your HD, as most HDs are already out of spec
# when they reach 55 °C.
# Correction values are applied from left to right in the same order as the
# temperatures are read from the file.
#
# For example:
# sensor /proc/acpi/ibm/thermal (0, 0, 10)
# will add a fixed value of 10 °C the 3rd value read from that file. Check out
# http://www.thinkwiki.org/wiki/Thermal_Sensors to find out how much you may
# want to add to certain temperatures.

# Syntax:
# (LEVEL, LOW, HIGH)
# LEVEL is the fan level to use (0-7 with thinkpad_acpi)
# LOW is the temperature at which to step down to the previous level
# HIGH is the temperature at which to step up to the next level
# All numbers are integers.
#

# I use this on my T61p:
#sensor /proc/acpi/ibm/thermal (0, 10, 15, 2, 10, 5, 0, 3, 0, 3)

#(0, 0, 55)
#(1, 48, 60)
#(2, 50, 61)
#(3, 52, 63)
#(4, 56, 65)
#(5, 59, 66)
#(7, 63, 32767)


# My settings for my ThinkPad X201: (kris)

sensor /sys/devices/virtual/hwmon/hwmon0/temp1_input
sensor /sys/devices/platform/coretemp.0/temp4_input
sensor /sys/devices/platform/coretemp.0/temp2_input

(0, 0, 51)
(1, 50, 52)
(2, 51, 55)
(3, 54, 58)
(4, 56, 63)
(5, 60, 70)
(6, 66, 79)
(7, 74, 92)
(127, 85, 32767)
43
Kris

いくつかのDellコンピューターでは、i8kutilsパッケージをインストールできます。

Sudo apt install i8kutils

テストされていないDell(私のDell XPS 14zなど)がある場合は、カーネルモジュールを強制的にロードする必要があります。

Sudo modprobe i8k force=1
12
morhook

lm-sensors および fancontrol パッケージをインストールして構成します。

Sudo apt-get install lm-sensors fancontrol

それらを構成するためのドキュメントは、それらのマニュアルページで利用可能です。

これはACPI準拠のBIOSによって提供されるはずの機能ですが、ほとんどのマザーボードベンダーは標準に従うことを気にしていないようです。

7
psusi

PCのUEFIセットアップ(またはBIOSセットアップ)を確認してください。ファンをSilent ModePerformance ModeFull SpeedCustomizeなどに配置できるファン制御の設定があるかもしれません。

UEFI設定にアクセスする方法:PCを再起動すると、それらを入力するためのキーがコーナーの1つに表示されます(例:Press F2 to enter UEFI setup

ASRock UEFI setup for fan control

1
xjcl

Ubuntu 19.04で動作する answerthinkfanの推奨 の更新バージョンを以下に示します。

セットアップ

以下の手順は、/proc/acpi/ibm/fanおよび/proc/acpi/ibm/thermal「レガシー」デバイスを持つすべてのThinkPadに適用されます。これにより、lm-sensorsパッケージをインストールする必要がなくなります。

ただし、lm-sensorsをインストールして、より多くの温度センサーを表示し、ファンをよりきめ細かく制御することができます(つまり、レガシーデバイスの固定ステップ「0-7および127」ではなく、256 PWMステップで)また、thinkfanlm-sensorsセンサーで動作するようになったため、IBM/Lenovo ThinkPadコンピューターに固有ではなくなりました。これらの「拡張」センサーデバイスの使用については、man thinkfanを参照してください。最新の情報があります ドイツのThinkwikiで

  1. 必要なパッケージをインストールします。

    Sudo apt-get install thinkfan
    
  2. /etc/modprobe.d/thinkfan.confに次の行を追加します。

    options thinkpad_acpi fan_control=1
    
  3. システムの起動時に自動的に開始するようにthinkfanサービスを構成します。

    1. START=yes/etc/default/thinkfanに追加します

    2. 次のコマンドを実行します( source ):

      Sudo systemctl enable thinkfan.service
      
  4. /etc/thinkfan.confを、必要なデバイスとファンレベルへの適切なポインターで調整します。そこのコメントはドキュメントを提供します。レガシーファンとサーマルデバイスを搭載したThinkpadでは、次の点が適切な出発点となります(ハードディスクに対しても安全である必要があります。詳細については、ファイルのコメントを参照してください)。これは新しいキーワードを使用することに注意してください。上記の他の回答のキーワードは非推奨です。

    tp_fan /proc/acpi/ibm/fan
    tp_thermal /proc/acpi/ibm/thermal
    
    (0, 0, 47)
    (1, 43, 52)
    (2, 48, 55)
    (3, 51, 58)
    (4, 54, 63)
    (5, 59, 70)
    (6, 66, 79)
    (7, 74, 92)
    (127, 85, 32767) 
    

テスト

(再起動後)セットアップをテストするには、次のようにします。

  • 1つのターミナルウィンドウで、thinkfanを非デーモンモードで実行して、メッセージを表示できるようにします。

    Sudo service thinkfan stop && Sudo thinkfan -n
    
  • 別のターミナルウィンドウで、現在の温度値に注目し、温度プローブデバイスが異なる場合は供給します。

    while true; do sleep 1; cat /proc/acpi/ibm/thermal; done
    
  • さらに別の端末ウィンドウで、CPUをいくらか熱します(そして、 Ctrl + C 熱管理で何かが期待どおりに機能しない場合):

    Sudo apt install stress-ng
    stress-ng --cpu-1
    
1
tanius