Главная >> Инструкции >> Управление кулером Linux

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

Читаете, вы, сейчас эти строки и слышите равномерный, в меру громкий шум кулера. Однозначно слышите, иначе вас бы не заинтересовала эта статья. На самом деле громкая работа кулера в 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 в ядре необходимо будет включить следующие функции:

Device Drivers —>
-*- I2C support —>
<*> I2C device interface
<*> Hardware Monitoring support —>
//вообще говоря, лучше включить все драйвера оборудования а потом посмотреть какие загрузятся и отключить ненужные.
[M] Intel Core/Core2/Atom temperature sensor (coretemp)

Не забудьте пересобрать все пакеты с флагом lm_sensors

Настройка lm_sensors

Теперь нам нужно найти и записать информацию обо всех доступных сенсорах, для этого выполните:

sudo sensors-detect

После запуска команды нужно будет последовательно нажимать y, чтобы подтвердить сканирование следующей группы устройств, затем Enter:

Now follows a summary of the probes I have just done.
Just press ENTER to continue:

А потом опять y для сохранения собранной конфигурации в файл:

Do you want to overwrite /etc/conf.d/lm_sensors? Enter s to specify other file name?
(yes/NO/s):

Далее, добавляем сервис в автозагрузку:

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.

Сначала программа покажет доступные драйверы вентиляторов:

Found the following fan sensors:
hwmon1/device/fan1_input current speed: 3292 RPM
hwmon1/device/fan2_input current speed: 0 … skipping!
hwmon1/device/fan3_input current speed: 0 … skipping!

Здесь вы видите предупреждение о том что вентиляторы linux будут отключены на некоторое время (5 секунд), как прочитаете нажмите Enter. Дальше будет выполнено тестирование доступных скоростей кулера:

Testing pwm control hwmon1/device/pwm1 …
hwmon1/device/fan1_input … speed was 3292 now 1051
It appears that fan hwmon1/device/fan1_input
is controlled by pwm hwmon1/device/pwm1
Would you like to generate a detailed correlation (y)? y
Note: If you had gnuplot installed, I could generate a graphical plot.
PWM 255 FAN 3276
PWM 240 FAN 3169
PWM 225 FAN 3026

Дальше настроим максимальную, минимальную и рабочую температуры, сначала выберите кулер, например 1:

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

select (1-n): 1

Теперь выберите датчик температуры для этого кулера:

Devices:
hwmon0 is k10temp
hwmon1/device is it8712
Current temperature readings are as follows:
hwmon0/temp1_input 37
hwmon1/device/temp1_input 47
hwmon1/device/temp2_input 40
hwmon1/device/temp3_input -128
Select a temperature sensor as source for hwmon1/device/pwm3:
1) hwmon0/temp1_input
2) hwmon1/device/temp1_input
3) hwmon1/device/temp2_input
4) hwmon1/device/temp3_input
5) None (Do not affect this PWM output)

select (1-n): 1

Теперь укажите температуру, при которой вентилятор linux будет вращаться на минимальной скорости:

Enter the low temperature (degree C)
below which the fan should spin at minimum speed (20): 45

Затем температуру, при которой нужно переходить на максимальные обороты:

Enter the high temperature (degree C)
over which the fan should spin at maximum speed (60): 60

Далее, нужно указать минимальное значение оборотов pwm, можно узнать нажав кнопку t

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

Какое значение pwm использовать если температура превышает минимальную, по сути, это рабочие обороты:

Enter the PWM value (0-2) to use when the temperature
is below the low temperature limit 100

Какое значение использовать при превышении максимальной температуры:

Enter the PWM value (2-255) to use when the temperature
is over the high temperature limit (255): 255

Готово теперь, остается настроить таким же образом другие кулеры, если у вас их несколько и можно сохранять:

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

Сохранить и выйти под номером 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:

echo 1 >>/sys/class/hwmon/hwmon1/device/pwm1_enable

Включаем на полную:

echo 255 >> /sys/class/hwmon/hwmon1/device/pwm1

А теперь на минимум:

echo 0 >> /sys/class/hwmon/hwmon1/device/pwm1

Выводы

Теперь вы достаточно знаете и управление кулером не вызовет у вас проблем. Вы можете заставить свой компьютер или ноутбук не шуметь и не мешать вам спать ночью. В современных системах это вовсе может не понадобится, там кулером управляет UEFI и не допускает того чтобы он крутился быстрее, чем это необходимо. Если остались вопросы, пишите их в комментариях!

