当前位置:

首页 > 系统应用 > Linux怎么查看USB设备信息 Linux下lsusb指令应用详解

Linux怎么查看USB设备信息 Linux下lsusb指令应用详解

lsusb命令用于查看Linux内核已识别的USB设备。不带参数运行可列出设备总线号、ID及描述。若设备未出现,可能需等待枚举完成或检查物理连接。使用`-t`参数可查看设备树状图及实际通信速率(如12M、480M、5000M),帮助判断接口类型或线缆问题。`-d`或`-s`参数可按ID或总线号过滤设备。`-v`详细模式可能需要root权限,且输出正常仅表示设

设备插上没反应?先别急着换线或者重启系统。有一个命令能立刻告诉你,Linux内核到底“看没看见”这个设备——而且它比dmesg | grep usb更直接、定位更精准,它就是lsusb。

Linux怎么查看USB设备信息 Linux下lsusb指令应用详解

简单来说,lsusb输出的是内核已经完成枚举、分配好总线号和设备号的设备快照。它不是“即插即显”,而是“枚举完成才显示”。所以刚插上没看到,不妨等个两三秒再跑一次命令。

怎么一眼确认USB设备是否被内核识别

最直接的方法就是运行不带任何参数的lsusb。如果输出列表里出现了类似下面这样的新行,那恭喜你,设备已经被系统识别了:

Bus 001 Device 005: ID 0951:1665 Kingston Technology Digital DataTra veler SE9 64GB

这里包含了总线号(001)、设备号(005)、厂商/产品ID(0951:1665)以及系统识别的设备描述。

  • 有ID但描述是“Unknown”? 这通常意味着硬件通信已经成功(你可以用dmesg | tail -10看到类似usb 1-1: new high-speed USB device的记录),但系统的USB ID数据库(通常是/usr/share/hwdata/usb.ids)里没有收录这个厂商和产品ID,所以无法给出具体名称。
  • 完全没新行? 那可能就需要排查物理连接,或者设备本身有问题了。
  • 命令找不到? 在一些最小化安装的Linux发行版(比如CentOS/RHEL 7)上,lsusb命令可能默认没有安装,你需要先运行yum install usbutils来获取这个工具集。

怎么查清设备插在哪个物理口、走的是USB几.0

想知道设备具体插在哪个USB口,或者它实际运行的速率是多少?这时候lsusb -t就派上用场了。它会以树状图的形式展示USB总线和设备的层级关系,信息非常直观。

关键在于每条分支末尾的数字,比如12M、480M、5000M,这代表的是设备与主机实际协商出来的通信速率,而不是设备标称的理论规格。

  • 12M:对应USB 1.1全速模式。现在比较少见,一些老旧的键盘、鼠标可能运行在这个速率。如果你的新设备只跑出12M,那大概率是插在了一个USB 1.1的集线器下游,或者接口接触不良。
  • 480M:对应USB 2.0高速模式。目前绝大多数U盘、摄像头、键鼠都工作在这个档位。如果你的设备标称是USB 3.0,但这里只显示480M,那就得检查一下:是不是插在了黑色的USB 2.0接口上?或者线缆有问题?
  • 5000M:对应USB 3.0(即USB 3.1 Gen1)的超高速模式。这里有个细节需要注意:不是所有标着“USB 3.0”的线缆都能支持到全速,劣质线缆很可能会降速到USB 2.0。

另外,在树状图中你还会看到Driver=xxx这样的信息:

  • Driver=usb-storage:表示这是一个大容量存储设备(如U盘),驱动已绑定。
  • Driver=usbhid:表示这是一个人机接口设备(如键盘、鼠标)。
  • Driver=(none):这有点麻烦,表示内核没有为这个设备找到匹配的驱动。你需要检查对应的内核模块是否加载(比如对于某些UAS协议的U盘,可能需要modprobe uas),或者设备是否需要特定的固件。

怎么快速定位某个特定U盘或摄像头

当USB口上接了多个设备时,在一长串lsusb输出里用肉眼找特定设备效率很低。这时可以用-d或-s参数进行精准过滤。

厂商ID和产品ID(比如上面的0951:1665)可以直接从lsusb命令的完整输出里抄,不需要额外查文档。

  • 按ID查找:lsusb -d 0951:1665。如果设备存在,就只输出这一行;如果不存在,则没有任何输出(命令返回值为1)。
  • 查看某条总线上的所有设备:lsusb -s 002:(注意冒号不能省略)。这会列出总线002上的所有设备。
  • 精确定位到总线上的某个设备号:lsusb -s 001:003。这个组合在后续使用lsusb -D命令读取设备原始描述符时特别有用。
  • 想同时查多个设备ID? lsusb命令本身不支持“或”逻辑。变通方法是结合grep,例如:lsusb | grep -E '0951:1665|046d:c52b'。当然,写个小脚本循环查询也是可以的。

为什么 lsusb -v 有时卡住或权限拒绝

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只管“设备有没有被系统识别和连接上”,至于“设备能不能被上层应用正常使用”,那是另一回事了。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
系统应用 Linux
相关文章 更多
Linux如何开启端口号?开放端口命令详解
Linux如何开启端口号?开放端口命令详解

详细讲解Linux如何开启端口号以及常用的开放端口命令。

crossover卸载软件下载及重新安装教程
crossover卸载软件下载及重新安装教程

遇到CrossOver运行错误或需要更新版本时,如何彻底卸载旧版并干净重装?本教程详解macOS和Linux下的卸载步骤、残留文件清理方法及官方下载渠道,确保软件环境纯净稳定。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

PDF教程
PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
Postman macOS版
Postman macOS版
Mac

Postman是一套面向API全生命周期的开发与测试平台,可在Mac上发送和调试多种协议请求,管理集合、环境及认证信息,并完成脚本测试、模拟服务、监控、文档发布和团队协作。它适合开发、测试及运维人员使用,提供个人免费方案。

Docker Desktop macOS版
Docker Desktop macOS版
Mac

Docker Desktop 是 Docker 官方为 Mac 提供的容器开发环境,集成 Docker Engine、命令行工具、Compose、Build、Kubernetes 与图形化管理界面。

Android Studio macOS版
Android Studio macOS版
Mac

Android Studio 是 Google 面向安卓应用开发提供的官方集成开发环境,基于 IntelliJ IDEA 构建。它整合智能代码编辑、Gradle 构建、界面预览、设备模拟、性能分析、调试测试及 APK 分析等工具。

WINDOWS 更多
PixPix 网页版
PixPix 网页版
Windows

PixPix 是面向品牌、卖家和内容团队的在线 AI 图片视频创作平台,提供图视频 Agent、无限画布、图片生成、视频生成、自然语言编辑及商品套图、产品精修和带货视频等电商工具。

Postman Windows版
Postman Windows版
Windows

Postman 是面向 API 全生命周期的开发与协作平台。Windows 桌面版可用于构建和发送 HTTP、GraphQL、gRPC、WebSocket、MQTT 等请求,并提供环境变量、集合、脚本测试、模拟服务、监控、文档及团队工作区等

Docker Desktop Windows版
Docker Desktop Windows版
Windows

Docker Desktop 为 Windows 开发者提供集成式容器环境,内置 Docker Engine、命令行工具、Compose、Build 与 Kubernetes 等组件,可在本机完成镜像构建、容器运行、日志查看和资源管理。