将`udev`规则与`/dev/uhid`一起使用的正确方法

问题描述 投票:0回答:1

我想将Linux上的

/dev/uhid
组设置为
uhid
,以便该组的用户无需root权限即可拥有rw访问权限。不幸的是,像
KERNEL=="uhid", GROUP="uinput-users", MODE="0660"
这样的规则不会在启动时应用(udev 甚至不知道设备),但是当我使用 root 访问权限访问
/dev/uhid
一次时。

示例:

sugar@achilles:~$ udevadm info /dev/uhid
Unknown device "/dev/uhid": No such device
sugar@achilles:~$ sudo ./some/random/program/that/accesses/uhid 
[sudo] password for sugar: 
^C
sugar@achilles:~$ udevadm info /dev/uhid
P: /devices/virtual/misc/uhid
N: uhid
L: 0
E: DEVPATH=/devices/virtual/misc/uhid
E: DEVNAME=/dev/uhid
E: MAJOR=10
E: MINOR=239
E: SUBSYSTEM=misc
sugar@achilles:~$ ls -la /etc/udev/rules.d/90-uinput.rules 
-rw-r--r-- 1 root root 42 Aug 12 22:58 /etc/udev/rules.d/90-uinput.rules
sugar@achilles:~$ cat /etc/udev/rules.d/90-uinput.rules 
KERNEL=="uhid", GROUP="udev", MODE="0660"

(我尝试了不同的方法,但上面的例子来自这里:https://gist.github.com/StuntsPT/cd3ef67a5ac30e168cb6774ea939f55f

有人可以告诉我这是为什么以及如何解决它吗?我能想到的唯一解释是

/dev/uhid
是在
udev
“准备好”之前创建的。

linux udev
1个回答
0
投票

问题在于

uhid
模块仅“按需”加载,即第一次访问
/dev/uhid
时。加载模块时应用 udev 规则。通过将
uhid
添加到
/etc/module
以在启动期间加载模块,可以轻松修复此问题。

© www.soinside.com 2019 - 2024. All rights reserved.