Problema di connessione con memoria esterna USB3 su Linux (problema del driver UAS)


23

Su Ubuntu 15.10, quando desidero formattare utilizzando il file system NTFS un disco 4TO esterno collegato tramite USB3 (su un dock per disco rigido StarTech USB / eSATA), ho molti errori I / O e il formato non riesce.

Ho provato GParted v 0.19 e GParted sull'ultimo live CD gparted-live-0.23.0-1-i586.iso, con lo stesso problema.

Successivamente, e usando GParted su Ubuntu 15.10 e la stessa connessione USB3, ho provato a formattare come ext4, senza problemi. È davvero strano.

Poiché non so se gli mkfs.ext4strumenti utilizzati da GParted per formattare il disco testino il disco in modo simile (o non simile) mkntfs, suppongo innanzitutto che il problema sia collegato al nuovo disco. Forse questo nuovo disco sta causando problemi. Quindi provo a correre e2fsck -csu questo HDD. Su Ubuntu 15.10, si e2fsck -cblocca allo 0,45% e non so perché.

Quindi, usando un'altra versione di Ubuntu (15.04) sullo stesso PC, provo a collegare lo stesso disco 4TO usando la connessione eSATA del dock HDD StarTech. Questa volta, e2fsck -cfunziona correttamente.

Dopo alcune ore, puoi vedere il risultato:

sudo e2fsck -c /dev/sdc1
e2fsck 1.42.12 (29-Aug-2014)
ColdCase : récupération du journal
Vérification des blocs défectueux (test en mode lecture seule) : complété                                             
ColdCase: Updating bad block inode.
Passe 1 : vérification des i-noeuds, des blocs et des tailles
Passe 2 : vérification de la structure des répertoires
Passe 3 : vérification de la connectivité des répertoires
Passe 4 : vérification des compteurs de référence
Passe 5 : vérification de l'information du sommaire de groupe

ColdCase: ***** LE SYSTÈME DE FICHIERS A ÉTÉ MODIFIÉ *****
ColdCase : 11/244195328 fichiers (0.0% non contigus), 15377150/976754176 blocs

Non sono un esperto di badblockoutput, ma sembra che non ci sia alcun blocco errato su questo disco?

Quindi, se il problema non è il disco rigido, forse il problema può essere collegato mkntfsall'utilizzo su USB3? Quali altri test posso provare?

Alcune informazioni sul dock USB:

➜  ~  lsusb
...
Bus 002 Device 002: ID 174c:55aa ASMedia Technology Inc. ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge
...


➜  ~  sudo lsusb -v -d 174c:55aa
Mot de passe [sudo] pour reyman : 

Bus 002 Device 002: ID 174c:55aa ASMedia Technology Inc. ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         9
  idVendor           0x174c ASMedia Technology Inc.
  idProduct          0x55aa ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge
  bcdDevice            1.00
  iManufacturer           2 asmedia
  iProduct                3 ASM1053E
  iSerial                 1 123456789012
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          121
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower               36mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           4
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     98 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
        MaxStreams             16
        Data-in pipe (0x03)
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
        MaxStreams             16
        Data-out pipe (0x04)
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
        MaxStreams             16
        Status pipe (0x02)
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               0
        Command pipe (0x01)
Binary Object Store Descriptor:
  bLength                 5
  bDescriptorType        15
  wTotalLength           22
  bNumDeviceCaps          2
  USB 2.0 Extension Device Capability:
    bLength                 7
    bDescriptorType        16
    bDevCapabilityType      2
    bmAttributes   0x00000002
      Link Power Management (LPM) Supported
  SuperSpeed USB Device Capability:
    bLength                10
    bDescriptorType        16
    bDevCapabilityType      3
    bmAttributes         0x00
    wSpeedsSupported   0x000e
      Device can operate at Full Speed (12Mbps)
      Device can operate at High Speed (480Mbps)
      Device can operate at SuperSpeed (5Gbps)
    bFunctionalitySupport   1
      Lowest fully-functional device speed is Full Speed (12Mbps)
    bU1DevExitLat          10 micro seconds
    bU2DevExitLat        2047 micro seconds
