Linux下lsusb命令详解

article/2025/10/7 10:24:27

Linux下lsusb命令详解

参考链接:https://zhuanlan.zhihu.com/p/142403866

​ USB,是英文Universal Serial Bus(通用串行总线)的缩写,是一个外部总线标准,早期用于规范电脑与外部设备的连接和通讯。

​ USB连接自从首次推出到现在已经有23年,这种技术在全球电子行业中的扩展速度前所未有。USB现在已经拥有超过30亿端口的年出货量,是迄今为止最常用的接口技术,笔记本电脑、平板电脑、智能手机和其他各种设备都依赖于这种技术来进行功率和数据传输。今天USB已经远远超出其最初提供的功能,所支持的数据速率和功率水平都提高了几个数量级。而且,由于这种不断发展的推动,USB技术已经比任何其他连接解决方案都更加普及。

​ 在Linux上,我们可以使用lsusb来列出USB设备和它的属性。
lsusb(选项)
-v:显示USB设备的详细信息;
-s<总线:设备号>仅显示指定的总线和(或)设备号的设备;
-d<厂商:产品>:仅显示指定厂商和产品编号的设备;
-t:以树状结构显示无理USB设备的层次;
-V:显示命令的版本信息。

一、lsusb:什么是lsusb

​ 在它的手册上,lsusb定义成:

lsusb命令用于显示本机的USB设备列表,以及USB设备的详细信息。

lsusb命令显示的USB设备信息来自“/proc/bus/usb”目录下的对应文件。

如何运行lsusb?

​ 要运行lsusb,你可以直接在命令终端里输入lsusb

$ lsusbBus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 003: ID 17ef:4811 Lenovo Integrated Webcam [R5U877]
Bus 008 Device 002: ID 0a5c:217f Broadcom Corp. Bluetooth Controller

lsusb会显示连接到USB总线上的设备信息和驱动信息。

下面介绍如何理解输出。我抓取了上面输出的最后一行:

Bus 008 Device 002 : ID 0a5c:217f Broadcom Corp. Bluetooth Controller
  • Bus 008 : 指明设备连接到哪条总线
  • Device 002 : 表明这是连接到总线上的第二台设备
  • ID : 设备的ID
  • Broadcom Corp. Bluetooth Controller :生产商名字和设备名

在插入USB设备后, 使用dmesg命令可以看到USB设备加载时Linux内核输出的调试信息。

下面是一个例子, 我们可以看到该设备同时使用了USB2.0 root hub驱动和USB 1.1 root hub驱动。 dmesg | grep -i usb

$ dmesg |grep -i usb[ 0.353138] usbcore: registered new interface driver usbfs
[ 0.353150] usbcore: registered new interface driver hub
[ 0.353182] usbcore: registered new device driver usb
[ 0.730026] ehci_hcd: USB 2.0 ‘Enhanced’ Host Controller (EHCI) Driver
[ 0.730116] ehci_hcd 0000:00:1a.7: new USB bus registered, assigned bus number 1
[ 0.748019] ehci_hcd 0000:00:1a.7: USB 2.0 started, EHCI 1.00
[ 0.748169] hub 1-0:1.0: USB hub found
[ 0.748336] ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 2
[ 0.768019] ehci_hcd 0000:00:1d.7: USB 2.0 started, EHCI 1.00
[ 0.768147] hub 2-0:1.0: USB hub found
[ 0.768236] ohci_hcd: USB 1.1 ‘Open’ Host Controller (OHCI) Driver
[ 0.768251] uhci_hcd: USB Universal Host Controller Interface driver

二、lsusb -v:如何列出USB详细信息 

使用-v选项来开启USB设备的详细信息。下面是一个例子。

$ lsusb -vInterface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 5
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0×83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0×0040 1x 64 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0×03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0×0040 1x 64 bytes
bInterval 1

三、find /dev/bus:找出连接了多少USB设备

使用下面的命令:

$ find /dev/bus

接着你会看到像下面的输出:

/dev/bus
/dev/bus/usb
/dev/bus/usb/008
/dev/bus/usb/008/002
/dev/bus/usb/008/001
/dev/bus/usb/007
/dev/bus/usb/007/001
/dev/bus/usb/006
/dev/bus/usb/006/001
/dev/bus/usb/005
/dev/bus/usb/005/001
/dev/bus/usb/004
/dev/bus/usb/004/001
/dev/bus/usb/003
/dev/bus/usb/003/001
/dev/bus/usb/002
/dev/bus/usb/002/004
/dev/bus/usb/002/003
/dev/bus/usb/002/001
/dev/bus/usb/001
/dev/bus/usb/001/001

