- Вопрос или проблема
- Плохие новости для Asus… в некотором роде
- Специфика для материнских плат серии Asus Z97
- Ответ или решение
- Проблема и решение: Установка управления скоростью вентиляторов в системе OpenSUSE
- Введение
- Основные моменты проблемы
- Рекомендации по устранению неполадок
- Asus-специфические проблемы
- Заключение
Вопрос или проблема
Я хотел бы изменить скорости вентиляторов на своем ПК. В настройках BIOS Asus это можно сделать с помощью PWM и DC (три из них подключены с помощью 4 контактов), но запущенная операционная система, похоже, имеет проблемы с выполнением этого.
Два, которые я хочу изменить вручную, имеют названия CHA_1FAN и CHA_2FAN на материнской плате.
> cat /etc/sensors3.conf | grep -i fan
# Вентиляторы
label fan1 "Вентилятор блока питания"
label fan2 "Вентилятор ЦП"
label fan3 "Системный вентилятор 2"
label fan4 "Системный вентилятор 3"
label fan5 "Системный вентилятор 4"
# Вентиляторы
label fan1 "Вентилятор ЦП"
label fan2 "Системный вентилятор 2"
label fan3 "Системный вентилятор 3"
label fan4 "Системный вентилятор 4"
label fan7 "Вентилятор блока питания"
> hwinfo | grep -i fan
acpi-fan: /devices/platform/PNP0C0B:03
acpi-fan: /devices/platform/PNP0C0B:01
acpi-fan: /devices/platform/PNP0C0B:04
acpi-fan: /devices/platform/PNP0C0B:02
acpi-fan: /devices/platform/PNP0C0B:00
acpi-fan: module = fan
type = "", modalias = "acpi:PNP0C0B:", driver = "acpi-fan"
type = "", modalias = "acpi:PNP0C0B:", driver = "acpi-fan"
type = "", modalias = "acpi:PNP0C0B:", driver = "acpi-fan"
type = "", modalias = "acpi:PNP0C0B:", driver = "acpi-fan"
type = "", modalias = "acpi:PNP0C0B:", driver = "acpi-fan"
E: DRIVER=acpi-fan
E: DRIVER=acpi-fan
E: DRIVER=acpi-fan
E: DRIVER=acpi-fan
E: DRIVER=acpi-fan
<6>[ 0.062442] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
fan 20480 0 - Live 0x0000000000000000
Driver Status: thermal,fan are active
Driver Activation Cmd: "modprobe thermal; modprobe fan"
> sudo pwmconfig
[sudo] пароль для root:
# pwmconfig revision $Revision$ ($Date$)
[...]
/usr/sbin/pwmconfig: Не установлены модули датчиков, поддерживающие pwm
heimchen@DESKTOP-G0NG8DL / [1]>
Система – OpenSuse Leap 15.5, и, похоже, lm-sensor не установлен. Я пытался скачать его из исходников и скомпилировать, что удалось, но на моем диске по-прежнему ничего с этим именем нет.
lm-sensors – это не отдельный инструмент, а пакет инструментов. Например, команда pwmconfig
является частью lm-sensors, так что ваше предположение, что “lm-sensors, похоже, не установлен”, неверно: поскольку pwmconfig
существует в вашей системе, значит, lm-sensors должен быть установлен, так или иначе.
Указанный в вашем выводе hwinfo
acpi-fan
не очень полезен: он в основном позволяет вам делать мягкие предложения вашей системе о том, сколько охлаждения, по вашему мнению, вам нужно. Если прошивка считает, что системе нужно больше охлаждения, чем вы предлагаете, она совершенно свободна игнорировать ваши предложения.
Для управления вентиляторами на основе pwmconfig
вам сначала нужно определить и загрузить драйвер чипа датчика, подходящий для вашей системы; обычно такой чип также содержит аппаратное управление скоростью для любых вентиляторов, которые можно контролировать программно. Самый простой и безопасный способ сделать это, вероятно, запустить sensors-detect
от имени root. Он задаст ряд вопросов о том, какие методы обнаружения запустить; на обычной настольной системе вы можете просто принять настройки по умолчанию.
Если sensors-detect
найдет какие-либо датчики и/или устройства PWM, он предложит создать файл, который автоматизирует загрузку драйверов для них при загрузке.
В неизмененном исходном коде файл, похоже, создается в соответствии с конвенциями Fedora/RedHat; другие дистрибутивы могут включать патчи, специфичные для дистрибутива, чтобы изменить эту часть в соответствии с собственными соглашениями о конфигурационных файлах дистрибутивов.
Так что, пока вы не станете более знакомы с lm-sensors и модулями ядра в общем, попробуйте сначала версию собственного дистрибутива sensors-detect
. Если вы попробуете более новую версию из неизмененных исходников (или даже самую последнюю версию разработки из их Git-репозитория), имейте в виду, что способ, которым она конфигурирует автоматическую загрузку модуля, может не соответствовать ожиданиям вашего дистрибутива. Возможно, вам придется самостоятельно настроить автоматическую загрузку модуля.
Если sensors-detect
оказался успешным, команда sensors
теперь должна показать вам блок напряжений, температур и значений скорости вентилятора, которые она ранее не могла отобразить. Это критически важное предварительное условие для вас: если sensors
не может контролировать ваши вентиляторы, то pwmconfig
определенно не сможет их регулировать.
Плохие новости для Asus… в некотором роде
Исторически адреса ввода-вывода чипов датчиков были свободно доступны для запущенного ядра операционной системы на большинстве настольных материнских плат. В настоящее время Asus, похоже, отклоняется от этой конвенции: современные материнские платы Asus все чаще помечают регистры чипов датчиков как “управляемые прошивкой, не трогать” в таблицах данных ACPI… и Linux по умолчанию будет уважать эти пометки. (Переопределить их возможно, но на ваш страх и риск.)
Вместо этого Asus, похоже, предоставляет интерфейс на основе прошивки (ACPI/WMI), который позволяет координированный доступ к чипу датчика как самой прошивке, так и запущенной ОС, что является хорошей идеей, если это хорошо реализовано. К сожалению, Asus, похоже, перепробовала несколько вариантов интерфейса, и разработчики мониторинга аппаратного обеспечения Linux пока не имеют полного списка того, какой метод доступа следует использовать с каждой моделью материнской платы Asus. Кроме того, код драйвера для некоторых из этих методов доступа все еще считается несколько экспериментальным.
Поскольку информация собирается по сути от людей, рассказывающих разработчикам, что им пришлось сделать, чтобы заставить мониторинг аппаратного обеспечения и управление вентиляторами работать для их материнских плат, ситуация медленно улучшается… но в худшем случае вам может потребоваться более новая версия ядра или даже (простой) пользовательский патч ядра, чтобы сказать ядру использовать конкретный интерфейс мониторинга, специфичный для Asus, с вашей моделью материнской платы.
Специфика для материнских плат серии Asus Z97
Согласно этому сообщению в списке рассылки разработчиков lm-sensors, чип контроля HW мониторинга/PWM вентилятора на материнской плате Asus серии Z97, похоже, является Nuvoton NCT6791D, который поддерживается модулем ядра nct6775
.
На момент написания этого текста эта материнская плата не указана в списках методов доступа ACPI, специфичных для Asus, самого нового ядра для чипа мониторинга аппаратного обеспечения, так что есть вероятность, что вам просто нужно загрузить модуль с помощью
sudo modprobe nct6775
и вы должны увидеть новую группу в выводе sensors
, которая должна начинаться с строки, подобной:
nct6791-isa-0290
Если это сработает, вам нужно будет настроить этот модуль для автоматической загрузки при загрузке, чтобы драйвер был постоянно доступен:
echo "nct6775" | sudo tee /etc/modules-load.d/hwmon.conf
Если вы не видите группу nct6791-isa-0290
в выводе sensors
, вашей системе может потребоваться использовать более новые методы доступа, но ядро еще не знает об этом. В этом случае вы можете попытаться разрешить доступ в старом стиле, добавив параметр загрузки ядра acpi_enforce_resources=lax
, на ваш страх и риск. Если вы это сделаете, ядро выведет сообщение в dmesg
, чтобы напомнить вам, что использование новых методов было бы лучшей идеей, если это возможно.
Для тестирования вы можете использовать меню GRUB, чтобы добавить этот параметр загрузки в строку linux
конфигурации GRUB для вашего текущего варианта загрузки, но если это работает для вас и не имеет вредных побочных эффектов, вы можете добавить его в переменную GRUB_CMDLINE_LINUX
в /etc/default/grub
и обновить свою конфигурацию GRUB, чтобы сделать это постоянным.
После загрузки с добавленным параметром загрузки ядра попробуйте снова загрузить модуль и посмотрите, показывает ли sensors
теперь информацию с чипа мониторинга. Если да, вы можете сделать загрузку модуля постоянной, как указано выше.
Из сообщения на списке рассылки, указанного выше, вы также можете получить блок конфигурации для вашего /etc/sensors3.conf
, который включает (надеюсь) правильные коэффициенты масштабирования для каналов мониторинга напряжения чипа мониторинга. После изменения конфигурационного файла выполните sudo sensors --set
, чтобы сделать новые коэффициенты масштабирования действительными.
Ответ или решение
Проблема и решение: Установка управления скоростью вентиляторов в системе OpenSUSE
Введение
Проблема с управлением скоростью вентиляторов в вашей системе OpenSUSE заключается в том, что команда pwmconfig
не может обнаружить управляемые вентиляторы на материнской плате, даже несмотря на то, что это возможно через UEFI BIOS. Данное руководство поможет вам разобраться с этой ситуацией и предложит потенциальные решения.
Основные моменты проблемы
-
Отсутствие управления вентилятором в
pwmconfig
: Командаpwmconfig
выдает сообщение: "There are no pwm-capable sensor modules installed". Это значит, что система не может обнаружить сенсоры, ответственные за управление скоростью вентиляторов. -
Информация о системных вентиляторах: Согласно вашим данным, вентиляторы
CHA_1FAN
иCHA_2FAN
имеют соответствующие 4-контактные подключения, что позволяет осуществлять управление скоростью через PWM (широтно-импульсная модуляция). -
Использование
lm-sensors
: Необходимо установить и настроить пакетlm-sensors
, который служит для мониторинга температуры, напряжения и скорости вращения вентиляторов.
Рекомендации по устранению неполадок
-
Проверьте наличие необходимых пакетов:
Убедитесь, чтоlm-sensors
установлен в вашей системе. Для этого выполните команду:zypper se lm_sensors
Если он не установлен, выполните:
sudo zypper install lm_sensors
-
Запуск
sensors-detect
:
После установкиlm-sensors
, запустите скриптsensors-detect
для поиска сенсоров:sudo sensors-detect
При проведении скрипта следуйте инструкциям, принимайте предлагаемые умолчания. Скрипт определит, какие сенсоры доступны и какие драйвера необходимо загрузить.
-
Активация найденных сенсоров:
Еслиsensors-detect
обнаружил сенсоры, вы должны увидеть вывод с новым набором значений. Если сенсоры не обнаружены, возможно, ваши вентиляторы управляются через специфические методы ACPI или WMI, что требует дополнительного внимания. -
Загрузка драйвера:
На основании полученной информации, попробуйте загрузить драйвер. Например, для материнских плат серии Asus можно попробовать следующее:sudo modprobe nct6775
После загрузки драйвера проверьте вывод команды:
sensors
Вам следует увидеть секцию, относящуюся к вашему сенсору.
-
Настройка автозагрузки драйвера:
Для автоматической загрузки драйверов при каждом запуске системы добавьте их в файл конфигурации:echo "nct6775" | sudo tee /etc/modules-load.d/hwmon.conf
Asus-специфические проблемы
Если указанные шаги не убеждают, стоит отметить, что некоторые новые материнские платы Asus могут изолировать сенсорные регистры от операционной системы, что затрудняет доступ к вентиляторам.
-
Параметр загрузки ядра: Если ваша материнская плата использует такую методику, попробуйте добавить следующую строку в конфигурацию загрузчика GRUB:
acpi_enforce_resources=lax
Сделать это можно в файле
/etc/default/grub
, добавив параметр в строкуGRUB_CMDLINE_LINUX
. Не забудьте обновить конфигурацию GRUB:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
-
Установите более новый ядро: Иногда проблемы могут быть связаны с устаревшими драйверами. Попробуйте установить более новую версию ядра, если это возможно.
Заключение
Работа с контролем вентиляторов может быть сложной задачей, особенно если материнская плата использует специфические методы взаимодействия с операционной системой. Процесс установки может потребовать терпения и внимательности. Если вышеперечисленные шаги не помогли, стоит обратиться к специализированным форумам или сообществам, занимающимся вопросами управления аппаратным обеспечением в Linux, для получения дополнительных рекомендаций.