Device Status:     0x0001
  Self Powered

Informazioni sul disco in questione: /dev/sdd

➜  ~  sudo fdisk -l /dev/sdd
Disque /dev/sdd : 3,7 TiB, 4000787030016 octets, 7814037168 secteurs
Unités : sectors of 1 * 512 = 512 octets
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 33553920 bytes
Disklabel type: gpt
Disk identifier: ACD5760B-2898-435E-82C6-CB3119758C9B

Périphérique Start        Fin   Secteurs  Size Type
/dev/sdd1     2048 7814035455 7814033408  3,7T Linux filesystem

dmesgrestituisce molti errori sul disco; vedi questo estratto:

[   68.856381] scsi host6: uas_eh_bus_reset_handler start
[   68.968376] usb 2-2: reset SuperSpeed USB device number 2 using xhci_hcd
[   68.989825] scsi host6: uas_eh_bus_reset_handler success
[   99.881608] sd 6:0:0:0: [sdd] tag#12 uas_eh_abort_handler 0 uas-tag 13 inflight: CMD OUT 
[   99.881618] sd 6:0:0:0: [sdd] tag#12 CDB: Write(16) 8a 00 00 00 00 00 e8 c4 08 00 00 00 00 08 00 00
[   99.881856] sd 6:0:0:0: [sdd] tag#5 uas_eh_abort_handler 0 uas-tag 6 inflight: CMD OUT 
[   99.881861] sd 6:0:0:0: [sdd] tag#5 CDB: Write(16) 8a 00 00 00 00 00 cd 01 08 f0 00 00 00 10 00 00
[   99.881967] sd 6:0:0:0: [sdd] tag#4 uas_eh_abort_handler 0 uas-tag 5 inflight: CMD OUT 
[   99.881972] sd 6:0:0:0: [sdd] tag#4 CDB: Write(16) 8a 00 00 00 00 00 cd 01 08 00 00 00 00 f0 00 00
[   99.882085] sd 6:0:0:0: [sdd] tag#3 uas_eh_abort_handler 0 uas-tag 4 inflight: CMD OUT 
[   99.882090] sd 6:0:0:0: [sdd] tag#3 CDB: Write(16) 8a 00 00 00 00 00 cd 01 07 10 00 00 00 f0 00 00
[   99.882171] sd 6:0:0:0: [sdd] tag#2 uas_eh_abort_handler 0 uas-tag 3 inflight: CMD OUT 
[   99.882175] sd 6:0:0:0: [sdd] tag#2 CDB: Write(16) 8a 00 00 00 00 00 cd 01 06 20 00 00 00 f0 00 00
[   99.882255] sd 6:0:0:0: [sdd] tag#1 uas_eh_abort_handler 0 uas-tag 2 inflight: CMD OUT 
[   99.882258] sd 6:0:0:0: [sdd] tag#1 CDB: Write(16) 8a 00 00 00 00 00 cd 01 05 30 00 00 00 f0 00 00
[   99.882338] sd 6:0:0:0: [sdd] tag#0 uas_eh_abort_handler 0 uas-tag 1 inflight: CMD OUT 
[   99.882342] sd 6:0:0:0: [sdd] tag#0 CDB: Write(16) 8a 00 00 00 00 00 cd 01 04 40 00 00 00 f0 00 00
[   99.882419] sd 6:0:0:0: [sdd] tag#11 uas_eh_abort_handler 0 uas-tag 12 inflight: CMD OUT 
[   99.882423] sd 6:0:0:0: [sdd] tag#11 CDB: Write(16) 8a 00 00 00 00 00 cd 00 f9 00 00 00 00 f0 00 00
[   99.882480] sd 6:0:0:0: [sdd] tag#10 uas_eh_abort_handler 0 uas-tag 11 inflight: CMD OUT 
[   99.882483] sd 6:0:0:0: [sdd] tag#10 CDB: Write(16) 8a 00 00 00 00 00 cd 00 f9 f0 00 00 00 f0 00 00
[   99.882530] sd 6:0:0:0: [sdd] tag#9 uas_eh_abort_handler 0 uas-tag 10 inflight: CMD OUT 
[   99.882532] sd 6:0:0:0: [sdd] tag#9 CDB: Write(16) 8a 00 00 00 00 00 cd 00 fa e0 00 00 00 f0 00 00
[   99.882593] sd 6:0:0:0: [sdd] tag#8 uas_eh_abort_handler 0 uas-tag 9 inflight: CMD 
[   99.882596] sd 6:0:0:0: [sdd] tag#8 CDB: Write(16) 8a 00 00 00 00 00 cd 00 fb d0 00 00 00 f0 00 00
[   99.882667] scsi host6: uas_eh_bus_reset_handler start
[   99.994700] usb 2-2: reset SuperSpeed USB device number 2 using xhci_hcd
[  100.015613] scsi host6: uas_eh_bus_reset_handler success
[  135.962175] sd 6:0:0:0: [sdd] tag#5 uas_eh_abort_handler 0 uas-tag 6 inflight: CMD OUT 
[  135.962185] sd 6:0:0:0: [sdd] tag#5 CDB: Write(16) 8a 00 00 00 00 00 cd 40 78 f0 00 00 00 10 00 00
[  135.962428] sd 6:0:0:0: [sdd] tag#4 uas_eh_abort_handler 0 uas-tag 5 inflight: CMD OUT 
[  135.962436] sd 6:0:0:0: [sdd] tag#4 CDB: Write(16) 8a 00 00 00 00 00 cd 40 78 00 00 00 00 f0 00 00
[  135.962567] sd 6:0:0:0: [sdd] tag#3 uas_eh_abort_handler 0 uas-tag 4 inflight: CMD OUT 
[  135.962576] sd 6:0:0:0: [sdd] tag#3 CDB: Write(16) 8a 00 00 00 00 00 cd 40 77 10 00 00 00 f0 00 00
[  135.962682] sd 6:0:0:0: [sdd] tag#2 uas_eh_abort_handler 0 uas-tag 3 inflight: CMD OUT 
[  135.962690] sd 6:0:0:0: [sdd] tag#2 CDB: Write(16) 8a 00 00 00 00 00 cd 40 76 20 00 00 00 f0 00 00
[  135.962822] sd 6:0:0:0: [sdd] tag#1 uas_eh_abort_handler 0 uas-tag 2 inflight: CMD 
[  135.962830] sd 6:0:0:0: [sdd] tag#1 CDB: Write(16) 8a 00 00 00 00 00 cd 40 75 30 00 00 00 f0 00 00
[  160.904916] sd 6:0:0:0: [sdd] tag#0 uas_eh_abort_handler 0 uas-tag 1 inflight: CMD OUT 
[  160.904926] sd 6:0:0:0: [sdd] tag#0 CDB: Write(16) 8a 00 00 00 00 00 00 00 29 08 00 00 00 08 00 00
[  160.905068] scsi host6: uas_eh_bus_reset_handler start

