Читаете, вы, сейчас эти строки и слышите равномерный, в меру громкий шум кулера. Однозначно слышите, иначе вас бы не заинтересовала эта статья. На самом деле громкая работа кулера в Linux довольно частая проблема недавно перешедших с Windows-пользователей. А ведь он не должен так шуметь.
В Windows, обороты вентилятора и многие другие параметры управляются автоматически в зависимости от нагрузки на систему и следовательно температуры оборудования, здесь же из коробки вентилятор всегда крутится на полную мощность, независимо от того, играете вы тяжелую игру, компилируете программу или просто просматриваете интернет страницы. Это нужно исправлять. В этой инструкции мы рассмотрим управление кулером Linux и настройку автоматической регуляции оборотов в зависимости от температуры.
Содержание статьи
- Подготовка системы
- Установка lm_sensors
- Настройка lm_sensors
- Управление кулером 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 и не допускает того чтобы он крутился быстрее, чем это необходимо. Если остались вопросы, пишите их в комментариях!
Спасибо. Каждая статья на вес золото!
У меня вентилятор работает в автоматическом режиме по умолчанию (Dell INSPIRON 1525 и UBUNTU 14.04)
Неделю назад переехал с Виндовс 10 на ROSA Desktop Fresh R7. В фоновом режиме заметил шум кулера. Системный монитор показывает наличие 188 процессов. ЦП загружен на 20%. В Десятке при аналогичных обстоятельствах (работает только браузер) диспетчер показывал 70 процессов и 1-2 % загрузки ЦП. А ещё был антивирус. (Ноутбук Aspire 5750G-2454G64Mnkk - довольно сильная машина).
>>>Системный монитор показывает наличие 188 процессов. ЦП загружен на 20%<<<
Это на КДЕ. А КДЕ, как известно очень жрачное ДЕ.
Сижу на манжаре (допиленной) в простое 260-300 мб памяти, проц 1-2%! При openbox, его и надо ставить вместо ДE, он меньше потребляет и нет свистоперделок!
А десятка, что десятка? Отношение к пользаку как к идиоту заставило меня удалить её.
Попробовал на домашнем и на рабочем компьютере, на обоих Минт 17.3 XFCE:
/usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed
То ли не повезло с поддержкой мат. плат (хотя они обе древние, 4-5 лет каждой) либо еще что-то.
У меня такая же шляпа. Возможно из-за того что нетбук уже старенький...
Здесь таблетка для этой беды: https://iandw.net/2014/10/12/fancontrol-under-ubuntu-14-04-resolving-usrsbinpwmconfig-there-are-no-pwm-capable-sensor-modules-installed/
# nano /etc/default/grub
...GRUB_CMDLINE_LINUX="acpi_enforce_resources=lax"...
# update-grub
# reboot
systemctl отсувствует в репозитории (Linux mint xfce)
Поиск ничего не дал. Посоветуйте решение.
Используйте /etc/init.d/имя_сервиса
Стоит ubuntu 16.04. Кулер крутится слишком медленно. Попытался сделать, то что описано в статье:
Found the following devices:
hwmon0 is acpitz
hwmon1 is nouveau
hwmon2/device is thinkpad
hwmon3 is coretemp
Found the following PWM controls:
hwmon2/device/pwm1 current value: 0
/usr/sbin/pwmconfig: строка 201: echo: ошибка записи: Операция не позволена
hwmon2/device/pwm1 stuck to 0
Manual control mode not supported, skipping hwmon2/device/pwm1.
There are no usable PWM outputs.
Что можно сделать еще?
Установить проприетарные драйвера на видеокатру, почистить пыль.
Такая же проблема. Драйвера стоят, пыли нет. Настроить регулировку оборотов не выйдет?
А нет ли, случайно, какой-нибудь утилиты для контроля вентиляторов, с графическим интерфейсом? Ну, знаете, как на Windows есть штатные, в том числе. Которые, так сказать, поставляются в комплекте с системной платой. Asus Suite II, например. На Linux она не устанавливается, ни с диска, ни с сайта. Если бы найти что-то похожее...
Я не помню может ли это psensor, но у него есть графические оболочки.
А есть ли способ борьбы с пресловутым
/usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed ?
Sensors видит датчики k10temp, при запуске pwmconfig в обычной Linux Mint все настроевается, а вот из под LMDE2 пишет There are no pwm-capable sensor modules installed...
UPD
Разобрался. Может кому сгодится. Вопрос решается подгрузкой проприетарного драйвера amd64-microcode. После перезагрузки pwmconfig сразу заработал.
Такая же история. На обычном минте всё работает, на LMDE2 не видит кулеры. Установка amd64-microcode ситуацию не исправила.
Здравствуйте! Подскажите как быть, куда копать.Linex Mint 18. после установки lm-sensors при вводе команды sensors получаю данные с датчиков, но ни одного куллера (fan1: 0 RPM (min = 0 RPM)) и так по 5 позициям, всего стоит 3 карлсона, под виндой управлялись speedfan'ом, здесь ни один не определяется. мать Asrock 970 extreme 3, камень FX-6100. Очень нужно понизить шум. Средствами BIOS получить желаемого результата не удалось. При вводе pwmconfig получаю- current speed: 0 ... skipping! по всем позициям.
Если сенсоры не работают, см. http://help.ubuntu.ru/wiki/lm_sensors (добавить параметры при загрузке)
что делать если "/usr/sbin/pwmconfig: There are no fan-capable sensor modules installed"?
Сенсоры не дают доступа к утилите или дают как-то криво?
"Управление кулером Linux"
- вы со своими SEO-заголовками совсем о смысле из забываете. Хоть бы в одном из них уточнили, что речь о кулере процессора.
P.S: Linux сам по себе не имеет кулеров - это операционная система 🙂
Вот именно, что нет кулеров. Сложно догадаться было?)
Спасибо, хотел добавить, чтобы работала регуляция, кулер нужно подключать к 4 pin разъему на плате, если подключить к 3 pin, будет просто максимальная скорость
А как определить температуру и обороты для каждого из датчиков/кулеров минимальную-максимальную? Там ведь задавай какую хочешь, как я понимаю? Спецификации, рекомендации или еще что-то есть, куда курить?
Опытным путём. Смотри при какой нагрузке какая температура и обороты (примерно). У кулера обороты не линейно растут, а по ступенькам: 400/1000/1600/2400 -- примерно так (для ноута). Шум появляется примерно от 2400 об.
Подскажите пожалуйста, что делать если после команды sudo systemctl enable lm_sensors default такая ошибка: Failed to enable unit: Unit file lm_sensors.service does not exist.
Столкнулся с аналогичной ошибкой. Две неточности в строке команды. Надо:
sudo systemctl enable lm-sensors fancontrol
сука такой отстой а что нельзя программистам все по умолчанию настроить сука, куда не залезешь так что то вычитывать надо , выискивать, настраивать, а когда пользоваться? Такое ощущения ,что эта система будет управлять космо кораблем, по сути на ней толком по у молчанию не чего не делаешь, например просто видео посмотреть в ютубе и сука один хуй тебе надо что то там изыскивать, делать чтоб кровь из глаз не шла, или чтоб шум кулеров не напрягал, а чтоб поиграть так надо вообще программистам быть и в секту вступить а еще хотят новичков заманить они то в винде ничего не делают годами а в линуксе вообще сума сойдут и ослепнут,Когда уже эти люди которые этим от души занимаются в кавычках будут уже настраивать все из коробки а не тестировать на нас с вами и на нашем железе .Я уже год как пробую подружится с линуксом 3 компа имею один из них ноут и на каждом из них проблемы это я еще не играю, конечно интерес имею но сука не я не мазохист на дворе 2020 век ну сука такой отстой да потому что в подвалах кулибины на коленке херачат
последний пост, правду матку рубит
Не видит вентилятор, что я делаю не так?
Found the following PWM controls:
hwmon5/pwm1 current value: 255
Giving the fans some time to reach full speed...
Found the following fan sensors:
hwmon5/fan1_input current speed: 0 ... skipping!
There are no working fan sensors, all readings are 0.
Make sure you have a 3-wire fan connected.
You may also need to increase the fan divisors.
See doc/fan-divisors for more information.
Что-то странно работает кулер. При установке fancontrol он действительно остановился.
Судя по тому, что выдал терминал кулер доступен по hwmon6, но когда я пытаюсь вручную им управлять он просто останавливается, и включается только когда возвращаешь старое значение в pwm1_enable
# echo 1 >>/sys/class/hwmon/hwmon6/pwm1_enable
# echo 255 >> /sys/class/hwmon/hwmon6/pwm1
# echo 2 >>/sys/class/hwmon/hwmon6/pwm1_enable
Found the following devices:
hwmon0 is AC0
hwmon1 is acpitz
hwmon2 is BAT0
hwmon3 is coretemp
hwmon4 is soc_dts0
hwmon5 is soc_dts1
hwmon6 is asus
hwmon7 is nouveau
Found the following PWM controls:
hwmon6/pwm1 current value: -1
hwmon6/pwm1 is currently setup for automatic speed control.
In general, automatic mode is preferred over manual mode, as
it is more efficient and it reacts faster. Are you sure that
you want to setup this output for manual control? (n)
Giving the fans some time to reach full speed...
Found the following fan sensors:
hwmon6/fan1_input current speed: 0 ... skipping!
Спасибо за статью! Только я на определенном шаге столкнулся с проблемой: после команды и ответа
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.
Выдало такую информацию:
/usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed
то есть / usr / sbin / pwmconfig: не установлены сенсорные модули с поддержкой pwm
И как быть? Следующие шаги настроек не получились естественно.
а кулер шумит сильно. Подскажите пожалуйста, что делать?
А как сделать настройки по умолчанию? В принципе в автоматическом режиме все было ок, а теперь прожал команду sudo pwmconfig и кулер без перерывно работает и шумит)
Удалите fancontrol c purge.
теперь другая проблема, кулер вообще перестал работать. теперь че то рыпит...иногда пытается включится, на долю секунды включается и тушится сразу, и постоянно издает какие то звуки похожие на рабочий факс)
В статье указано, что при настройке скоростей оборота, мне придется выбирать и минимальную, и максимальную, и критическую температуры. А если мне нужна только минимальная, а остальное я трогать не хочу?
В таком случае сохранятся дефолтные настройки, которые были ранее, или же fancontrol установит свои значения?
Автор, допиши статью нормально. У многих траблы с "There are no pwm-capable sensor modules installed".
Можно же было поподробней разобрать, как пофиксить? :((
автор, поправь текст:
sudo systemctl enable lm_sensors
sudo systemctl start lm_sensors
вместо lm_sensors должно быть lm-sensors
Хотелось бы добавить, что в Linux Mint 20-х версий, ручное управление находится немного не в том месте как описано в статье
echo 100 >> /sys/class/hwmon/hwmon2/pwm2 - включение ручного управления (выключится после перезагрузки компьютера)
echo 100 >> /sys/class/hwmon/hwmon2/pwm2 - минимальное значение (будут минимальные обороты) для 2-го вентилятора
echo 255 >> /sys/class/hwmon/hwmon2/pwm2 - максимальное значение (будут максимальные обороты) для 2-го вентилятора
Ну и само собой, чтобы эти датчики появились нужно в GRUB добавить параметр как описано в конце в этой статье: https://help.ubuntu.ru/wiki/lm_sensors
Для Linux Mint получится строка вида:
GRUB_CMDLINE_LINUX="acpi_enforce_resources=lax quiet splash"
Обновить параметры GRUB
sudo update-grub
И перезагрузить компьютер
Здравствуйте, а что делать, если после сохранения параметров регулировки пишет не удалось записать в файл?
Для установки в fedora36 ,нужно искать lm_sensors ( а не с "тире" по середине)
Как всё это выполнить в альт линуксе?
Сам разобрался, запускал su без минуса