在Linux系统中查看USB设备是系统管理和故障排查中的常见操作,Linux提供了多种命令行工具和图形化界面来帮助用户识别和管理USB设备,这些方法各有特点,适用于不同的使用场景,本文将详细介绍几种主流的查看USB设备的方法,包括使用lsusb、usb-devices、lspci等命令,以及通过/sys文件系统和dmesg日志获取信息的方式,同时也会提及图形化工具的使用技巧。

使用lsusb命令查看USB设备信息
lsusb是Linux中最常用的查看USB设备的工具之一,它属于usbutils软件包,大多数Linux发行版默认已安装,该命令以树状结构显示系统中所有USB设备及其详细信息,包括厂商ID、产品ID、设备名称等。
基本用法
直接在终端输入lsusb即可列出所有USB设备,
Bus 001 Device 005: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 002: ID 8087:8009 Intel Corp. AX200 Bluetooth
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
每行输出的含义为:总线号(Bus)、设备号(Device)、厂商ID和产品ID(ID)、设备描述信息。
高级选项
-v或-V:显示设备的详细描述信息,包括设备配置、接口、端点等,适合深入分析设备属性。-t:以树状层级结构显示USB设备拓扑,便于理解设备连接关系。-s:指定总线号和设备号进行筛选,例如lsusb -s 001:002仅查看总线1上的设备2。-d:按厂商ID和产品ID筛选,例如lsusb -d 8087:查看所有Intel USB设备。
通过usb-devices命令获取设备树信息
usb-devices是另一个内置的USB查看工具,无需额外安装,它以层级文本格式展示USB设备的详细信息,包括设备类型、厂商、产品、接口等。
执行usb-devices后,输出结果分为多个层级,每级用缩进表示,
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc2/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 480M
这种格式清晰地展示了USB设备的层级关系和驱动加载情况,适合快速定位设备连接路径。

利用lspci命令识别USB控制器
USB控制器通常通过PCI总线连接,因此lspci命令(需安装pciutils包)可用于查看USB控制器的信息。
00:14.0 USB controller: Intel Corporation Cannon Lake USB 3.1 xHCI Host Controller
00:14.2 USB controller: Intel Corporation Cannon Lake Shared SATA controller
结合-v选项可查看控制器的详细寄存器信息,而-k选项则显示关联的内核驱动,对于USB 3.0设备,lspci -v -d 8086:(Intel控制器)可进一步筛选特定厂商的控制器信息。
通过/sys文件系统实时监控USB设备
Linux的/sys文件系统提供了内核与硬件交互的接口,用户可以通过读取/sys/bus/usb/devices目录下的文件获取USB设备的实时信息。
关键目录与文件
/sys/bus/usb/devices/:包含所有USB设备节点,如1-1(总线1,设备1)。/sys/bus/usb/devices/usb1/:表示USB总线1的信息,可查看idVendor、idProduct等属性。/sys/class/usbmisc/:包含USB杂项设备信息,如串口设备。
实用示例
查看特定设备的厂商ID:
cat /sys/bus/usb/devices/1-1/idVendor
监控设备热插拔事件,可结合udev规则或inotifywait工具实时检测/sys/bus/usb/devices的变化。
使用dmesg日志分析USB设备加载过程
当USB设备连接或断开时,内核会输出相关信息到dmesg日志,通过过滤关键字可快速定位设备加载过程中的错误或详情。

常用命令
dmesg | grep -i usb # 查看所有USB相关日志 dmesg | grep -i "usb.*device" # 查看设备连接日志 dmesg | grep -i "failed" # 查看USB设备加载失败信息
设备连接时可能输出类似New USB device found, idVendor=xxxx, idProduct=xxxx的信息,而驱动加载失败时会显示USB disconnect, address 1等错误提示。
图形化工具的使用体验
对于不习惯命令行的用户,Linux提供了多种图形化工具查看USB设备:
- USB Device Tree Viewer:基于Qt的图形化工具,直观显示USB设备树和属性。
- Hardinfo:系统信息工具,可在“设备”分类中查看USB设备详情。
- GNOME Disks:管理磁盘和存储设备的同时,也会列出连接的USB存储设备信息。
以GNOME Disks为例,打开后点击左侧的USB设备,右侧面板会显示设备型号、容量、文件系统等详细信息,适合普通用户快速识别USB存储设备。
综合应用与故障排查
在实际操作中,往往需要结合多种方法定位问题。
- 设备未识别:先用
lsusb确认设备是否被系统检测,若未显示则检查物理连接或供电问题;若显示但无法使用,通过dmesg查看驱动加载错误。 - 驱动问题:使用
lspci -k查看USB控制器驱动状态,必要时手动加载驱动(如modprobe usb-storage)。 - 权限问题:对于需要访问的USB设备(如串口),确保用户属于
dialout或plugdev组。
Linux提供了丰富的工具查看和管理USB设备,从简单的lsusb到深层的/sys文件系统,用户可根据需求选择合适的方法,掌握这些工具不仅能帮助快速识别设备,还能在系统维护和故障排查中发挥重要作用,无论是命令行爱好者还是图形化界面用户,都能在Linux中找到便捷的USB设备管理方式。


















