Verbindungsproblem mit externem USB3-Speicher unter Linux (UAS-Treiberproblem)

23

Wenn ich unter Ubuntu 15.10 mit dem NTFS-Dateisystem eine externe 4TO-Festplatte formatieren möchte, die über USB3 angeschlossen ist (auf einem StarTech USB / eSATA-Festplattendock), treten viele E / A-Fehler auf, und das Format schlägt fehl.

Ich habe GParted v 0.19 ausprobiert und GParted auf der neuesten Live-CD gparted-live-0.23.0-1-i586.isomit demselben Problem.

Danach habe ich mit GParted unter Ubuntu 15.10 und der gleichen USB3-Verbindung versucht ext4, ohne Probleme wie zu formatieren . Es ist wirklich komisch.

Da ich nicht weiß, ob die mkfs.ext4von GParted zum Formatieren des Datenträgers verwendeten Tools den Datenträger mögen (oder nicht mögen) mkntfs, gehe ich zunächst davon aus, dass das Problem mit dem neuen Datenträger zusammenhängt. Vielleicht verursacht diese neue Festplatte Probleme. Also versuche ich e2fsck -cauf dieser Festplatte zu laufen . e2fsck -cFriert unter Ubuntu 15.10 bei 0,45% ein, und ich weiß nicht warum.

Mit einer anderen Ubuntu-Version (15.04) auf demselben PC versuche ich, dieselbe 4TO-Festplatte über die eSATA-Verbindung des StarTech-HDD-Docks anzuschließen. Dieses Mal e2fsck -cläuft richtig.

Nach einigen Stunden sehen Sie das Ergebnis:

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

Ich bin kein Experte für badblockOutputs, aber es scheint, als gäbe es überhaupt keinen fehlerhaften Block auf dieser Platte?

Also, wenn das Problem nicht die Festplatte ist, kann das Problem möglicherweise mkntfsüber USB3 verwendet werden? Welche anderen Tests kann ich versuchen?

Einige Informationen zum USB-Dock:

➜  ~  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

Informationen zu der fraglichen Festplatte: /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

dmesgGibt viele Fehler über die Festplatte zurück. siehe diesen Auszug:

[   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

Ich fand diese Information in diesem Forumsbeitrag , dass es ein Problem mit UAS und neuen Linux-Kerneln gibt? Es scheint, dass das Problem an vielen Stellen im Internet bekannt ist, USB3 + Linux scheint in vielen Fällen problematisch zu sein - aber für alte Kernel. Irgendwelche Ideen, um dieses Problem auf einem neueren Kernel zu lösen?

Mein Kernel ist:

➜  ~  uname -r 
4.2.0-16-generic

Hmm, es scheint, dass UAS für verschiedene USB3-Chips defekt ist ASMedia Technology Inc.; Weitere Informationen finden Sie hier .

Ich nehme an, das ist mein Problem, aber wie kann ich es jetzt lösen und welcher Chip wird für die USB3-Implementierung im StarTech-Dock verwendet?

reyman64
quelle

Antworten:

9

Ich bin heute auf einem 4.8.0-Kernel auf dieses Problem gestoßen.

Laut diesem Forenbeitrag kann es von umgangen werden

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

und Neustart.

YtvwlD
quelle
3
Beachten Sie, dass der Parameter quirks auf die bestimmte ID des betreffenden Geräts eingestellt werden muss, die über gefunden wird lsusb.
Boann
14

Ich hatte das gleiche Problem mit Mint 18, aber die Lösung, die ich gefunden habe, kann wahrscheinlich auf * Ubuntu 15/16 sowie ähnliche Linux-Distributionen angewendet werden. Für mich kam es jedoch bald nach dem Auftreten der UAS-Fehler in dmesg zu einer nicht behebbaren Systemblockierung.

Mein Gehäuse verfügt über einen ASMedia ASM1053-Chip, der Probleme mit dem UAS-Modul meines Kernels (4.4.0-72-generic) zu haben scheint.

Nach einigem Suchen kombinierte ich zwei Lösungen, die ich fand: diese, die YtvwlD erwähnte, und diese .

Zunächst müssen Sie die Hardware-ID Ihres Geräts mit dem Befehl lsusb ermitteln . Sobald Sie dies getan haben, lokalisieren Sie Ihre externe / Gehäuse / Brücke. Es könnte so aussehen:

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

In meinem Fall lautet die ID 174c: 5136 .

Danach müssen Sie eine Datei in /etc/modprobe.d/ erstellen, damit das richtige Gerät von der Verwendung von UAS ausgeschlossen wird (was Probleme verursacht). Aktualisieren Sie das initramfs-Image mit update-initramfs und starten Sie es anschließend neu, damit die Änderung wirksam wird.

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

Ersetzen Sie "174c: 5136" natürlich durch die Hardware-ID Ihrer Bridge / Ihres Gehäuses / Ihrer externen Einheit. Bei korrekter Ausführung sollte nach dem Neustart eine Meldung von dmesg angezeigt werden, wenn Sie das Gerät anschließen:

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

Ich hatte seitdem keine Probleme mit meinem Gehäuse.

Cinos Modnar
quelle
Sieht so aus, als stoße ich in Debian 9.4 ebenfalls auf dieses Problem 4.14.18-sunxi64. :(
TCB13
Das Problem in meinem Kernel wurde hier behoben : unix.stackexchange.com/a/441772/23085 . Es sieht so aus, als ob einige Kernel usb-storageeingebaut sind, anstatt als Modul geladen zu werden, und die Vorgehensweise ist etwas anders.
TCB13,
1
Während dieser leistungsreduzierende, abscheuliche Hack, der auf jede Maschine angewendet wird, es dem Gehäuse ermöglicht, grundsätzlich zu funktionieren, ist er dennoch ein leistungsreduzierender, abscheulicher Hack, der auf jede Maschine angewendet werden muss. Was passiert, wenn ich eine Linux Live-Distribution starte und erwarte, dass ich Dateien sichern oder wiederherstellen kann? Dieser Hack wird dort nicht funktionieren. Wem soll ich dieses Problem melden? Soll ich es als Linux-Kernel-Fehler melden? Soll ich eine negative Bewertung des Gehäuses abgeben, das als Linux-kompatibel beworben wurde? Wessen Fehler ist dieses Problem?
Boann
arbeitete für mich mit der: 174c: 55aa ASMedia Technology Inc. ASM1051E SATA 6Gb / s-Brücke, ASM1053E SATA 6Gb / s-Brücke, ASM1153 SATA 3Gb / s-Brücke
Dr. Tyrell
1
@Boann Jedes Gerät, das der Kernel mit dem UAS-Protokoll verwendet, das nicht ordnungsgemäß funktioniert, ist technisch gesehen eine defekte Hardware. Die Hardware sollte nicht für UAS-Unterstützung werben, es sei denn, sie funktioniert wirklich. Sie können dies immer noch den Linux-Kernel-Subsystem-Betreuern melden, die über eine Liste von bekanntermaßen fehlerhafter Hardware verfügen, die bei besonderer Behandlung weiterhin verwendet werden kann. Sie können sich auch über die quirksParameter des usb_storageModuls für verschiedene Problemumgehungen entscheiden - genau dasselbe wird automatisch aktiviert, wenn Kernel-Entwickler das Problem kennen. Die Leistung wird immer noch reduziert und / oder Funktionen fehlen.
Mikko Rantalainen