コンピューターのファン速度を制御するにはどうすればよいですか?
Windowsには SpeedFan という素晴らしいプログラムがあります。
この機能は、ハードウェアとソフトウェアの両方に依存します。ハードウェアがファン速度制御をサポートしていない場合、またはOSに表示しない場合、このソリューションを使用できなかった可能性が非常に高くなります。それはするが、ソフトウェア(カーネル)がそれを制御する方法を知らない場合、あなたは運がありません。
構成lm-sensors
Sudo sensors-detect
と入力し、すべてのYES/NO質問にYESと答えます。Sudo service module-init-tools restart
を実行します。これは、ステップ3で/etc/modules
に加えた変更を読み取り、新しいモジュールをカーネルに挿入します。Sudo service kmod start
に置き換える必要があります。構成fancontrol
Sudo pwmconfig
と入力します。このスクリプトは、各ファンを5秒間停止して、どのPWMハンドルでどのファンを制御できるかを調べます。スクリプトがすべてのファンをループした後、どのファンがどの温度に対応するかを構成できます。/etc/fancontrol
を微調整し、Sudo service fancontrol restart
を使用して変更を適用します。 (私の場合、間隔を2秒に設定します。)セットアップfancontrolサービス
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
ここ 設定とそれらが実際に行うことに関するいくつかの有用な情報です
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)
いくつかのDellコンピューターでは、i8kutilsパッケージをインストールできます。
Sudo apt install i8kutils
テストされていないDell(私のDell XPS 14zなど)がある場合は、カーネルモジュールを強制的にロードする必要があります。
Sudo modprobe i8k force=1
lm-sensors および fancontrol パッケージをインストールして構成します。
Sudo apt-get install lm-sensors fancontrol
それらを構成するためのドキュメントは、それらのマニュアルページで利用可能です。
これはACPI準拠のBIOSによって提供されるはずの機能ですが、ほとんどのマザーボードベンダーは標準に従うことを気にしていないようです。
Ubuntu 19.04で動作する answerthinkfanの推奨 の更新バージョンを以下に示します。
以下の手順は、/proc/acpi/ibm/fan
および/proc/acpi/ibm/thermal
「レガシー」デバイスを持つすべてのThinkPadに適用されます。これにより、lm-sensors
パッケージをインストールする必要がなくなります。
ただし、lm-sensors
をインストールして、より多くの温度センサーを表示し、ファンをよりきめ細かく制御することができます(つまり、レガシーデバイスの固定ステップ「0-7および127」ではなく、256 PWMステップで)また、thinkfan
はlm-sensors
センサーで動作するようになったため、IBM/Lenovo ThinkPadコンピューターに固有ではなくなりました。これらの「拡張」センサーデバイスの使用については、man thinkfan
を参照してください。最新の情報があります ドイツのThinkwikiで 。
必要なパッケージをインストールします。
Sudo apt-get install thinkfan
/etc/modprobe.d/thinkfan.confに次の行を追加します。
options thinkpad_acpi fan_control=1
システムの起動時に自動的に開始するようにthinkfan
サービスを構成します。
行START=yes
を/etc/default/thinkfan
に追加します
次のコマンドを実行します( source ):
Sudo systemctl enable thinkfan.service
/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