Чому зовнішній жорсткий диск 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 Гбіт / с, він, здається, повертається до високошвидкісної пропускної здатності USB Mbps в стилі 480 Мбіт / с. Disk Utility демонструє це як пристрій потужністю 480 Мбіт / с, а запуск декількох орієнтирів Disk Utility та dd підтверджує, що накопичувач не перевищує ~ 40 Мб / с (приблизний ліміт USB 2.0), незважаючи на те, що SSD здатний набагато більше що.

Коли я підключаю свій жорсткий диск 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

Повний вихід:


1
Чи можемо ми мати простий (неслідкий) lsusbтеж будь ласка? Ви зосередили увагу на контролері та ядрі, які інші люди успішно використовують. Я підозрюю, що привід може бути винним.
Олі

@ Oli: Гаразд, я додав цей висновок до питання.
jgottula

А оскільки ви згадали, що це може бути накопичувач, можливо, доречно зазначити, що я використовую адаптер Rosewill USB3-SATA (RAD-SATA-USB3) із накопичувачем Kingston SSDNow V (SNV125-S2 / 30GB).
jgottula

1
Спасибі. (Більше для інших людей - і вибачте, якщо ви це вже говорили) у корпусі накопичувача використовується чіпсет ASMedia ASM1051.
Олі

Якщо ця деталь виявиться корисною, USB 3.0 PCIe-карта - це AZiO AUDU3, який знову ж таки використовує популярний контролер NEC.
jgottula

Відповіді:


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 (rev 65) ', який буде лише USB 2.0.


4
На моє велике збентеження, ви абсолютно праві! У мене дві материнські карти, які відходять від моєї материнської плати, і, оскільки мені довелося дотягнутися до підключення мого кабелю USB 3.0, я, мабуть, підсунув її до неправильної під час роботи Linux та (що головне) ПРАВИМУ порту під час роботи Windows! Переконавшись, що я підключив кабель до синього порту цього разу (під Linux), це призвело до пропускної здатності 120 Мб / с. Дякую, сер, що ви вказали на мою бентежну помилку!
jgottula

woot! Я радий, що ви розібралися :)
Джеремі Керр

2
Людина ... Я вподобав це питання лише для того, щоб пізніше дізнатися, що це PEBCAK! : P urbandictionary.com/define.php?term=pebcak
дурний дурень

1
PICNIC - це більш прихильний термін для PEBCAK, оскільки його легше вимовляти і пропонує більше гри на словах. PICNIC = Проблема в кріслі, а не в комп'ютері.
Кет Амстердам
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.