web-dev-qa-db-ja.com

pwmconfigでファン速度を構成できません!

デュアルブート対応のASUS TP301UJラップトップを使用しており、ファンの音がいつも大音量です。 Ubuntuで[////]ファン速度を設定しようとしていますが(Windows 10では簡単にできました)、問題が発生しています。

これが私がしたことです:

  1. lm-sensors psensor fancontrol をインストールしました。 psensorはうまく機能し、ファンの速度とすべての温度を読み取りました。

  2. Sudo sensors-detectを実行すると、 coretemp /etc/modulesに追加する必要があるとだけ言われました。 coretempはすでにモジュール内にあったため、何もしませんでした。

  3. 再起動しました。 Sudo pwmconfigを実行すると、次のように出力されます。

    次のデバイスが見つかりました:
    hwmon0はacpitz
    hwmon1はcoretempです
    hwmon2はasus

    次のPWMコントロールが見つかりました:
    hwmon2/pwm1現在の値:0

    hwmon2/pwm1は現在、自動速度制御用に設定されています。
    一般に、自動モードは手動モードよりも効率的で反応が速いため、手動モードよりも優先されます。この出力を手動制御用に設定してもよろしいですか? (n)

  4. "y"と入力すると、出力は次のようになります。

    ファンにフルスピードに達するまでの時間を与える...

    次のファンセンサーが見つかりました:
    hwmon2/fan1_input現在の速度:0 ...スキップしています!
    動作しているファンセンサーがなく、すべての測定値が0です。

    3線式ファンが接続されていることを確認してください。
    ファンの除数を増やす必要がある場合もあります。
    詳細については、doc/fan-divisorsを参照してください。

したがって、私のファンは「手動モード」に入り、フルスピードで稼働を開始しますが、pwmconfigは終了し、ファンはフルスピードで稼働したままになります。 /sys/class/hwmon/hwmon2/pwm1_enableの数値を1から2に戻すと、再びautomaticになります。

これが私の問題です(私は思います):私のファンが「手動モード」の場合、sensors-1を次のように表示しますその速度。検出されません。ただし、automaticモードでは、まったく問題ありません。これは私がpwmconfigでファンを構成することを不可能にします。

acpi_enforce_resources=laxをgrubファイルの変数GRUB_CMDLINE_LINUX_DEFAULTに追加してみました。結果は同じです。

私は何をすべきか?

4
João Bravo

man fancontrolから始めて、/etc/fancontrolで使用できる変数を確認してください。構成を作成するときは、INTERVAL、FCTEMPS、FCFANS、MINTEMP、MAXTEMP、MINSTART、MINSTOPが必要です。

# Checks the temperature every 10 seconds.
INTERVAL=10
# Maps a fan to a temp sensor, each separated by a space 
FCTEMPS=fanpath=temppath fanpath2=temppath2
# Maps a fan to the fan speed sensor
FCFANS=fanpath=fanspeedpath fanpath2=fanspeedpath2
# The temperature below which the fan gets switched to minimum speed.
MINTEMP=fanpath=degreesC fanpath2=degreesC2
# The temperature over which the fan gets switched to maximum speed.
MAXTEMP=fanpath=degreesC fanpath2=degreesC2
# Sets the minimum speed at which the fan begins spinning.
MINSTART=fanpath=minspeed fanpath2=minspeed2
#The minimum speed at which the fan still spins.
MINSTOP=fanpath=minspeed fanpath2=minspeed2

実際のサンプル:

INTERVAL=10
FCTEMPS=/sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm5=/sys/devices/platform/coretemp.0/hwmon/hwmon[[:print:]]*/temp3_input /sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm4=/sys/devices/platform/coretemp.0/hwmon/hwmon[[:print:]]*/temp3_input /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon[[:print:]]*/pwm1=/sys/devices/platform/coretemp.0/hwmon/hwmon[[:print:]]*/temp3_input
FCFANS=/sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm5=/sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/fan5_input /sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm4=/sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/fan4_input /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon[[:print:]]*/pwm1=
MINTEMP=/sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm5=55 /sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm4=50 /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon[[:print:]]*/pwm1=55
MAXTEMP=/sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm5=60 /sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm4=60 /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon[[:print:]]*/pwm1=60
MINSTART=/sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm5=70 /sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm4=70 /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon[[:print:]]*/pwm1=70
MINSTOP=/sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm5=90 /sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm4=90 /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon[[:print:]]*/pwm1=90

[[:print:]]はhwmon番号を表します。実際の番号または[[:print:]]を使用できます。ブート間で番号が変わる場合があり、[[:print:]]は正しいhwmon番号を見つけることができます。

問題はFCFANSで、fan1_inputに有効なデータがあるかどうか、そしてない場合は、fancontrolがそれなしでも機能し続けるかどうかです。

または、hwmon2/pwm1の値を0〜255の範囲で設定する独自のスクリプトを作成することもできます。

2
rtaft

Nct6775は、ハードウェアでファンを制御する可能性があります。特定の温度源を入力として設定し、温度に基づいて段階的にファンを制御できます。したがって、チップの設定をロードする以外にスクリプトは必要ありません。上記のファン制御ツールには、スタックしている場合、エラーまたはバグがあり、機能しない可能性があるという欠点があります。

/sys/devices/platform/nct6775.656/hwmon/hwmonXディレクトリ。

下のXはファンです。一部の設定はBIOSによってすでに設定されている場合があります。

pwmX_modeは、ファンモードを設定します。 0はPWM、1は電圧制御。設定できます。しかし、読書は常に1を与えます。

pwmX_temp_selは、このファンに供給する温度センサーです。

echo 5> to pwmX_enableは、ファンをスマートモードに設定します。これは、ハードウェア(nct6775チップ)がファンを制御していることを意味します。

PwmX_auto_point1_pwm〜pwmX_auto_point5_pwmは、ファンの速度ステップを設定します。値は0〜255です。私のファンは85前後で回転し始めます。したがって、ステップとして85 90 100 140 255を持っています。

対応する温度は、pwmX_auto_point(1-5)_tempで設定されます。摂氏の値。

0
U de Boer