lsusb命令用于查看Linux内核已识别的USB设备。不带参数运行可列出设备总线号、ID及描述。若设备未出现,可能需等待枚举完成或检查物理连接。使用`-t`参数可查看设备树状图及实际通信速率(如12M、480M、5000M),帮助判断接口类型或线缆问题。`-d`或`-s`参数可按ID或总线号过滤设备。`-v`详细模式可能需要root权限,且输出正常仅表示设
设备插上没反应?先别急着换线或者重启系统。有一个命令能立刻告诉你,Linux内核到底“看没看见”这个设备——而且它比dmesg | grep usb更直接、定位更精准,它就是lsusb。

长期稳定更新的攒劲资源: >>>点此立即查看<<<
简单来说,lsusb输出的是内核已经完成枚举、分配好总线号和设备号的设备快照。它不是“即插即显”,而是“枚举完成才显示”。所以刚插上没看到,不妨等个两三秒再跑一次命令。
最直接的方法就是运行不带任何参数的lsusb。如果输出列表里出现了类似下面这样的新行,那恭喜你,设备已经被系统识别了:
Bus 001 Device 005: ID 0951:1665 Kingston Technology Digital DataTra veler SE9 64GB
这里包含了总线号(001)、设备号(005)、厂商/产品ID(0951:1665)以及系统识别的设备描述。
dmesg | tail -10看到类似usb 1-1: new high-speed USB device的记录),但系统的USB ID数据库(通常是/usr/share/hwdata/usb.ids)里没有收录这个厂商和产品ID,所以无法给出具体名称。lsusb命令可能默认没有安装,你需要先运行yum install usbutils来获取这个工具集。想知道设备具体插在哪个USB口,或者它实际运行的速率是多少?这时候lsusb -t就派上用场了。它会以树状图的形式展示USB总线和设备的层级关系,信息非常直观。
关键在于每条分支末尾的数字,比如12M、480M、5000M,这代表的是设备与主机实际协商出来的通信速率,而不是设备标称的理论规格。
另外,在树状图中你还会看到Driver=xxx这样的信息:
Driver=usb-storage:表示这是一个大容量存储设备(如U盘),驱动已绑定。Driver=usbhid:表示这是一个人机接口设备(如键盘、鼠标)。Driver=(none):这有点麻烦,表示内核没有为这个设备找到匹配的驱动。你需要检查对应的内核模块是否加载(比如对于某些UAS协议的U盘,可能需要modprobe uas),或者设备是否需要特定的固件。当USB口上接了多个设备时,在一长串lsusb输出里用肉眼找特定设备效率很低。这时可以用-d或-s参数进行精准过滤。
厂商ID和产品ID(比如上面的0951:1665)可以直接从lsusb命令的完整输出里抄,不需要额外查文档。
lsusb -d 0951:1665。如果设备存在,就只输出这一行;如果不存在,则没有任何输出(命令返回值为1)。lsusb -s 002:(注意冒号不能省略)。这会列出总线002上的所有设备。lsusb -s 001:003。这个组合在后续使用lsusb -D命令读取设备原始描述符时特别有用。lsusb命令本身不支持“或”逻辑。变通方法是结合grep,例如:lsusb | grep -E '0951:1665|046d:c52b'。当然,写个小脚本循环查询也是可以的。lsusb -v(verbose模式)会尝试读取设备的全部描述符信息,包括配置、接口、端点等细节。但问题也出在这里:
lsusb -v可能会看到部分字段为空,甚至报错(如libusb:error [udev_hotplug_event] ignoring udev event for unknown device)。加上sudo提权通常可以解决,但对于日常排查来说,基础信息已经足够,不一定需要详细描述符。lsusb -v 2>&1 | head -n 50只查看前50行输出,判断是否卡在某个特定设备上。如果确定是某个设备导致的,可以用-s参数跳过它再试。如果真的需要获取详细的设备描述符信息(比如调试驱动兼容性问题),更推荐使用lsusb -D /dev/bus/usb/BBB/DDD命令(BBB代表总线号,DDD代表设备号)。这个命令会绕过libusb库,直接读取USB设备文件,结果更稳定可靠,但必须拥有root权限才能执行。
最后,有一个非常关键但又容易被忽略的点:lsusb显示正常,并不等同于设备功能正常。
举个例子,一个U盘在lsusb里可能完美显示为Mass Storage设备,驱动也绑定了,但当你用fdisk -l查看时,却找不到它的分区。问题可能出在存储协议(比如BOT协议与UAS协议的兼容性问题)或者内核模块(比如uas模块没有加载)上。lsusb只管“设备有没有被系统识别和连接上”,至于“设备能不能被上层应用正常使用”,那是另一回事了。
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述