我有一个相机设备,它的输入设备列在 /dev/input
下。 .我想将该输入设备添加到组 plugdev
.
当我插入相机时:
[ 704.406837] input: See3CAM_CU51 as /devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0/input/input21
[ 705.157657] hid-generic 0003:2560:C152.0007: hiddev0,hidraw4: USB HID v1.11 Device [e-con Systems See3CAM_CU51] on usb-0000:00:1
它现在符号链接(symbolic link)在
/dev/input/by-id
下0 lrwxrwxrwx 1 root root 10 Aug 31 10:50 usb-e-con_Systems_See3CAM_CU51_172A0202-event-if00 -> ../event20
但是,event20 具有以下权限:
0 crw-rw---- 1 root input 13, 84 Aug 31 10:50 event20
我已经成功地为 hiddevice 本身编写了 udev 规则,但由于某种原因,我无法为输入设备获得正确的规则。这是我尝试过的:
KERNEL=="input", ATTR{name}=="See3CAM_CU51", MODE="0666" GROUP="plugdev"
但它似乎不起作用。改变输入设备所有权的例子并不多(至少我发现了)。
更新:
当我将 udev 规则更改为
KERNEL=="input", MODE="0666" GROUP="plugdev"
也就是说,我省略了设备名称,我在/dev/input 中的所有输入设备都具有正确的权限。
所以基本上,我是说“每个输入设备都设置为模式 0666,并且属于 plugdev 组”,这是可行的。但是添加 ATTR{name}== 会破坏它。
这是 udevadm 信息的输出:
udevadm info -a -p /devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0/input/input21
looking at device '/devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0/input/input21':
KERNEL=="input21"
SUBSYSTEM=="input"
DRIVER==""
ATTR{name}=="See3CAM_CU51"
ATTR{phys}=="usb-0000:00:14.0-2/button"
ATTR{properties}=="0"
ATTR{uniq}==""
它应该可以工作,我为设备设置了正确的名称,我犯了什么愚蠢的错误?
最佳答案
udev 规则支持字符串匹配,您可能正在寻找:
ACTION=="...", KERNEL=="input[0-9]*", SUBSYSTEM=="input", ...
匹配任何 inputN
的特定操作设备,然后您可以添加您的 ATTR
过滤器以选择特定设备。
关于linux - 输入设备的udev规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45987478/