关注底部公众号,获取更多学习资料
hwmon介绍
Linux 中,硬件监视器的信息通常可以通过 /sys/class/hwmon/
目录下的子目录来访问。例如,/sys/class/hwmon/hwmon0/
目录包含了第一个硬件监视器的信息,包括传感器的数据。
在 Linux 中,hwmon0
表示硬件监视器(Hardware Monitor)的第一个实例。硬件监视器是一种用于监测系统硬件传感器和提供相关信息的子系统。这些传感器通常包括温度传感器、风扇转速传感器、电压传感器等,用于监测计算机的工作状态和硬件健康状况。
要确定每个 hwmon
实例具体代表什么,你可以检查 /sys/class/hwmon/
目录下的子目录,查看每个子目录中包含的文件和内容,特别是文件名类似于 name
、temp*_input
的文件。这些文件中的信息通常能够指示硬件监视器所监测的内容,以及每个传感器的标识。
例如,你可以运行以下命令查看 hwmon0
的一些信息:
cat /sys/class/hwmon/hwmon0/name
cat /sys/class/hwmon/hwmon0/temp*_input
通过查看这些文件,你可以了解到 hwmon0
监测的是什么硬件以及它提供的具体传感器信息。这样的信息可能因硬件和系统而异。
目录下的 temp1_input
和 temp2_input
文件通常代表不同的温度传感器,提供了不同的温度读数。这些传感器可能对应于不同的硬件组件,例如不同的核心、区域或连接到主板上的其他传感器。
另外,进入目录后可以看到下面内容
# cat /sys/class/hwmon/hwmon0/temp1_input
33000
# cat /sys/class/hwmon/hwmon0/temp2_input
31000
# sensors
coretemp-isa-0000
Adapter: ISA adapter
Physical id 0: +33.0°C (high = +87.0°C, crit = +97.0°C)
Core 0: +31.0°C (high = +87.0°C, crit = +97.0°C)
Core 1: +27.0°C (high = +87.0°C, crit = +97.0°C)
Core 2: +28.0°C (high = +87.0°C, crit = +97.0°C)
Core 3: +30.0°C (high = +87.0°C, crit = +97.0°C)
Core 4: +27.0°C (high = +87.0°C, crit = +97.0°C)
Core 8: +30.0°C (high = +87.0°C, crit = +97.0°C)
Core 9: +29.0°C (high = +87.0°C, crit = +97.0°C)
Core 10: +30.0°C (high = +87.0°C, crit = +97.0°C)
Core 11: +28.0°C (high = +87.0°C, crit = +97.0°C)
Core 12: +31.0°C (high = +87.0°C, crit = +97.0°C)
Core 16: +26.0°C (high = +87.0°C, crit = +97.0°C)
Core 17: +29.0°C (high = +87.0°C, crit = +97.0°C)
Core 18: +26.0°C (high = +87.0°C, crit = +97.0°C)
Core 19: +29.0°C (high = +87.0°C, crit = +97.0°C)
Core 20: +31.0°C (high = +87.0°C, crit = +97.0°C)
Core 24: +28.0°C (high = +87.0°C, crit = +97.0°C)
Core 25: +28.0°C (high = +87.0°C, crit = +97.0°C)
Core 26: +28.0°C (high = +87.0°C, crit = +97.0°C)
Core 27: +28.0°C (high = +87.0°C, crit = +97.0°C)
Core 28: +29.0°C (high = +87.0°C, crit = +97.0°C)
temp1_input对应的是整个cpu的温度,temp2_input对应的是core0,依次类推。
如果你想更详细地了解这些温度传感器是如何分配的,可以检查 /sys/class/hwmon/hwmon0/
目录中的其他文件
1. 读CPU的温度命令如下:
cat /sys/class/hwmon/hwmon0/temp1_input
cat /sys/class/hwmon/hwmon0/temp2_input
读出来的数值除以1000,就是实际温度。
例如:
root@:~# cat /sys/class/hwmon/hwmon0/temp1_input
47708
实际温度为:
47708÷1000=47.708℃
内核API:The Linux Hardware Monitoring kernel API — The Linux Kernel documentation
https://jerry-cheng.blog.csdn.net/article/details/106449418