使用哪个文件系统来为温度传感器公开 readings/limits
Which filesystem to use to expose readings/limits for temperature sensor
我目前经常遇到一些硬件过热的问题。查看 Linux 内核,我发现目前完全支持热传感器,但是预配置的限制似乎太高了。我目前正在寻找修改内核模块的方法,但我不确定修改它的最佳方法是什么。我想要以下内容:
- 在某处有一个文件,我可以在其中读取当前温度
- 有几个文件我可以使用来自用户space的文件来修改当前限制
现在我不确定我应该为此使用什么虚拟文件接口。到目前为止,我看到以下选项:
- 通过
/dev/
文件系统公开所有数据,使用ioctl()
修改限制
- 添加sysfs中的文件
- 在debugfs中添加文件
我不确定每种方法的优缺点。到目前为止,我已经看过 sysfs,似乎这不是正确的方法。传感器的数量高度依赖于硬件,我将不得不添加各种 hack 来为每个传感器获取一个文件(或每个传感器一个目录),可能为每个传感器添加另一个 kobject,以便我可以在结果目录中添加文件。以前,传感器数据似乎可以通过 /sys/class/hwmon/hwmon0/device/temp1_input
获得,但在那里被删除了。
debugfs 似乎也不是正确的方法,因为我对内核调试不太感兴趣,而是提供一种更好的配置和读取传感器的方法。
devfs 然而,对于这样一个简单的设置来说似乎有点矫枉过正。
公开传感器数据并使限制可通过用户配置的最佳方式是什么space?
根据 Documentation/hwmon/sysfs-interface,temp[1-*]_max
和 temp[1-*]_crit
已为此目的定义,应尽可能实现读写。
如果您的驱动程序还不是这种情况,那么这就是您想要实现的。
无需公开温度传感器的文件系统。使用热框架将温度传感器注册为热区,然后提供 get /sysfs 接口。可以从 user-space 使用。
通过下面的 link 了解如何从 user-space.
访问它
https://www.lookup2learn.com/post/thermal-management-in-linux
我目前经常遇到一些硬件过热的问题。查看 Linux 内核,我发现目前完全支持热传感器,但是预配置的限制似乎太高了。我目前正在寻找修改内核模块的方法,但我不确定修改它的最佳方法是什么。我想要以下内容:
- 在某处有一个文件,我可以在其中读取当前温度
- 有几个文件我可以使用来自用户space的文件来修改当前限制
现在我不确定我应该为此使用什么虚拟文件接口。到目前为止,我看到以下选项:
- 通过
/dev/
文件系统公开所有数据,使用ioctl()
修改限制 - 添加sysfs中的文件
- 在debugfs中添加文件
我不确定每种方法的优缺点。到目前为止,我已经看过 sysfs,似乎这不是正确的方法。传感器的数量高度依赖于硬件,我将不得不添加各种 hack 来为每个传感器获取一个文件(或每个传感器一个目录),可能为每个传感器添加另一个 kobject,以便我可以在结果目录中添加文件。以前,传感器数据似乎可以通过 /sys/class/hwmon/hwmon0/device/temp1_input
获得,但在那里被删除了。
debugfs 似乎也不是正确的方法,因为我对内核调试不太感兴趣,而是提供一种更好的配置和读取传感器的方法。
devfs 然而,对于这样一个简单的设置来说似乎有点矫枉过正。
公开传感器数据并使限制可通过用户配置的最佳方式是什么space?
根据 Documentation/hwmon/sysfs-interface,temp[1-*]_max
和 temp[1-*]_crit
已为此目的定义,应尽可能实现读写。
如果您的驱动程序还不是这种情况,那么这就是您想要实现的。
无需公开温度传感器的文件系统。使用热框架将温度传感器注册为热区,然后提供 get /sysfs 接口。可以从 user-space 使用。 通过下面的 link 了解如何从 user-space.
访问它https://www.lookup2learn.com/post/thermal-management-in-linux