如何在 AMD 5825U 笔记本电脑芯片 22.04 LTS 上安装或启用对温度传感器的支持?

如何在 AMD 5825U 笔记本电脑芯片 22.04 LTS 上安装或启用对温度传感器的支持?

我想监控 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-sensorswiki 主页上确实有一条注释:

当前内容是从 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 的一个解决方案是使用psutilPython 中的库:

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 的作者提供了此答案的信息和相关链接)

相关内容