- Вопрос или проблема
- Ответ или решение
- 1. Анализ текущей конфигурации
- 2. Рекомендации по редактированию конфигурационного файла
- Установка триггеров для более низкой температуры
- Активация нескольких охладительных устройств
- 3. Минимальная версия обновленного файла конфигурации
- 4. Проверка и тестирование
- Заключение
Вопрос или проблема
Я только что обнаружил thermald для предотвращения перегрева машин. Я хотел бы получить несколько базовых рекомендаций о том, как изменить xml файл конфигурации. Ниже приведен файл, который я имею по адресу /etc/thermald/thermal-conf.xml
. По некоторым примерам, которые я просмотрел в интернете, кажется, что он настроен на предотвращение перегрева при 55 °C (если я правильно читаю строку <Temperature>55000</Temperature>
), но мои ядра нагреваются до 94 °C с работающими вентиляторами.
Я использую машину с Intel(R) Core(TM) i7-10850H CPU @ 2.70GHz
.
<?xml version="1.0"?>
<!--
используйте "man thermal-conf.xml" для получения подробностей
-->
<!-- НАЧАЛО -->
<ThermalConfiguration>
<Platform>
<Name>Generic X86 Laptop Device</Name>
<ProductName>EXAMPLE_SYSTEM</ProductName>
<Preference>QUIET</Preference>
<ThermalSensors>
<ThermalSensor>
<Type>TSKN</Type>
<AsyncCapable>1</AsyncCapable>
</ThermalSensor>
</ThermalSensors>
<ThermalZones>
<ThermalZone>
<Type>SKIN</Type>
<TripPoints>
<TripPoint>
<SensorType>TSKN</SensorType>
<Temperature>55000</Temperature>
<type>passive</type>
<ControlType>SEQUENTIAL</ControlType>
<CoolingDevice>
<index>1</index>
<type>rapl_controller</type>
<influence> 100 </influence>
<SamplingPeriod> 16 </SamplingPeriod>
</CoolingDevice>
<CoolingDevice>
<index>2</index>
<type>intel_powerclamp</type>
<influence> 100 </influence>
<SamplingPeriod> 12 </SamplingPeriod>
</CoolingDevice>
</TripPoint>
</TripPoints>
</ThermalZone>
</ThermalZones>
</Platform>
<!-- Пример термальной конфигурации только -->
<Platform>
<Name>Example Platform Name</Name>
<!--UUID является необязательным, если он присутствует, он будет сопоставлен -->
<!-- Как название продукта, так и UUID могут содержать
подстановочный символ "*", который соответствует любой платформе
-->
<UUID>Example UUID</UUID>
<ProductName>Example Product Name</ProductName>
<Preference>QUIET</Preference>
<ThermalSensors>
<ThermalSensor>
<!-- Новый сенсор с типом и путем -->
<Type>example_sensor_1</Type>
<Path>/some_path</Path>
<AsyncCapable>0</AsyncCapable>
</ThermalSensor>
<ThermalSensor>
<!-- Уже присутствует в термальном sysfs,
активируйте это или добавьте/измените конфигурацию
Например, здесь мы указываем, что
сенсор может выполнять асинхронные события, чтобы избежать опроса
-->
<Type>example_thermal_sysfs_sensor</Type>
<!-- Если асинхронно, тогда нам не нужно опрашивать -->
<AsyncCapable>1</AsyncCapable>
</ThermalSensor>
<ThermalSensor>
<!-- Пример виртуального сенсора. Этот сенсор
зависит от другого реального сенсора или
виртуального сенсора.
Например, здесь температура будет
температура example_sensor_1 * 0.5 + 10
-->
<Type>example_virtual_sensor</Type>
<Virtual>1</Virtual>
<SensorLink>
<SensorType>example_sensor_1</SensorType>
<Multiplier> 0.5 </Multiplier>
<Offset> 10 </Offset>
</SensorLink>
</ThermalSensor>
</ThermalSensors>
<ThermalZones>
<ThermalZone>
<Type>Example Zone type</Type>
<TripPoints>
<TripPoint>
<SensorType>example_sensor_1</SensorType>
<!-- Температура, при которой необходимо предпринять действие -->
<Temperature> 75000 </Temperature>
<!-- макс/пассивный/активный
Если указан тип MAX, то
демон будет использовать управление PID
для агрессивного ограничения, чтобы избежать
достижения этой температуры.
-->
<type>max</type>
<!-- SEQUENTIAL | PARALLEL
Когда температура триггерной точки нарушена, то
количество охладительных устройств может быть активировано.
Если тип управления SEQUENTIAL, то
оно сначала будет использовать первое охлаждающее устройство, прежде чем попробовать
следующее.
-->
<ControlType>SEQUENTIAL</ControlType>
<CoolingDevice>
<index>1</index>
<type>example_cooling_device</type>
<!-- Влияние будет использовать порядок охладительных устройств.
Первое охлаждающее устройство будет использовано, которое имеет
наибольшее влияние.
-->
<influence> 100 </influence>
<!-- Задержка в использовании этого cdev, это занимает некоторое время
также фактически охладить зону
-->
<SamplingPeriod> 12 </SamplingPeriod>
</CoolingDevice>
</TripPoint>
</TripPoints>
</ThermalZone>
</ThermalZones>
<CoolingDevices>
<CoolingDevice>
<!--
Охлаждающее устройство может быть определено
по типу и, возможно, по пути sysfs
Если тип уже присутствует в термальном sysfs
нет необходимости в пути.
Компенсация может использовать min/max и размер шага
для увеличения охлаждения системы.
Период подавления может быть использован для принудительного
периода ожидания действия
-->
<Type>example_cooling_device</Type>
<MinState>0</MinState>
<IncDecStep>10</IncDecStep>
<ReadBack> 0 </ReadBack>
<MaxState>50</MaxState>
<DebouncePeriod>5000</DebouncePeriod>
<!--
Если нет параметров PID
компенсация увеличивается поэтапно и экспоненциально,
если один шаг не может изменить тренд.
В качестве альтернативы можно указать параметры PID,
тогда следующий шаг будет использовать расчёт PID с использованием
предоставленных постоянных PID.
-->>
<PidControl>
<kp>0.001</kp>
<kd>0.0001</kd>
<ki>0.0001</ki>
</PidControl>
</CoolingDevice>
</CoolingDevices>
</Platform>
</ThermalConfiguration>
<!-- КОНЕЦ -->
Следуя предложению от @heynnema, я удалил файл конфигурации, остановил thermald
и запустил sudo thermald --no-daemon --loglevel=info
. Вот вывод, но как это должно помочь мне составить новый, более эффективный файл конфигурации?
$ sudo thermald --no-daemon --loglevel=info
[1649408071][INFO]Количество доменов RAPL 1
[1649408071][INFO]Количество доменов RAPL 1
[1649408071][MSG]22 уровня CPUID; семейство:модель:шаг 0x6:a5:2 (6:165:2)
[1649408071][INFO]Запуск на ванильном ядре
[1649408071][MSG]Режим опроса включен: 4
[1649408071][INFO]sensor_update: тип TSKN
[1649408071][INFO]sensor_update: тип acpitz
[1649408071][INFO]sensor_update: тип x86_pkg_temp
[1649408071][INFO]sensor_update: тип pch_cometlake
[1649408071][INFO]sensor_update: тип NGFF
[1649408071][INFO]sensor_update: тип TMEM
[1649408071][INFO]sensor_update: тип B0D4
[1649408071][INFO]sensor_update: тип TVGA
[1649408071][INFO]thd_read_default_thermal_sensors загружено 8 сенсоров
[1649408071][INFO]dts /sys/devices/platform/coretemp.0/name не существует
[1649408071][WARN]идентификатор сенсора 11 : Нет температурного sysfs для чтения сырой температуры
[1649408071][WARN]идентификатор сенсора 11 : Нет температурного sysfs для чтения сырой температуры
[1649408071][WARN]идентификатор сенсора 11 : Нет температурного sysfs для чтения сырой температуры
[1649408071][INFO]Базовый путь INT3400
[1649408071][INFO]не удалось открыть /dev/acpi_thermal_rel
[1649408071][INFO]не удалось открыть /dev/acpi_thermal_rel
[1649408071][INFO]Чтение TRT/ART не удалось
[1649408071][INFO]Использование конфигурационного файла /etc/thermald/thermal-conf.xml
Предупреждение ввода/вывода : не удалось загрузить внешний объект "/etc/thermald/thermal-conf.xml"
[1649408071][WARN]ошибка: не удалось разобрать файл /etc/thermald/thermal-conf.xml
[1649408071][INFO]индекс сенсора:2 TSKN /sys/class/thermal/thermal_zone2/ Асинхронный:0
[1649408071][INFO]индекс сенсора:0 acpitz /sys/class/thermal/thermal_zone0/ Асинхронный:0
[1649408071][INFO]индекс сенсора:7 x86_pkg_temp /sys/class/thermal/thermal_zone7/ Асинхронный:1
[1649408071][INFO]индекс сенсора:5 pch_cometlake /sys/class/thermal/thermal_zone5/ Асинхронный:0
[1649408071][INFO]индекс сенсора:3 NGFF /sys/class/thermal/thermal_zone3/ Асинхронный:0
[1649408071][INFO]индекс сенсора:1 TMEM /sys/class/thermal/thermal_zone1/ Асинхронный:0
[1649408071][INFO]индекс сенсора:6 B0D4 /sys/class/thermal/thermal_zone6/ Асинхронный:0
[1649408071][INFO]индекс сенсора:4 TVGA /sys/class/thermal/thermal_zone4/ Асинхронный:0
[1649408071][INFO]индекс сенсора:8 hwmon /sys/class/hwmon/hwmon5/temp1_input Асинхронный:0
[1649408071][INFO]индекс сенсора:9 hwmon /sys/class/hwmon/hwmon5/temp2_input Асинхронный:0
[1649408071][INFO]индекс сенсора:10 hwmon /sys/class/hwmon/hwmon5/temp3_input Асинхронный:0
[1649408071][INFO]thd_read_default_cooling devices загружено 14 cdevs
[1649408071][INFO]ppcc ограничения макс:47000000 мин:10000000 мин_win:28000000 шаг:1000000
[1649408071][INFO]set_pid_param 14 [-1000.100,10]
[1649408071][INFO]Используйте настройки pstate drv по умолчанию
[1649408071][INFO]создание sysfs не удалось
[1649408071][INFO]Базовый путь INT3400
[1649408071][INFO]не удалось открыть /dev/acpi_thermal_rel
[1649408071][INFO]не удалось открыть /dev/acpi_thermal_rel
[1649408071][INFO]Чтение TRT/ART не удалось
[1649408071][INFO]Использование конфигурационного файла /etc/thermald/thermal-conf.xml
Предупреждение ввода/вывода : не удалось загрузить внешний объект "/etc/thermald/thermal-conf.xml"
[1649408071][WARN]ошибка: не удалось разобрать файл /etc/thermald/thermal-conf.xml
[1649408071][INFO]имя = package-0
[1649408071][INFO]имя = dram
[1649408071][INFO]sysfs чтение не удалось /sys/devices/virtual/powercap/intel-rapl/intel-rapl:0/intel-rapl:0:2/constraint_0_max_power_uw
[1649408071][INFO]:powercap RAPL недопустимый диапазон максимальной мощности
[1649408071][INFO]Динамическое вычисление phy_max
[1649408071][INFO]set_pid_param 18 [-0.4.0,0]
[1649408071][INFO]13: ath10k_thermal, C:0 MN: 0 MX:100 ST:1 pt:/sys/class/thermal/ rd_bk 1
[1649408071][INFO]1: Процессор, C:0 MN: 0 MX:3 ST:1 pt:/sys/class/thermal/ rd_bk 0
[1649408071][INFO]11: Процессор, C:0 MN: 0 MX:3 ST:1 pt:/sys/class/thermal/ rd_bk 0
[1649408071][INFO]8: Процессор, C:0 MN: 0 MX:3 ST:1 pt:/sys/class/thermal/ rd_bk 0
[1649408071][INFO]6: Процессор, C:0 MN: 0 MX:3 ST:1 pt:/sys/class/thermal/ rd_bk 0
[1649408071][INFO]4: Процессор, C:0 MN: 0 MX:3 ST:1 pt:/sys/class/thermal/ rd_bk 0
[1649408071][INFO]2: Процессор, C:0 MN: 0 MX:3 ST:1 pt:/sys/class/thermal/ rd_bk 0
[1649408071][INFO]12: intel_powerclamp, C:-1 MN: 0 MX:50 ST:5 pt:/sys/class/thermal/ rd_bk 0
[1649408071][INFO]0: Процессор, C:0 MN: 0 MX:3 ST:1 pt:/sys/class/thermal/ rd_bk 0
[1649408071][INFO]10: Процессор, C:0 MN: 0 MX:3 ST:1 pt:/sys/class/thermal/ rd_bk 0
[1649408071][INFO]9: Процессор, C:0 MN: 0 MX:3 ST:1 pt:/sys/class/thermal/ rd_bk 0
[1649408071][INFO]7: Процессор, C:0 MN: 0 MX:3 ST:1 pt:/sys/class/thermal/ rd_bk 0
[1649408071][INFO]5: Процессор, C:0 MN: 0 MX:3 ST:1 pt:/sys/class/thermal/ rd_bk 0
[1649408071][INFO]3: Процессор, C:0 MN: 0 MX:3 ST:1 pt:/sys/class/thermal/ rd_bk 0
[1649408071][INFO]14: rapl_controller, C:47000000 MN: 47000000 MX:10000000 Увеличить ST:-2000000 Уменьшить ST:-1000000 pt:/sys/devices/virtual/powercap/intel-rapl/intel-rapl:0/ rd_bk 1
[1649408071][INFO]15: intel_pstate, C:0 MN: 0 MX:10 ST:1 pt:/sys/devices/system/cpu/intel_pstate/ rd_bk 1
[1649408071][INFO]16: rapl_controller_dram, C:100000000 MN: 100000000 MX:0 ST:-500000 pt:/sys/devices/virtual/powercap/intel-rapl/intel-rapl:0/intel-rapl:0:2/ rd_bk 1
[1649408071][INFO]17: LCD, C:0 MN: 0 MX:120000 ST:12000 pt:/sys/class/backlight/intel_backlight/ rd_bk 1
[1649408071][INFO]18: amdgpu, C:0 MN: 0 MX:0 ST:0 pt: rd_bk 1
[1649408071][INFO]thd_read_default_thermal_zones загружено 7 зон
[1649408071][INFO]Базовый путь INT3400
[1649408071][INFO]зона cpu будет создана
[1649408071][INFO]dts зона /sys/devices/platform/coretemp.0/name не существует
[1649408071][INFO]/sys/class/hwmon/hwmon6/name->dell_smm
[1649408071][INFO]/sys/class/hwmon/hwmon4/name->pch_cometlake
[1649408071][INFO]/sys/class/hwmon/hwmon2/name->BAT0
[1649408071][INFO]/sys/class/hwmon/hwmon0/name->AC
[1649408071][INFO]/sys/class/hwmon/hwmon7/name->ath10k_hwmon
[1649408071][INFO]/sys/class/hwmon/hwmon5/name->coretemp
[1649408071][INFO]Ошибочная максимальная температура: слишком близка к критической 90000
[1649408071][INFO]Температура ядра DTS :критическая 100000, максимальная 90000, psv 95000
[1649408071][INFO]тип узла: Элемент, имя: Охладительное устройство значение: rapl_controller
[1649408071][INFO]тип узла: Элемент, имя: Охладительное устройство значение: intel_pstate
[1649408071][INFO]тип узла: Элемент, имя: Охладительное устройство значение: intel_powerclamp
[1649408071][INFO]тип узла: Элемент, имя: Охладительное устройство значение: cpufreq
[1649408071][INFO]тип узла: Элемент, имя: Охладительное устройство значение: Процессор
[1649408071][INFO]Порядок CDEVS указан в thermal-cpu-cdev-order.xml
[1649408071][INFO]/sys/class/hwmon/hwmon3/name->nouveau
[1649408071][INFO]/sys/class/hwmon/hwmon1/name->acpitz
[1649408071][INFO]Базовый путь INT3400
[1649408071][INFO]не удалось открыть /dev/acpi_thermal_rel
[1649408071][INFO]не удалось открыть /dev/acpi_thermal_rel
[1649408071][INFO]Чтение TRT/ART не удалось
[1649408071][INFO]Использование конфигурационного файла /etc/thermald/thermal-conf.xml
Предупреждение ввода/вывода : не удалось загрузить внешний объект "/etc/thermald/thermal-conf.xml"
[1649408071][WARN]ошибка: не удалось разобрать файл /etc/thermald/thermal-conf.xml
[1649408071][INFO]
ДАННЫЕ ЗОНЫ НАЧАЛО
[1649408071][INFO]
[1649408071][INFO]Зона 8: cpu, Активная:1 Привязка:0 Количество сенсоров:1
[1649408071][INFO]..сенсоры..
[1649408071][INFO]индекс сенсора:7 x86_pkg_temp /sys/class/thermal/thermal_zone7/ Асинхронный:1
[1649408071][INFO]..триггеры..
[1649408071][INFO]индекс 0: тип:пассивный темп:95000 гистерезис:0 id зоны:8 id сенсора:65535 тип управления:1 размер cdev:4
[1649408071][INFO]cdev[0] rapl_controller, Период выборки: 0
[1649408071][INFO] целевое состояние:не определено
[1649408071][INFO]cdev[1] intel_pstate, Период выборки: 0
[1649408071][INFO] целевое состояние:не определено
[1649408071][INFO]cdev[2] intel_powerclamp, Период выборки: 0
[1649408071][INFO] целевое состояние:не определено
[1649408071][INFO]cdev[3] Процессор, Период выборки: 0
[1649408071][INFO] целевое состояние:не определено
[1649408071][INFO]индекс 1: тип:опрос температура:85500 гистерезис:0 id зоны:8 id сенсора:7 тип управления:0 размер cdev:0
[1649408071][INFO]
[1649408071][INFO]
ДАННЫЕ ЗОНЫ КОНЕЦ
[1649408071][INFO]Текущая предпочтение пользователя 0
[1649408071][INFO]thd_engine_thread начать
После редактирования это мой файл конфигурации, но температура ядер поднимается до 90 °C:
~$ cat /etc/thermald/thermal-conf.xml
<?xml version="1.0"?>
<ThermalConfiguration>
<Platform>
<Name>Generic X86 Laptop Device</Name>
<ProductName>*</ProductName>
<Preference>QUIET</Preference>
<ThermalZones>
<ThermalZone>
<Type>cpu</Type>
<TripPoints>
<TripPoint>
<SensorType>x86_pkg_temp</SensorType>
<Temperature>55000</Temperature>
<type>passive</type>
<ControlType>PARALLEL</ControlType>
</TripPoint>
</TripPoints>
</ThermalZone>
</ThermalZones>
</Platform>
</ThermalConfiguration>
Дополнительная информация:
~$ ls -al /etc/thermald
total 32
drwxr-xr-x 2 root root 4096 Apr 8 16:32 .
drwxr-xr-x 159 root root 12288 Apr 5 09:03 ..
-rw-r--r-- 1 root root 4605 Jan 15 2019 backup
-rw-rw-r-- 1 username username 816 Apr 8 16:32 thermal-conf.xml
-rw-r--r-- 1 root root 508 Jan 15 2019 thermal-cpu-cdev-order.xml
И это также кажется актуальным (thermald неактивен?):
$ sudo systemctl status thermald
● thermald.service - Thermal Daemon Service
Загружено: загружено (/lib/systemd/system/thermald.service; включено; предустановка поставщика: включено)
Активно: неактивно (мертво) с пятницы 2022-04-08 10:54:28 CEST; 1 неделя 0 дней назад
Главный PID: 1328 (код=вышел, статус=0/УСПЕХ)
Apr 07 11:51:51 Precision-3551 thermald[1328]: ошибка: не удалось разобрать файл /etc/thermald/thermal-conf.xml
Apr 07 11:51:51 Precision-3551 thermald[1328]: Предупреждение ввода/вывода : не удалось загрузить внешний объект "/etc/thermald/thermal-conf.xml"
Apr 07 11:51:51 Precision-3551 thermald[1328]: ошибка: не удалось разобрать файл /etc/thermald/thermal-conf.xml
Apr 07 11:51:51 Precision-3551 thermald[1328]: Предупреждение ввода/вывода : не удалось загрузить внешний объект "/etc/thermald/thermal-conf.xml"
Apr 07 11:51:51 Precision-3551 thermald[1328]: ошибка: не удалось разобрать файл /etc/thermald/thermal-conf.xml
Apr 08 10:54:26 Precision-3551 systemd[1]: Остановка сервиса Thermal Daemon...
Apr 08 10:54:26 Precision-3551 thermald[1328]: Завершение ...
Apr 08 10:54:27 Precision-3551 thermald[1328]: завершение по запросу пользователя ..
Apr 08 10:54:28 Precision-3551 systemd[1]: thermald.service: Успешно завершено.
Apr 08 10:54:28 Precision-3551 systemd[1]: Остановлен сервис Thermal Daemon.
Теперь я снова активировал его с помощью sudo service thermald restart
и теперь:
$ sudo systemctl status thermald
● thermald.service - Thermal Daemon Service
Загружено: загружено (/lib/systemd/system/thermald.service; включено; предустановка поставщика: включено)
Активно: активно (работает) с пятницы 2022-04-15 22:26:23 CEST; 2с назад
Главный PID: 609438 (thermald)
Задачи: 2 (лимит: 18622)
Память: 1.3M
CGroup: /system.slice/thermald.service
└─609438 /usr/sbin/thermald --systemd --dbus-enable --adaptive
Apr 15 22:26:23 Precision-3551 systemd[1]: Запуск сервиса Thermal Daemon Service...
Apr 15 22:26:23 Precision-3551 systemd[1]: Запущен сервис Thermal Daemon Service.
Apr 15 22:26:23 Precision-3551 thermald[609438]: 22 уровня CPUID; семейство:модель:шаг 0x6:a5:2 (6:165:2)
Apr 15 22:26:23 Precision-3551 thermald[609438]: 22 уровня CPUID; семейство:модель:шаг 0x6:a5:2 (6:165:2)
Apr 15 22:26:23 Precision-3551 thermald[609438]: Режим опроса включен: 4
Apr 15 22:26:23 Precision-3551 thermald[609438]: идентификатор сенсора 11 : Нет температурного sysfs для чтения сырой температуры
Apr 15 22:26:23 Precision-3551 thermald[609438]: идентификатор сенсора 11 : Нет температурного sysfs для чтения сырой температуры
Apr 15 22:26:23 Precision-3551 thermald[609438]: идентификатор сенсора 11 : Нет температурного sysfs для чтения сырой температуры
Из комментариев:
Урок о том, как настроить thermald, может занять некоторое время. Сначала проверьте man thermald
и man thermal-conf.xml
. Файл thermal-conf.xml, который вы использовали, является универсальным примером. Сначала удалите его полностью и перезапустите thermald. Он попробует запуститься с конфигурацией по умолчанию, если не найдет .xml файл. Посмотрите, как это работает. В противном случае остановите thermald и запустите его вручную с помощью sudo thermald --no-daemon --loglevel=info
и дайте thermald сообщить вам, что он находит, и используйте это для написания вашего собственного .xml файла.
Вот мой файл thermal-conf.xml…
<?xml version="1.0"?>
<ThermalConfiguration>
<Platform>
<Name>Dell Inspiron-7700-AIO</Name>
<ProductName>*</ProductName>
<Preference>QUIET</Preference>
<ThermalZones>
<ThermalZone>
<Type>cpu</Type>
<TripPoints>
<TripPoint>
<SensorType>x86_pkg_temp</SensorType>
<Temperature>65000</Temperature>
<type>passive</type>
<ControlType>PARALLEL</ControlType>
<CoolingDevice>
<index>0</index>
<type>Fan</type>
<influence>30</influence>
<SamplingPeriod>10</SamplingPeriod>
</CoolingDevice>
<CoolingDevice>
<index>5</index>
<type>Processor</type>
<influence>80</influence>
<SamplingPeriod>5</SamplingPeriod>
</CoolingDevice>
<CoolingDevice>
<index>13</index>
<type>intel_powerclamp</type>
<influence>100</influence>
<SamplingPeriod>5</SamplingPeriod>
</CoolingDevice>
</TripPoint>
</TripPoints>
</ThermalZone>
</ThermalZones>
</Platform>
</ThermalConfiguration>
Обновление #1:
Минимальный файл thermal-conf.xml…
Просто отредактируйте значения <Name>, <SensorType> и <Temperature>. Затем перезапустите thermald как демон или вручную, чтобы наблюдать, что происходит.
<?xml version="1.0"?>
<ThermalConfiguration>
<Platform>
<Name>Generic</Name>
<ProductName>*</ProductName>
<Preference>QUIET</Preference>
<ThermalZones>
<ThermalZone>
<Type>cpu</Type>
<TripPoints>
<TripPoint>
<SensorType>x86_pkg_temp</SensorType>
<Temperature>55000</Temperature>
</TripPoint>
</TripPoints>
</ThermalZone>
</ThermalZones>
</Platform>
</ThermalConfiguration>
Чтобы нагрузить ЦП и наблюдать, что происходит с температурами, сначала установите Vitals
https://extensions.gnome.org/extension/1460/vitals/ и настройте его на отображение температур пакета ЦП и скорости вентилятора. Затем введите “YES” в терминале и смотрите, что происходит с температурой ЦП. Вы также можете установить приложение stress
, чтобы сделать то же самое, как “YES”, но с большим контролем.
Ответ или решение
Оптимизация работы термального демона thermald
– это важный аспект для управления температурой процессора и предотвращения перегрева в современных ноутбуках и компьютерах. Исходя из предоставленных данных, можно сделать несколько рекомендаций по настройке конфигурационного файла XML для вашего устройства с процессором Intel Core i7-10850H.
1. Анализ текущей конфигурации
Ваш существующий конфигурационный файл в /etc/thermald/thermal-conf.xml
определяет термальные зоны и температуры срабатывания для управления охладительными устройствами. Однако, согласно вашей информации, температура процессора достигает 90°C, что является слишком высоким значением. Вы правы в том, что настройки активируются только по достижении 55°C, что может быть слишком поздно для предотвращения перегрева.
2. Рекомендации по редактированию конфигурационного файла
Следует внести изменения, чтобы улучшить работу thermald
:
Установка триггеров для более низкой температуры
Измените температуру активации триггеров в вашем конфигурационном файле. Установите нижние значения для температуры, чтобы активировать систему охлаждения заранее. Для примера, вы можете использовать:
<TripPoint>
<SensorType>x86_pkg_temp</SensorType>
<Temperature>75000</Temperature> <!-- 75°C вместо 55°C -->
<type>passive</type>
<ControlType>PARALLEL</ControlType>
<CoolingDevice>
<index>1</index>
<type>intel_powerclamp</type>
<influence>75</influence> <!-- Увеличение влияния -->
<SamplingPeriod>5</SamplingPeriod>
</CoolingDevice>
</TripPoint>
Активация нескольких охладительных устройств
Добавьте в конфигурацию дополнительные устройства охлаждения, чтобы повысить эффективность системы:
<CoolingDevice>
<index>0</index>
<type>Fan</type>
<influence>100</influence>
<SamplingPeriod>10</SamplingPeriod>
</CoolingDevice>
3. Минимальная версия обновленного файла конфигурации
Ваш обновленный файл /etc/thermald/thermal-conf.xml
может выглядеть примерно так:
<?xml version="1.0"?>
<ThermalConfiguration>
<Platform>
<Name>Intel i7 Laptop</Name>
<ProductName>*</ProductName>
<Preference>QUIET</Preference>
<ThermalZones>
<ThermalZone>
<Type>cpu</Type>
<TripPoints>
<TripPoint>
<SensorType>x86_pkg_temp</SensorType>
<Temperature>75000</Temperature>
<type>passive</type>
<ControlType>PARALLEL</ControlType>
<CoolingDevice>
<index>0</index>
<type>Fan</type>
<influence>100</influence>
<SamplingPeriod>10</SamplingPeriod>
</CoolingDevice>
<CoolingDevice>
<index>1</index>
<type>intel_powerclamp</type>
<influence>75</influence>
<SamplingPeriod>5</SamplingPeriod>
</CoolingDevice>
</TripPoint>
</TripPoints>
</ThermalZone>
</ThermalZones>
</Platform>
</ThermalConfiguration>
4. Проверка и тестирование
После сохранения изменений выполните перезапуск демона с помощью следующей команды:
sudo systemctl restart thermald
Затем протестируйте настройки с помощью инструментов мониторинга, таких как Vitals
для GNOME, чтобы визуально контролировать температуру и скорость вентилятора. Вы также можете использовать утилиту stress
для проверки температуры процессора под нагрузкой.
Заключение
Оптимизация thermald
не заканчивается на редактировании конфигурации. Рекомендуется следить за производительностью системы в режиме реального времени и при необходимости вносить дополнительные коррективы в настройки. Не забывайте, что каждый аппаратный комплект уникален, и подходы, которые работают для одной системы, могут не подойти для другой.