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

Module 使用哪个文件系统公开温度传感器的读数/限制,module,linux-kernel,sysfs,Module,Linux Kernel,Sysfs,我目前经常遇到一些硬件过热的问题。通过查看Linux内核,我发现目前完全支持热传感器,但是预配置的限制似乎太高了。我目前正在寻找修改内核模块的方法,但我不确定修改它的最佳方法是什么。我希望: 在某个地方有一个文件,在那里我可以读取当前的温度 有几个文件可以从用户空间修改当前限制 现在我不确定我应该使用什么虚拟文件接口来实现这一点。到目前为止,我看到了以下选项: 通过/dev/文件系统公开所有数据,使用ioctl()修改限制 在sysfs中添加文件 在debugfs中添加文件 我不确定每种

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

  • 在某个地方有一个文件,在那里我可以读取当前的温度
  • 有几个文件可以从用户空间修改当前限制
现在我不确定我应该使用什么虚拟文件接口来实现这一点。到目前为止,我看到了以下选项:

  • 通过
    /dev/
    文件系统公开所有数据,使用
    ioctl()
    修改限制
  • 在sysfs中添加文件
  • 在debugfs中添加文件
我不确定每种方法的利弊。到目前为止,我已经研究了sysfs,似乎这不是正确的方法。传感器的数量高度依赖于硬件,我必须添加各种黑客,以获得每个传感器一个文件(或每个传感器一个目录),可能会为每个传感器添加另一个kobject,以便在生成的目录中添加文件。以前,传感器数据似乎是通过
/sys/class/hwmon/hwmon0/device/temp1_input
获得的,但是它被删除了

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

然而,对于这样一个简单的设置,devfs似乎有点过头了

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

根据,已经为该用户定义了
temp[1-*]\u max
temp[1-*]\u crit
,并应尽可能实现读写。
如果您的驱动程序还没有这样做,那么这就是您想要实现的。

无需公开温度传感器的文件系统。使用thermal framework将温度传感器注册为thermal zone,并提供get/sysfs接口。可以从用户空间使用。 通过下面的链接了解如何从用户空间访问它


这个问题对我来说似乎过于宽泛/主要的观点基础。。。甚至在
sysfs
/
debugfs
之间也没有格式良好的边界。至于
/dev
,取决于设备是否代表传感器,这是非常主观的。对我来说,
sysfs
是传感器暴露极限的最合适的地方。@Tsyvarev:是的,我不确定它是否太宽或引起太多的讨论。我希望得到一些一般规则,但正如您所说,我甚至不确定
sysfs
debugfs
之间的明确界限。我不确定sysfs是否是正确的位置,因为和。您提到的问题在
/sys
下不允许这样的事情,他们只是建议使用设备表示法。(这个设备是另一个重要的东西,然后是
/dev
)谢谢你的提示,它看起来真的是放置数据的最好地方。就我所知,我必须以某种方式将设备注册到hwmon驱动程序中,对吗?这将是更好的选择,但严格来说并不是必需的。