lsusb命令-在系統中顯示有關USB裝置資訊

夢共裡醉發表於2021-08-29
在 中我們使用lsusb 列出USB裝置及其屬性,lsusb用於顯示系統中的USB匯流排及其連線的裝置資訊。下面介紹如何安裝並使用。
系統環境

7

安裝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

lsusb命令-在系統中顯示有關USB裝置資訊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裝置的ID
  • Kingston 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

lsusb命令-在系統中顯示有關USB裝置資訊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

lsusb命令-在系統中顯示有關USB裝置資訊lsusb命令-在系統中顯示有關USB裝置資訊
結合使用lsusb命令和 -D引數,可以輸出特定裝置的詳細資訊。下面例項檢視金士頓儲存裝置的詳細資訊:
lsusb命令-在系統中顯示有關USB裝置資訊lsusb命令-在系統中顯示有關USB裝置資訊

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

lsusb命令-在系統中顯示有關USB裝置資訊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

lsusb命令-在系統中顯示有關USB裝置資訊lsusb命令-在系統中顯示有關USB裝置資訊
可以看到只有idVendor是Kingston Technology的裝置才是大容量儲存裝置。

總結

在Linux中我們使用lsusb命令列出USB裝置及其屬性,lsusb用於顯示系統中的USB匯流排及其連線的裝置資訊。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31524109/viewspace-2789321/,如需轉載,請註明出處,否則將追究法律責任。

相關文章