使用哪个文件系统来公开温度传感器的读数/限制

时间:2015-11-23 14:18:02

标签: module linux-kernel sysfs

我目前经常遇到一些硬件过热的问题。通过Linux内核,我发现目前完全支持热传感器,但是预先配置的限制似乎太高了。我目前正在寻找修改内核模块,但我不确定修改它的最佳方法是什么。我想要以下内容:

  • 在某个地方有一个文件,我可以在那里读取当前温度
  • 我可以从用户空间使用几个文件来修改当前限制

现在我不确定我应该使用什么虚拟文件接口。到目前为止,我看到以下选项:

  • 通过/dev/文件系统公开所有数据,使用ioctl()修改限制
  • 在sysfs中添加文件
  • 在debugfs中添加文件

我不确定这些方法的优点和缺点是什么。到目前为止,我已经看过sysfs了,看来这不是正确的方法。传感器的数量高度依赖于硬件,我必须添加各种黑客以获得每个传感器一个文件(或每个传感器一个目录),可能为每个传感器添加另一个kobject,以便我可以在结果目录中添加文件。以前传感器数据似乎可以通过/sys/class/hwmon/hwmon0/device/temp1_input获得,但是它已被移除。

debugfs似乎也不是正确的方法,因为我对内核调试并不是那么感兴趣,而是提供了一种配置和读取传感器的更好方法。

然而,对于这样一个简单的设置来说,devfs似乎有点过分。

公开传感器数据并通过用户空间配置限制的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

根据Documentation/hwmon/sysfs-interfacefragment Error:(91, 47) error: incompatible types: FragmentActivity cannot be converted to OnClickListener 已经为此定义,应尽可能以读写方式实现。 如果你的驱动程序不是这种情况,那么这就是你想要实现的。

答案 1 :(得分:1)

无需公开温度传感器的文件系统。使用热框架将温度传感器注册为热区,然后提供get / sysfs接口。可以在用户空间中使用。 浏览以下链接,了解如何从用户空间访问它。

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