В данном HOWTO мы рассмотрим как правильно установить и настроить thermald в Fedora.
Введение
Thermald (thermal daemon for GNU/Linux) — это специальный сервис, разработанный компанией Intel для предотвращения перегрева и троттлинга мобильных процессоров в ноутбуках.
После установки он будет автоматически регулировать работу системы охлаждения на основе показаний термальных датчиков устройства.
Официально поддерживаются процессоры Intel, на AMD следует использовать с особой осторожностью.
Внимание! Некорректные настройки могут повредить устройство, поэтому данное руководство следует использовать исключительно на свой страх и риск. Никто не несёт никакой ответственности за возможные последствия.
Установка thermald
Установим данный пакет в Fedora:
sudo dnf install thermald
Активируем его для автоматического запуска при загрузке системы:
sudo systemctl enable --now thermald.service
Конфигурация thermald
Из-за многообразия моделей ноутбуков и прочих девайсов, пакет поставляется без каких-либо файлов конфигурации и «из коробки» не функционирует.
Файлы конфигурации можно получить следующими способами:
- составить самостоятельно на базе готовых примеров;
- найти уже созданные другими участниками сообщества для конкретной модели устройства;
- использовать специальную утилиту для извлечения параметров из ACPI-таблиц.
Мы применим третий способ, как самый простой и наиболее безопасный.
Извлечение параметров из ACPI
Для извлечения воспользуемся специальной утилитой dptfxtract, предоставляемой компанией Intel.
К сожалению, это проприетарный продукт, который поставляется без исходных кодов и в то же время для работы требует права суперпользователя, что, на наш взгляд, очень небезопасно, поэтому запускать его мы будем на чистом LiveUSB с размонтированными разделами основной системы.
Скачаем самый свежий ISO-образ Fedora LiveUSB, запишем его на USB-флеш накопитель, затем загрузимся с него строго в UEFI-режиме.
Скачаем утилиту и выполним её с правами суперпользователя (при загрузке с Live):
wget https://github.com/intel/dptfxtract/raw/master/dptfxtract-static chmod +x dptfxtract-static sudo ./dptfxtract-static
Если устройство поддерживается и DPTF-таблицы существуют, то результат в виде одного или нескольких файлов thermal-conf.xml появятся как в текущем рабочем каталоге, так и в виртуальном /etc/thermald Live-версии.
Сохраним эти файлы в архив и перенесём его в основную систему любым способом:
tar -cJpf thermald.tar.xz -C /etc thermald
Настройка thermald
В основной системе распакуем созданный ранее в Live архив thermald.tar.xz в каталог /etc/thermald и установим корректные права владельца, а также chmod для данных файлов:
sudo tar -xf thermald.tar.xz -C /etc sudo chown root:root /etc/thermald/*.xml* sudo chmod 0644 /etc/thermald/*.xml*
Перезапустим thermald:
sudo systemctl restart thermald.service
Если всё сделано верно, сервис начнёт работу в штатном режиме. Более полную информацию о работе можно найти в журналах работы:
journalctl -b -u thermald.service
Литература
При написании статьи использовалась литература из следующих источников:
Как раз матери на ноут хотел установить федору, пожалуй и эту софтину установлю.
А что можно предпринять, если для моего ноута DPTF-таблицы не были найдены?
Современные версии thermald будут работать и без извлечения DPTF таблиц (хотя конечно же не так эффективно, как задумывал производитель).
Создайте файл /etc/thermald/thermal-conf.xml следующего вида:
Потребуется лишь указать MODEL_NAME (модель устройства) и PRODUCT_NAME (название по классификации производителя).
Максимальная эффективность thermald достигается в ядрах Linux 5.7.5 и выше (в него бэкпортировали ряд изменений из ветки 5.8, направленных на более эффективную работу с системой электропитания), но и на более старых тоже будет работать.