我正在尝试获取USB设备的设备节点(例如/ dev / sdb)。
我想知道是否有任何libusb API能够为我提供USB设备所关联的特定设备节点。
如果没有API,还有其他方法可以实现吗?任何有关这方面的见解都会非常有用。
提前致谢。
答案 0 :(得分:0)
在Linux上,探索附加USB设备及其属性的最简单方法是简单地扫描目录/sys/bus/usb/devices
。此虚拟目录列出所有连接的设备。每个条目都具有非常简单的结构,并且对于每个具有从属连接的设备(如通过集线器连接的设备),都有虚拟子目录。
一般来说,你也不需要root来读取很多设备属性,比如制造商或序列号。
此界面的另一个非常好的属性是它是半稳定的。也就是说,每个设备都有唯一的ID,如a-b.c.d.e:x.y
(a - 总线编号,b,c - 根集线器,下一个集线器,端口等..,x,y - 函数,子函数),此设备枚举是如果连接或断开一个设备,则不会突然切换所有设备。
您还可以轻松地将这些设备ID映射到libusb风格的总线/设备编号(但这些设备不稳定)。
不幸的是,这是特定于Linux的,并且似乎不适用于其他操作系统。我希望libusb已经实现了这样的东西,但事实并非如此。 祝你好运!