Почему внешний жесткий диск USB 3.0 не работает на скоростях USB 3.0?

16

Недавно я приобрел карту контроллера PCI Express x1 USB 3.0 (содержащую контроллер NEC USB 3.0) с намерением использовать внешний жесткий диск USB 3.0 с моей коробкой Linux. Я установил карту в пустой слот PCIe на материнской плате, подключил карту к кабелю питания, подключил кабель USB 3.0 между одним из новых портов и внешним жестким диском и подключил жесткий диск к сетевой розетке для питания. При загрузке системы накопитель работает на 100% по назначению, за одним исключением пропускной способности: вместо того, чтобы использовать соединение SuperSpeed ​​4,8 Гбит / с, он, похоже, возвращается к пропускной способности High Speed ​​480 Мбит / с USB 2.0. Дисковая утилита показывает его как устройство со скоростью 480 Мбит / с, а выполнение пары тестов Дисковой утилиты и dd подтверждает, что диск не может превышать ~ 40 МБ / с (приблизительный предел USB 2.0), несмотря на то, что это твердотельный накопитель, способный гораздо больше, чем тот.

Когда я подключаю свой жесткий диск USB 3.0, dmesgпоказывает это:

[ 3923.280018] usb 3-2: new high speed USB device using ehci_hcd and address 6

где я ожидал бы найти это:

[ 3923.280018] usb 3-2: new SuperSpeed USB device using xhci_hcd and address 6

В то время моя система работала на ядре 2.6.35-25-generic. Затем я наткнулся на эту ветку на форуме одного человека, который обнаружил, что ошибка, существовавшая в ядрах до 2.6.37-rc5, могла быть причиной этой проблемы. Следовательно, я установил ядро ​​Ubuntu общего назначения 2.6.37, чтобы определить, исчезнет ли проблема. Это не так, поэтому я попробовал 2.6.38-rc3-generic и даже 2.6.38 по ночам с 2010.02.01, но безрезультатно.

Короче говоря, я пытаюсь определить, почему при поддержке USB 3.0 в ядре мой USB 3.0 не работает с полной пропускной способностью SuperSpeed.

Смотрите комментарии под этим вопросом для получения дополнительной информации.


Вывод, который может иметь отношение к проблеме (при загрузке с 2.6.38-rc3):

Соответствующие строки из dmesg:

[   19.589491] xhci_hcd 0000:03:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
[   19.589512] xhci_hcd 0000:03:00.0: setting latency timer to 64
[   19.589516] xhci_hcd 0000:03:00.0: xHCI Host Controller
[   19.589623] xhci_hcd 0000:03:00.0: new USB bus registered, assigned bus number 12
[   19.650492] xhci_hcd 0000:03:00.0: irq 17, io mem 0xf8100000
[   19.650556] xhci_hcd 0000:03:00.0: irq 47 for MSI/MSI-X
[   19.650560] xhci_hcd 0000:03:00.0: irq 48 for MSI/MSI-X
[   19.650563] xhci_hcd 0000:03:00.0: irq 49 for MSI/MSI-X
[   19.653946] xHCI xhci_add_endpoint called for root hub
[   19.653948] xHCI xhci_check_bandwidth called for root hub

Соответствующий раздел sudo lspci -v:

03:00.0 USB Controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 03) (prog-if 30)
    Flags: bus master, fast devsel, latency 0, IRQ 17
    Memory at f8100000 (64-bit, non-prefetchable) [size=8K]
    Capabilities: [50] Power Management version 3
    Capabilities: [70] MSI: Enable- Count=1/8 Maskable- 64bit+
    Capabilities: [90] MSI-X: Enable+ Count=8 Masked-
    Capabilities: [a0] Express Endpoint, MSI 00
    Capabilities: [100] Advanced Error Reporting
    Capabilities: [140] Device Serial Number ff-ff-ff-ff-ff-ff-ff-ff
    Capabilities: [150] #18
    Kernel driver in use: xhci_hcd
    Kernel modules: xhci-hcd

