我有几个 USB 网络摄像头,但不幸的是它们没有序列号。因此,它们在启动时往往会切换设备文件名。
由于它们总是位于同一个 USB 端口,因此我想基于此创建一个规则。但失败了。
以下是我迄今为止尝试过的:
#/sys/bus/usb/devices/2-5.1:1.1/uevent #SUBSYSTEM=="usb", SYSFS{idVendor}=="05e1", SYSFS{idProduct}=="0408", PLACE=="2-5.1", NAME="video98" #SUBSYSTEM=="usb", PLACE=="2-5.1", NAME="video98" #SUBSYSTEM=="usb", ATTR{busnum}="002", ATTR{devnum}="009", ATTR{idVendor}="05e1", NAME="video98" 子系统=="usb", ATTR{busnum}="002", ATTR{devpath}="/devices/pci0000:00/0000:00:1d.7/usb2/2-5/2-5.1", ATTR{idVendor}="05e1", NAME="video98" #/sys/bus/usb/devices/2-5.3:1.1/uevent #SUBSYSTEM=="usb", ATTR{busnum}="002", ATTR{devnum}="010", ATTR{idVendor}="05e1", NAME="video99" 子系统=="usb", ATTR{busnum}="002", ATTR{devpath}="/devices/pci0000:00/0000:00:1d.7/usb2/2-5/2-5.3", ATTR{idVendor}="05e1", NAME="video99"
是的,我尝试过几次。我发现 devnum 在启动时也会改变,所以我不想使用它。
我其实只想使用“2-5.3”和“2-5.1”。这总是一样。但是该怎么做呢?
答案1
奇怪的是,我以前也做过几乎完全一样的事情。我的是外置硬盘,但对于 USB 相机来说应该没什么不同。我为端口使用了 SCSI 总线地址,效果很好。
我使用 获取了信息lsscsi
,它将为 USB 设备打印类似以下内容的内容:
[2:0:0:0] disk <descriptor> <dev name>
然后类似下面的规则应该可以完成您想要的事情:
SUBSYSTEM=="usb", KERNEL=="sd*1", KERNELS=="2:0:0:0", SYMLINK+="<label_1>"