我在嵌入式 Linux 中使用 lm 传感器。它运行良好。当我执行传感器命令时,我得到以下数据。
lm75-i2c-0-48
Adapter: 21a0000.i2c
temp1: +28.5 C (high = +80.0 C, hyst = +75.0 C)
lm75-i2c-0-49
Adapter: 21a0000.i2c
temp1: +26.5 C (high = +80.0 C, hyst = +75.0 C)
eth0_dsa0-virtual-0
Adapter: Virtual device
temp1: +35.0 C (high = +100.0 C)
mx_thermal_zone-virtual-0
Adapter: Virtual device
temp1: +10.5 C (crit = +85.0 C)
我想知道哪个温度属于哪个传感器。比如CPU温度是多少,环境温度是多少。
谢谢。
答案1
我可以大致告诉您这些传感器是什么,如果有帮助的话:
eth0_dsa0-virtual-0
eth0
是设备(即主板或网卡 LAN 适配器)上的温度传感器。
您在 I2C 总线(慢速简单串行总线)上有两个芯片,可能两个都有lm75
(并且您在第一个芯片上犯了复制粘贴错误)。这是一个简单的温度传感器芯片。从显示的温度来看,位于机箱内某处。
这thermal zone
是由 BIOS 定义的。该值低于室温,因此似乎有问题。
您似乎没有安装适合您的 CPU 温度的驱动程序。
最后,唯一确切知道您的计算机中有哪些组件的人是你,我们无法猜测里面有什么。弄清楚确切的硬件有点困难,需要阅读您拥有的所有硬件手册(主板等),查看主板上可以看到的芯片,谷歌搜索它们的芯片标识符,找到丢失的驱动程序等。
编辑
lm75-i2c-0-48
是的,48和49是I2C总线上的地址lm75-i2c-0-49
,尽管我不确定它是十六进制还是十进制。两者都位于总线 0 上。查看/sys/bus/i2c
您的 I2C 总线和设备(仅在某些内核模块检测到时才出现)。
答案2
这一行显示温度:
paste <(cat /sys/class/thermal/thermal_zone*/type) <(cat /sys/class/thermal/thermal_zone*/temp) | column -s $'\t' -t | sed 's/\(.\)..$/.\1°C/'
以下是 Intel Skylake i-7 6700 HQ 上的结果:
INT3400 Thermal 20.0°C
pch_skylake 91.0°C
SEN1 67.0°C
B0D4 61.0°C
SEN2 60.0°C
SEN3 68.0°C
SEN4 71.0°C
x86_pkg_temp 63.0°C
这些包sensors
从内核/sys/class/...
目录获取它的信息。您可以在那里获取sensors
正在向您透露的所有信息。
笔记: pch_skylake
大多数机器上的温度异常高。简短的谷歌搜索证实了这一点。