lm_sensors とpwmconfigでFAN制御


自作パソコンではマザーボードにM2N-E、そして吸排気としてケース前面と 後面にオウルテックの
12cm角ファン(OWL-FY1225L)を使っています。ファンコントロール用のハードウェアなどもありますが
lm_sensorsを使えばLinuxでもソフトウェアファン制御ができる と聞いてやってみました。

参考サイト ここをものすごい参考にしました。
http://www.aconus.com/~oyaji/pc/cpufan_control.htm


lm_sensors設定方法
lm_sensorsをインストール後rootでsensors-detectを実行。Enterキー連続で大丈夫だった。
To make the sensors modules behave correctly, add these lines to
/etc/modprobe.conf:

#----cut here----
# I2C module options
alias char-major-89 i2c-dev
#----cut here----
この赤字の部分を/etc/modprobe.conf に書き込む
To load everything that is needed, add this to some /etc/rc* file:

#----cut here----
# I2C adapter drivers
modprobe i2c-nforce2
# Chip drivers
# no driver for Analog Devices ADT7475 yet
modprobe eeprom
modprobe k8temp
modprobe it87
# sleep 2 # optional
/usr/bin/sensors -s # recommended
#----cut here----
この青字の部分を/etc/rc.d/rc.local に書き込む
If you have some drivers built into your kernel, the list above will
出力されたものを/etc/modprobe.conf:と/etc/rc.d/rc.localに書き込む

pwmconfig設定方法
pwmconfigを実行し/etc/fancontrolを生成する。
そして/etc/rc.d/rc.localに
/usr/sbin/fancontrol &> /var/log/fancontrol.log &
書き込む

pwmconfig1 回目 Q-FANを向こうにして実行。
ファンの回転数がとれなかったようで失敗。
pwm1がCPUファン、pwm2がケースファンに対応している
This program will search your sensors for pulse width modulation (pwm)
controls, and test each one to see if it controls a fan on
your motherboard. Note that many motherboards do not have pwm
circuitry installed, even if your sensor chip supports pwm.

We will attempt to briefly stop each fan using the pwm controls.
The program will attempt to restore each fan to full speed
after testing. However, it is ** very important ** that you
physically verify that the fans have been to full speed
after the program has completed.

Found the following PWM controls:
   9191-0290/pwm1
   9191-0290/pwm2
   9191-0290/pwm3

Found the following fan sensors:
   9191-0290/fan1_input     current speed: 337500 RPM
   9191-0290/fan2_input     current speed: 546 RPM
   9191-0290/fan3_input     current speed: 0 ... skipping!
事前にコントロールできるかどうか試したためケースファンの回転数は低い
CPUファンスピードが異常値なのはwin側でも確認できる。
もちろんこんな速度では回っていない。
fan3が何を示しているかは不明。該当するファンが無い。

Warning!!! This program will stop your fans, one at a time,
for approximately 5 seconds each!!!
This may cause your processor temperature to rise!!!
If you do not want to do this hit control-C now!!!
Hit return to continue:

Testing pwm control 9191-0290/pwm1 ...
  9191-0290/fan1_input ... speed was 337500 now 0
    It appears that fan 9191-0290/fan1_input
    is controlled by pwm 9191-0290/pwm1
    Fan 9191-0290/fan1_input has not returned to speed, please investigate!
  9191-0290/fan2_input ... speed was 546 now 1427
    no correlation

Testing pwm control 9191-0290/pwm2 ...
  9191-0290/fan1_input ... speed was 337500 now 2848
    It appears that fan 9191-0290/fan1_input
    is controlled by pwm 9191-0290/pwm2
    Fan 9191-0290/fan1_input has not returned to speed, please investigate!
  9191-0290/fan2_input ... speed was 546 now 1412
    no correlation
ここでCPUファン、ケースファンともpwmconfigに同期できなくなり設定失敗。
Testing pwm control 9191-0290/pwm3 ...
  9191-0290/fan1_input ... speed was 337500 now 2836
    It appears that fan 9191-0290/fan1_input
    is controlled by pwm 9191-0290/pwm3
    Fan 9191-0290/fan1_input has not returned to speed, please investigate!
  9191-0290/fan2_input ... speed was 546 now 1427
    no correlation

Testing is complete.
Please verify that all fans have returned to their normal speed.

The fancontrol script can automatically respond to temperature changes
of your system by changing fanspeeds.
Do you want to set up its configuration file now (y)?
What should be the path to your fancontrol config file (/etc/fancontrol)?
/etc/fancontrol does not exist, shall I create it now (y)?
Loading configuration from /etc/fancontrol ...