四、 lsusb -D /dev/bus/usb/008/002:可以打印特定设备的详细信息

下面是一个博通蓝牙设备的示例。

$ lsusb -D /dev/bus/usb/008/002Device: ID 0a5c:217f Broadcom Corp. Bluetooth Controller
Couldn’t open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 224 Wireless
bDeviceSubClass 1 Radio Frequency
bDeviceProtocol 1 Bluetooth
bMaxPacketSize0 64
idVendor 0x0a5c Broadcom Corp.
idProduct 0x217f Bluetooth Controller
bcdDevice 3.60
iManufacturer 1
iProduct 2
iSerial 3
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 216
bNumInterfaces 4
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0×81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0×0010 1x 16 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0×82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0×0040 1x 64 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0×02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0×0040 1x 64 bytes
bInterval 1

五、lsusb -v -s:使用-s选项来过滤设备

sudo lsusb -v -s [BUS_NUMBER]:[DEVICE_NUMBER]

例如:

sudo lsusb -v -s 002:006

六、lsusb -t:以树层级结构输出USB设备

使用 -t选项来用树形结构来输出USB设备信息.

$ lsusb -t/: Bus 08.Port 1: Dev 1, Class=root\_hub, Driver=uhci_hcd/2p, 12M
/: Bus 07.Port 1: Dev 1, Class=root\_hub, Driver=uhci_hcd/2p, 12M
/: Bus 06.Port 1: Dev 1, Class=root\_hub, Driver=uhci_hcd/2p, 12M
/: Bus 05.Port 1: Dev 1, Class=root\_hub, Driver=uhci_hcd/2p, 12M
/: Bus 04.Port 1: Dev 1, Class=root\_hub, Driver=uhci_hcd/2p, 12M
/: Bus 03.Port 1: Dev 1, Class=root\_hub, Driver=uhci_hcd/2p, 12M
/: Bus 02.Port 1: Dev 1, Class=root\_hub, Driver=ehci_hcd/6p, 480M
|__ Port 1: Dev 4, If 0, Class=stor., Driver=usb-storage, 480M
|__ Port 6: Dev 3, If 0, Class=’bInterfaceClass 0x0e not yet handled’, Driver=uvcvideo, 480M
|__ Port 6: Dev 3, If 1, Class=’bInterfaceClass 0x0e not yet handled’, Driver=uvcvideo, 480M
/: Bus 01.Port 1: Dev 1, Class=root\_hub, Driver=ehci_hcd/6p, 480M

数字12M和480M 是指USB类型的传输速率

  • 12M 意味着 USB 1.0 / 1.1的速率是 12Mbit/s
  • 480M 意味着 USB 2.0的速率是 480Mbit/s

如果你找到5.0G,那意味这你有USB 3.0类型接口。它有5.0Gbit/s的传输速率。

Linux从/var/lib/usbutils/usb.ids识别USB设备的详细信息。或者你可以访问Linux-USB.org获取最新的USB ID列表。

总结:

你可以用lsusb命令对你的系统上的USB设备做一个诊断。想要了解更全面的命令信息, 输入man lsusb来查看它的手册。

附录:

USB技术标准

​ 目前USB支持5种数据信号速率,USB设备应该在其外壳或者有时是自身上正确标明其使用的速率。USB-IF进行设备认证并为通过兼容测试并支付许可费用的设备提供基本速率(低速和全速)和高速的特殊商标许可。

  • 1.5 Mbps的低速速率。主要用于低速率[人机接口设备],例如键盘、鼠标、游戏杆等等。
  • 12 Mbps的全速速率。在USB 2.0之前是曾经是最高速率,后起的更高速率的高速接口应该兼容全速速率。多个全速设备间可以按照先到先得法则划分带宽;使用多个等时设备时会超过带宽上限也并不罕见。所有的USB连接端口支持全速速率。
  • 480 Mbps的高速速率。并非所有的USB 2.0设备都是高速的。高速设备插入全速连接端口时应该与全速兼容。而高速连接端口具有所谓事务翻译器(Transaction Translator)功能,能够隔离全速、低速设备与高速之间数据流,但是不会影响供电和串联深度。
  • 5Gbps的超高速速率。相较于现有USB 2.0的480Mbps最高理论速度,USB 3.0可支持到5.0Gbps,是USB 2.0的10倍。若将USB 3.0应用到外置硬盘、U盘或蓝光刻录机等存储设备,将可大幅缩短数据传输时间。
  • 10Gbps的超高速速率+。USB 3.1 Gen2最高10Gbps理论速度,是USB 3.0的两倍。
  • USB4规范已于2019年9月3日正式公布, 规格和草案阶段相同. 归纳如下:
  • 物理接口只有 USB Type-C 一种.
  • 传输速率 40 Gbps.
  • 向下兼容 USB 3.2 / USB 2.0 和 Thunderbolt 3.

