lsusb 命令详解
更新时间:2026-09-17。「一个命令一个文档」系列,属于硬件与内核族。U盘、USB 无线网卡、串口模块、键盘摄像头插上去没反应,先用 lsusb 确认系统有没有在总线上看到它、识别成什么、跑在什么速率。
一、常用法
bash
lsusb # 列出所有 USB 设备:Bus/Device ID VID:PID 名称
lsusb -t # 树状拓扑:端口层级、驱动、协商速率(5000M=USB3.x)
lsusb -v # 完整描述符(接口/类/端点/供电/序列号,通常需 root)
lsusb -s 001:005 # 按 Bus:Device 定位
lsusb -d 1050:0011 # 按 VID:PID 过滤
lsusb -v -d 1050:0011 | grep -Ei 'bcdUSB|idProduct|iSerial|bInterfaceClass'典型行:
bash
Bus 002 Device 003: ID 0bda:8153 Realtek Semiconductor RTL8153 Gigabit EthernetID xxxx:yyyy 即 VID:PID(厂商标识:产品标识),写 udev 规则、找驱动、查设备身份都靠它。
二、关键判读
- 设备是否被识别:插上前后各跑一次
lsusb,多出来的就是它。连设备都不出现,问题在硬件/线缆/端口/供电,不是驱动层。 - 速率/版本:
lsusb -t看5000M(USB3.2 Gen1/5Gbps)、480M(USB2.0)、12M/1.5M(USB1.x)。USB3 设备显示成 480M,多半是插在了 USB2 口、用了 2.0 线或接触不良。 - 接口类:
lsusb -v的bInterfaceClass——08 Mass Storage(U盘)、02 通信/网卡、03 HID(键鼠)、0a CDC Data、ff Vendor Specific。设备识别了但用不了,常是某接口缺驱动/固件。 - 驱动绑定:
lsusb -t的 Driver 列显示usb-storage、cdc_ether、r8152等;没有驱动或厂商自定义(ff)需对应驱动。
三、找不到/异常设备的排查顺序
lsusb是否出现:不出现→换线/换口/换机器、检查供电(移动硬盘、多设备易供电不足,用有源 Hub)。- 出现了但功能不可用→ dmesg 看枚举/固件报错(常见
firmware: failed to load,需装 firmware 包)。 - 看驱动是否绑定:
lsusb -tDriver 列 +ls -l /dev/serial/by-id/、ip link(USB 网卡)、lsblk(U盘,见 lsblk)。 - 权限:设备节点存在但普通用户打不开,多为 udev/dialout/plugdev 组权限问题,可按 VID:PID 写 udev 规则。
- 虚拟机直通/USB over network、云主机一般无真实 USB 控制器,看不到属正常。
四、和 lspci / dmesg 的分工
- 主板上的 USB 控制器本身是 PCIe 设备,用 lspci 能看到(如
xHCI Host Controller);挂在 USB 上的外设用 lsusb。 - 枚举过程、供电、复位等内核事件看 dmesg。
usb-devices提供更详细的可读描述,/sys/bus/usb/devices/是 sysfs 原始信息。
相关命令
控制器与板卡用 lspci,枚举/驱动日志用 dmesg,加载固件/驱动用 modprobe,USB 存储识别后用 lsblk/blkid。
总结
lsusb 列出 USB 总线设备及其 VID:PID:基础列表确认设备有没有被枚举,lsusb -t 看端口树、驱动和实际协商速率(USB3 设备只跑 480M 多半插错口/线),-v 看接口类与序列号;排查顺序是"先 lsusb 在不在→再 dmesg 查固件/枚举→再看驱动绑定与节点权限";它管挂在 USB 上的外设,主板 USB 控制器归 lspci,存储识别后交给 lsblk。