Select fan output to configure, or other action:
1) 9191-0290/pwm3      4) Change INTERVAL     7) Show configuration
2) 9191-0290/pwm2      5) Just quit
3) 9191-0290/pwm1      6) Save and quit
select (1-n): 2

Current temperature readings are as follows:
9191-0290/temp1_input    16
9191-0290/temp2_input    28
9191-0290/temp3_input    -11

Select a temperature sensor as source for 9191-0290/pwm2:
1) 9191-0290/temp1_input
2) 9191-0290/temp2_input
3) 9191-0290/temp3_input
4) None (Do not affect this PWM output)
select (1-n): 2

Enter the low temperature (C)
at which the fan should be switched off (0): 38

Enter the high temperature (C)
at which the fan should be switched to full speed (60): 50

Enter the minimum PWM value (0-255)
at which the fan STARTS spinning (press t to test) (150): t

Now we increase the PWM value in 10-unit-steps.
Let the fan stop completely, then press return until the
fan starts spinning. Then enter 'y'.
We will use this value +20 as the starting speed.
Setting 9191-0290/pwm2 to 10...
Setting 9191-0290/pwm2 to 20...
Setting 9191-0290/pwm2 to 30...
Setting 9191-0290/pwm2 to 40...
Setting 9191-0290/pwm2 to 50...
Setting 9191-0290/pwm2 to 60...
Setting 9191-0290/pwm2 to 70...
Setting 9191-0290/pwm2 to 80...
Setting 9191-0290/pwm2 to 90...
Setting 9191-0290/pwm2 to 100...
Setting 9191-0290/pwm2 to 110...
Setting 9191-0290/pwm2 to 120...
Setting 9191-0290/pwm2 to 130...
Setting 9191-0290/pwm2 to 140...
Setting 9191-0290/pwm2 to 150...
Setting 9191-0290/pwm2 to 160...
Setting 9191-0290/pwm2 to 170...
Setting 9191-0290/pwm2 to 180...
Setting 9191-0290/pwm2 to 190...
Setting 9191-0290/pwm2 to 200...
Setting 9191-0290/pwm2 to 210...
Setting 9191-0290/pwm2 to 220...
Setting 9191-0290/pwm2 to 230...
Setting 9191-0290/pwm2 to 240...
Setting 9191-0290/pwm2 to 255...
OK, using 255

Enter the minimum PWM value (0-255)
at which the fan STOPS spinning (press t to test) (100): 70

select (1-n): 2

Current temperature readings are as follows:
9191-0290/temp1_input    12
9191-0290/temp2_input    27
9191-0290/temp3_input    -11

Select a temperature sensor as source for 9191-0290/pwm2:
1) 9191-0290/temp1_input
2) 9191-0290/temp2_input
3) 9191-0290/temp3_input
4) None (Do not affect this PWM output)
select (1-n): 2

Enter the low temperature (C)
at which the fan should be switched off (0): 38

Enter the high temperature (C)
at which the fan should be switched to full speed (60): 50

Enter the minimum PWM value (0-255)
at which the fan STARTS spinning (press t to test) (150): 80

Enter the minimum PWM value (0-255)
at which the fan STOPS spinning (press t to test) (100): 0

select (1-n): 5

pwmconfig 2回目 成功
This program will search your sensors for pulse width modulation (pwm)
controls, and test each one to see if it controls a fan on
your motherboard. Note that many motherboards do not have pwm
circuitry installed, even if your sensor chip supports pwm.

We will attempt to briefly stop each fan using the pwm controls.
The program will attempt to restore each fan to full speed
after testing. However, it is ** very important ** that you
physically verify that the fans have been to full speed
after the program has completed.

Found the following PWM controls:
   9191-0290/pwm1
   9191-0290/pwm2
   9191-0290/pwm3

Found the following fan sensors:
   9191-0290/fan1_input     current speed: 2836 RPM
   9191-0290/fan2_input     current speed: 1415 RPM
   9191-0290/fan3_input     current speed: 0 ... skipping!

Warning!!! This program will stop your fans, one at a time,
for approximately 5 seconds each!!!
This may cause your processor temperature to rise!!!
If you do not want to do this hit control-C now!!!
Hit return to continue:

Testing pwm control 9191-0290/pwm1 ...
  9191-0290/fan1_input ... speed was 2836 now 0
    It appears that fan 9191-0290/fan1_input
    is controlled by pwm 9191-0290/pwm1
