Порты USB 3.1 распознаются как USB 3.0 в ArchLinux.

Вопрос или проблема

Мой ПК построен на 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+.

У меня есть четыре идеи:

  1. Коммерческие названия USB3 очень запутаны; теперь ещё больше благодаря USB3.2 [1]! По этой причине ядро просто неправильно именует контроллер.
  2. Ещё одна проблема с путаницей: 10Gbit удваивает свою скорость благодаря удвоению используемых линий [2]. Ядро показывает 5000M, но это просто для одной линии.
  3. BIOS/EFI может отключать его, возможно, для обратной совместимости.
  4. Ядро 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 Мбит/с. Это может быть вызвано несколькими факторами:

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

  2. Данные по скорости передачи: USB 3.1 Gen2 действительно поддерживает скорость до 10 Гбит/с, однако скорость в 5000 Мбит/с может относиться к каждому отдельному каналу передачи, в то время как порт может быть настроен на использование только одной линии передачи.

  3. Настройки BIOS/EFI: В некоторых случаях может быть ограничение со стороны BIOS/EFI, чтобы поддерживать совместимость с более старыми устройствами. Проверьте настройки в BIOS на предмет возможности управления USB портами и их режимами работы.

  4. Поддержка ядра Linux: Возможно, ваш текущий драйвер или версия ядра не полностью поддерживают возможности чипсета ASMedia ASM1142, что ограничивает полноценное использование всех функций порта.

Рекомендуемые шаги

  1. Проверка и обновление BIOS: Посетите сайт производителя вашей материнской платы и проверьте наличие обновлений для BIOS. Установка последней версии может устранить ограничения на уровне прошивки.

  2. Обновление ядра и драйверов Linux: Убедитесь, что у вас установлены последние версии ядра и всех необходимых драйверов, которые могут включать в себя улучшенные функции для работы с USB 3.1 портами.

  3. Проверка физического подключения и кабелей: Иногда проблема может заключаться в некачественных или устаревших кабелях, которые не поддерживают SuperSpeed+ спецификации. Используйте сертифицированные кабели USB 3.1.

  4. Тестирование скорости передачи: Проведите тесты на скорость передачи данных с использованием программного обеспечения вроде hdparm или fio, чтобы определить фактическую пропускную способность ваших портов.

Заключение

Решение проблемы с отображением и использованием всей пропускной способности USB 3.1 портов может потребовать систематического подхода. Проведите аудит всех вышеупомянутых аспектов начиная с ОС и заканчивая физическим оборудованием вашего ПК. Будьте в курсе всех обновлений и следите за поддержкой вашего оборудования в Linux-сообществе.

И помните, что основой любого решения проблемы является тестирование фактической производительности, которое поможет определить, работает ли оборудование на заявленной скорости или нет.

Работа в таких условиях требует компетентного подхода и терпения, но, следуя этим рекомендациям, вы сможете максимально эффективно использовать возможности ваших USB портов.

Оцените материал
Добавить комментарий

Капча загружается...