lsusb 'idProduct' 与 'iProduct' 字段

lsusb 'idProduct' 与 'iProduct' 字段

如果我执行一个lsusb -v命令,我会得到一个名为的字段idProduct和一个名为的字段iProduct

对于许多设备,iProduct 设置为 0,但对于其他设备,它设置为产品名称。

为什么有两个产品条目,它们有何不同?

什么决定了 iProduct 是 0 还是字符串?

答案1

价值idProduct来自于操作系统识别设备的,而iProduct(接口产品)是设备的自报告标识。如果供应商未设置iProduct(或iSerial/ )值,则它将为空白,并且您只会在预期值的空白处旁边看到索引位置。您可以借助 更清楚地看到这一点:iManufacturer0grep

lsusb -v | grep -E '\<(Bus|idProduct|iProduct|iSerial|iManufacturer)'

这会给你类似这样的结果:

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
  idProduct          0x0003 3.0 root hub
  iManufacturer           3 Linux 5.13.0-20-generic xhci-hcd
  iProduct                2 xHCI Host Controller
  iSerial                 1 0000:00:14.0
Bus 001 Device 005: ID 138a:0097 Validity Sensors, Inc. 
  idProduct          0x0097 
  iManufacturer           0 
  iProduct                0 
  iSerial                 1 66e5848914da
Bus 001 Device 004: ID 04f2:b5ce Chicony Electronics Co., Ltd Integrated Camera
  idProduct          0xb5ce Integrated Camera
  iManufacturer           1 Chicony Electronics Co.,Ltd.
  iProduct                2 Integrated Camera
  iSerial                 0 
Bus 001 Device 003: ID 8087:0a2b Intel Corp. Bluetooth wireless interface
  idProduct          0x0a2b Bluetooth wireless interface
  iManufacturer           0 
  iProduct                0 
  iSerial                 0 
Bus 001 Device 002: ID 04f2:b5cf Chicony Electronics Co., Ltd Integrated IR Camera
  idProduct          0xb5cf Integrated IR Camera
  iManufacturer           1 SunplusIT Inc
  iProduct                2 Integrated IR Camera
  iSerial                 0 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  idProduct          0x0002 2.0 root hub
  iManufacturer           3 Linux 5.13.0-20-generic xhci-hcd
  iProduct                2 xHCI Host Controller
  iSerial                 1 0000:00:14.0

iManufacturer请注意,当设置、iProduct和的值时iSerial,会有一个非零数字。这来自当操作系统发现 USB 设备时通过设备标识标头提供的信息的顺序。没有强制顺序,因此123值可以分配给iManufactureriProduct或中的任何一个iSerial值。

相关内容