Would you like to generate a detailed correlation (y)? y
Would you like to generate a graphical plot using gnuplot (y)? y
    PWM 255 FAN 2872
    PWM 240 FAN 2824
    PWM 225 FAN 2678
    PWM 210 FAN 2547
    PWM 195 FAN 2376
    PWM 180 FAN 2227
    PWM 165 FAN 2045
    PWM 150 FAN 18243
    PWM 135 FAN 225000
    PWM 120 FAN -1
    Fan Stopped at PWM = 120
    Hit return to continue...
途中で異常値が。これはマザーボードの仕様なのかもしれない。
CPUファンはMBのファンコントロール機能、Q-FANにまかせることにする。

  9191-0290/fan2_input ... speed was 1415 now 1415
    no correlation
実行時にはファンが止まるので注意
Testing pwm control 9191-0290/pwm2 ...
  9191-0290/fan1_input ... speed was 2836 now 2824
    no correlation
  9191-0290/fan2_input ... speed was 1415 now 298
    It appears that fan 9191-0290/fan2_input
    is controlled by pwm 9191-0290/pwm2
Would you like to generate a detailed correlation (y)? y
Would you like to generate a graphical plot using gnuplot (y)? y
gnuplotで結果がグラフで表示される。
    PWM 255 FAN 1412
    PWM 240 FAN 1397
    PWM 225 FAN 1336
    PWM 210 FAN 1271
    PWM 195 FAN 1194
    PWM 180 FAN 1125
    PWM 165 FAN 1051
    PWM 150 FAN 981
    PWM 135 FAN 895
    PWM 120 FAN 814
    PWM 105 FAN 725
    PWM 90 FAN 641
    PWM 75 FAN 544
    PWM 60 FAN 447
    PWM 45 FAN 236
    PWM 30 FAN 110
    PWM 15 FAN 0
    Fan Stopped at PWM = 15
    Hit return to continue...


Testing pwm control 9191-0290/pwm3 ...
  9191-0290/fan1_input ... speed was 2836 now 2848
    no correlation
  9191-0290/fan2_input ... speed was 1415 now 1415
    no correlation

No correlations were detected.
There is either no fan connected to the output of 9191-0290/pwm3,
or the connected fan has no rpm-signal connected to one of
the tested fan sensors. (Note: not all motherboards have
the pwm outputs connected to the fan connectors,
check out the hardware database on http://www.almico.com/forumindex.php)

Did you see/hear a fan stopping during the above test (n)?

Testing is complete.
Please verify that all fans have returned to their normal speed.

The fancontrol script can automatically respond to temperature changes
of your system by changing fanspeeds.
Do you want to set up its configuration file now (y)? 設定ファイルの編集に入る
What should be the path to your fancontrol config file (/etc/fancontrol)? /etc/fancontrol 設定ファイルの場所を入力
Loading configuration from /etc/fancontrol ...

Select fan output to configure, or other action:
1) 9191-0290/pwm2      3) Change INTERVAL     5) Save and quit
2) 9191-0290/pwm1      4) Just quit          6) Show configuration
select (1-n): 1
制御するファンを選択。ケースファンを調節するのでここでは1
Current temperature readings are as follows:
9191-0290/temp1_input    11
9191-0290/temp2_input    26
9191-0290/temp3_input    -11

Select a temperature sensor as source for 9191-0290/pwm2:
1) 9191-0290/temp1_input
2) 9191-0290/temp2_input
3) 9191-0290/temp3_input
4) None (Do not affect this PWM output)
select (1-n): 2
どこの温度を基準にして調節するかと聞かれたのでマザーボードのチップセット温度を選択
Enter the low temperature (C)
at which the fan should be switched off (0): 37
ファンの回転を止める温度
Enter the high temperature (C)
at which the fan should be switched to full speed (60): 50
ファンが最大回転する温度
Enter the minimum PWM value (0-255)
at which the fan STARTS spinning (press t to test) (150): 120
ファンが回り始めるpwm値を入力
Enter the minimum PWM value (0-255)
at which the fan STOPS spinning (press t to test) (100): 0
ファンをとめるpwm値を入力。ここは思い切って0に
select (1-n): 6 設定内容をみる

Common Settings:
INTERVAL=10

Settings of 9191-0290/pwm2:
  Depends on 9191-0290/temp2_input
  Controls 9191-0290/fan2_input
  MINTEMP=37
  MAXTEMP=50
  MINSTART=120
  MINSTOP=0

Settings of 9191-0290/pwm1:
  Depends on
  Controls
  MINTEMP=
  MAXTEMP=
  MINSTART=
  MINSTOP=

select (1-n): 5 設定内容を保存

Saving configuration to /etc/fancontrol...
Configuration saved