不同的热区实际上对应什么?

Ole*_*leg 11 intel temperature 18.04

我刚刚用 i9 9900k CPU 构建了一台新机器,一个带有 1 个插槽、8 个内核和 16 个线程的 CPU。我在它上面安装了 Ubuntu Bionic,我正准备添加对 CPU 温度的检查。

但是,当我运行时cat /sys/class/thermal/thermal_zone*/temp(如https://askubuntu.com/a/15834/822289推荐的那样),我得到 3 个结果:

27800
40000
28000
Run Code Online (Sandbox Code Playgroud)

编辑 1:“正确”的 CPU 温度是 heat_zone2 中显示的温度。

我想也许像acpi这样的 3rd 方程序可能会有所帮助:

# acpi -t
Thermal 0: ok, 27.8 degrees C
Run Code Online (Sandbox Code Playgroud)

但那只给了我什么thermal_zone0。其他的代表什么,尤其是热区 1,我如何才能找到更多相关信息?

编辑 2:可以通过运行以下命令找到其他人代表什么 的答案:

cat /sys/class/thermal/thermal_zone*/type
Run Code Online (Sandbox Code Playgroud)

在这种情况下,这给了我以下输出:

acpitz
pch_cannonlake
x86_pkg_temp
Run Code Online (Sandbox Code Playgroud)

Cal*_*ell 5

给定热区域所代表的确切定义由给定区域的驱动程序定义。不同的处理器和主板为 Linux 提供了不同的温度计,因此每个温度计都有自己的名称。每个不同的区域都是系统上不同的温度计:“acpitz”温度计是通过 ACPI 提供的温度计,x86_pkg_temp 是核心 x86 规范导出的温度。ACPI 是靠近 CPU 插槽的主板传感器,x86_pkg_temp 位于 CPU 本身内部

基于通过内核源代码树的 git grep,第二个 (pch_cannonlake) 指定英特尔专用热电偶的温度计输出,用于热节流。然而,确定它的确切位置(与其他位置一样)充其量只是一个有根据的猜测:它会因芯片组和制造商而异,因此您需要咨询芯片的详细规格和布局。

  • 可能是芯片本身。“封装”指的是包含 CPU 芯片、散热器和引脚排列的封装:即打开 CPU 包装盒时所看到的内容。这是为了区分该传感器上的温度与计算机中其他温度计的温度。这是CPU内部的传感器:主板上靠近插座的地方还有另一个传感器,其他地方可能还有更多。 (2认同)