当前位置: 首页 > news >正文

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:0002USB 2.0 root hub
1d6b:0003USB 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 2iBus 002USB 3.0保持连接在 USB 3.0 接口上
ZED 附加模块?Bus 001USB 2.0尽可能保持主机全部接口 USB 3.0
HP 摄像头Bus 001USB 2.0正常工作,无需更换
鼠标、蓝牙模块等Bus 001USB 2.0正常使用

🛠️ 小贴士

  • 使用 lsusb -t 可查看设备层级结构,更清晰显示设备是否通过集线器连接;

  • 若 ZED 无法正常工作,请确保:

    • 连接的是 USB 3.0 蓝色物理端口;

    • 电缆质量良好;

    • 系统已安装并正确配置 ZED SDK 与 CUDA。


欢迎收藏本篇教程,帮助你在开发或调试硬件连接时迅速判断 USB 设备状态。如你正在使用 ZED 相机或类似高带宽设备,务必保持 USB 3.0 接口连接,并避免通过低速 USB Hub 连接关键设备。

http://www.lryc.cn/news/607177.html

相关文章:

  • LS-DYNA 分析任务耗时长,企业如何科学提升许可证使用效率?
  • Flask 中的应用上下文和请求上下文
  • [AI8051U入门第十二步]W5500-Modbus TCP从机
  • SQLFlash:一款由AI驱动的SQL优化工具
  • leetcode热题——全排列
  • 《平台经济法律风险合规发展》研讨会在北京召开
  • Fiddler中文版使用指南 提升开发流程的一站式抓包与调试体验
  • Day17--二叉树--654. 最大二叉树,617. 合并二叉树,700. 二叉搜索树中的搜索,98. 验证二叉搜索树
  • 如何在 Mac OS 上安装 Cursor
  • 【目标检测】芯片缺陷识别中的YOLOv12模型、FP16量化、NMS调优
  • Lombok常用注解及功能详解
  • Redis学习18-分布式锁
  • Vue 3.5 defineModel:让组件开发效率提升 10 倍
  • 暑期算法训练.12
  • 【VSCode】常用插件推荐(持续更新~)
  • 从资源闲置到弹性高吞吐,JuiceFS 如何构建 70GB/s 吞吐的缓存池?
  • C 实现难度过高的俄罗斯方块
  • 数据赋能(371)——数据挖掘——概述
  • LLM Prompt与开源模型资源(1)提示词工程介绍
  • UniApp与WebView双向通信机制及生产级实现方案全解析
  • 计数组合学7.10(舒尔函数的组合定义)
  • Golang 语言 Channel 的使用方式
  • 数据结构:链表(Linked List)
  • 如何通过黑白棋盘进行定位配准融合?(前后安装的两个相机)
  • 【Mysql】联合索引生效分析案例
  • 【科研绘图系列】R语言绘制环状分组显著性柱状堆积图
  • 鹧鸪云:16步精控工商业光伏全流程
  • java8学习笔记-Stream流
  • GitPython08-源码解读
  • 网络编程接口bind学习