Pourquoi le disque dur externe USB 3.0 ne fonctionne-t-il pas à des vitesses USB 3.0?

16

J'ai récemment acheté une carte contrôleur PCI Express x1 USB 3.0 (contenant le contrôleur NEC USB 3.0) dans le but d'utiliser un disque dur externe USB 3.0 avec ma boîte Linux. J'ai installé la carte dans un emplacement PCIe vide sur ma carte mère, connecté la carte à un câble d'alimentation, enfilé un câble USB 3.0 entre l'un des nouveaux ports et mon disque dur externe et connecté le disque dur à une prise murale pour l'alimentation. En démarrant le système, le lecteur fonctionne à 100% comme prévu, à l'exception du débit: plutôt que d'utiliser la connectivité SuperSpeed ​​4,8 Gbps, il semble revenir à un débit de style USB 2.0 haute vitesse 480 Mbps. L'Utilitaire de disque le montre comme un périphérique de 480 Mbps, et l'exécution de quelques tests de l'Utilitaire de disque et dd confirme que le lecteur ne dépasse pas ~ 40 Mo / s (la limite approximative de l'USB 2.0), bien qu'il s'agisse d'un SSD capable de bien plus que cette.

Lorsque je connecte mon disque dur USB 3.0, dmesgcela montre:

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

où je m'attendrais à trouver ceci:

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

Mon système fonctionnait à l'époque sur le noyau 2.6.35-25-generic. Ensuite, je suis tombé sur ce fil de discussion par un individu qui a découvert qu'un bogue, qui était présent dans les noyaux avant 2.6.37-rc5, pouvait être le coupable de ce type de problème. Par conséquent, j'ai installé le noyau Ubuntu générique 2.6.37 pour déterminer si le problème disparaîtrait. Ce n'est pas le cas, j'ai donc essayé le 2.6.38-rc3-generic, et même le 2.6.38 tous les soirs du 01.02.2010, en vain.

En bref, j'essaie de déterminer pourquoi, avec la prise en charge USB 3.0 dans le noyau, mon lecteur USB 3.0 ne fonctionne pas à plein débit SuperSpeed.

Voir les commentaires sous cette question pour plus de détails.


Sortie pouvant être pertinente pour le problème (lors du démarrage à partir de 2.6.38-rc3):

Lignes pertinentes de 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

Section pertinente de 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

Section pertinente de 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

Complet, non verbeux 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

Sortie complète:

jgottula
la source
1
Pourrions-nous avoir un simple (non-verbeux) lsusbaussi s'il vous plaît? Vous avez mis beaucoup l'accent sur le contrôleur et le noyau, que les autres utilisent avec succès. Je soupçonne que le lecteur pourrait être en cause.
Oli
@Oli: D'accord, j'ai ajouté cette sortie à la question.
jgottula
Et puisque vous avez mentionné que cela pouvait être le lecteur, il peut être pertinent de noter que j'utilise l'adaptateur Rosewill USB3-SATA (RAD-SATA-USB3) avec un lecteur Kingston SSDNow V (SNV125-S2 / 30GB).
jgottula
1
Merci. (Plus pour les autres - et désolé si vous l'avez déjà dit) le boîtier du lecteur utilise le chipset ASMedia ASM1051.
Oli
Si ce détail s'avère utile, la carte PCIe USB 3.0 est l'AZiO AUDU3 qui, là encore, utilise le populaire contrôleur NEC.
jgottula

Réponses:

5

Êtes-vous sûr que le disque est branché sur le bon port (USB 3.0)? Il semble que votre contrôleur USB 3.0 fournisse le bus USB # 12, mais le disque est connecté au bus USB # 3.

Selon votre dmesg, le bus USB n ° 3 est fourni par le périphérique PCI '06: 01.2: Contrôleur USB: VIA Technologies, Inc. USB 2.0 (rév 65) ', qui ne sera que USB 2.0.

Jeremy Kerr
la source
4
À mon grand embarras, vous avez absolument raison! J'ai deux cartes USB qui sortent de ma carte mère et, puisque j'ai dû tendre la main pour brancher mon câble USB 3.0, je dois l'avoir inséré dans la mauvaise lors de l'exécution de Linux et (surtout) le port DROIT lors de l'exécution de Windows! S'assurer absolument que j'ai branché le câble dans un port bleu cette fois (sous Linux) a abouti au débit complet de 120 Mo / s. Merci monsieur d'avoir signalé mon erreur embarrassante!
jgottula
woot! Je suis content que vous l'ayez trié :)
Jeremy Kerr
2
Mec ... J'ai favorisé cette question juste pour découvrir plus tard que c'était un PEBCAK! : P urbandictionary.com/define.php?term=pebcak
imbécile fou
1
PICNIC est le terme préféré de PEBCAK car il est plus facile à prononcer et offre plus de jeu sur les mots. PICNIC = Problème dans le fauteuil pas dans l'ordinateur.
Kat Amsterdam