获取更多相关的嵌入式开发工具,可收藏系列博文,持续更新中:
【开发工具】嵌入式常用开发工具汇总帖
本文主要介绍查询USB设备信息(lsusb)的使用。
写这些文章的主要目的是给自己看的,想法是把目前网上能收集到的相关信息都汇总起来,方面有需要的时候能迅速上手。
后续会把命令输出的打印,每一行都介绍一些(需要些时间,用到的时候再弄)
lsusb命令的作用
显示本机的USB设备列表信息。
在手册上lsusb定义成:显示系统中以及连接到系统的USB总线信息的工具。
lsusb命令 用于显示本机的USB设备列表,以及USB设备的详细信息。
lsusb命令是一个学习USB驱动开发,认识USB设备的助手,推荐大家使用,如果您的开发板中或者产品中没有lsusb命令可以自己移植一个,放到文件系统里面。
lsusb命令
如何运行lsusb?
要运行lsusb,你可以直接在控制台输入lsusb,它也可以传很多参数:
-v:显示USB设备的详细信息;
-s:<总线:设备号>仅显示指定的总线和(或)设备号的设备;
-d:<厂商:产品>仅显示指定厂商和产品编号的设备;
-t:以树状结构显示无理USB设备的层次;
-D:打印特定设备的详细信息。
-V:显示命令的版本信息。
lsusb实例
lsusb (打印当前枚举的USB设备)
打印当前枚举的USB设备
Bus : 指明设备连接到哪条总线
Device : 表明这是连接到总线上的第几台设备
ID : 设备的ID(厂商ID:设备ID)
字符串描述 :生产商名字和设备名
zhugeyifan@DriverTeam:~$ lsusb
Bus 002 Device 002: ID 8087:8002 Intel Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
如何理解上面的打印呢?
单独拎一个解释:
Bus 002 Device 002: ID 8087:8002 Intel Corp.
说明:
Bus 002:说明设备连接到002总线
Device 002:说明这是002总线上的第二台设备
ID 1d6b:0002:说明设备的ID为8087:8002(厂商ID:设备ID)
Intel Corp.:这就是字符串描述,通常用来描述该设备的功能
lsusb -v (显示当前枚举的USB设备的详细信息)
显示当前枚举的USB设备的详细信息(设备、配置、接口、端口描述符)
zhugeyifan@DriverTeam:~$ lsusb -v
Bus 002 Device 002: ID 8087:8002 Intel Corp.
Couldn't open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 1 Single TT
bMaxPacketSize0 64
idVendor 0x8087 Intel Corp.
idProduct 0x8002
bcdDevice 0.05
iManufacturer 0
iProduct 0
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 12
...
lsusb -s(仅显示指定的总线/设备号的设备)
格式:lsusb -s [[bus]:][devnum]
仅显示指定的总线和(或)设备号的设备。
zhugeyifan@DriverTeam:~$ lsusb -s 002:002
Bus 002 Device 002: ID 8087:8002 Intel Corp.
lsusb -d(仅显示指定厂商和产品编号的设备)
格式:lsusb -d vendor:[product]
仅显示指定厂商和产品编号的设备。
zhugeyifan@DriverTeam:~$ lsusb -d 8087:8002
Bus 002 Device 002: ID 8087:8002 Intel Corp.
lsusb -t(以树状结构显示无理USB设备的层次)
以树状结构显示无理USB设备的层次。
数字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
zhugeyifan@DriverTeam:~$ lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
|__ Port 6: Dev 3, If 0, Class=Hub, Driver=hub/6p, 480M
lsusb -D(打印特定设备的详细信息)
格式:lsusb -D device
device指的是"/dev/bus/usb/总线号/设备号"下的对应设备。
使用lsusb 命令 的-D 选项,你可以打印特定设备的详细信息。
zhugeyifan@DriverTeam:~$ find /dev/bus/usb/
/dev/bus/usb/
/dev/bus/usb/002
/dev/bus/usb/002/002
/dev/bus/usb/002/001
/dev/bus/usb/001
/dev/bus/usb/001/003
/dev/bus/usb/001/002
/dev/bus/usb/001/001
zhugeyifan@DriverTeam:~$ lsusb -D /dev/bus/usb/002/002
Device: ID 8087:8002 Intel Corp.
Couldn't open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 1 Single TT
bMaxPacketSize0 64
idVendor 0x8087 Intel Corp.
idProduct 0x8002
bcdDevice 0.05
iManufacturer 0
iProduct 0
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 12
lsusb -V(打印当前的USB版本)
打印当前的USB版本。
zhugeyifan@DriverTeam:~$ lsusb -V
lsusb (usbutils) 007
参考: