如何在同一位置的所有 Linux 发行版中找到包含 CPU 温度和风扇速度信息的文件?

How to find a file containing CPU temperature and fan speed information in all Linux distros at same location?

我正在做一个项目,我必须获得 CPU 温度(包括核心)和风扇速度。

对于我的电脑,我使用 /sys/class/hwmon/hwmon2/temp*_input 作为 CPU 和 /sys/class/hwmon/hwmon3/device/fan*_input 作为风扇速度。

我的代码在其他一些 PC 上不起作用。首先,OS 是 Ubuntu 18.04,第二个是 16.04。我想找到一条通用路径,从中我可以获得所有必要的信息。我可以使用类似的东西吗?

不,没有这回事

您想要阅读的不同测量值分散在系统中,具体取决于 drivers/modules 甚至 Linux 口味。

您必须找到您想要获得的读数、在哪里可以获得它们或通过特定工具获得。

/sys/class/hwmon/ 是最接近的。

如果您想查看受支持的内容,可以找到 hwmon 的一些文档 here

此命令将显示当前温度:

cat /sys/class/thermal/thermal_zone*/temp

温度监控和风扇控制是使用称为 hwmon 的标准内核接口实现的。您可以配置 sysfslm_sensors 接口来显示风扇速度和温度。查看以下指南以获得更详细的答案:

https://github.com/Mellanox/mlxsw/wiki/Temperature-and-Fan-Control

据我所知,没有通用的方法。糟透了,但这就是你的生活。你只需要探索不同的选项,看看什么在当前系统上有效并处理它。

首先,我尝试编写一个代码来查找名称为 temp_input 和 fan_input 的所有文件。找到这些文件后,我读取了存储在这些文件中的数据。此代码在之前安装了 hwmon 接口的所有 linux 机器上都能完美运行。

可以从/sysfs 接口读取,都可以从/sys/clsss/thermal 或/sys/class/hwmon。

通过下面 link 了解更多详细信息:

https://www.lookup2learn.com/post/thermal-management-in-linux