通过扫描以下目录获取物理节点所有 USB 设备:
/sys/bus/usb/devices/usb*
/sys/bus/usb/devices/usb*/$busnum-*
从该文件系统收集某一个设备的主要信息如下:
{
"busnum": 1,
"class": 0,
"devnum": 2,
"level": 1,
"manufacturer": "QEMU",
"port": 0,
"prodid": "0001",
"product": "QEMU USB Tablet",
"speed": "12",
"usbpath": "1",
"vendid": "0627"
}
目录下部分文件含义如下:
busnum
: 总线号devnum
: 设备号(该总线的第几台设备)speed
: 速率bDeviceClass
: 设备类型idVendor
: 设备的生产商ID,由USB设备生产商向USB-IF官方来统一管理和申请idProduct
: 该生产商生产的产品编号,同一厂商下的不同idProduct代表着该公司不同的产品系列product
: 制造商manufacturer
: 产品serial
: USB 硬件设备序列号 ,例如 0000:00:01.2
定位某一个 USB 设备的方法有两种:
busnum
+ devnum
idVendor
+ idProduct
bDeviceClass
#类代码 | 用法 | 描述 |
---|---|---|
00h | 设备描述符 | Use class information in the interface Descriptors |
01h | 接口描述符 | 音频 |
02h | 设备描述符、接口描述符 | 通讯设备,如电话,moden等等 |
03h | 接口描述符 | HID设备 |
05h | 接口描述符 | Physical |
06h | 接口描述符 | Image |
07h | 接口描述符 | 打印机 |
08h | 接口描述符 | 大容量存储 |
09h | 设备描述符 | Hub USB集线器 |
0Ah | 接口描述符 | CDC-Data |
0Bh | 接口描述符 | Smart Card |
0Dh | 接口描述符 | Content Security |
0Eh | 接口描述符 | UVC视频/CAMERA |
0Fh | 接口描述符 | Personal Healthcare |
10h | 接口描述符 | 音视频设备 |
11h | 设备描述符 | Billboard Device Class |
12h | 接口描述符 | USB Type-C Bridge Class |
DCh | 设备描述符、接口描述符 | Diagnostic Device |
E0h | 接口描述符 | 无线控制器 |
EFh | 设备描述符、接口描述符 | Miscellaneous |
FEh | 接口描述符 | Application Specific |
FFh | 设备描述符、接口描述符 | 厂商用自定义 |
注:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。