【发布时间】:2011-09-11 13:37:48
【问题描述】:
我正在开展一个项目,该项目涉及自动检测从 OS X 系统插入和拔出的 USB 和火线设备。对于给定的设备,系统需要在插入时识别设备(无论是哪个端口)并加载特定于设备的捆绑包来处理它。
实现这项工作的关键显然是每个设备的唯一标识。我知道 USB 设备由供应商 ID 和产品 ID 字段的组合标识,但这不提供唯一 ID,仅提供设备的“种类”。如果我有两个相同的设备并将它们都插入计算机,我想要一些方法来区分它们。是否有一种通用且可靠的方法来执行此操作,也许使用 USB 描述符中的其他字段?
一个相关的问题,USB 串行端口如何工作?假设我插入了两个相同品牌/型号的 USB 串行端口。 OS X 应该在 /dev 树中为它们提供唯一的 inode。但是,假设它称它们为 /dev/usbserial1 和 /dev/usbserial2。如果我然后拔下端口并仅插入其中一个,该端口的名称是否与以前相同,还是仅插入 /dev/usbserial1(因为它是唯一的)端口?
对于火线设备同样的问题,虽然我认为火线设备应该有一个 64 位 GUID。在这种情况下,我正在寻找某人来验证使用 GUID 进行火线设备识别是否可靠。换句话说,如果我插入两个相同品牌和型号的独立相机,我会期望它们有不同的 GUID 吗?
我知道我可以用适当的硬件测试其中的一些,但我目前没有多个硬件,所以我希望有人至少知道上述问题的部分答案。
【问题讨论】:
-
我有兴趣回答有关 FireWire 的问题的第二部分。
标签: macos usb device-driver firewire