我想监控 Dell Inspiron 16 5625(配备 AMD Ryzen 7 5825U)上的 CPU 核心温度,但我找不到解决方案。
k10temp 的来源确实有最近的(Zen 3)AMD 处理器的芯片 ID,所以原因可能是 5825U 没有向操作系统公开太多信息,正如我尝试仅使用以下安全检查时所报告的那样sudo sensors-detect
:
Sorry, no sensors were detected.
This is relatively common on laptops, where thermal management is
handled by ACPI rather than the OS.
当我运行sensors
它时,它会报告数据k10temp
- 我认为安装了最好的可用驱动程序。如果有替代方案这里有答案是一个(有点旧的)安装指南。
这是我最初发现的,以防它有用:
我查看了 /sys/class/thermal,发现有 16 个cooling_device
条目(我不熟悉这些,但 CPU 有 8 个内核和 16 个 HW 线程)。只有一个thermal_zone
条目,因此似乎没有每个内核的详细信息。
我看过hwmon 支持状态内核 wiki 上的页面,列出的最新 AMD 架构支持“16h”。交叉引用AMD 产品页面Zen 3,根据维基百科的 AMD CPU 代号,是“19h”,因此虽然检测到芯片,但我不确定支持是否完整。
该lm-sensors
wiki 主页上确实有一条注释:
当前内容是从 lm-sensors.org 的档案中复制的。复制完成后,内容将会更新。
不幸的是,lm-sensors.org 目前似乎已关闭。
最后,下面是一份sensors
报告(我运行后这个输出没有改变sensors-detect
)并且它没有调用“CPU”或“核心”。
感谢您的任何帮助或指导。
> sensors
amdgpu-pci-0400
Adapter: PCI adapter
vddgfx: 1.38 V
vddnb: 768.00 mV
edge: +42.0°C
slowPPT: 3.00 mW
k10temp-pci-00c3
Adapter: PCI adapter
Tctl: +43.6°C
BAT0-acpi-0
Adapter: ACPI interface
in0: 17.37 V
curr1: 1000.00 uA
dell_smm-isa-0000
Adapter: ISA adapter
Processor Fan: 0 RPM
Other: +43.0°C
SODIMM: +39.0°C
Ambient: +33.0°C
Other: +38.0°C
GPU: +16.0°C
nvme-pci-0200
Adapter: PCI adapter
Composite: +31.9°C (low = -20.1°C, high = +82.8°C)
(crit = +84.8°C)
Sensor 1: +31.9°C (low = -273.1°C, high = +65261.8°C)
acpitz-acpi-0
Adapter: ACPI interface
temp1: +43.0°C (crit = +115.0°C)
编辑:我最初在问题中不小心输入了 24.04!我的意思是当前的... 22.04,哎呀!抱歉!
答案1
Linux 的一个解决方案是使用psutil
Python 中的库:
import psutil
print( psutil.sensors_temperatures() )
print( psutil.sensors_temperatures()['cpu_thermal'][0][1] )
第一行打印将显示温度传感器返回的所有内容。第二行仅输出运行 Raspbian(基于 Debian 的发行版)的 Raspberry Pi 4 的 CPU 温度,如下所示:
>>> print( psutil.sensors_temperatures()['cpu_thermal'][0][1] )
71.088
更多信息可以在这里找到。
另一个解决方案是使用带有 CPU 插件的 Node-RED,像这个。
我从该节点读取数据并将其发布到我的 MQTT 代理。然后,我从几个不同的 MQTT 客户端获取数据,每个客户端都运行一个 Web 服务器(在 Node-RED 中),该服务器在仪表和图表中显示温度。
我对 Node-RED 和 MQTT 的赞美之词真是说不完。
答案2
sensors
与from的输出一致k10温度,核心频率在 AMD Ryzen 笔记本电脑芯片上仅发现一个温度传感器(参见CoreFreq 维基)。
除非芯片上有可使用不同方法访问的传感器,否则操作系统无法监控单个核心温度看起来就像是硬件的限制。
(为了完整起见,这是我的邮政在 AMD 的社区网站上;CoreFreq 的作者提供了此答案的信息和相关链接)