我正在定制 Linux 并使用内核版本 6.4.0。我不知道为什么我经常cat /sys/class/thermal/thermal_zone0/temp
检查CPU温度,结果是0
?但我的电脑显然可以正常启动并产生热量。
我什么时候关闭过任何选项吗make memunconfig
?
# cat /sys/class/thermal/thermal_zone0/temp
0
添加类型:
# cat /sys/class/thermal/thermal_zone0/type
acpitz
=================================================
Debian12
我在电脑上安装了发行版,无法访问“thermal_zone0
可以看到温度”,但可以通过thermal_zone1
“看到温度”查看。但我定制的Linux系统只有thermal_zone0
,没有thermal_zone1
。
#1 定制Linux系统
# cat /sys/class/thermal/thermal_zone0/trip_point_*
0
100000
critical
0
71000
active
0
55000
active
0
50000
active
0
45000
active
0
40000
active
#2 Debian 12
# cat /sys/class/thermal/thermal_zone0/trip_point_*
119000
critical
71000
active
55000
active
50000
active
45000
active
40000
active
# cat /sys/class/thermal/thermal_zone1/trip_point_*
-274000
passive
-274000
passive
# cat /sys/class/thermal/thermal_zone1/type
x86_pkg_temp
答案1
您正在查看热区。
该类型acpitz
是通用 ACPI 热区;只有系统 ACPI 固件的开发人员才能确切知道它表示什么(如果有的话)。我认为没有任何内核选项可以将输出提高到超出您已经看到的范围。
该热区域在您当前的硬件/固件配置中可能处于非活动状态,或者使用非标准温标。其中任何一个都可以解释该0
值:如果实际使用热区,它可能意味着“当前处于冷却要求级别 0”。
有/sys/class/thermal/thermal_zone0/trip_point_*
文件吗?如果使用自定义比例,则 的内容trip_point_*_temp
和各自的trip_point_*_type
值可能会提供有关比例如何工作的一些信息。
其他可能的热区域类型包括(但不一定限于)pch_skylake
=芯片组热传感器(特定英特尔芯片组的),以及x86_pkg_temp
=CPU内置热传感器。它们的行为来自于检索信息的 Linux 驱动程序,而不是来自 ACPI 固件,因此它们的行为更为人所知。