gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:38:04 26 4
gpt4 key购买 nike

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

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

如果没有 API,是否还有其他替代方法可以实现此目的?对此的任何见解都会证明非常有帮助。

提前致谢。

最佳答案

在 Linux 上,探索连接的 USB 设备及其属性的最简单方法是简单地扫描目录 /sys/bus/usb/devices。这个虚拟目录列出了所有连接的设备。每个条目都有非常简单的结构,并且对于每个连接了从设备的设备(比如通过集线器连接的设备)都有虚拟子目录。还有一个好处是,通常您无需成为 root 用户即可读取大量设备属性,例如制造商或序列号。

这个接口(interface)的另一个非常好的特性是它是半稳定的。也就是说,每个设备都有唯一的 ID,如 a-b.c.d.e:x.y(a - 总线编号,b,c - 根集线器,下一个集线器,端口等,x,y - 功能,子功能),并且如果一个设备连接或断开连接,此设备枚举不会突然改变所有设备。

您还可以轻松地将这些设备 ID 映射到 libusb 样式的总线/设备编号(但这些并不稳定)。

不幸的是,这是特定于 Linux 的,似乎不适用于其他操作系统。我希望 libusb 已经实现了类似的东西,但它没有。无论如何,祝你好运!

关于linux - 有没有办法使用 libusb API 获取 USB 设备的设备节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13132714/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com