Настройка авторегулирования оборотов вентиляторов в Elementary OS

Dmitry Kornev
  • 27 мая, 17:18
  • 398

В любом современном компьютере есть датчики температуры. Датчики встраиваются в процессоры, в материнские платы, в диски, в видеокарты. Не на всех, но на многих материнских платах также есть возможность наблюдать за скоростью и управлять скоростью вращения вентиляторов. Используя специальный софт можно связать одно с другим. Чтобы, только при повышении температуры вентиляторы начинали крутиться быстрее.

Я не нашёл для этой задачи софта с нормальным графическим интерфейсом. Может такой появится в будущем. Пока же есть только консольные программы. Благо, они дружелюбны. Настройка производится в режиме мастера. Вам задаются вопросы, вы выбираете варианты ответов. У меня настройка заняла около 5 минут.

Установка необходимого софта:

sudo apt install lm-sensors fancontrol

Запуск автоматического определения имеющихся в компьютере датчиков:

sudo sensors-detect

При этом сначала будут задаваться вопросы, хотим ли мы тестировать те или иные типы существующих в природе чипов. В принципе, можно не вникать, что за железо нам предлагают для тестирования. Можно нажимать всегда y и тестировать всё подряд.

В конце будет предложено сохранить найденное в файл конфигурации. Сделайте это, если результат тестирования вас удовлетворит, если будут найдены хоть какие-нибудь датчики.

Результат для моего компьютера

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

sudo service module-init-tools restart
sensors
Результат для моего компьютера

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

У меня к материнской плате подключен только один вентилятор, из трёх возможных. Этот единственный вентилятор на процессоре. Им я и хотел управлять. По умолчанию он был включен на полные обороты. Скорость вращения видна в выдаче.

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

sudo pwmconfig

Не торопитесь, читайте, что пишет и спрашивает программа. Делает она это, к сожалению, по английски. Но текст можно копировать, например, в Google-переводчик. Важно понимать, что вы делаете.

Результат для моего компьютера

Теперь комментарии к моему примеру.

Смысл первого этапа в том, что программа видит, какие есть датчики оборотов. Каждый датчик/вентилятор она пытается затормозить на 5 секунд. Нужно подтвердить, было снижение оборотов или нет. Если снижение вы подтверждаете, то программа для этого датчика дополнительно предлагает попробовать плавную регулировку оборотов.

В моём случае один вентилятор и 3 датчика. Первым программа попыталась управлять, но результата никакого не было. Управление вторым датчиком имело результат — обороты снизились. Дополнительно произведён тест плавного регулирования оборотов. От тестирования третьего датчика я отказался.

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

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

Вот тут было довольно неудобно. Показываются коды датчиков температуры и сами температуры. Можно лишь приблизительно ориентироваться, какие из них какие. А ещё надо сообразить, к чему лучше привязываться.

У меня управление оборотами вентилятора, который на процессоре. Не составило труда определить датчики температуры для каждого из четырех его ядер. Ещё, по температуре я сразу узнал датчик видеокарты. Но это всё не то. Лучше всего для мой задачи подошёл бы какой-нибудь общий датчик температуры процессора. Позднее я его все же идентифицировал.

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

В общем, тут выбор у каждого свой. Я вначале выбрал почти наугад, но позднее потестировал, как всё это работает при нагрузке. Оказалось, что выбор сделан правильный. Нагружая процессор, температура выбранного датчика меняется довольно быстро и обороты вентилятора при этом начинали постепенно расти.

В случае необходимости можно изменить выбор. Это можно сделать вручную, просто отредактировав файл конфигурации /etc/fancontrol. Ну или запустить снова мастер настройки. Я рекомендую второй вариант. Он значительно проще и последующие разы отвечать на вопросы можно практически не задумываясь, тратя, таким образом, минимум времени.

В мастере настройки я указал, что до температуры 40°C обороты вентилятора должны быть минимальны. Максимальные обороты при температуре 60°C. Далее выбрал сохранение результатов и выход.

Чтобы настройки начали работать нужно запустить фоновый сервис:

sudo service fancontrol start

У меня при этом сразу наступила тишина.

Ещё команды, которые стоит знать:
sudo service fancontrol stop
sudo service fancontrol restart

Соответственно, остановка и перезапуск фонового сервиса fancontrol.

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

Вторая команда оптимальна при ручном редактировании файла конфигурации.


PS

Чтобы показания датчиков всегда были легкодоступны рекомендую программу Psensor. Её можно найти в штатном AppCenter. Настраивается очень гибко. Можно отключить показ ненужных датчиков. Можно задать для каждого своё название. Можно вывести какой-нибудь из датчиков прямо на панель. В общем, отличная программа:

Программа Psensor в Elementary OS

Обсуждения

R.rusya
14 августа, 15:36
Уважаемый разработчик Кита, osergeyv, хотелось бы узнать по поводу поля sub-title, можно как то... КИТ Интернет телепрограмма...
Dmitry Kornev
13 августа, 11:16
Спасибо! Обновил у себя и текст поправил. Установка Double Commander...
Dmitry Kornev
13 августа, 07:22
В твиттере иногда что-нибудь проскакивает. Но новой версии все нет, терпение уже кончается. Обсуждаем Elementary OS
Dmitry Kornev
7 августа, 04:09
Подключится к нему можно только через локальную сеть. Удаленно, через интернет, невозможно. Да у меня и... Huawei LTE CPE E5172s-22
Dmitry Kornev
21 июля, 09:00
Спасибо за подсказку. Текст давно писался, возможно ситуация поменялась. Поправил. Unreal Media Server

Комментарии