在 ubuntu 中如何分配 USB ID 和设备?

在 ubuntu 中如何分配 USB ID 和设备?

我有一个 USB 键盘,我正在使用 lsusb 命令。当我断开并重新连接键盘时,我看到它Device会增加,但ID保持不变。即使跨机器,ID 也保持不变。我没有两个相同的设备连接到一台 PC 来查看 ID 是否相同。我想知道如果我有两个相同的键盘,它们的 ID 是否都是 040b:2000?当我想到 ID 时,我会想到 UID,例如我的驱动程序 ID 是唯一的,html ID 也是唯一的。

在我的 rpi 上:

Bus 001 Device 005: ID 040b:2000 Weltrend Semiconductor 

断开键盘并重新连接

Bus 001 Device 006: ID 040b:2000 Weltrend Semiconductor 

然后把键盘拿到我的电脑上

Bus 002 Device 009: ID 040b:2000 Weltrend Semiconductor 

答案1

是的,USB ID 是设备标准,因此 2 个相同的设备将具有相同的 ID。ID 和设备(以及 Linux 等中的支持)的数据库维护在http://www.linux-usb.org/usb-ids.html。实际数字分为两部分——供应商和设备。

答案2

根据标准要求,每个 USB 设备都必须具有两个基本参数:供应商标识符 (VID) 和产品标识符 (PID)。这些标识符由每个 USB 设备在枚举阶段通过“获取描述符”命令传输。VID 和 PID 嵌入到设备硬件中,因此与操作系统无关。除了设备的通用 USB 类之外,它们的用途是让操作系统加载适当的驱动程序(如果设备具有特定于该供应商的专有功能)。

每个在 USB 组织注册的制造商都会获得 VID。USB.ORG 列出了分配给制造商的唯一 VID。PID 是设备的附加标识符,它描述了制造商产品线内的不同设备类型和型号版本。

所以是的,来自同一商店货架的两个键盘将报告完全相同的 VID 和 PID。这些不应与驱动程序实例的标识(“句柄”)相混淆,驱动程序实例的标识由操作系统内部分配给每个连接的 USB 设备,并且可能因设备插入和发现的顺序而异。

相关内容