Управление скоростью вращения вентиляторов linux

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

Читаете, вы, сейчас эти строки и слышите равномерный, в меру громкий шум кулера. Однозначно слышите, иначе вас бы не заинтересовала эта статья. На самом деле громкая работа кулера в Linux довольно частая проблема недавно перешедших с Windows-пользователей. А ведь он не должен так шуметь. В Windows, обороты вентилятора и многие другие параметры управляются автоматически в зависимости от нагрузки на систему и следовательно температуры оборудования, здесь же из коробки вентилятор всегда крутится на полную мощность, независимо от того, играете вы тяжелую игру, компилируете программу или просто просматриваете интернет страницы. Это нужно исправлять. В этой инструкции мы рассмотрим управление кулером Linux и настройку автоматической регуляции оборотов в зависимости от температуры.

Подготовка системы

Чтобы правильно управлять и ничего не спалить, ну на самом деле и ничего не сгорит, компьютер просто уйдет в перезагрузку, но все же… нам нужно знать температуру оборудования в данный момент. Для снятия показаний со всяких датчиков на материнской плате используется набор программ lm_sensors. Сначала настроим lm_sensors затем управление кулером linux.

Установка lm_sensors

Это, можно сказать, системный компонент, поэтому он есть в репозиториях всех дистрибутивов.

Для Ubuntu или Debian команда установки выглядит следующим образом:

Для Fedora и RHEL:

Также для Gentoo в ядре необходимо будет включить следующие функции:

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

Настройка lm_sensors

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

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

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

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

Уже можем посмотреть показания сенсоров:

Здесь показаны не только температура, но и обороты кулера, а также напряжение. Но это не главное, у нас есть информация и мы можем переходить к следующему пункту.

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

Управление оборотами вентилятора linux выполняется с помощью сервиса fancontrol.

Для установки в Ubuntu:

После установки переходим к настройке автоматического регулирования оборотов кулера. Сначала нужно программно связать каждый кулер с соответствующим ему датчиком температуры, и настроить допустимый уровень температур. Для этого выполните:

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

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

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

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

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

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

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

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

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

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

Сохранить и выйти под номером 5.

Добавляем fancontrol в автозагрузку:

Чувствуете? тишина… теперь fancontrol управляет вашими кулерами и шума без надобности больше не будет.

Читайте также:  Easy context menu для windows 10

Ручное управление оборотами кулера

Меня всегда интересовало, как вручную выключить кулер. Сразу забегая на перед скажу, что ничего не сгорит, температура просто будет плавно расти. Если запущен fancontrol останавливаем, чтобы не мешал:

Смотрим доступные устройства:

Здесь pwm1, pwm2.. это файлы кулеров. Разрешаем ручное управление вентилятором linux, например, для pwm1:

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

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

Выводы

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

Источник

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

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

Но, если все в порядке то мы может приступить к тому, чтобы рассказать вам как управлять кулером в Linux.

Установка LM-Sensors

Установите lm-sensors и пакеты fancontrol.

Или с помощью команды для установки LM-Sensors в системе Ubuntu или Debian:

sudo apt-get install lm-sensors

sudo yim installlm-sensors

Для Gentoo нужно использовать эту команду:

sudo emerge -av lm-sensors

Настройка lm-sensors

Управление кулером в Linux является очень простым. Но, перед эти нужно правильно установить и настроить программное обеспечение.

  • В терминальных типах датчики sudo — обнаруживают и отвечают ДА всем YES / no questions.
  • В конце обнаружения датчиков отобразится список модулей, которые необходимо загрузить.

Введите «Yes», чтобы обнаружить датчики, вставить эти модули в / etc / modules или отредактировать / etc / modules самостоятельно.

Запустите sudo service module-init-tools restart. Это действие прочитает изменения, внесенные вами в / etc / modules на шаге 3, и вставьте новые модули в ядро.

Примечание. Если вы используете Ubuntu 13.04 или выше, эта команда 3-го шага должна быть заменена запуском sudo service kmod start.

Установка Fancontrol

Управление оборотами вентилятора вашего кулера происходит с помощью специальной программы. Эта программа очень просто устанавливается. Делается это также через командную строку как и в способе выше. Чтобы установить программу для операционной системы Ubuntu или Debian, нужно использовать эту команду:

sudo apt-get install fancontrol

для Fedora или RedHat

Настройка Fancontrol

В терминале типа sudo pwmconfig. Этот скрипт остановит каждый вентилятор в течение 5 секунд, чтобы узнать, какие вентиляторы можно контролировать, с помощью ручного управления PWM. После того, как скрипт будет проходить через все вентиляторы, вы можете настроить, какой вентилятор соответствует температуре.

В моем случае я установил интервал до 2 секунд. Если говорить про управление кулером в Linux то можно отметить автозапуск настроек. Об этом мы поговорим в следующем пункте нашего руководства.

