Perché il disco rigido esterno USB 3.0 non funziona a velocità USB 3.0?


16

Di recente ho acquistato una scheda controller USB 3.0 PCI Express x1 (contenente il controller NEC USB 3.0) con l'intento di utilizzare un disco rigido esterno USB 3.0 con la mia scatola Linux. Ho installato la scheda in uno slot PCIe vuoto sulla mia scheda madre, ho collegato la scheda a un cavo di alimentazione, ho inserito un cavo USB 3.0 tra una delle nuove porte e il mio HDD esterno e ho collegato l'HDD a una presa a muro per l'alimentazione. Avviando il sistema, l'unità funziona al 100% come previsto, con una sola eccezione della velocità effettiva: anziché utilizzare la connettività SuperSpeed ​​4.8 Gbps, sembra che stia tornando alla velocità effettiva di tipo USB 2.0 ad alta velocità 480 Mbps. Utility Disco lo mostra come un dispositivo da 480 Mbps e l'esecuzione di un paio di Utility Disco e benchmark dd conferma che l'unità non supera ~ 40 MB / s (il limite approssimativo di USB 2.0), nonostante sia un SSD capace di molto più di quello.

Quando collego il mio disco fisso USB 3.0, dmesgmostra questo:

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

dove mi aspetterei di trovare questo:

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

Il mio sistema era in esecuzione sul kernel 2.6.35-25-generico al momento. Quindi, mi sono imbattuto in questo thread del forum da un individuo che ha scoperto che un bug, che era presente nei kernel prima della 2.6.37-rc5, poteva essere il colpevole di questo tipo di problema. Di conseguenza, ho installato il kernel Ubuntu mainline 2.6.37-generico per determinare se il problema sarebbe scomparso. Non ha funzionato, quindi ho provato 2.6.38-rc3-generic, e anche la 2.6.38 di notte dal 2010.02.01, senza risultati.

In breve, sto cercando di determinare perché, con il supporto USB 3.0 nel kernel, la mia unità USB 3.0 non funziona alla massima velocità di SuperSpeed.

Vedi i commenti sotto questa domanda per ulteriori dettagli.


Output che potrebbe essere rilevante per il problema (all'avvio da 2.6.38-rc3):

Righe pertinenti da 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

Sezione pertinente di 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

Sezione pertinente di 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

Completo, non dettagliato 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

Uscita completa:


1
Potremmo avere anche un semplice (non verboso) per lsusbfavore? Ti sei focalizzato molto sul controller e sul kernel, entrambi utilizzati da altre persone con successo. Ho il sospetto che l'unità potrebbe essere in errore.
Oli

@Oli: Okay, ho aggiunto quell'output alla domanda.
Jgottula,

E poiché hai menzionato che potrebbe essere l'unità, potrebbe essere rilevante notare che sto usando l'adattatore da USB3 a SATA Rosewill (RAD-SATA-USB3) con un'unità Kingston SSDNow V (SNV125-S2 / 30GB).
Jgottula,

1
Grazie. (Altro per altre persone - e scusate se lo avete già detto) il case drive usa il chipset ASMedia ASM1051.
Oli

Nel caso in cui questo dettaglio si riveli utile, la scheda PCIe USB 3.0 è AZiO AUDU3 che, ancora una volta, utilizza il famoso controller NEC.
Jgottula,

Risposte:


5

Sei sicuro che il disco sia inserito nella porta corretta (USB 3.0)? Sembra che il controller USB 3.0 stia fornendo il bus USB n. 12, ma il disco è collegato al bus USB n. 3.

Secondo il vostro dmesg, il bus USB n. 3 è fornito dal dispositivo PCI '06: 01.2: Controller USB: VIA Technologies, Inc. USB 2.0 (rev 65) ', che sarà solo USB 2.0.


4
Con mio grande imbarazzo, hai assolutamente ragione! Ho due schede USB che escono dalla mia scheda madre e, dal momento che ho dovuto allungare la mano per collegare il mio cavo USB 3.0, devo averlo inserito in quello sbagliato quando eseguo Linux e (soprattutto) la porta DESTRA quando eseguo Windows! La completa certezza di aver inserito il cavo in una porta blu questa volta (sotto Linux) ha prodotto un throughput completo di 120 MB / s. Grazie signore per aver segnalato il mio imbarazzante errore!
Jgottula,

Woot! Sono contento che tu l'abbia ordinato :)
Jeremy Kerr,

2
Amico ... Ho preferito questa domanda solo per scoprire in seguito che era un PEBCAK! : P urbandictionary.com/define.php?term=pebcak
maldestro

1
PICNIC è il termine più preferito di PEBCAK in quanto è più facile da pronunciare e offre più gioco di parole. PICNIC = Problema nella sedia non nel computer.
Kat Amsterdam,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.