Linux USB 设备基础理论

通过扫描以下目录获取物理节点所有 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” } 文

通过扫描以下目录获取物理节点所有 USB 设备:

1
2
/sys/bus/usb/devices/usb*
/sys/bus/usb/devices/usb*/$busnum-*

从该文件系统收集某一个设备的主要信息如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
{
"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

设备描述符、接口描述符

厂商用自定义

参考文献


Linux USB 设备基础理论
https://www.frytea.com/post/20220825020446.html
作者
Tianlun Song
发布于
2022年8月25日
更新于
2024年6月10日
许可协议