Настройка службы fancontrol

Запустите sudo service fancontrol start. Это также приведет к автоматическому запуску службы fancontrol при запуске системы. Это сделает управление кулером в Linux полностью автоматизированным после указанных настроек.

Ручное управление оборотами кулера

Если вы хотите организовать управление оборотами кулера через терминал вручную, каждый раз вводя команду — то, мы расскажем как это сделать. Для начала введите команду для отключения Fancontrol:

sudo systemctl stop fancontrol

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

$ ls /sys/class/hwmon/hwmon1/device/ | grep pwm

Здесь будет значение pwm1 или pwm2 — это файлы кулеров. Далее, нужно разрешить ручное управление вентилятором Linux, например для pwm2:

Читайте также:  Disk partitions mac os

root $ echo 1 >>/sys/class/hwmon/hwmon1/device/pwm2_enable

Включаем кулер на всю мощь с помощью этой команды:

root $ echo 255 >> /sys/class/hwmon/hwmon1/device/pwm2

а теперь давайте сведем обороты в стандартный режим:

root $ echo 2 >> /sys/class/hwmon/hwmon1/device/pwm1

Выводы

Управление кулером в Linux является очень простым. Мы рассказали как это можно сделать с помощью программ самостоятельно через терминал. Но, если у вас есть вопросы — задавайте их в комментарии. Перед написание обязательно укажите каким дистрибутивом вы пользуетесь.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Управление кулером в Ubuntu при помощи fancontrol

После покупки минисервера появилась необходимость контролировать обороты кулеров, чтобы убрать вообще издаваемый шум.

Для того чтобы это сделать необходимо поставить пакет lm-sensors.
apt-get install lm-sensors

В папке /etc/init.d/ появляется новый скрипт fancontrol который периодически опрашивает датчики и если необходимо меняет обороты.

Для получения данных об оборотах куллеров необходимо выполнить комманду:

# sensors
it8718-isa-0290
Adapter: ISA adapter
in0: +1.17 V (min = +0.00 V, max = +4.08 V)
in1: +1.82 V (min = +0.00 V, max = +4.08 V)
in2: +3.39 V (min = +0.00 V, max = +4.08 V)
in3: +4.08 V (min = +0.00 V, max = +4.08 V) ALARM
in4: +3.15 V (min = +0.00 V, max = +4.08 V)
in5: +0.03 V (min = +0.00 V, max = +4.08 V)
in6: +1.23 V (min = +0.00 V, max = +4.08 V)
in7: +4.08 V (min = +0.00 V, max = +4.08 V) ALARM
in8: +4.08 V
fan1: 537 RPM (min = 0 RPM)
fan2: 891 RPM (min = 0 RPM)
fan3: 0 RPM (min = 0 RPM)
temp1: -53.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor
temp2: -2.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor
temp3: +20.0°C (low = +127.0°C, high = +90.0°C) sensor = thermal diode
cpu0_vid: +0.000 V
coretemp-isa-0000
Adapter: ISA adapter
Core 0: +47.0°C (high = +86.0°C, crit = +100.0°C)
coretemp-isa-0001
Adapter: ISA adapter
Core 1: +47.0°C (high = +86.0°C, crit = +100.0°C)

Fan1: обороты кулера процессора.

Fan2: обороты внешнего кулера, который подключается отдельно (у меня отдельно подключена 120-тка)

Для управления используются файлы /sys/class/hwmon/hwmon0/device/fan1_input и /sys/class/hwmon/hwmon0/device/fan2_input

Взависимости от числа записанного в файле меняется скорость вращения (и шума) кулера.

Для того чтобы включить кулер на «полную» можно сделать так:
echo «255» > /sys/class/hwmon/hwmon0/device/fan1_input

Чтобы у знать какое число отвечает за какие обороты необходимо выполнить команду pwmconfig

При запуске команды запустится утилита которая выдаст список оборотов и число которое необходимо посылать в файл /sys/class/hwmon/hwmon0/device/fan1_input, такого плана:
hwmon0/device/pwm1
PWM 255 FAN 1713
PWM 240 FAN 1713
PWM 225 FAN 1642
PWM 210 FAN 1527
PWM 195 FAN 1400
PWM 180 FAN 1285
PWM 165 FAN 1153
PWM 150 FAN 1036
PWM 135 FAN 902
PWM 120 FAN 784
PWM 105 FAN 829
PWM 90 FAN 1106
PWM 75 FAN 0
Fan Stopped at PWM = 75

Как показывает вывод самые большие обороты у кулера при значении 255, а если передать что-то ниже 75 кулер остановится вообще.

Теперь необходимо настроить файл которые отвечает за обороты и температуру (взаимосвязь температура = обороты) /etc/fancontrol :

