我有一个项目,我有几十个相机通过 USB 连接到我的 Ubuntu 12.04 笔记本电脑,我需要通过 Gphoto2 从这些相机中获取图像
问题是,当我断开 USB 电缆并重新连接时,USB 端口号会增加,因此在抓取图像时我无法判断我正在与哪台相机通信,因为 gphoto 要求我定义一个端口号来抓取图片。
有什么方法可以重置 USB 端口号,以便根据插入的顺序分配 USB 端口?或者有没有其他方法可以用来映射相机,以便每次都能从正确的相机中检索图像?
您可能可以使用供应商 ID 和序列号的组合来追踪确切的相机或任何其他 USB 设备。很少有设备,如 USB 闪存驱动器没有序列号(到目前为止,我还没有使用带有 linux 的 USB 摄像头)。您可以探索(/sys/bus/usb/devices/../ 和 'lsusb -v')以获取更多信息。
这可能不是您要寻找的答案,但是当订单很重要时,我总是使用外部集线器。当集线器连接到 PC 时,如果它们都连接到集线器,则它们倾向于以逻辑方式枚举设备。您必须通过运行一些试验来弄清楚集线器逻辑。在我玩过的许多游戏中,顺序通常是从一侧到另一侧。例如,我的CyberPower 集线器从最左上角的端口逆时针枚举集成电路 DIP 上的引脚编号。这意味着当我将六个 USB 连接到串行设备,然后将集线器连接到 PC 时,它们会以相同的顺序显示为 /dev/ttyUSB0 - 5。