gpt4 book ai didi

linux - lm75 内核模块在用户空间可用

转载 作者:太空宇宙 更新时间:2023-11-04 10:13:24 25 4
gpt4 key购买 nike

我正在使用 lm75 内核模块与自定义板上的传感器交互。一切正常,我的设备安装在/sys/bus/i2c/devices/5-0048 中。但我想让用户设置最大温度滞后,换句话说让用户写入 temp_max_hyst 文件。此文件的权限是只读的,除了 root

我的问题是,有什么方法可以将我的设备挂载到/dev 中吗?

最佳答案

安装 在这里不是正确的术语,因此您不会找到任何搜索内容。具有文件系统的 block 设备被挂载到目录上,然后成为挂载点

此处设备 5-0048 绑定(bind) 到驱动程序 lm75。你会发现设备在那里,假设它出现在设备树或板信息中,无论 lm75 驱动程序是否存在。如果 lm75 驱动程序绑定(bind)到设备,它会创建一个 hwmon 类的新设备。您感兴趣的是具有属性(如temp_max_hyst)的设备。

您在/dev 中看到的称为设备节点。虽然许多设备一旦绑定(bind)到驱动程序,就会创建一个设备节点来与设备交互,但这并不是必须发生的。 /sys/class/regulator/sys/class/net 中可能有一堆设备在 /dev 中没有节点> 与他们相关联。

hwmon 类型的驱动程序,如 lm75,通常不会创建任何设备节点来为硬件提供字符设备或 block 设备用户空间接口(interface)。因此,此设备的开发中不会出现任何内容。 hwmon设备的属性就是你得到的。

但是您的问题有一个简单的解决方案。作为 root,只需 chmod a+w temp_max_hystchown user_account temp_max_hyst 或(这可能是最好的)chmod g+w temp_max_hyst ; chgrp hw_access_group temp_max_hyst 并将用户添加到组 hw_access_group。您可以使用现有的组,可能有一个名为 wheeladm 的组将用于类似这样的事情,或者创建一个新组仅用于 hwmon 访问。

当然这不会在重启后持续存在,因为 sysfs 不是磁盘上的真实文件系统。要使更改持久化,最好的方法是创建一个 udev 规则,该规则在检测到 hwmon 设备时自动影响 chmod/chown。这是您在这里关心的 hwmon 设备,而不是 i2c 设备。尝试运行 udevadm info -a/sys/class/hwmon/hwmon0

关于linux - lm75 内核模块在用户空间可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47595692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com