Соответствующий раздел sudo lsusb -v:

Bus 012 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            2.06
  iManufacturer           3 Linux 2.6.38-020638rc3-generic xhci_hcd
  iProduct                2 xHCI Host Controller
  iSerial                 1 0000:03:00.0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    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 Unused
      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
Hub Descriptor:
  bLength               9
  bDescriptorType      41
  nNbrPorts             4
  wHubCharacteristic 0x0009
    Per-port power switching
    Per-port overcurrent protection
    TT think time 8 FS bits
  bPwrOn2PwrGood       10 * 2 milli seconds
  bHubContrCurrent      0 milli Ampere
  DeviceRemovable    0x00
  PortPwrCtrlMask    0xff
 Hub Port Status:
   Port 1: 0000.0100 power
   Port 2: 0000.0100 power
   Port 3: 0000.0100 power
   Port 4: 0000.0100 power
Device Status:     0x0003
  Self Powered
  Remote Wakeup Enabled

Полный, не многословный lsusb:

Bus 012 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 011 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 010 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 009 Device 003: ID 04d9:0702 Holtek Semiconductor, Inc. 
Bus 009 Device 002: ID 046d:c068 Logitech, Inc. G500 Laser Mouse
Bus 009 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 006: ID 174c:5106 ASMedia Technology Inc. 
Bus 003 Device 004: ID 0bda:0151 Realtek Semiconductor Corp. Mass Storage Device (Multicard Reader)
Bus 003 Device 002: ID 058f:6366 Alcor Micro Corp. Multi Flash Reader
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 006: ID 1687:0163 Kingmax Digital Inc. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 046d:081b Logitech, Inc. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Полный вывод:

jgottula
источник
1
Можем ли мы иметь простой (не многословный) lsusbтоже, пожалуйста? Вы уделяете большое внимание контроллеру и ядру, которые другие люди успешно используют. Я подозреваю, что диск мог быть виноват.
Оли
@ Оли: Хорошо, я добавил этот вывод к вопросу.
Jgottula
И поскольку вы упомянули, что это может быть дисковод, уместно заметить, что я использую адаптер Rosewill USB3-SATA (RAD-SATA-USB3) с диском Kingston SSDNow V (SNV125-S2 / 30GB).
Jgottula
1
Благодарю. (Больше для других людей - и извините, если вы уже сказали это) корпус диска использует чипсет ASMedia ASM1051.
Оли
В случае, если эта деталь окажется полезной, карта USB 3.0 PCIe - это AZiO AUDU3, которая, опять же, использует популярный контроллер NEC.
августа

Ответы:

5

Вы уверены, что диск подключен к правильному (USB 3.0) порту? Похоже, ваш контроллер USB 3.0 предоставляет USB-шину № 12, но диск подключен к USB-шине № 3.

Согласно вашему dmesg, USB-шина № 3 предоставляется устройством PCI '06: 01.2: USB-контроллер: VIA Technologies, Inc. USB 2.0 (версия 65) ', который будет только USB 2.0.

Джереми Керр
источник
4
К моему большому смущению, вы абсолютно правы! У меня есть две карты USB, идущие от моей материнской платы, и, поскольку мне пришлось тянуться, чтобы подключить свой кабель USB 3.0, я, должно быть, вставил его в неправильную карту при работе с Linux и (что крайне важно) в ПРАВОЙ порт при работе с Windows! Убедившись, что на этот раз я подключил кабель к синему порту (под Linux), мы получили полную пропускную способность 120 МБ / с. Спасибо, сэр, за указание на мою неловкую ошибку!
Jgottula
Woot! Я рад, что вы все разобрались :)
Джереми Керр
2
Чувак ... Мне понравился этот вопрос, чтобы потом узнать, что это был PEBCAK! : P urbandictionary.com/define.php?term=pebcak
неуклюжий дурак
1
PICNIC - более предпочтительный термин для PEBCAK, так как его легче произносить, и он предлагает больше слов. ПИКНИК = Проблема в кресле, а не в компьютере.
Кэт Амстердам