死蔵してた NEC Express5800/S70 type hf を引っ張りだして Arch をインストールしました。オンボードでサウンドカードもついてるし、12000円の商品にしては中々のものです。しかし腐ってもサーバなので冷却ファンの回転数が高く、音がすさまじい。
対策として騒音源であるリアの4cmファンを取り外し、他のファンをマザボードではなく fancontrol に制御させるよう設定しました。
マニュアルはここ=> ArchWiki
lm_sensors をインストールする
ハードウェアのセンサから情報をもらってくるプログラムをインストール
# pacman -S lm_sensors
lm_sensors の設定
カーネルモジュールのリストを生成
# sensors-detect
選択肢が出てくるけどすべてデフォルトのまま、 Enter キーを押していけばほとんどの場合は大丈夫。むしろ、そのほうが安全らしい。最後に、 /etc/conf.d/lm_sensors 設定ファイルが生成される。
動作確認
パッケージが正しくインストールされ、センサから情報を読み取れるか確認する。
$ sensors
出力結果
coretemp-isa-0000
Adapter: ISA adapter
Physical id 0: +48.0°C (high = +82.0°C, crit = +102.0°C)
Core 0: +43.0°C (high = +82.0°C, crit = +102.0°C)
Core 1: +45.0°C (high = +82.0°C, crit = +102.0°C)
nct6776-isa-0a30
Adapter: ISA adapter
Vcore: +1.05 V (min = +0.25 V, max = +1.53 V)
in1: +1.22 V (min = +1.08 V, max = +1.32 V)
AVCC: +3.34 V (min = +2.98 V, max = +3.63 V)
+3.3V: +3.33 V (min = +2.98 V, max = +3.63 V)
in4: +1.02 V (min = +0.90 V, max = +1.10 V)
in5: +1.01 V (min = +0.90 V, max = +1.10 V)
in6: +0.72 V (min = +0.00 V, max = +0.00 V) ALARM
3VSB: +3.34 V (min = +2.98 V, max = +3.63 V)
Vbat: +3.25 V (min = +2.70 V, max = +3.63 V)
fan1: 1048 RPM (min = 0 RPM)
fan2: 2295 RPM (min = 0 RPM)
fan3: 0 RPM (min = 0 RPM)
fan4: 0 RPM (min = 0 RPM)
SYSTIN: +38.0°C (high = +65.0°C, hyst = +0.0°C) sensor = thermistor
CPUTIN: +123.5°C (high = +80.0°C, hyst = +75.0°C) ALARM sensor = CPU diode
AUXTIN: +42.5°C (high = +80.0°C, hyst = +75.0°C) sensor = thermistor
PECI Agent 0: +45.0°C (high = +80.0°C, hyst = +75.0°C)
(crit = +100.0°C)
PCH_CHIP_TEMP: +0.0°C
PCH_CPU_TEMP: +0.0°C
PCH_MCH_TEMP: +0.0°C
intrusion0: ALARM
intrusion1: ALARM
beep_enable: disabled
設定ファイルの生成
pwmconfig で設定ファイル(fancontrol)を生成してもらう。
# pwmconfig
選択肢にはマニュアルで設定するように y を選択、ファンの出力テストが行われる。最後にファイルを保存することを忘れずに。
設定ファイルを編集・確認する
pwmconfig で自動生成されたファイルは /etc/fancontrol として保存されている。MINSTART 0の状態でも1000回転する。調べた限り当機種(NEC Express5800/S70 type hf)のクーラーが完全に停止することはないと思われる。
INTERVAL=10
DEVPATH=hwmon0=devices/platform/coretemp.0 hwmon1=devices/platform/nct6775.2608
DEVNAME=hwmon0=coretemp hwmon1=nct6776
FCTEMPS=hwmon1/pwm2=hwmon0/temp1_input hwmon1/pwm1=hwmon0/temp1_input
FCFANS=hwmon1/pwm2=hwmon1/fan2_input hwmon1/pwm1=hwmon1/fan1_input
MINTEMP=hwmon1/pwm2=45 hwmon1/pwm1=45
MAXTEMP=hwmon1/pwm2=69 hwmon1/pwm1=69
MINSTART=hwmon1/pwm2=0 hwmon1/pwm1=0
MINSTOP=hwmon1/pwm2=0 hwmon1/pwm1=0
ファン制御サービスを起動させる
fancontrol
を起動する。
# systemctl start fancontrol
fancontrol
停止する。
# systemctl stop fancontrol
systemd
に fancontrol
をブート時に起動させる設定。
# systemctl enable fancontrol
無効化させるには下記のコマンドを実行
# systemctl disable fancontrol
サスペンド時にファン制御サービスを再起動させる
サスペンドすると fancontrol
が正常に作動しないので、レジューム時に再起動するように設定する。 /etc/systemd/system/root-resume.service
として下記のスクリプトを保存。サービス名は既存のものと被らなければなんでも良い。
[Unit]
Description=Local system resume actions
After=suspend.target
[Service]
Type=oneshot
ExecStart=/usr/bin/systemctl restart fancontrol
[Install]
WantedBy=suspend.target
上記のサービスを有効化する。
# systemctl enable root-resume.service
参考サイト
re-run after suspend · Issue #1 · nicolai-rostov/asus-fancontrol · GitHub:
コメント