Проверка скоростного режима USB-портов в Linux

Когда мой компьютер работал под управлением Windows, то для интерфейса USB 3.0 требовалось установить драйвер от производителя материнской платы. Операционная система не могла найти его самостоятельно. С переходом на Linux такой проблемы не стало. Все имеющиеся порты USB при установке системы начинают работать сразу. Но полноценно ли? В этой статье несколько простых способов, позволяющих проверить версию интерфейса и режим работы подключенных к нему устройств.

Просмотр информации по всем USB-контроллерам компьютера:

lspci | grep -i usb

Материнская плата ASRock H67M-GE не новая. На ней преобладают порты USB 2.0, поддержка которых сразу заложена в чипсете. Дополнительно присутствует контроллер USB 3.0 от Etron Technology. В выдаче это всё видно, значит все контроллеры настроены правильно:

d1mon@d1monPC:~$ lspci | grep -i usb
00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 05)
00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 05)
04:00.0 USB controller: Etron Technology, Inc. EJ168 USB 3.0 Host Controller (rev 01)

Для ноутбука Acer TMX349-M-535L выдача оказалось проще. Контроллер USB лишь один и по версии вопросов тоже не остаётся:

d1mon@d1monNB:~$ lspci | grep -i usb
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)

Если так окажется, что в выдаче не будет чётко указана версия USB-контроллера, то можно проискать в интернете информацию по выданному наименованию контроллера.

Следующая команда позволяет получить значительно более детальную информацию по всему, что связанно с USB. Видно контроллеры, порты, устройства, техническую информацию по устройствам, скоростные режимы работы каждого устройства, возникшие ограничения в работе устройств, историю подключения-отключения устройств.

dmesg | grep -i usb

В выдаче high-speed USB и SuperSpeed USB — это устройства USB 2.0 и USB 3.0, соответственно.

Пример для ASRock H67M-GE:

