我同意使用VID / PID进行规则匹配不是一个确定的解决方案。但是,您可以在同一规则中使用多个设备,而不会像以前那样盲目地瞄准所有USB设备。使用实施例DRIVER
名称(usb-storage
,usbhid
,..)或KERNEL
域名(tty*
,sd*
,..)甚至使用最少的正则表达式(sd[a-z][0-9]*
,usb*
)。
您应该在它们的属性中寻找相似之处。
- 删除所有那些设备
将当前设备列表保存在 /dev
ls /dev > /tmp/dev_list0.txt
插入目标设备之一
将设备列表保存在另一个文件中
ls /dev > /tmp/dev_list.txt
比较文件,>
添加的设备,<
删除的设备
$ colordiff /tmp/dev_list0.txt /tmp/dev_list.txt
85a86,87
> sdc
> serial
89a92,93
> sg4
> sg5
93a98
> sr1
194a200,201
> ttyUSB0
> ttyUSB1
这是3G调制解调器。
检查所需的所有接口的属性,例如:
udevadm info --attribute-walk --name=/dev/ttyUSB0
对所有想要的设备执行相同的操作。如果您不知道如何操作,请上传其udevadm info --attribute-walk --name=...
输出并将其链接到您的问题。
请注意,并非所有USB设备都在中创建节点/dev
。有些人在SYSFS树中寻找它们/sys
。然后使用--path
udevadm info --attribute-walk --path=...
使用与上述相同的步骤,您可以检查通过监视udev
事件创建的设备节点:
udevadm monitor
udev
,令人沮丧的是不透明且文档记录很差:我认为您可能需要使用属性SUBSYSTEMS
(复数)而不是SUBSYSTEM
(单数)。如果您编辑问题以包括设备实际devpathudevadm info --attribute-walk /dev/xxx
在哪里的输出,/dev/xxx
则也许有人可以给出更好的分析。