首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >输入装置Udev规则

输入装置Udev规则
EN

Stack Overflow用户
提问于 2017-08-31 17:54:50
回答 1查看 4K关注 0票数 2

我有一个相机设备,它的输入设备列在/dev/input下面。我想将输入设备添加到组plugdev中。

当我插上相机时:

代码语言:javascript
运行
复制
[  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

它现在在/dev/input/by-id下是符号链接的

代码语言:javascript
运行
复制
0 lrwxrwxrwx 1 root root 10 Aug 31 10:50 usb-e-con_Systems_See3CAM_CU51_172A0202-event-if00 -> ../event20

但是,event20具有以下权限:

代码语言:javascript
运行
复制
0 crw-rw---- 1 root input 13, 84 Aug 31 10:50 event20

我已经成功地为隐藏设备本身编写了udev规则,但是由于某些原因,我无法为输入设备找到正确的规则。以下是我尝试过的:

代码语言:javascript
运行
复制
KERNEL=="input", ATTR{name}=="See3CAM_CU51", MODE="0666" GROUP="plugdev"

但这似乎行不通。没有太多的例子可以改变输入设备的所有权(至少我已经发现了)。

更新:

当我将udev规则更改为

代码语言:javascript
运行
复制
    KERNEL=="input", MODE="0666" GROUP="plugdev"

也就是说,我省略了设备名称,我在/dev/ out中的所有输入设备都具有正确的权限。

因此,基本上,我是说“每个输入设备都被设置为模式0666,并且属于plugdev组”,这是可行的。但是,添加ATTR{name}==会破坏它。

以下是udevadm信息的输出:

代码语言:javascript
运行
复制
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}==""

它应该在工作,我有正确的名称为设备,我犯了什么愚蠢的错误?

EN

回答 1

Stack Overflow用户

发布于 2021-11-20 23:31:23

udev规则支持字符串匹配,您可能需要:

代码语言:javascript
运行
复制
ACTION=="...", KERNEL=="input[0-9]*", SUBSYSTEM=="input", ...

若要匹配任何inputN设备的特定操作,则可以添加ATTR筛选器以选择特定设备。

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

https://stackoverflow.com/questions/45987478

复制
相关文章

相似问题

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