教你在 Linux 中使用 lsusb命令 显示有关USB设备信息

教你在 Linux 中使用 lsusb命令 显示有关USB设备信息

在Linux中我们使用lsusb命令列出USB设备及其属性,lsusb用于显示系统中的USB总线及其连接的设备信息。下面介绍如何安装并使用。


系统环境

系统:Centos7

安装usbutils

默认Centos7系统中没有lsusb命令,我们需要安装usbutils安装包,才能使用lsusb:
[root@localhost ~]# yum -y install usbutils


列出usb设备信息

lsusb用于显示有关系统中的USB总线及其连接的设备的信息,下面运行lsusb:
[root@localhost ~]# lsusb
Bus 001 Device 010: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 001 Device 055: ID 0951:1665 Kingston Technology Digital DataTraveler SE9 64GB
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

教你在 Linux 中使用 lsusb命令 显示有关USB设备信息


lsusb将显示系统内部连接的驱动程序和设备。上面输出内容解释如下:
Bus 001 Device 055: ID 0951:1665 Kingston Technology Digital DataTraveler SE9 64GB
Bus 001: 表示第一个usb控制器,可以使用lspci|grep USB查看主机有几个usb控制器Device 055: 表示系统分配给这个金士顿存储设备的设备号ID: 表示usb设备的IDKingston Technology Digital DataTraveler SE9 64GB: 表示其制造商名称和设备名称
我们还看到,系统中还附有USB 2.0 root hub 驱动程序和USB 1.1 root hub 驱动程序。
使用树状类型显示usb信息使用-t选项,以树状结构显示usb信息:

[root@localhost ~]# lsusb -t
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
    |__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
    |__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 2: Dev 3, If 0, Class=Hub, Driver=hub/7p, 12M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/6p, 480M

教你在 Linux 中使用 lsusb命令 显示有关USB设备信息


数字12M、480M、5000M表示USB的传输速度。

  • 12M表示12Mbit / s,这是USB 1.0 / 1.1类型

  • 480M表示480Mbit / s,这是USB 2.0类型

  • 5000M表示5Gbit / s,这是USB3.0类型




Linux从/usr/share/hwdata/usb.ids'识别USB设备的详细信息。lsusb列出的vendor和device name都是从这个文件里面识别出来的。

如何列出USB详细信息

使用-v参数查看usb详细信息:
[root@localhost ~]# lsusb -v | less

Bus 001 Device 056: ID 0951:1665 Kingston Technology Digital DataTraveler SE9 64GB
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x0951 Kingston Technology
  idProduct          0x1665 Digital DataTraveler SE9 64GB
  bcdDevice            1.00
  iManufacturer           1 Kingston
  iProduct                2 DataTraveler 2.0
  iSerial                 3 08606E6B6612FD50771C2A8B
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval             255
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval             255
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0000
  (Bus Powered)



查找连接了多少个USB设备

查找链接的设备数量,可以使用下面命令查找:
[root@localhost ~]# find /dev/bus
/dev/bus
/dev/bus/usb
/dev/bus/usb/002
/dev/bus/usb/002/003
/dev/bus/usb/002/002
/dev/bus/usb/002/001
/dev/bus/usb/001
/dev/bus/usb/001/056
/dev/bus/usb/001/010
/dev/bus/usb/001/001

教你在 Linux 中使用 lsusb命令 显示有关USB设备信息


结合使用lsusb命令和-D参数,可以输出特定设备的详细信息。下面实例查看金士顿存储设备的详细信息:

教你在 Linux 中使用 lsusb命令 显示有关USB设备信息


[root@localhost ~]# lsusb -D /dev/bus/usb/001/056

教你在 Linux 中使用 lsusb命令 显示有关USB设备信息




查找大容量存储设备

lsusb -v为我们提供了非常详细的信息,我们可以配合使用grep命令查找指定的信息,下面过滤出idVendorMass Storage,来获取大容量存储设备:
[root@localhost ~]# lsusb -v |grep -Ei '(idVendor|Mass\ Storage)'
  idVendor           0x0bda Realtek Semiconductor Corp.
  idVendor           0x0951 Kingston Technology
      bInterfaceClass         8 Mass Storage
  idVendor           0x1d6b Linux Foundation
  idVendor           0x0e0f VMware, Inc.
  idVendor           0x0e0f VMware, Inc.
  idVendor           0x1d6b Linux Foundation

教你在 Linux 中使用 lsusb命令 显示有关USB设备信息


可以看到只有idVendor是Kingston Technology的设备才是大容量存储设备。

教你在 Linux 中使用 lsusb命令 显示有关USB设备信息


上一篇:001_Go windows 环境搭建


下一篇:现实中的路由规则,可能比你想象中复杂的多