机械和电子标准


http://chatgpt.dhexx.cn/article/tE4UD0G7.shtml

相关文章

[Kong 与 Konga 与 Postgres数据库] 之 Kuberneres 部署

1、Kong的概述 Kong是一个clould-native、快速的、可扩展的、分布式的微服务抽象层&#xff08;也称为API网关、API中间件或在某些情况下称为服务网格&#xff09;框架。Kong作为开源项目在2015年推出&#xff0c;它的核心价值是高性能和可扩展性。Kong被广泛用于从初创企业到全…

Konga arm64 安装

arm64 平台&#xff1a; 一、源码安装 konga 前提&#xff1a;安装nodejswget https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-arm64.tar.xztar -xf node-v12.16.1-linux-arm64.tar.xz 配置node环境变量&#xff1a;vi /etc/profileexport NODE_HOME/home/node-v12.16…

kong/kongA docker部署+汉化

部署完成后界面 一、部署kong/kongA 1、创建一个自定义 Docker 网络以允许容器相互发现和通信&#xff1a; docker network create kong-net 2、启动一个 PostgreSQL 容器&#xff1a; sudo docker run -d --name kong-database \--networkkong-net \-v /opt/pgdata:/var/l…

konga--添加service和rouce详细步骤

注意&#xff1a;先有service后&#xff0c;才能创建rouce(可以有多个),包括删除顺序先删除route&#xff0c;再删除service。次序问题 1.添加service 是抽象层面的服务&#xff0c;他可以直接映射到一个物理服务 (host 指向 ip port)&#xff0c;也可以指向一个 upstream 来…

kong及konga的最新版本安装

1、创建docker网络 docker network create kong-net 2、运行postgresql的数据库 挂载 # docker volume create kong-volume # docker run -d --name kong-database \ --networkkong-net \ -p 5432:5432 \ -v kong-volume:/var…

使用Kong和Konga管理微服务和API

Kong是Mashape开源的高性能高可用API网关和API服务管理层。自2015年在github开源后&#xff0c;广泛受到关注。它基于OpenResty&#xff0c;进行API管理&#xff0c;并提供了插件实现API的AOP。Kong在Mashape 管理了超过15,000 个API&#xff0c;为200,000开发者提供了每月数十…

docker安装nginx kong konga

一、docker安装nginx 1. 外网直接拉取&#xff0c;拉取后跳转至第三步 docker pull nginx:1.23.3 2. 内网 &#xff08;1&#xff09;找一个外网电脑拉取镜像 docker pull nginx &#xff08;2&#xff09;将镜像打包为tar包 docker save -o nginx-1.23.3.tar nginx:1.23.3…

安装Kong和Konga

​​​​1.1 、安装Kong 1、获取kong安装包的url&#xff1a; yum install https://kong.bintray.com/kong-rpm/centos/7/kong-2.1.0.el7.amd64.rpm 2、新建并修改 kong 的配置文件&#xff08;默认配置文件位于 /etc/kong/kong.conf.default&#xff09;&#xff1a; cp /etc…

网关服务Kong和konga介绍安装使用教程

介绍 Kong是一款基于OpenResty&#xff08;Nginx Lua模块&#xff09;编写的高可用、易扩展的&#xff0c;由Mashape公司开源的API Gateway项目。Kong是基于NGINX和Apache Cassandra或PostgreSQL构建的&#xff0c;能提供易于使用的RESTful API来操作和配置API管理系统&#x…

Kong(三)Konga UI安装和使用

