查看 USB 的拓扑结构和速度
概要:本文介绍了如何通过 Linux 系统的 /sys/bus/usb/devices/ 目录查看 USB 设备的拓扑结构与连接速度。详细解释了 USB 设备在该目录下的命名规则,并通过实例分析了多个 USB 总线的拓扑关系,最后介绍如何查看设备的连接速率及其含义。
1. 目录简介
Linux 系统通过虚拟文件系统 /sys 提供了丰富的硬件信息。要查看 USB 设备的物理连接关系(拓扑结构),关键目录是 /sys/bus/usb/devices/。
2. USB 设备命名规则
目录 /sys/bus/usb/devices/ 下的条目遵循特定的命名约定,反映了设备的连接位置和功能层次:
2.1 USB 根控制器 (Root Hub)
- 命名格式:以
usbX命名,例如usb1,usb2。 - 它对应的接口设备通常命名为
X-0:1.0,例如1-0:1.0对应于usb1的接口。
2.2 物理端口编号
- 直接连接在根控制器
usbX端口Y上的设备命名为X-Y。X-Y:1.0表示设备X-Y的第一个配置的第一个接口。
- 示例:
1-1表示直接连接在根控制器usb1的第1个端口上的设备。
2.3 连接在集线器 (Hub) 上的设备
- 如果一个设备(如
X-Y,此时是一个集线器)的端口Z上连接了其他设备,则该设备命名为X-Y.Z。X-Y.Z:1.0表示设备X-Y.Z的第一个配置的第一个接口。
- 示例:
1-1.1表示连接在上级设备1-1(Hub) 的第1个端口上的设备。1-1.2表示连接在1-1的第2个端口上的设备。
2.4 接口编号
:1.N后缀表示设备配置中的接口 (Interface)。- 若一个设备有多个接口条目(如
1-1.2:1.0,1-1.2:1.1),则表明该设备是一个复合设备 (Composite Device),即单一物理设备提供多个功能。 - 示例:
1-1.2:1.1表示设备1-1.2的第一个配置的第二个接口。
3. 分析拓扑结构实例
以下是 ls /sys/bus/usb/devices 的示例输出:
1-0:1.0 1-1.1 1-1.2 1-1.2:1.1 2-0:1.0 2-1:1.0 4-0:1.0 6-0:1.0 6-1.3 6-1:1.0 8-0:1.0 usb2 usb4 usb6 usb8
1-1 1-1.1:1.0 1-1.2:1.0 1-1:1.0 2-1 3-0:1.0 5-0:1.0 6-1 6-1.3:1.0 7-0:1.0 usb1 usb3 usb5 usb7
3.1 拓扑结构解析
USB Bus 1 (usb1)
- 控制器:
usb1(接口:1-0:1.0) - 连接设备:
1-1(Hub)1-1:1.0(接口)1-1.1(连接在 Hub 第 1 端口)1-1.1:1.0(接口)
1-1.2(连接在 Hub 第 2 端口,是复合设备)1-1.2:1.0(接口 0)1-1.2:1.1(接口 1)
拓扑树:
usb1
└── 1-1 (Hub)
├── 1-1.1 (Device)
└── 1-1.2 (Composite Device)
├── 1-1.2:1.0 (Interface 0)
└── 1-1.2:1.1 (Interface 1)
USB Bus 2 (usb2)
- 控制器:
usb2(接口:2-0:1.0) - 连接设备:
2-12-1:1.0(接口)
拓扑树:
usb2
└── 2-1 (Device)
USB Bus 6 (usb6)
- 控制器:
usb6(接口:6-0:1.0) - 连接设备:
6-1(Hub)6-1:1.0(接口)6-1.3(连接在 Hub 第 3 端口)6-1.3:1.0(接口)
拓扑树:
usb6
└── 6-1 (Hub)
└── 6-1.3 (Device)
其他总线
usb3,usb4,usb5,usb7,usb8:- 仅显示了控制器自身或其端口0接口(如
3-0:1.0),无连接其他设备,表明这些 USB 总线当前无连接外部设备。
- 仅显示了控制器自身或其端口0接口(如
4. 查看 USB 的连接速度
4.1 操作步骤
进入设备目录,例如:
cd /sys/bus/usb/devices/
cd 6-1.3
cat speed
4.2 速度数值的含义
| 数值 | 协议版本 | 理论最大速度 |
|---|---|---|
| 12 | USB 1.x Full-Speed | 12 Mbps (1.5 MB/s) |
| 480 | USB 2.0 High-Speed | 480 Mbps (60 MB/s) |
| 5000 | USB 3.0 / 3.1 Gen1 / 3.2 Gen1x1 | 5 Gbps (625 MB/s) |
| 10000 | USB 3.1 Gen2 / 3.2 Gen2x1 | 10 Gbps (1250 MB/s) |
| 12000 | USB 4 Gen2x1 / Thunderbolt 3 | 20 Gbps (1250 MB/s) |
| 20000 | USB 3.2 Gen2x2 | 20 Gbps (2500 MB/s) |
注意:USB 4 / Thunderbolt 的速率标识方式更复杂,部分值如 12000 并不常见。
5. 总结
/sys/bus/usb/devices中的条目名称直接反映了 USB 物理连接层次。usbX:USB 总线控制器(Root Hub)。X-Y:连接在总线X的端口Y上的设备。X-Y.Z:通过集线器(位于X-Y)连接在端口Z上的设备。:1.N:表示设备的接口编号。- 多个
:1.N接口表示复合设备。 - 集线器扩展了单端口的连接能力,支持接入多个设备。
- 可通过查看设备目录下的
speed文件获取连接速率,判断设备所使用的 USB 协议标准。
留下评论