Ho trovato queste informazioni in questo post del forum , che c'è qualche problema con UAS e nuovi kernel Linux? Sembra che il problema sia noto in molti luoghi su Internet, USB3 + Linux sembra problematico in molti casi, ma per i vecchi kernel. Qualche idea per risolvere questo problema su un kernel più recente?

Il mio kernel è:

➜  ~  uname -r 
4.2.0-16-generic

Hmm, sembra che UAS sia rotto per diversi chip USB3 di ASMedia Technology Inc.; puoi vedere maggiori informazioni qui .

Suppongo che questo sia il mio problema, ma come posso risolverlo ora e quale chip viene utilizzato per l'implementazione USB3 nel dock StarTech?

Risposte:


9

Ho riscontrato questo problema oggi su un kernel 4.8.0.

Secondo questo post del forum può essere eluso da

$ echo options usb-storage quirks=357d:7788:u | sudo tee /etc/modprobe.d/blacklist_uas_357d.conf
$ sudo update-initramfs -u

e riavvio.


3
Si noti che il parametro Quirks deve essere impostato sull'ID particolare del dispositivo in questione, trovato tramite lsusb.
Boann,

14

Ho avuto lo stesso problema su Mint 18, ma la soluzione che ho trovato può probabilmente essere applicata a * Ubuntu 15/16 così come a distribuzioni Linux simili. Per me, tuttavia, stavo ottenendo un blocco del sistema irrecuperabile subito dopo aver visto gli errori UAS in dmesg.

