我同意使用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则也许有人可以给出更好的分析。