可使用五种方法识别USB设备:一、lsusb查看基础信息;二、dmesg捕获实时插拔日志;三、lsblk和/sys/block验证存储设备节点;四、usbview图形化查看描述符;五、lshw获取控制器及硬件详情。

如果您尝试查看当前连接的USB设备,但系统未在文件管理器中显示设备图标或无法确认硬件是否被识别,则可能是由于设备未完成内核枚举或用户空间服务未正确响应。以下是识别USB设备的多种方法:
一、使用lsusb命令列出基础设备信息
该方法直接调用Linux内核USB子系统的设备枚举接口,可快速确认设备是否完成物理连接与协议层识别,不依赖图形界面或用户空间服务。
1、按下Ctrl+Alt+T打开终端应用程序。
2、输入命令:lsusb,按回车执行。
3、观察输出中是否包含类似Bus 001 Device 007: ID 0951:1665 Kingston Technology DataTraveler SE9的条目,其中0951为厂商ID(Vendor ID),1665为产品ID(Product ID)。
4、若需筛选特定设备,可使用:lsusb -d 0951:1665(将ID替换为实际值)。
二、通过dmesg捕获设备接入实时日志
该方法读取内核环形缓冲区中由usbcore模块生成的原始插拔事件日志,可精确定位设备初始化是否成功、是否存在供电异常或枚举超时等底层问题。
1、插入USB设备前,在终端运行:dmesg -w,保持窗口开启。
2、插入设备,观察实时滚动日志中是否出现类似以下关键行:usb 2-1: new high-speed USB device number 5 using xhci_hcd、usb-storage 2-1:1.0: USB Mass Storage device detected、scsi host2: usb-storage 2-1:1.0。
3、若仅出现usb 2-1: device descriptor read/64, error -71等错误码,表明存在供电不足或线缆兼容性问题。
三、使用lsblk和/sys/block验证存储类设备节点
该步骤用于确认USB存储设备(U盘、移动硬盘、光驱)是否成功注册为内核块设备,是后续自动挂载与文件管理器显示的前提条件;若无对应节点,则设备无法被桌面环境感知。
1、插入设备后,在终端执行:ls /sys/block/ | grep -E '^sd|^sr',查看是否有新增条目(如sdb、sr0)。
2、进一步确认设备类型,运行:lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,查找TYPE列为disk且MOUNTPOINT为空的设备。
3、若发现sr0但无法访问光盘内容,可尝试手动加载:sudo modprobe sr_mod。
四、通过usbview图形化工具查看详细描述符
该工具提供可视化树状界面,支持查看设备制造商字符串、序列号、接口类、端点配置等完整USB描述符信息,适合非命令行用户理解设备能力与连接状态。
1、在终端中执行:sudo apt install usbview完成安装。
2、安装完成后,在启动器中搜索“USB View”并点击运行,或在终端输入:usbview。
3、主界面自动刷新显示所有USB主机控制器及其下属设备节点。
4、双击任一设备节点,在弹出窗口中查看包括iManufacturer、iProduct、bDeviceClass在内的全部描述符字段。
五、使用lshw命令获取USB控制器及设备硬件详情
该命令可深度扫描USB主机控制器(如xHCI、EHCI)及其挂载设备的物理属性,包括PCI地址、IRQ号、DMA通道、固件版本等底层信息,适用于排查控制器兼容性问题。
1、在终端中执行:sudo lshw -class bus -class bridge,定位USB相关主机控制器条目。
2、针对具体USB设备,执行:sudo lshw -class bus | grep -A 10 -B 5 "USB",提取控制器型号与驱动绑定状态。
3、若输出中显示configuration: driver=usb,表示控制器已启用;若为driver=none,则可能BIOS中禁用了xHCI模式或存在固件冲突。

















