Управление кулерами под Centos

Статья будет полезной в первую очередь для тех, кто имеет сервер у себя дома. Если система вентиляции в корпусе хорошая, то и не имеет смысла использовать обороты на полную катушку. В качестве управления будем использовать pwmconfig и fancontrol.

yum install lm-sensors

Для настройки используем pwmconfig

# pwmconfig
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 devices:
hwmon0/device is k8temp
hwmon1/device is w83627ehf
Found the following PWM controls:
hwmon1/device/pwm1
hwmon1/device/pwm2
hwmon1/device/pwm3
Giving the fans some time to reach full speed…
Found the following fan sensors:
hwmon1/device/fan1_input current speed: 0 … skipping!
hwmon1/device/fan2_input current speed: 3515 RPM
hwmon1/device/fan3_input current speed: 0 … skipping!
hwmon1/device/fan5_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:

Программка проверила мою мат. плату и обнаружила 3 пропеллера и 4 датчика пропеллера (?). Один из обнаруженных пропеллеров вращается. Далее говорит, что сейчас будем тестировать пропеллеры, это вызовет остановку их самых на время неболее 5 секунд и предупреждает, что мой проц может взорваться от этих экспериментов.

Testing pwm control hwmon1/device/pwm1 …
hwmon1/device/fan2_input … speed was 3515 now 3515
no correlation
No correlations were detected.
There is either no fan connected to the output of hwmon1/device/pwm1,
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)? n

Программка протестировала один из пропеллеров и спрашивает, слышал ли я как он останавливается? я честно отвечаю, что нет и едем дальше:

Testing pwm control hwmon1/device/pwm2 …
hwmon1/device/fan2_input … speed was 3515 now 0
It appears that fan hwmon1/device/fan2_input
is controlled by pwm hwmon1/device/pwm2
Would you like to generate a detailed correlation (y)?

Слышно звук останавливающегося пропеллера и тут-же мне предлагают сделать корреляцию чего-то …. соглашаемся )

PWM 255 FAN 3515
PWM 240 FAN 2636
PWM 225 FAN 2636
PWM 210 FAN 2636
PWM 195 FAN 2636
PWM 180 FAN 2636
PWM 165 FAN 2636
PWM 150 FAN 2636
PWM 135 FAN 2109
PWM 120 FAN 1757
PWM 105 FAN 1506
PWM 90 FAN 1318
PWM 75 FAN 878
PWM 60 FAN 1054
PWM 45 FAN 0
Fan Stopped at PWM = 45

Testing pwm control hwmon1/device/pwm3 …
hwmon1/device/fan2_input … speed was 3515 now 3515
no correlation
No correlations were detected.
There is either no fan connected to the output of hwmon1/device/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)? 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)?
Loading configuration from /etc/fancontrol …

Получили радостное сообщение об том, что тестирование завершено и предложение об сохранении выбранной конфигурации. И сразу-же попадаем в меню доп. настройки вентиляторной программы:

Select fan output to configure, or other action:
1) hwmon1/device/pwm2 3) Just quit 5) Show configuration
2) Change INTERVAL 4) Save and quit

После того, как я сохранил конфигурацию по-умолчанию, программа-регулятор пропеллеров отказалась работать, ссылаясь на нехватку каких-то данных. А данные, которые ему нужны задаются следующим образом:

select (1-n): 1

Devices:
hwmon0/device is k8temp
hwmon1/device is w83627ehf
Current temperature readings are as follows:
hwmon0/device/temp1_input 35
hwmon0/device/temp3_input 34
hwmon1/device/temp1_input 39
hwmon1/device/temp2_input 39
hwmon1/device/temp3_input 36
Select a temperature sensor as source for hwmon1/device/pwm2:
1) hwmon0/device/temp1_input
2) hwmon0/device/temp3_input
3) hwmon1/device/temp1_input
4) hwmon1/device/temp2_input
5) hwmon1/device/temp3_input
6) None (Do not affect this PWM output)
select (1-n): 4

Тут мне предложили выбрать термодатчик, который лучше всех подходит к моему вентилятору. Я выбрал тот, что программа автоматически предложила выше при тестировании.

Enter the low temperature (degree C)
below which the fan should spin at minimum speed (0): 35
Enter the high temperature (degree C)
over which the fan should spin at maximum speed (60): 45
Enter the minimum PWM value (0-255)
at which the fan STARTS spinning (press t to test) (150): 60
Enter the minimum PWM value (0-255)
at which the fan STOPS spinning (press t to test) (100): 50
Enter the PWM value (0-50) to use when the temperature
is below the low temperature limit (0): 50
Enter the PWM value (50-255) to use when the temperature
is over the high temperature limit (255):

А вот и данные, которых в конфиге не хватало. по порядку следования:

- Минимальная температура. (температура, при которой пропеллер вращается с минимальной скоростью)
- Максимальная температура. (Температура, при которой вентилятор должен вращаться с максимальной скоростью).
- Минимальное значение регулятора при котором пропеллер начинает вращаться. (принажатии кнопки t програмка будет автоматически повышать значение, пока вы не убедитесь, что пропеллер вращается и не нажмете y).
- Значение регулятора, при котором вентилятор останавливается.
- Значение регулятора, которое будет задано если температура на датчике ниже, чем минимальная заданная.
- Значение регулятора, которое будет задано, если температура на датчике выше, чем максимальная заданная.

Select fan output to configure, or other action:
1) hwmon1/device/pwm2 3) Just quit 5) Show configuration
2) Change INTERVAL 4) Save and quit
select (1-n): 5

Снова попадаем в то-же меню.

Common Settings:
INTERVAL=10
Settings of hwmon1/device/pwm2:
Depends on hwmon1/device/temp2_input
Controls hwmon1/device/fan2_input
MINTEMP=35
MAXTEMP=45
MINSTART=60
MINSTOP=50
MINPWM=50

Select fan output to configure, or other action:
1) hwmon1/device/pwm2 3) Just quit 5) Show configuration
2) Change INTERVAL 4) Save and quit
select (1-n): 4

Сохраняем конфиг:

Saving configuration to /etc/fancontrol…
Configuration saved

Запускаем утилиту fancontrol

# fancontrol
Loading configuration from /etc/fancontrol …
Common settings:
INTERVAL=10
Settings for hwmon1/device/pwm2:
Depends on hwmon1/device/temp2_input
Controls hwmon1/device/fan2_input
MINTEMP=35
MAXTEMP=45
MINSTART=60
MINSTOP=50
MINPWM=50
MAXPWM=255
Enabling PWM on fans…
Starting automatic fan control…

программа запускается и постоянно держит консоль. при этом вентилятор начинает работать ощутимо тише. при прерывании программы по Ctrl+C она восстанавливает значение регулятора напряжения на вентиляторе, которое было до запуска программы. Пишем скрипт чтобы запускалось сие чудо во время автозагрузки и можно в принципе спокойно спать.

Материал частично взят с www.ewklid.org/wp/2012/08/22/%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B2%D0%B5%D0%BD%D1%82%D0%B8%D0%BB%D1%8F%D1%82%D0%BE%D1%80%D0%B0%D0%BC%D0%B8/#more-271


Понравилась статья? Поделись с остальными.

Комментарии закрыты.