Il mio enclosure ha un chip ASM1053 ASMedia, che sembra avere problemi con il modulo UAS del mio kernel (4.4.0-72-generico).

Dopo un po 'di ricerca, ho combinato due soluzioni che ho trovato: questa, citata da YtvwlD e questa .

Innanzitutto, è necessario ottenere l'ID hardware del dispositivo utilizzando il comando lsusb . Una volta fatto ciò, individua il tuo esterno / enclosure / bridge. Potrebbe apparire come di seguito:

Bus 002 Device 002: ID 174c:5136 ASMedia Technology Inc. ASM1053 SATA 6Gb/s bridge

Nel mio caso, l'ID è 174c: 5136 .

Dopodiché, è necessario creare un file in /etc/modprobe.d/ in modo che il dispositivo corretto venga inserito nella blacklist dall'uso di UAS (che sta causando problemi), aggiornare l'immagine di initramfs usando update-initramfs , quindi riavviare per rendere effettive le modifiche.

$ echo options usb-storage quirks=174c:5136:u | sudo tee /etc/modprobe.d/blacklist_uas.conf
$ sudo update-initramfs -u
$ sudo reboot

Naturalmente, sostituisci "174c: 5136" con l'ID hardware del tuo bridge / enclosure / esterno. Se fatto correttamente, dovresti vedere un messaggio come questo da dmesg quando connetti il ​​tuo dispositivo dopo il riavvio:

[   93.985002] usb 4-1: UAS is blacklisted for this device, using usb-storage instead

Da allora non ho più avuto problemi con il mio recinto.


Sembra che sto riscontrando anche questo problema in Debian 9.4 4.14.18-sunxi64. :(
TCB13

Risolto il problema nel mio kernel qui: unix.stackexchange.com/a/441772/23085 . Sembra che alcuni kernel abbiano usb-storageincorporato invece di essere caricati come un modulo e la procedura è leggermente diversa.
TCB13

1
Mentre questo hack orribile e che riduce le prestazioni, applicato a ogni macchina, consente sostanzialmente al recinto di funzionare, è comunque un hack orribile, che riduce le prestazioni, che deve essere applicato a ogni macchina. Cosa succede se avvio una distribuzione live Linux, aspettandomi di essere in grado di eseguire il backup o il ripristino dei file? Questo hack non funzionerà lì. Quindi a chi dovrei segnalare questo problema? Dovrei segnalarlo come un bug del kernel Linux? Devo lasciare una recensione negativa del recinto, che è stato pubblicizzato come compatibile con Linux? Di chi è questa colpa?
Boann,

ha funzionato per me con: 174c: 55aa ASMedia Technology Inc. ASM1051E SATA 6Gb / s bridge, ASM1053E SATA 6Gb / s bridge, ASM1153 SATA 3Gb / s bridge
Dr. Tyrell

1
@Boann qualsiasi dispositivo che il kernel tenta di utilizzare con il protocollo UAS che non funziona correttamente è tecnicamente un hardware guasto. L'hardware non dovrebbe pubblicizzare il supporto UAS a meno che non funzioni davvero. Puoi ancora segnalarlo ai manutentori del sottosistema USB del kernel Linux che hanno un elenco di hardware noto che può ancora essere usato se gestito in modo speciale. Puoi anche optare per varie soluzioni alternative usando il quirksparametro del usb_storagemodulo - esattamente la stessa cosa verrà attivata automaticamente se gli sviluppatori del kernel conoscono il problema. Le prestazioni saranno comunque ridotte e / o le funzionalità mancanti.
Mikko Rantalainen,
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.