首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >miscdevice节点权限需要是泛型的

miscdevice节点权限需要是泛型的
EN

Stack Overflow用户
提问于 2015-03-13 21:32:18
回答 1查看 861关注 0票数 1

我想让所有用户都能访问我的驱动程序。我希望能够将660个设备节点权限授予我的驱动节点。驱动节点是通过框架创建的,它是作为漏设备注册的一部分创建的。但是我总是得到/dev/mydev,它有600个用户/组作为root的权限。我该如何更改获得660的许可--

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-14 00:00:24

您不能仅通过修改驱动程序代码来更改/dev中设备文件的权限。这是因为/dev中的文件不是由内核创建的。它们是由udev (在PC上)或其他设备管理器创建的。因此您需要处理udev才能做到这一点。更具体地说,您需要创建所谓的udev规则

此外,如果您希望为all users对您的设备提供读/写访问权限,则需要设置666权限模式,而不是您刚才提到的660。这是因为您的设备文件以root:root作为用户/组,而在权限模式下的前两位数字是用于用户/组的。第三个数字是others,您实际上想要更改它。

考虑到所有提到的信息,您可以做下一步。创建您的udev规则文件(例如99-my-misc-dev.rules):

代码语言:javascript
复制
$ sudo vim /etc/udev/rules.d/99-my-misc-dev.rules

并粘贴到此文件的下一行:

代码语言:javascript
复制
KERNEL=="mymiscdevice", MODE="0666"

当然,您应该将mymiscdevice更改为设备的文件名(正如它在/dev中显示的那样)。

告诉udev重新加载所有规则:

代码语言:javascript
复制
$ sudo udevadm trigger

现在,您应该看到设备文件的666权限。

注意,在嵌入式设备上,通常没有udev,但是/dev中的文件仍然是由某些设备管理器或脚本创建的。例如,如果使用BusyBox rootfs,就会有设备管理器称为mdev。您还可以在mdev中为/etc/mdev.conf创建规则。一旦创建了规则,就应该运行mdev -s命令。详情请参见

在Android上,这通常是在/init.rc文件中完成的(在Android中)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29042313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档