44 комментария к “Управление кулером Linux”

  1. Неделю назад переехал с Виндовс 10 на ROSA Desktop Fresh R7. В фоновом режиме заметил шум кулера. Системный монитор показывает наличие 188 процессов. ЦП загружен на 20%. В Десятке при аналогичных обстоятельствах (работает только браузер) диспетчер показывал 70 процессов и 1-2 % загрузки ЦП. А ещё был антивирус. (Ноутбук Aspire 5750G-2454G64Mnkk - довольно сильная машина).

    Ответить
    • >>>Системный монитор показывает наличие 188 процессов. ЦП загружен на 20%<<<
      Это на КДЕ. А КДЕ, как известно очень жрачное ДЕ.
      Сижу на манжаре (допиленной) в простое 260-300 мб памяти, проц 1-2%! При openbox, его и надо ставить вместо ДE, он меньше потребляет и нет свистоперделок!
      А десятка, что десятка? Отношение к пользаку как к идиоту заставило меня удалить её.

      Ответить
  2. Попробовал на домашнем и на рабочем компьютере, на обоих Минт 17.3 XFCE:

    /usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed

    То ли не повезло с поддержкой мат. плат (хотя они обе древние, 4-5 лет каждой) либо еще что-то.

    Ответить
  3. Стоит 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.

    Что можно сделать еще?

    Ответить
  4. А нет ли, случайно, какой-нибудь утилиты для контроля вентиляторов, с графическим интерфейсом? Ну, знаете, как на Windows есть штатные, в том числе. Которые, так сказать, поставляются в комплекте с системной платой. Asus Suite II, например. На Linux она не устанавливается, ни с диска, ни с сайта. Если бы найти что-то похожее...

    Ответить
      • А есть ли способ борьбы с пресловутым
        /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 ситуацию не исправила.

  5. Здравствуйте! Подскажите как быть, куда копать.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! по всем позициям.

    Ответить
  6. "Управление кулером Linux"
    - вы со своими SEO-заголовками совсем о смысле из забываете. Хоть бы в одном из них уточнили, что речь о кулере процессора.

    P.S: Linux сам по себе не имеет кулеров - это операционная система 🙂

    Ответить
  7. Спасибо, хотел добавить, чтобы работала регуляция, кулер нужно подключать к 4 pin разъему на плате, если подключить к 3 pin, будет просто максимальная скорость

    Ответить
  8. А как определить температуру и обороты для каждого из датчиков/кулеров минимальную-максимальную? Там ведь задавай какую хочешь, как я понимаю? Спецификации, рекомендации или еще что-то есть, куда курить?

    Ответить
    • Опытным путём. Смотри при какой нагрузке какая температура и обороты (примерно). У кулера обороты не линейно растут, а по ступенькам: 400/1000/1600/2400 -- примерно так (для ноута). Шум появляется примерно от 2400 об.

      Ответить
  9. Подскажите пожалуйста, что делать если после команды sudo systemctl enable lm_sensors default такая ошибка: Failed to enable unit: Unit file lm_sensors.service does not exist.

    Ответить
  10. сука такой отстой а что нельзя программистам все по умолчанию настроить сука, куда не залезешь так что то вычитывать надо , выискивать, настраивать, а когда пользоваться? Такое ощущения ,что эта система будет управлять космо кораблем, по сути на ней толком по у молчанию не чего не делаешь, например просто видео посмотреть в ютубе и сука один хуй тебе надо что то там изыскивать, делать чтоб кровь из глаз не шла, или чтоб шум кулеров не напрягал, а чтоб поиграть так надо вообще программистам быть и в секту вступить а еще хотят новичков заманить они то в винде ничего не делают годами а в линуксе вообще сума сойдут и ослепнут,Когда уже эти люди которые этим от души занимаются в кавычках будут уже настраивать все из коробки а не тестировать на нас с вами и на нашем железе .Я уже год как пробую подружится с линуксом 3 компа имею один из них ноут и на каждом из них проблемы это я еще не играю, конечно интерес имею но сука не я не мазохист на дворе 2020 век ну сука такой отстой да потому что в подвалах кулибины на коленке херачат

    Ответить
  11. Не видит вентилятор, что я делаю не так?

    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.

    Ответить
  12. Что-то странно работает кулер. При установке 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!

    Ответить
  13. Спасибо за статью! Только я на определенном шаге столкнулся с проблемой: после команды и ответа
    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
    И как быть? Следующие шаги настроек не получились естественно.
    а кулер шумит сильно. Подскажите пожалуйста, что делать?

    Ответить
  14. А как сделать настройки по умолчанию? В принципе в автоматическом режиме все было ок, а теперь прожал команду sudo pwmconfig и кулер без перерывно работает и шумит)

    Ответить
  15. теперь другая проблема, кулер вообще перестал работать. теперь че то рыпит...иногда пытается включится, на долю секунды включается и тушится сразу, и постоянно издает какие то звуки похожие на рабочий факс)

    Ответить
  16. В статье указано, что при настройке скоростей оборота, мне придется выбирать и минимальную, и максимальную, и критическую температуры. А если мне нужна только минимальная, а остальное я трогать не хочу?

    В таком случае сохранятся дефолтные настройки, которые были ранее, или же fancontrol установит свои значения?

    Ответить
  17. Автор, допиши статью нормально. У многих траблы с "There are no pwm-capable sensor modules installed".
    Можно же было поподробней разобрать, как пофиксить? :((

    Ответить
  18. Хотелось бы добавить, что в 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
    И перезагрузить компьютер

    Ответить

Оставьте комментарий