有没有办法使用libusb API获取USB设备的设备节点?

时间:2012-10-30 04:39:03

标签: linux libusb

我正在尝试获取USB设备的设备节点(例如/ dev / sdb)。

我想知道是否有任何libusb API能够为我提供USB设备所关联的特定设备节点。

如果没有API,还有其他方法可以实现吗?任何有关这方面的见解都会非常有用。

提前致谢。

1 个答案:

答案 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已经实现了这样的东西,但事实并非如此。 祝你好运!