Читаете, вы, сейчас эти строки и слышите равномерный, в меру громкий шум кулера. Однозначно слышите, иначе вас бы не заинтересовала эта статья. На самом деле громкая работа кулера в Linux довольно частая проблема недавно перешедших с Windows-пользователей. А ведь он не должен так шуметь.
В Windows, обороты вентилятора и многие другие параметры управляются автоматически в зависимости от нагрузки на систему и следовательно температуры оборудования, здесь же из коробки вентилятор всегда крутится на полную мощность, независимо от того, играете вы тяжелую игру, компилируете программу или просто просматриваете интернет страницы. Это нужно исправлять. В этой инструкции мы рассмотрим управление кулером Linux и настройку автоматической регуляции оборотов в зависимости от температуры.
Подготовка системы
Чтобы правильно управлять и ничего не спалить, ну на самом деле и ничего не сгорит, компьютер просто уйдет в перезагрузку, но все же… нам нужно знать температуру оборудования в данный момент. Для снятия показаний со всяких датчиков на материнской плате используется набор программ lm_sensors. Сначала настроим lm_sensors затем управление кулером linux.
Установка lm_sensors
Это, можно сказать, системный компонент, поэтому он есть в репозиториях всех дистрибутивов.
Для Ubuntu или Debian команда установки выглядит следующим образом:
sudo apt install lm-sensors
Для Fedora и RHEL:
sudo yum installlm-sensors
Для Gentoo:
sudo emerge -av lm-sensors
Также для Gentoo в ядре необходимо будет включить следующие функции:
Не забудьте пересобрать все пакеты с флагом lm_sensors
Настройка lm_sensors
Теперь нам нужно найти и записать информацию обо всех доступных сенсорах, для этого выполните:
sudo sensors-detect
После запуска команды нужно будет последовательно нажимать y, чтобы подтвердить сканирование следующей группы устройств, затем Enter:
А потом опять y для сохранения собранной конфигурации в файл:
Далее, добавляем сервис в автозагрузку:
sudo systemctl enable lm-sensors
Запускаем:
sudo systemctl start lm-sensors
Уже можем посмотреть показания сенсоров:
sensors
В зависимости от драйвера здесь показаны не только температура, но и обороты кулера, а также напряжение. Но это не главное, у нас есть информация и мы можем переходить к следующему пункту.
Управление кулером Linux
Управление оборотами вентилятора linux выполняется с помощью сервиса fancontrol. Для установки в Ubuntu:
sudo apt install fancontrol
В RedHat:
sudo yum install fancontrol
После установки переходим к настройке автоматического регулирования оборотов кулера. Сначала нужно программно связать каждый кулер с соответствующим ему датчиком температуры, и настроить допустимый уровень температур. Для этого выполните:
sudo pwmconfig
pwmconfig revision 6166 (2013-05-01)
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.
Сначала программа покажет доступные драйверы вентиляторов:
Здесь вы видите предупреждение о том что вентиляторы linux будут отключены на некоторое время (5 секунд), как прочитаете нажмите Enter. Дальше будет выполнено тестирование доступных скоростей кулера:
Дальше настроим максимальную, минимальную и рабочую температуры, сначала выберите кулер, например 1:
Теперь выберите датчик температуры для этого кулера:
Теперь укажите температуру, при которой вентилятор linux будет вращаться на минимальной скорости:
Затем температуру, при которой нужно переходить на максимальные обороты:
Далее, нужно указать минимальное значение оборотов pwm, можно узнать нажав кнопку t
Какое значение pwm использовать если температура превышает минимальную, по сути, это рабочие обороты:
Какое значение использовать при превышении максимальной температуры:
Готово теперь, остается настроить таким же образом другие кулеры, если у вас их несколько и можно сохранять:
Сохранить и выйти под номером 5. Добавте fancontrol в автозагрузку:
sudo systemctl enable fancontrol
И запустите:
sudo systemctl start fancontrol
Чувствуете? тишина… теперь fancontrol управляет вашими кулерами и шума без надобности больше не будет.
Ручное управление оборотами кулера
Меня всегда интересовало, как вручную выключить кулер. Сразу забегая на перед скажу, что ничего не сгорит, температура просто будет плавно расти. Если запущен fancontrol останавливаем, чтобы не мешал:
sudo systemctl stop fancontrol
Смотрим доступные устройства:
ls /sys/class/hwmon/hwmon1/device/ | grep pwm
Здесь pwm1, pwm2.. это файлы кулеров. Разрешаем ручное управление вентилятором linux, например, для pwm1:
Включаем на полную:
А теперь на минимум:
Выводы
Теперь вы достаточно знаете и управление кулером не вызовет у вас проблем. Вы можете заставить свой компьютер или ноутбук не шуметь и не мешать вам спать ночью. В современных системах это вовсе может не понадобится, там кулером управляет UEFI и не допускает того чтобы он крутился быстрее, чем это необходимо. Если остались вопросы, пишите их в комментариях!