LinuxProbe 发表于 2021-8-29 14:46:00

lsusb命令-在系统中显示有关USB设备信息


在Linux中我们使用lsusb命令列出USB设备及其属性,lsusb用于显示系统中的USB总线及其连接的设备信息。下面介绍如何安装并使用。
系统环境
Centos7安装usbutils
默认Centos7系统中没有lsusb命令,我们需要安装usbutils安装包,才能使用lsusb:# yum -y install usbutils列出usb设备信息
lsusb用于显示有关系统中的USB总线及其连接的设备的信息,下面运行lsusb:# lsusbBus 001 Device 010: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader ControllerBus 001 Device 055: ID 0951:1665 Kingston Technology Digital DataTraveler SE9 64GBBus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB HubBus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual MouseBus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hubhttps://www.linuxprobe.com/wp-content/uploads/2020/11/image1-4.png
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信息:# 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, 480Mhttps://www.linuxprobe.com/wp-content/uploads/2020/11/image2-4.png
数字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详细信息:# lsusb -v | lessBus 001 Device 056: ID 0951:1665 Kingston Technology Digital DataTraveler SE9 64GBDevice Descriptor:bLength                18bDescriptorType         1bcdUSB               2.00bDeviceClass            0 (Defined at Interface level)bDeviceSubClass         0   bDeviceProtocol         0   bMaxPacketSize0      64idVendor         0x0951 Kingston TechnologyidProduct          0x1665 Digital DataTraveler SE9 64GBbcdDevice            1.00iManufacturer         1 KingstoniProduct                2 DataTraveler 2.0iSerial               3 08606E6B6612FD50771C2A8BbNumConfigurations      1Configuration 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   0x81EP 1 IN      bmAttributes            2          Transfer Type            Bulk          Synch Type               None          Usage Type               Data      wMaxPacketSize   0x02001x 512 bytes      bInterval             255      Endpoint Descriptor:      bLength               7      bDescriptorType         5      bEndpointAddress   0x02EP 2 OUT      bmAttributes            2          Transfer Type            Bulk          Synch Type               None          Usage Type               Data      wMaxPacketSize   0x02001x 512 bytes      bInterval             255Device Qualifier (for other device speed):bLength                10bDescriptorType         6bcdUSB               2.00bDeviceClass            0 (Defined at Interface level)bDeviceSubClass         0   bDeviceProtocol         0   bMaxPacketSize0      64bNumConfigurations      1Device Status:   0x0000(Bus Powered)查找连接了多少个USB设备
查找链接的设备数量,可以使用下面命令查找:# 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/001https://www.linuxprobe.com/wp-content/uploads/2020/11/image3-4.png
结合使用lsusb命令和-D参数,可以输出特定设备的详细信息。下面实例查看金士顿存储设备的详细信息:
https://www.linuxprobe.com/wp-content/uploads/2020/11/image4-4.png# lsusb -D /dev/bus/usb/001/056 https://www.linuxprobe.com/wp-content/uploads/2020/11/image5-4.png查找大容量存储设备
lsusb -v为我们提供了非常详细的信息,我们可以配合使用grep命令查找指定的信息,下面过滤出idVendor和Mass Storage,来获取大容量存储设备:# lsusb -v |grep -Ei '(idVendor|Mass\ Storage)'idVendor         0x0bda Realtek Semiconductor Corp.idVendor         0x0951 Kingston Technology      bInterfaceClass         8 Mass StorageidVendor         0x1d6b Linux FoundationidVendor         0x0e0f VMware, Inc.idVendor         0x0e0f VMware, Inc.idVendor         0x1d6b Linux Foundationhttps://www.linuxprobe.com/wp-content/uploads/2020/11/image6-4.png
可以看到只有idVendor是Kingston Technology的设备才是大容量存储设备。总结
在Linux中我们使用lsusb命令列出USB设备及其属性,lsusb用于显示系统中的USB总线及其连接的设备信息。
页: [1]
查看完整版本: lsusb命令-在系统中显示有关USB设备信息