1 分钟阅读 次阅读

概要:本文介绍了如何通过 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-1
      • 2-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 总线当前无连接外部设备。

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 协议标准。

留下评论