鉴于两个相同的USB设备具有完全相同的USB描述符,因此绝对无法仅使用设备信息视图(USB设备描述符)的叶信息来区分它们(如通常所做的那样)是的,这个设备设计很糟糕。)
但是,由于我在谈论一个封闭的系统,我认为我可以使用用于连接设备的物理USB端口来解决问题。我可以说一个插在物理端口#1上,另一个插在我主板的root usb集线器的物理端口#2上。并lsusb
向我提供了这些信息。
所以现在我需要能够根据这两个物理坐标在/dev
中找到设备节点。但是在查看sysfs
时,我找不到任何指向此物理拓扑的链接。就像sysfs
usb树只是物理的逻辑视图一样。似乎sysfs
usb设备名称/sys/bus/usb/devices/2-2.1
或/sys/bus/usb/devices/2-2.1/2-2.2
是动态且不可预测的。
我发现了这个:
$ ls /dev/serial/by-path/ pci-0000:02:00.0-usb-0:2.1:1.0-port0@
pci-0000:02:00.0-usb-0:2.2:1.0-port0@
我应该编写udev
规则来冻结pci和usb端口名称吗?它们是否已经可以预测?
我的最终目标是能够根据所使用的物理usb端口编写udev
规则以获取可预测和冻结设备的名称。
该解决方案也适用于PCI设备。
由于