2012-10-30 91 views
1

我想获取USB设备的设备节点(例如/ dev/sdb)。有没有办法使用libusb API获取USB设备的设备节点?

我想知道是否有任何libusb API会给我与USB设备关联的特定设备节点。

如果没有API,是否有任何其他替代方法来实现此目的?任何有关这方面的见解都将非常有用。

在此先感谢。

+1

你用什么发行版? – 2012-10-30 04:49:14

回答

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已经实现了这样的事情,但事实并非如此。 无论如何,祝你好运!

相关问题