Fan speed control (Русский)
Контролировать скорость (и шум!) вашего кулера легко!
lm-sensors
Первым делом, вам необходимо установить и настроить lm-sensors. Подробнее об этом вы можете узнать из соответствующей статьи.
После того как вы установите lm_sensors, изучите вывод программы sensors
.
$ sensors w83627hf-isa-0290 Adapter: ISA adapter VCore 1: +1.14 V (min = +0.00 V, max = +4.08 V) VCore 2: +2.67 V (min = +0.00 V, max = +4.08 V) +3.3V: +3.39 V (min = +2.82 V, max = +3.79 V) +5V: +5.19 V (min = +3.47 V, max = +0.40 V) ALARM +12V: +12.40 V (min = +12.95 V, max = +7.96 V) ALARM -12V: -7.01 V (min = +1.78 V, max = -10.63 V) ALARM -5V: -3.84 V (min = -7.66 V, max = +2.29 V) V5SB: +5.75 V (min = +0.08 V, max = +0.54 V) ALARM VBat: +3.10 V (min = +0.54 V, max = +0.13 V) ALARM fan1: 2428 RPM (min = 0 RPM, div = 4) fan2: 0 RPM (min = 1630 RPM, div = 4) ALARM fan3: 2191 RPM (min = 6367 RPM, div = 4) ALARM temp1: +38°C (high = +20°C, hyst = +68°C) sensor = thermistor temp2: +39.5°C (high = +65°C, hyst = +60°C) sensor = diode temp3: +38.0°C (high = +65°C, hyst = +60°C) sensor = thermistor (beep) vid: +0.000 V (VRM Version 2.4) alarms: beep_enable: Sound alarm enabled''
Если в вашем выводе sensors отсутствует RPM (обороты в минуту) для процессорного кулера (CPU fan) и вы уверены что он работает, вам необходимо увеличить делитель кулера (fan divisor). Если скорость вашего кулера отображается и она больше нуля, пропустите следующий шаг.
Увеличение fan_div:
Первая строка в выводе sensors - это имя чипсета вашей материнской платы, которое используется для чтения скоростей/темпов/напряжений. Сначала сделаем резервную копию:
# cp /etc/sensors.conf /etc/sensors.conf_original
Отредактируйте файл /etc/sensors.conf
# nano /etc/sensors.conf
Найдите ваш чипсет. Их названия очень похожи друг на друга, так что убедитесь что вы редактируете правильный. Добавьте строку fanX_div 4 в начале конфигурации вашего чипсета. Замените X на количество ваших процессорных кулеров, у меня это 2. Вы должны сами найти это число для своего компьютера, но скорее всего это 1, 2 или 3.
Сохраните и выполните:
# sensors -s
это загрузит новые значения переменных из sensors.conf. Запустите sensors снова и проверьте RPM теперь. Если его нет, то увеличте делитель до 8, 16 или 32.
Можете не опасаясь игнорировать всё, кроме fanX_div. Я бы посоветовал вам оставить все остальные значения по умолчанию.
pwmconfig
После того как lm-sensors правильно сконфигурированы запустите pwmconfig и настройте скорость работы ваших вентиляторов:
pwmconfig
Следуйте инструкциям в pwmconfig для установки базовых скоростей.
Опции конфигурации по умолчанию должны создать новый файл, /etc/fancontrol
.
Для настройки всех скоростей следуйте инструкциям в pwmconfig.
Тонкая настройка
Если вы хотите больше контроля, вам возможно надо редактировать сгенерированный файл конфигурации чтобы добиться желаемого результата. Вот пример конфигурационного файла:
INTERVAL=10 FCTEMPS=hwmon0/device/pwm1=hwmon0/device/temp1_input FCFANS= hwmon0/device/pwm1=hwmon0/device/fan1_input MINTEMP=hwmon0/device/pwm1=20 MAXTEMP=hwmon0/device/pwm1=55 MINSTART=hwmon0/device/pwm1=150 MINSTOP=hwmon0/device/pwm1=105
- INTERVAL: как часто демон должен опрашивать датчики температуры процессора и корректировать скорость вращения кулера. Интервал задаётся в секундах.
Оставшаяся часть конфигурационного файла разделена на (как минимум) два значения на каждую опцию конфигурации. Каждая опция сначала указывает на PWM-устройство в которое будет производиться запись при смене скорости кулера. Второе "поле" — это непосредственно значение, которое надо записать. Это позволяет вам наблюдать и контролировать несколько вентиляторов и датчиков температуры (если ваш компьютер это поддерживает).
-
FCTEMPS: устройство ввода температуры процессора. Предыдущий пример указывает на
/sys/class/hwmon/hwmon0/device/temp1_input
.
-
FCFANS: устройство ввода текущей скорости кулера. Пример:
/sys/class/hwmon/hwmon0/device/fan1_input
- MINTEMP: температура (°C) при которой нужно ВЫКЛЮЧАТЬ кулер на процессоре. Эффективные процессоры не нуждаются в охлаждении во время простоя. Устанавливая этот параметр, вы должны быть уверены в том, что эта температура безопасна. Установка этого параметра в 0 не рекомендуется, используйте более корректное (для данного оборудования) значение.
- MAXTEMP: температура (°C) при которой кулер надо включать на МАКСИМАЛЬНУЮ скорость. Этот параметр надо выставлять задавать примерно на 10-20 °C ниже критической температуры/температуры выключения для вашего процессора. Установка этого параметра ближе к MINTEMP приведёт к повышению средней скорости вращения кулера.
-
MINSTOP: значение PWM при котором останавливается кулер. Все кулеры немного отличаются друг от друга. Вы можете записывать при помощи
echo
различные значения (от 0 до 255) в/sys/class/hwmon/hwmon0/device/pwm1
и наблюдать за кулером. Когда какое-то значение приведёт к его остановке, используйте это значение.
- MINSTART: значение PWM при котором кулер запускается вновь. Зачастую это значение превышающее MINSTOP, т.к. большее напряжение необходимо кулеру для преодоления трения покоя.
fancontrol
Попробуйте запустить fancontrol:
/usr/bin/fancontrol
После запуска этой программы вы возможно услышите как ваш кулер замедляется. Если это работает, то можно добавить "fancontrol" в автозапуск
systemctl enable fancontrol
либо к массиву DAEMONS в /etc/rc.conf
если вы используете init, чтобы это происходило при старте системы.
Большая часть материала для этого howto взята с Ubuntu forums и Ubuntu guide.