Ubuntu 系统下使用 lsusb 命令识别 USB 设备及端口类型详解
💡 背景介绍
在使用 Ubuntu 系统进行深度学习、计算机视觉或机器人开发时,识别 USB 设备连接情况尤为关键。尤其在使用 ZED 双目深度相机、外接摄像头、鼠标键盘等外设时,我们常需要确认这些设备是否正确连接、运行在哪个 USB 版本端口上,是否处于高速传输状态。
本文以实际使用 lsusb
命令的输出为例,带你一步步解读每一个字段,明确设备对应的总线(Bus)、端口类型(USB 2.0 / 3.0 / 更高),并指出几个容易忽视的判断细节。
一、命令使用与输出样例
首先在终端输入以下命令:
lsusb
得到如下输出(为真实场景截取):
Bus 002 Device 002: ID 2b03:f880 Technologies, Inc. ZED 2i
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 30c9:00ff SunplusIT Inc HP True Vision FHD Camera
Bus 001 Device 021: ID 2b03:f881
Bus 001 Device 020: ID 0424:2512 Microchip Technology, Inc. (formerly SMSC) USB 2.0 Hub
Bus 001 Device 003: ID 8087:0033 Intel Corp.
Bus 001 Device 019: ID 1c4f:0034 SiGma Micro Usb Mouse
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
二、字段含义快速解释
每一行的基本结构为:
Bus <总线号> Device <设备号>: ID <厂商ID:产品ID> <厂商名> <产品名>
Bus:USB 总线编号,每条总线对应一组物理 USB 接口;
Device:设备号,系统动态分配;
ID:由厂商 ID 和产品 ID 组成,是识别设备的唯一标识;
设备名称:部分设备支持自动识别,会显示厂商及产品名称。
三、USB 端口版本识别方法(关键)
很多人关心:“我的设备到底插在了 USB 2.0 还是 USB 3.0 上?”判断方法如下:
✅ 关键:根集线器(root hub)的 ID 值
每条 Bus 都对应一个 root hub,我们可以通过该设备的 ID 来判断 USB 总线版本:
每个 USB 总线(Bus)都会对应一个 “根集线器” (root hub,通常是该总线的第一个设备,Device 001),其 ID 中的第二个数值直接代表 USB 版本:
根集线器 ID | 说明 |
---|---|
1d6b:0002 | USB 2.0 root hub |
1d6b:0003 | USB 3.0 root hub |
1d6b:0004 (少见) | USB 3.1/3.2 root hub |
通过 lsusb
输出可以明确:
Bus 001 是 USB 2.0 总线(根集线器 ID 为
1d6b:0002
)因此连接到 Bus 001 的所有设备(如 HP 摄像头、鼠标等)都工作在 USB 2.0 模式下。
Bus 002 是 USB 3.0 总线(根集线器 ID 为
1d6b:0003
)因此连接到 Bus 002 的设备(如 ZED 2i 相机)工作在 USB 3.0 模式下。
四、逐个设备分析与说明
1. ZED 2i 相机(USB 3.0)
Bus 002 Device 002: ID 2b03:f880 Technologies, Inc. ZED 2i
ZED 2i 是一款双目深度相机,数据吞吐量较大。
连接在 Bus 002 上,处于 USB 3.0 通道,保证了数据带宽和帧率性能。
2. USB 3.0 根集线器(Bus 002)
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
- USB 3.0 根集线器(Bus 002),负责管理所有连接到 USB 3.0 端口的设备。
3. HP True Vision FHD 摄像头(USB 2.0)
Bus 001 Device 002: ID 30c9:00ff SunplusIT Inc HP True Vision FHD Camera
是笔记本自带的摄像头;
接在 USB 2.0 总线上(Bus 001),传输速度有限。
4. 未识别设备(可能是 ZED 的辅助模块)
Bus 001 Device 021: ID 2b03:f881
与 ZED 相机厂商 ID 相同,可能是 ZED 2i 的内置 IMU 或固件设备;
注意:它插在 USB 2.0 上,可能影响功能完整性或性能(建议查阅官方文档)。
5. USB 集线器(Hub)
Bus 001 Device 020: ID 0424:2512 Microchip Technology, Inc.
连接到 Bus 001(USB 2.0 总线)的 USB 2.0 集线器(扩展坞),编号 020。
用于扩展更多 USB 2.0 接口,其下游可能连接其他设备(但此处未显示)。
6. Intel 的 USB 控制器或蓝牙模块
Bus 001 Device 003: ID 8087:0033 Intel Corp.
- 连接到 Bus 001(USB 2.0 总线)的设备,编号 003。
- 设备 ID 为
8087:0033
,通常是 Intel 的 USB 控制器或蓝牙模块(部分笔记本的蓝牙通过 USB 总线连接)。
7. USB 鼠标
Bus 001 Device 019: ID 1c4f:0034 SiGma Micro Usb Mouse
- 连接到 Bus 001(USB 2.0 总线)的设备,编号 19。
- 识别为 “SiGma Micro Usb Mouse”(USB 鼠标),使用 USB 2.0 端口。
8. USB 2.0 根集线器(Bus 001)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
- USB 2.0 根集线器(Bus 001),负责管理所有连接到 USB 2.0 端口的设备。
- 编号 “0002” 代表这是 USB 2.0 标准的根集线器。
五、常见疑问解答
❓ 为什么我有两个接口(ZED 2i 出现两次)?
ZED 系列设备通常会作为复合 USB 设备出现,包括:
图像数据设备(主相机)
附加模块(如 IMU、环境传感器等)
固件通信接口
这些会分别在 USB 总线中显示为不同的设备 ID。
❓ Cheese 能识别相机,ZED SDK 却提示 "Camera not detected"?
cheese
使用的是标准 Video4Linux(V4L2)接口,识别的是 UVC 摄像头(如 HP 摄像头);ZED SDK 使用自己的驱动和底层协议,必须识别完整的 USB 3.0 连接;
如果主 ZED 设备挂在 USB 2.0 上,ZED SDK 可能会直接拒绝启动。
六、总结与建议
设备名称 | 总线编号 | USB 版本 | 是否正常识别 | 建议 |
---|---|---|---|---|
ZED 2i | Bus 002 | USB 3.0 | ✅ | 保持连接在 USB 3.0 接口上 |
ZED 附加模块? | Bus 001 | USB 2.0 | ❓ | 尽可能保持主机全部接口 USB 3.0 |
HP 摄像头 | Bus 001 | USB 2.0 | ✅ | 正常工作,无需更换 |
鼠标、蓝牙模块等 | Bus 001 | USB 2.0 | ✅ | 正常使用 |
🛠️ 小贴士:
使用
lsusb -t
可查看设备层级结构,更清晰显示设备是否通过集线器连接;若 ZED 无法正常工作,请确保:
连接的是 USB 3.0 蓝色物理端口;
电缆质量良好;
系统已安装并正确配置 ZED SDK 与 CUDA。
欢迎收藏本篇教程,帮助你在开发或调试硬件连接时迅速判断 USB 设备状态。如你正在使用 ZED 相机或类似高带宽设备,务必保持 USB 3.0 接口连接,并避免通过低速 USB Hub 连接关键设备。