一 konga 的github地址 konga安装参考 ① Kong 可视化UI 选择 官方kong-dashboard 1&#xff09;收费&#xff1a;当前kong的社区版是没有dashboard的,但是付费的企业版是有带的2&#xff09;kong-dashboard最新版本v3.6.0,只支持到kongv0.14.x,对于更高的kong版本,功能支…

openresty+kong+konga+postgresql

一、基础环境配置 1、依赖安装 yum install -y make cmake gcc gcc-c autoconf automake libpng-devel libjpeg-devel zlib libxml2-devel ncurses-devel bison libtool-ltdl-devel libmcrypt mhash mcrypt pcre-devel openssl-devel freetype-devel libcurl-devel lua-deve…

Linux安装云原生网关Kong/KongA

目录 1 概述2 创建服务器3 安装postgres4 安装kong5 安装node6 安装KONGA 1 概述 Kong Kong是一款基于OpenResty&#xff08;NginxLua模块&#xff09;编写的高可用、易扩展的开源API网关&#xff0c;专为云原生和云混合架构而建&#xff0c;并针对微服务和分布式架构进行了特…

kong笔记——kong/konga的搭建

kong笔记 目录导航 本篇及以后的此系列文章皆为实战篇 版本介绍(重点&#xff0c;重点&#xff0c;一定要观察版本&#xff0c;防止不兼容情况&#xff01;&#xff01;)&#xff1a; kong 2.5.0 konga 0.14.9 pgsql 9.6 linux centos 7 简述 对于kong的搭建&#xff0c;官网…

KONG和KONGA部署及配置

个人理解&#xff0c;仅供参考&#xff1a; 首先&#xff0c;kongkonga除去其他高级功能&#xff0c;个人觉得就是把nginx&#xff0c;变成可以页面配置的了。比如&#xff0c;配置的router&#xff0c;service就是反向代理&#xff0c;配置upstream就是负载均衡。 本文只介绍K…

KONG管理界面KONGA安装使用

功能 管理所有Kong Admin API的对象.从数据库、文件和API等导入Consumers。管理Kong多个节点。备份、恢复、迁移Kong Nodes使用快照。使用健康检测监控节点和API状态。Email和Slack消息通知支持多管理用户和设置不同权限支持数据库MySQL, postgresSQL, MongoDB, SQL Server。 …

Konga 使用说明

1、概要 konga 目前作为一个查看 kong 配置的平台使用&#xff0c;具体在设置 kong 参数时&#xff0c;仍存在一定问题。目前配置在 kong dashbord 较为方便。 2、konga 使用 1&#xff09;环境选择 步骤 2 中点选对应环境的小星星。步骤如下&#xff1a; connections.png …

儿童编程积木

学习机器人编程必须运用到各种知识&#xff0c;包括数学、物理、科学以及自然等课本理论知识&#xff0c;只有熟悉掌握了这些&#xff0c;才能运营一个机器人&#xff0c;让它完成规定的动作。格物斯坦小坦克认为学习机器人就是学习一种机器人编程思维。 基于机器人的科学探究实…

scratch(图形化编程工具)做3.0版本的猫咪积木模拟器。

视频效果如下&#xff1a; 代码部分如下: 猫咪积木素材如下&#xff0c;有N个造型动作&#xff1a; 好了&#xff0c;今天的内容就分享到这里了。 好了&#xff0c;今天的教程就分享到这里吧。 本篇文章完整代码和素材我已经放到VIP的QQ群文件中&#xff0c;大家自行下载&#…

数组积木问题 c语言,全排列算法及解决数字搭积木问题

如果你是做这道题不会&#xff0c;那么你可以看这道题的解题思路&#xff0c;如果你是不太理解全排列算法&#xff0c;那么你可以通过这个题来理解。 题目描述&#xff1a; 小明最近喜欢搭数字积木。一共有10块积木&#xff0c;每个积木上有一个数字&#xff0c;0~9。 搭积木规…

Vue实现图形化积木式编程(一)

Babylon.js基础场景搭建 路由前言最终实现效果本文实现效果技术选型1.前端2.后端 完整代码代码分解0.npm安装相关依赖1.引入模块2.场景初始化3.ArcRotateCamera 相机初始化4.灯光初始化5.地面初始化5-1. 绿地5-2.网格地面 6.正方体物体初始化7.天空盒初始化 后续计划Babylon.js…