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

Материал из support.qbpro.ru
Версия от 03:14, 23 апреля 2026; Vix (обсуждение | вклад) (Новая страница: «==Введение== Управление скоростью вращения вентилятора позволяет продлить срок службы системного оборудования и повысить производительность как аппаратного, так и программного обеспечения. По крайней мере, это может повысить энергоэффективность, св...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Введение

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

  • В этом уроке мы расскажем о способах управления скоростью вращения вентилятора в Linux.

Использование fancontrol

  • lm-sensors — это инструмент для мониторинга аппаратных датчиков в системе, в том числе датчиков температуры, скорости вращения вентилятора и напряжения.
  • fancontrol — это утилита lm-sensors, которая регулирует скорость вращения вентилятора в зависимости от температуры системы. Разумеется, мы можем настроить скорость вращения при разных температурах.

Установка lm-sensors

Чтобы использовать fancontrol в нашей системе на базе Debian, мы установим lm-sensors с помощью apt:

$ sudo apt update && sudo apt install lm-sensors
  • Однако если мы используем дистрибутив на основе RHEL, например CentOS, мы установим lm-sensors с помощью dnf:
$ sudo dnf -y install lm_sensors
  • Затем, после установки lm-sensors, мы проверим, все ли прошло успешно:
$ sensors -v
sensors version 3.6.0 with libsensors version 3.6.0

Обнаружение датчиков и определение модулей для загрузки

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

$ sudo sensors-detect
  • При запуске sensors-detect мы получим как минимум четыре запроса.

Первая проверка обычно направлена на поиск встроенных в центральный процессор датчиков, южных мостов и контроллеров памяти. Затем, как минимум, проверяются порты ввода-вывода ISA, адаптеры I2C/SMBus и датчики, встроенные в микросхемы ввода-вывода.

  • sensors-detect сообщит нам, обнаружен ли какой-либо датчик. Кроме того, он может вернуть список модулей ядра, которые необходимо загрузить для lm-sensors корректной работы.

Запуск датчиков помогает нам проверить, исправно ли они работают.

$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +35.0°C  (high = +80.0°C, crit = +100.0°C)
Core 0:        +33.0°C  (high = +80.0°C, crit = +100.0°C)
Core 1:        +31.5°C  (high = +80.0°C, crit = +100.0°C)

...truncated...

atk0110-acpi-0
Adapter: ACPI interface
Vcore Voltage:     1.08 V  (min =  +0.80 V, max =  +1.60 V)
+3.3 Voltage:      3.32 V  (min =  +2.97 V, max =  +3.63 V)
+5 Voltage:        5.03 V  (min =  +4.50 V, max =  +5.50 V)
+12 Voltage:      12.10 V  (min = +10.20 V, max = +13.80 V)
CPU FAN Speed:    1200 RPM  (min =  600 RPM, max = 2000 RPM)
Chassis FAN Speed:1200 RPM  (min =  600 RPM, max = 2000 RPM)
  • В некоторых случаях скорость вращения вентилятора может не отображаться или быть нулевой. Чтобы это исправить, можно увеличить делитель для датчиков вентилятора при настройке fancontrol.

Настройка fancontrol

После запуска sensors-detect мы запустим pwmconfig, чтобы настроить fancontrol:

$ sudo pwmconfig
  • Обычно после установки lm-датчиков должны быть доступны pwmconfig и fancontrol . Но в некоторых случаях нам, возможно, придется устанавливать fancontrol отдельно, чтобы использовать pwmconfig и fancontrol.
  • pwmconfig выполняет поиск датчиков, поддерживающих управление с помощью широтно-импульсной модуляции. Во время работы программа выводит различные подсказки для настройки обнаруженных датчиков. Однако подсказки могут отличаться в зависимости от аппаратного обеспечения и конфигурации системы.
  • После завершения работы pwmconfig система создаст файл конфигурации /etc/fancontrol:
$ cat /etc/fancontrol
INSIDE=thermal_zone0
FULL=100
MAXTEMP=70
MINTEMP=40
MINSTART=40
MINSTOP=0
MINPWM=20
FANTIME=10
FANPWM=255

  • Как показано выше, /etc/fancontrol содержит наши ответы на запросы pwmconfig. Мы можем отредактировать его, если нам нужно обновить или изменить настройки fancontrol.

После создания файла конфигурации fancontrol мы запустим демон fancontrol:

$ sudo systemctl start fancontrol
  • После этого fancontrol сможет регулировать скорость вращения вентиляторов в соответствии с настройками, заданными в /etc/fancontrol.

Использование nbfc-linux

  • nbfc-linux — это сокращение от «Notebook Fan Control — Linux». Это реализация оригинального nbfc для Linux, которая управляет скоростью вращения вентилятора в соответствии с заданными температурными пороговыми значениями.
  • Установка nbfc-linux

Чтобы установить nbfc-linux, сначала клонируем репозиторий GitHub:

$ git clone https://github.com/nbfc-linux/nbfc-linux.git
  • Затем мы перейдем в локальную копию репозитория и установим пакет с помощью make и make install:
$ cd nbfc-linux/ && make && sudo make install
  • Использование nbfc-linux

После установки nbfc-linux программа предложит подходящую конфигурацию для нашей системы:

$ nbfc config -r
  • В качестве альтернативы мы могли бы получить список готовых конфигураций:
$ nbfc config -l
...truncated..
Acer Aspire 1410
...truncated...
Asus Zenbook UX530U
...truncated...
Dell Inspiron 7348
...truncated...
HP Laptop 14-cm0xxx
...truncated...
Xiaomi Mi Book (TM1613, TM1703)
  • Затем мы можем применить одну из этих конфигураций к нашей системе:
$ sudo nbfc config -a "HP Laptop 14-cm0xxx"
  • После применения конфигурации мы можем запустить службу nbfc:
$ sudo nbfc start

Аппаратные средства управления вентиляторами

  • nbfc-linux и fancontrol предлагают управление вентиляторами без привязки к конкретному оборудованию. Но существуют специализированные инструменты для управления вентиляторами, которые могут пригодиться, если универсальные варианты не работают.
  • i8kutils — это инструмент для управления скоростью вращения вентилятора и контроля температуры на некоторых ноутбуках Dell. По умолчанию он настроен на определенные параметры, но пользователи могут изменить их по своему усмотрению.
  • thinkfan — это инструмент для управления вентилятором, который регулирует скорость вращения вентилятора в ноутбуках Thinkpad в соответствии с температурными пороговыми значениями, заданными в конфигурационном файле.
  • macfanctld получает данные о температуре процессора с датчиков вентиляторов на MacBook. Затем на основе полученных данных регулирует скорость вращения вентилятора.

Заключение

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