d1mon@d1monPC:~$ dmesg | grep -i usb
[    0.133224] ACPI: bus type USB registered
[    0.133224] usbcore: registered new interface driver usbfs
[    0.133224] usbcore: registered new interface driver hub
[    0.133224] usbcore: registered new device driver usb
[    0.822048] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.822146] ehci-pci 0000:00:1a.0: new USB bus registered, assigned bus number 1
[    0.840037] ehci-pci 0000:00:1a.0: USB 2.0 started, EHCI 1.00
[    0.840085] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    0.840086] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.840087] usb usb1: Product: EHCI Host Controller
[    0.840088] usb usb1: Manufacturer: Linux 4.13.0-43-generic ehci_hcd
[    0.840089] usb usb1: SerialNumber: 0000:00:1a.0
[    0.840229] hub 1-0:1.0: USB hub found
[    0.840408] ehci-pci 0000:00:1d.0: new USB bus registered, assigned bus number 2
[    0.860044] ehci-pci 0000:00:1d.0: USB 2.0 started, EHCI 1.00
[    0.860087] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[    0.860089] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.860090] usb usb2: Product: EHCI Host Controller
[    0.860091] usb usb2: Manufacturer: Linux 4.13.0-43-generic ehci_hcd
[    0.860092] usb usb2: SerialNumber: 0000:00:1d.0
[    0.860254] hub 2-0:1.0: USB hub found
[    0.860357] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    0.860369] uhci_hcd: USB Universal Host Controller Interface driver
[    0.860436] xhci_hcd 0000:04:00.0: new USB bus registered, assigned bus number 3
[    0.860657] usb usb3: New USB device found, idVendor=1d6b, idProduct=0002
[    0.860659] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.860660] usb usb3: Product: xHCI Host Controller
[    0.860661] usb usb3: Manufacturer: Linux 4.13.0-43-generic xhci-hcd
[    0.860662] usb usb3: SerialNumber: 0000:04:00.0
[    0.860815] hub 3-0:1.0: USB hub found
[    0.860900] xhci_hcd 0000:04:00.0: new USB bus registered, assigned bus number 4
[    0.860914] usb usb4: We don't know the algorithms for LPM for this host, disabling LPM.
[    0.860927] usb usb4: New USB device found, idVendor=1d6b, idProduct=0003
[    0.860928] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.860929] usb usb4: Product: xHCI Host Controller
[    0.860930] usb usb4: Manufacturer: Linux 4.13.0-43-generic xhci-hcd
[    0.860931] usb usb4: SerialNumber: 0000:04:00.0
[    0.861062] hub 4-0:1.0: USB hub found
[    1.168047] usb 1-1: new high-speed USB device number 2 using ehci-pci
[    1.188046] usb 2-1: new high-speed USB device number 2 using ehci-pci
[    1.220586] usb 4-1: new SuperSpeed USB device number 2 using xhci_hcd
[    1.252339] usb 4-1: New USB device found, idVendor=0bc2, idProduct=ab28
[    1.252343] usb 4-1: New USB device strings: Mfr=2, Product=3, SerialNumber=1
[    1.252345] usb 4-1: Product: BUP BK
[    1.252347] usb 4-1: Manufacturer: Seagate
[    1.252350] usb 4-1: SerialNumber: ******
[    1.316722] usb 1-1: New USB device found, idVendor=8087, idProduct=0024
[    1.316724] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    1.317117] hub 1-1:1.0: USB hub found
[    1.336450] usb 2-1: New USB device found, idVendor=8087, idProduct=0024
[    1.336451] usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    1.336709] hub 2-1:1.0: USB hub found
[    1.604069] usb 1-1.1: new full-speed USB device number 3 using ehci-pci
[    1.624064] usb 2-1.1: new low-speed USB device number 3 using ehci-pci
[    1.713976] usb 4-1: USB controller 0000:04:00.0 does not support streams, which are required by the UAS driver.
[    1.713978] usb 4-1: Please try an other USB controller if you wish to use UAS.
[    1.713979] usb-storage 4-1:1.0: USB Mass Storage device detected
[    1.716051] scsi host4: usb-storage 4-1:1.0
[    1.716104] usbcore: registered new interface driver usb-storage
[    1.716248] usb 1-1.1: New USB device found, idVendor=046d, idProduct=c52b
[    1.716249] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    1.716250] usb 1-1.1: Product: USB Receiver
[    1.716251] usb 1-1.1: Manufacturer: Logitech
[    1.717081] usbcore: registered new interface driver uas
[    1.754300] usbcore: registered new interface driver usbhid
[    1.754301] usbhid: USB HID core driver
[    1.755849] logitech-djreceiver 0003:046D:C52B.0003: hiddev0,hidraw0: USB HID v1.11 Device [Logitech USB Receiver] on usb-0000:00:1a.0-1.1/input2
[    1.882478] input: Logitech M705 as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1:1.2/......
[    1.882794] logitech-hidpp-device 0003:046D:101B.0004: input,hidraw1: USB HID v1.11 Mouse [Logitech M705] on usb-0000:00:1a.0-1.1:1
[    1.914813] usb 2-1.1: New USB device found, idVendor=051d, idProduct=0002
[    1.914814] usb 2-1.1: New USB device strings: Mfr=3, Product=1, SerialNumber=2
[    1.914815] usb 2-1.1: Product: Back-UPS 500 FW: 6.3.I USB FW: c1 
[    1.914816] usb 2-1.1: Manufacturer: American Power Conversion
[    1.914817] usb 2-1.1: SerialNumber: ******
[    1.933217] hid-generic 0003:051D:0002.0005: hiddev1,hidraw2: USB HID v1.00 Device [American Power Conversion Back-UPS 500 FW: 6.3.I USB FW: c1 ] on usb-0000:00:1d.0-1.1/input0
[    2.008058] usb 2-1.2: new full-speed USB device number 4 using ehci-pci
[    2.119170] usb 2-1.2: New USB device found, idVendor=0909, idProduct=001a
[    2.119172] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    2.119173] usb 2-1.2: Product: ATR USB microphone 
[    2.119174] usb 2-1.2: Manufacturer: Audio-Technica
[    2.120051] input: Audio-Technica ATR USB microphone  as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.3/0003:0909:001A.0006/input/input4
[    2.180444] hid-generic 0003:0909:001A.0006: input,hiddev2,hidraw3: USB HID v1.00 Device [Audio-Technica ATR USB microphone ] on usb-0000:00:1d.0-1.2/input3
[    2.260072] usb 2-1.3: new high-speed USB device number 5 using ehci-pci
[    2.395733] usb 2-1.3: New USB device found, idVendor=0ac8, idProduct=3500
[    2.395734] usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    2.395735] usb 2-1.3: Product: A4 TECH HD PC Camera
[    2.395736] usb 2-1.3: Manufacturer: A4 TECH
[    2.395737] usb 2-1.3: SerialNumber: ******
[   60.788105] usbcore: registered new interface driver snd-usb-audio
[   60.789734] input: A4 TECH HD PC Camera: A4 TECH H as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/input/input13
[   60.789889] usbcore: registered new interface driver uvcvideo
[   60.789889] USB Video Class driver (1.1.1)
[ 1128.679045] usb 4-1: USB disconnect, device number 2
[ 1973.743224] usb 3-2: new high-speed USB device number 2 using xhci_hcd
[ 1973.999067] usb 3-2: New USB device found, idVendor=3538, idProduct=0070
[ 1973.999071] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1973.999074] usb 3-2: Product: PQI USB Flash drive
[ 1973.999076] usb 3-2: Manufacturer: PQI
[ 1973.999078] usb 3-2: SerialNumber: ******
[ 1973.999907] usb-storage 3-2:1.0: USB Mass Storage device detected
[ 1974.000063] scsi host4: usb-storage 3-2:1.0
[ 1975.031934] scsi 4:0:0:0: Direct-Access     Generic  USB Flash Disk   8.07 PQ: 0 ANSI: 2

Бывает, что USB-порты работают. И даже их версия такая, какая должна быть. Но скорость обмена данными оставляет желать лучшего. Поставить точку в вопросе скорости поможет тестирование каким-нибудь USB-носителем. Берём флешку или диск. Обязательно USB 3.0, если хотим проверить соответствующий порт. Подключаем к нужному порту и запускаем скоростной тест.

У меня есть внешний жёсткий диск и флешки, для которых я примерно знаю максимальные скорости. Сравнивая полученные значения становится ясно, на какой скорости позволяет им работает USB-порт.

Если вы не знаете скоростные характеристики своих USB-носителей, то можно просто сравнить, дополнительно подключив их к заведомо низкоскоростным портам. Или через USB-хаб версии 2.0, который тоже замедлит работу.

Мне нравится для подобных тестов использовать «Дисковую утилиту Gnome»:

Тест скорости в Дисковой утилите Gnome

Примеры тестов одного и того же USB-диска через USB 2.0 и USB 3.0 можно посмотреть в недавнем обзоре. Они выполнены как раз через эту программу. И разница скоростей очевидна.

Комментарии