📜  linux 列出 USB 设备和端口速度 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:02:44.062000             🧑  作者: Mango

Linux 列出 USB 设备和端口速度

在 Linux 上,我们可以使用命令行列出所有连接到计算机的 USB 设备及其端口速度。这对于调试 USB 连接问题、检查 USB 设备的性能很有用。

下面介绍两个常用的命令。

lsusb

使用 lsusb 命令可以列出所有连接到计算机的 USB 设备及其相关信息,包括设备 ID、设备名称、设备描述。

$ lsusb
Bus 003 Device 002: ID 04f2:b40d Chicony Electronics Co., Ltd HP HD Webcam [Fixed]
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 001 Device 002: ID 046d:c31c Logitech, Inc. Keyboard K120
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

可以使用 -v 选项来显示更详细的信息,包括每个设备的速度。

$ lsusb -v
...
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         3 
  bMaxPacketSize0         9
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0003 3.0 root hub
  bcdDevice            4.19
  iManufacturer           3 Linux 4.19.59-1-MANJARO xhci-hcd
  iProduct                2 xHCI Host Controller
...

可以从输出中找到 bcdUSB 项,这是 USB 设备的版本信息,如果是 1.01.12.0,则表示是 USB 1/2 设备,如果是 3.0 则表示是 USB 3 设备。

同时,可以在输出中找到 idVendoridProduct 项,它们表示 USB 设备的厂商 ID 和产品 ID,可以用于识别设备。

dmesg

另一个常用的命令是 dmesg,它可以显示系统启动的信息,包括 USB 设备的连接和断开。

$ dmesg | grep -i usb
[    0.550288] usbcore: registered new interface driver usbfs
[    0.550295] usbcore: registered new interface driver hub
[    0.550308] usbcore: registered new device driver usb
[    0.552127] usbcore: registered new interface driver lan78xx
[    0.552695] usbcore: registered new interface driver smsc95xx
[    0.757528] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19
...
[  397.541305] usb 1-3: new high-speed USB device number 3 using xhci_hcd
[  397.691459] usb 1-3: New USB device found, idVendor=0a12, idProduct=0001, bcdDevice=88.91
[  397.691463] usb 1-3: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[  397.696279] input: CSR8510 A10 as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/bluetooth/hci0/hci0:256/0005:0A12:0001.0003/input/input23
[  397.696492] hid-generic 0005:0A12:0001.0003: input,hidraw2: BLUETOOTH HID v0.01 Keyboard [CSR8510 A10] on 58:2c:80:ff:65:cf
[  398.830133] usb 1-4: new full-speed USB device number 4 using xhci_hcd
[  399.386297] usb 1-4: New USB device found, idVendor=046d, idProduct=c31c, bcdDevice= 2.01
[  399.386302] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  399.386305] usb 1-4: Product: USB Keyboard
[  399.386307] usb 1-4: Manufacturer: Logitech

可以从输出中找到 new high-speed/full-speed/low-speed USB device 的信息,以及 idVendoridProductbcdDevice 信息。

结论

通过使用 lsusb 和 dmesg 命令,我们可以方便地查看 Linux 系统中连接的所有 USB 设备及其速度、厂商等信息。这些信息对于调试 USB 连接问题、检查 USB 设备的性能非常有用。