我有一台运行 Arch Linux 4.19.2 的 Samsung R519 笔记本电脑。 CPU 是一个英特尔奔腾双 T3400 (2.16GHz)。 CPU 经常会达到其热临界水平并在繁重的工作负载期间关闭。风扇已完全运转,散热器已用新焊膏固定到位。为了解决这个问题,我安装了 Thermald 并运行了 Sensors-Detect 实用程序来生成 lm_sensors 配置。 lm_sensors 服务处于活动状态,并且根据配置文件仅加载 coretemp 模块。
HWMON_MODULES="coretemp"
Thermald 无法启动并出现以下错误:
$ sudo thermald --no-daemon --loglevel=debug
NO RAPL sysfs present
10 CPUID levels; family:model:stepping 0x6:f:d (6:15:13)
Need Linux PowerCap sysfs
failed to open /dev/acpi_thermal_rel
failed to open /dev/acpi_thermal_rel
TRT/ART read failed
I/O warning : failed to load external entity "/etc/thermald/thermal-conf.xml"
error: could not parse file /etc/thermald/thermal-conf.xml
Unsupported cpu model, use thermal-conf.xml file or run with --ignore-cpuid-check
THD engine start failed
我已经创建了 Thermal-conf.xml 文件,但我似乎无法正确配置它,并且 Thermald 和 Thermal-conf.xml 的联机帮助页以及网络上的各种示例都没有成功足够清楚了。我了解该文件的基本 XML 结构,但我无法自己填写所有必要的值,因为它们似乎解释得很糟糕或太神秘。
存在以下设备/sys/class/thermal
:
cooling_device0 cooling_device2 cooling_device4 thermal_zone1
cooling_device1 cooling_device3 thermal_zone0
Thermal_zone0 和 1 都是类型acpitz
。没有可控风扇设备,因此我依靠被动冷却方法。据我所知CPU 不支持任何新的 p-step 功能存在于较新的中。
coretemp 设备存在/sys/devices/platform/coretemp.0/hwmon/hwmon1/
,但不包含temp1*
两者中具有最高核心温度的条目。temp2*
并temp3*
列出它们的独立温度。
最后达到我的意图:我想创建一个 Thermal-conf.xml 配置,其中有一个从 coretemp 获取其值的热区域。达到特定温度后,例如 90000 (90C),Thermald 应尝试采用 CPU 支持的被动冷却方法并降低其速度。