【开发工具】【lsusb】查询USB设备信息(lsusb)的使用

705 阅读3分钟

获取更多相关的嵌入式开发工具,可收藏系列博文,持续更新中:
【开发工具】嵌入式常用开发工具汇总帖

本文主要介绍查询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

参考:

lsusb