Вопрос или проблема
Мой ПК построен на ASUS Z170i. У него есть два порта USB 3.1 Gen2 / 10 Gbit/s. Порт отображается как порт USB 3.0, а скорость этого порта составляет 5000M. Как сделать так, чтобы этот порт отображался/работал в режиме USB 3.1 Gen2 / 10 Gbit/s в Linux?
Вывод команды `lsusb’. Он показал, что скорость составляет 5000M, что соответствует скорости USB 3.0.
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 5000M
|__ Port 2: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M
|__ Port 8: Dev 2, If 1, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 8: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 9: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 9: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 13: Dev 4, If 1, Class=Wireless, Driver=btusb, 12M
|__ Port 13: Dev 4, If 0, Class=Wireless, Driver=btusb, 12M
Шина 04 — это порт USB 3.1.
Вот информация из dmseg
. Он сообщил SuperSpeed.
[ 1.554071] xhci_hcd 0000:06:00.0: xHCI Host Controller
[ 1.554073] xhci_hcd 0000:06:00.0: new USB bus registered, assigned bus number 4
[ 1.554074] xhci_hcd 0000:06:00.0: Host supports USB 3.0 SuperSpeed
[ 1.554093] usb usb4: We don't know the algorithms for LPM for this host, disabling LPM.
[ 1.554104] usb usb4: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.02
[ 1.554104] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1.554105] usb usb4: Product: xHCI Host Controller
[ 1.554106] usb usb4: Manufacturer: Linux 5.2.9-arch1-1-ARCH xhci-hcd
[ 1.554106] usb usb4: SerialNumber: 0000:06:00.0
[ 1.554258] hub 4-0:1.0: USB hub found
[ 1.554263] hub 4-0:1.0: 2 ports detected
А вот вывод команды lspci -v
06:00.0 USB controller: ASMedia Technology Inc. ASM1142 USB 3.1 Host Controller (prog-if 30 [XHCI])
Subsystem: ASUSTeK Computer Inc. ASM1142 USB 3.1 Host Controller
Flags: bus master, fast devsel, latency 0, IRQ 18
Memory at f7400000 (64-bit, non-prefetchable) [size=32K]
Capabilities: <access denied>
Kernel driver in use: xhci_hcd
Kernel modules: xhci_pci
Последний – это вывод команды lsusb -vv -s 4:1
Bus 004 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
bDeviceProtocol 3
bMaxPacketSize0 9
idVendor 0x1d6b Linux Foundation
idProduct 0x0003 3.0 root hub
bcdDevice 5.02
iManufacturer 3 Linux 5.2.9-arch1-1-ARCH xhci-hcd
iProduct 2 xHCI Host Controller
iSerial 1 0000:06:00.0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x001f
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 12
bMaxBurst 0
Hub Descriptor:
bLength 12
bDescriptorType 42
nNbrPorts 2
wHubCharacteristic 0x000a
No power switching (usb 1.0)
Per-port overcurrent protection
bPwrOn2PwrGood 10 * 2 milli seconds
bHubContrCurrent 0 milli Ampere
bHubDecLat 0.0 micro seconds
wHubDelay 0 nano seconds
DeviceRemovable 0x00
Hub Port Status:
Port 1: 0000.02a0 5Gbps power Rx.Detect
Port 2: 0000.02a0 5Gbps power Rx.Detect
Binary Object Store Descriptor:
bLength 5
bDescriptorType 15
wTotalLength 0x002b
bNumDeviceCaps 2
SuperSpeed USB Device Capability:
bLength 10
bDescriptorType 16
bDevCapabilityType 3
bmAttributes 0x02
Latency Tolerance Messages (LTM) Supported
wSpeedsSupported 0x0008
Device can operate at SuperSpeed (5Gbps)
bFunctionalitySupport 3
Lowest fully-functional device speed is SuperSpeed (5Gbps)
bU1DevExitLat 0 micro seconds
bU2DevExitLat 0 micro seconds
SuperSpeedPlus USB Device Capability:
bLength 28
bDescriptorType 16
bDevCapabilityType 10
bmAttributes 0x00000023
Sublink Speed Attribute count 3
Sublink Speed ID count 1
wFunctionalitySupport 0x0001
bmSublinkSpeedAttr[0] 0x00050034
Speed Attribute ID: 4 5Gb/s Symmetric RX SuperSpeed
bmSublinkSpeedAttr[1] 0x000500b4
Speed Attribute ID: 4 5Gb/s Symmetric TX SuperSpeed
bmSublinkSpeedAttr[2] 0x000a4035
Speed Attribute ID: 5 10Gb/s Symmetric RX SuperSpeedPlus
bmSublinkSpeedAttr[3] 0x000a40b5
Speed Attribute ID: 5 10Gb/s Symmetric TX SuperSpeedPlus
can't get debug descriptor: Resource temporarily unavailable
Device Status: 0x0001
Self Powered
Мой вопрос: как сделать так, чтобы этот порт работал в режиме 10 Gb/s? Или отображал этот порт как SuperSpeed+.
У меня есть четыре идеи:
- Коммерческие названия USB3 очень запутаны; теперь ещё больше благодаря USB3.2 [1]! По этой причине ядро просто неправильно именует контроллер.
- Ещё одна проблема с путаницей: 10Gbit удваивает свою скорость благодаря удвоению используемых линий [2]. Ядро показывает
5000M
, но это просто для одной линии. - BIOS/EFI может отключать его, возможно, для обратной совместимости.
- Ядро Linux плохо поддерживает ваш USB-чипсет.
Вкратце, пожалуйста, проведите тест/проверку, чтобы оценить реальную скорость соединения!
[1] https://www.theverge.com/circuitbreaker/2019/2/27/18243425/usb-3-2-standard-names-connectivity-cables-innovators-forum
[2] https://en.wikipedia.org/wiki/USB_3.0#3.2
Ответ или решение
Контекст вашего вопроса касается проблемы распознавания USB 3.1 портов как USB 3.0 в ArchLinux на компьютере с материнской платой ASUS Z170i. Давайте подробно рассмотрим возможные причины этой проблемы и способы её решения.
Общая информация
Ваши USB порты, заявленные как USB 3.1 Gen2 с пропускной способностью 10 Гбит/с, распознаются системой как USB 3.0 с максимальной скоростью в 5000 Мбит/с. Это может быть вызвано несколькими факторами:
-
Проблема именования версий USB: Начиная с USB 3.2 стандартных названий интерфейсов USB стало больше, и это могло привести к некорректному отображению в ОС. Более ранняя версия драйвера или ядра может неправильно определять версию интерфейса и отображать её как USB 3.0.
-
Данные по скорости передачи: USB 3.1 Gen2 действительно поддерживает скорость до 10 Гбит/с, однако скорость в 5000 Мбит/с может относиться к каждому отдельному каналу передачи, в то время как порт может быть настроен на использование только одной линии передачи.
-
Настройки BIOS/EFI: В некоторых случаях может быть ограничение со стороны BIOS/EFI, чтобы поддерживать совместимость с более старыми устройствами. Проверьте настройки в BIOS на предмет возможности управления USB портами и их режимами работы.
-
Поддержка ядра Linux: Возможно, ваш текущий драйвер или версия ядра не полностью поддерживают возможности чипсета ASMedia ASM1142, что ограничивает полноценное использование всех функций порта.
Рекомендуемые шаги
-
Проверка и обновление BIOS: Посетите сайт производителя вашей материнской платы и проверьте наличие обновлений для BIOS. Установка последней версии может устранить ограничения на уровне прошивки.
-
Обновление ядра и драйверов Linux: Убедитесь, что у вас установлены последние версии ядра и всех необходимых драйверов, которые могут включать в себя улучшенные функции для работы с USB 3.1 портами.
-
Проверка физического подключения и кабелей: Иногда проблема может заключаться в некачественных или устаревших кабелях, которые не поддерживают SuperSpeed+ спецификации. Используйте сертифицированные кабели USB 3.1.
-
Тестирование скорости передачи: Проведите тесты на скорость передачи данных с использованием программного обеспечения вроде
hdparm
илиfio
, чтобы определить фактическую пропускную способность ваших портов.
Заключение
Решение проблемы с отображением и использованием всей пропускной способности USB 3.1 портов может потребовать систематического подхода. Проведите аудит всех вышеупомянутых аспектов начиная с ОС и заканчивая физическим оборудованием вашего ПК. Будьте в курсе всех обновлений и следите за поддержкой вашего оборудования в Linux-сообществе.
И помните, что основой любого решения проблемы является тестирование фактической производительности, которое поможет определить, работает ли оборудование на заявленной скорости или нет.
Работа в таких условиях требует компетентного подхода и терпения, но, следуя этим рекомендациям, вы сможете максимально эффективно использовать возможности ваших USB портов.