У меня он имеет вид:
INTERVAL=3
FCTEMPS=hwmon0/device/pwm1=/sys/bus/platform/drivers/coretemp/coretemp.0/temp1_input hwmon0/device/pwm3=/sys/bus/platform/drivers/coretemp/coretemp.0/temp1_input
FCFANS= hwmon0/device/pwm1=hwmon0/device/fan1_input hwmon0/device/pwm3=hwmon0/device/fan2_input
MINTEMP=hwmon0/device/pwm1=30 hwmon0/device/pwm3=30
MAXTEMP=hwmon0/device/pwm1=60 hwmon0/device/pwm3=60
MINSTART=hwmon0/device/pwm1=120 hwmon0/device/pwm3=120
MINSTOP=hwmon0/device/pwm1=75 hwmon0/device/pwm3=0

И посмотреть используя sensors какие сейчас обороты и какая температура.

Источник

Еще один способ управления вентилятором в Linux (на примере Acer S3-391)

Понадобился мне однажды для работы ноутбук. Уж не помню почему, но выбор пал на Acer S3-391, тонкий, легкий, быстрый, но не лишенный недостатков. Кроме плохого экрана (который кстати не так просто заменить — у него особый коннектор, и возможно он приклеен к рамке), особенно меня раздражал шум вентилятора.
Пути решения этой проблемы я и постараюсь осветить в этой статье.

Читайте также:  Windows server 2012 диспетчер задач пользователи

Прочитав статью Управляем вентилятором ноутбука через DSDT в Linux и не только, как и автор, я начал усердно гуглить в сторону ACPI и DSDT, даже перекомпилировал и подключил свою таблицу, но найти «ту самую» строчку кода отвечающую за работу вентилятора так и не удалось.

Тем временем шум вентилятора, меня все больше деморализировал. При чем, если на работе шум системников и кондиционера еще как-то перебивал, то дома, наедине со своими тараканами, вентилятор методично разрушал мою психику.
Решено было на время вернуться в Win7.

Как обстоят дела в Win

Для ОС от Майкрософт написано очень много программ для управлени вентилятором, все он по большей части заточены в лучшем случае под одного производителя. Что наводило на неприятные мысли.
Но тем не менее была найдена относительно универсальная программа NBFC, которая сразу заработала, требовалось лишь выставить тригеры переключения оборотов.

Какое-то время решение меня устраивало, но на душе все равно было как-то неспокойно.

Возвращение домой

После пары недель использования вынды понял что неудобно. Нужно было решение для непокоренного пингвина.
Тогда я решил все таки разобраться как же работает вышеупомянутая программа.

Решение было не то что бы совсем на поверхноости, но точно не глубоко. Точнее в мануале приложенном к софтине.

Было найдено «правильное слово» по которому нужно гуглить: Embedded Controller (EC).

как написано на rom.by
Embedded Contoller — это встроенный контроллер типа Hitachi H8 (он же — Renesas), Winbond W83L950D, предназначенный для управления платформой (как правило — мобильной) как на уровне включения и выключения, так и для обработки ACPI-событий. В задачи EC-контроллера входит обслуживание аккумулятора мобильной платформы: выбор режима его заряда, контроль разрядки. Как правило, на мобильных платформах с помощью EC-контроллера реализуется и контроллер клавиатуры.

Оказалось что состояние вентилятора так же записывается в регистры этого контроллера.
Отавалось решить 2 задачи:
1) Какие регистры отвечают за состояние вентилятора
2) Как изменять их значение

Решение

С первой задачей помогла справится все также программка NBFC. Всего-то и нужно было посмотреть значения в конфиге для своего ноутбука (ультрабука?)
А с задачей «Как?» помог справится скрипт на перле шестилетней давности, который заработал сразу и без правок.

В общем-то все можно было бы и успокоиться, но хотелось немного увтоматизировать процесс, в результате чего появилось целых 3 скрипта, возможно и можно было все решить одним, но мои познания в программировании крайне ограничены, а на перле я вообще не писал никогда, если кто подскажет как это все упростить и сделать так что бы управляющий скрипт автоматически перезапускался после сна/пробуждения устройства — буду благодарен.

Собственно сами скрипты:

Просто скопируйте в /usr/local/bin/ и дайте права на выполнение

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

Если у вас другой ноутбук, с той же проблемой вам скорее всего потребуется изменить значения записываемого регистра
В этом нам помогут конфиги написанные для уже неоднократно упоминавшейся NBFC
Если ничего найти не удалось то можно попробовать узнать значения запустив:

Если регистры, и их значения подобраны верно просто выполняем в консоли:

вентилятор должен изменить обороты.
Profit!

Спасибо за внимание, надеюсь материал будет кому-нибудь полезен.
Критика, дополнения и улучшения приветствуются.

Источник

Оцените статью