Problem z połączeniem z zewnętrzną pamięcią USB3 w systemie Linux (problem ze sterownikiem UAS)


23

Na Ubuntu 15.10, kiedy chcę sformatować za pomocą systemu plików NTFS zewnętrzny dysk 4TO podłączony przez USB3 (na stacji dokującej dysku twardego StarTech USB / eSATA), mam dużo błędów we / wy, a format kończy się niepowodzeniem.

Próbowałem GParted v 0.19 i GParted na najnowszym live CD gparted-live-0.23.0-1-i586.iso, z tym samym problemem.

Następnie, używając GParted na Ubuntu 15.10 i tego samego połączenia USB3, próbowałem sformatować jako ext4bez problemów. To naprawdę dziwne.

Ponieważ nie wiem, czy mkfs.ext4narzędzia używane przez GParted do sformatowania dysku testują dysk jak (lub nie) mkntfs, najpierw przypuszczam, że problem jest związany z nowym dyskiem. Być może ten nowy dysk powoduje problemy. Więc próbuję uruchomić e2fsck -cna tym dysku twardym. Na Ubuntu 15.10 e2fsck -czawiesza się przy 0,45% i nie wiem dlaczego.

Tak więc, używając innej wersji Ubuntu (15.04) na tym samym komputerze, próbuję podłączyć ten sam dysk 4TO za pomocą połączenia eSATA stacji dokującej HDT StarTech. Tym razem e2fsck -cdziała poprawnie.

Po kilku godzinach możesz zobaczyć wynik:

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

Nie jestem ekspertem od badblockwyjść, ale wygląda na to, że na tym dysku nie ma wcale złego bloku?

Więc jeśli problemem nie jest dysk twardy, może problem może być związany z mkntfsużyciem przez USB3? Jakie inne testy mogę wypróbować?

Niektóre informacje o stacji dokującej 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

Informacje o dysku, o którym mowa: /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

dmesgzwraca wiele błędów dotyczących dysku; zobacz ten wyciąg:

[   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

Znalazłem tę informację w tym poście na forum , że jest jakiś problem z UAS i nowymi jądrami Linuksa? Wygląda na to, że problem jest znany w wielu miejscach w Internecie, USB3 + Linux wydaje się problematyczny w wielu przypadkach - ale w przypadku starych jąder. Jakieś pomysły na rozwiązanie tego problemu w nowszym jądrze?

Moje jądro to:

➜  ~  uname -r 
4.2.0-16-generic

Hmm, wygląda na to, że UAS jest zepsuty dla różnych układów USB3 ASMedia Technology Inc.; więcej informacji tutaj .

Przypuszczam, że to mój problem, ale jak mogę go teraz rozwiązać i który układ jest używany do implementacji USB3 w stacji dokującej StarTech?

Odpowiedzi:


9

Natknąłem się na ten problem dzisiaj w jądrze 4.8.0.

Zgodnie z tym postem na forum można go obejść

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

i ponowne uruchomienie.


3
Zauważ, że parametr dziwactwa musi być ustawiony na konkretny identyfikator urządzenia naruszającego, znaleziony przez lsusb.
Boann

14

Miałem ten sam problem na Mint 18, ale znalezione przeze mnie rozwiązanie można prawdopodobnie zastosować do * Ubuntu 15/16, a także podobnych dystrybucji Linuksa. Dla mnie jednak dostałem nieodwracalną blokadę systemu wkrótce po tym, jak zobaczyłem błędy UAS w dmesg.

Moja obudowa ma układ ASMedia ASM1053, który wydaje się mieć problemy z modułem UAS mojego jądra (4.4.0-72-generic).

Po krótkich poszukiwaniach połączyłem dwa znalezione przeze mnie rozwiązania: jedno, o którym wspominał YtvwlD, i jedno .

Najpierw musisz uzyskać identyfikator sprzętu swojego urządzenia za pomocą polecenia lsusb . Gdy to zrobisz, zlokalizuj swój zewnętrzny / obudowa / most. Może pojawić się jak poniżej:

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

W moim przypadku identyfikator to 174c: 5136 .

Następnie musisz utworzyć plik w /etc/modprobe.d/, aby odpowiednie urządzenie znalazło się na czarnej liście za pomocą UAS (co powoduje problemy), zaktualizuj obraz initramfs za pomocą update-initramfs , a następnie uruchom ponownie, aby zmiana zaczęła obowiązywać.

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

Oczywiście zastąp „174c: 5136” identyfikatorem sprzętowym twojego mostka / obudowy / zewnętrznego. Jeśli zrobisz to poprawnie, po podłączeniu urządzenia po ponownym uruchomieniu powinieneś zobaczyć taki komunikat z dmesg :

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

Od tamtej pory nie miałem żadnych problemów z załącznikiem.


Wygląda na to, że mam również ten problem w Debianie 9.4 4.14.18-sunxi64. :(
TCB13

Naprawiono problem w moim jądrze tutaj: unix.stackexchange.com/a/441772/23085 . Wygląda na to, że niektóre jądra mają usb-storagewbudowane zamiast ładowane jako moduł, a procedura jest nieco inna.
TCB13

1
Chociaż ten obrzydliwy hack zmniejszający wydajność, zastosowany na każdej maszynie, zasadniczo pozwala obudowie na działanie, to wciąż jest haniebny, o obniżającej wydajność, który należy zastosować na każdej maszynie. Co się stanie, jeśli uruchomię dystrybucję systemu Linux na żywo, oczekując, że będę w stanie wykonać kopię zapasową lub odzyskać pliki? Ten hack tam nie zadziała. Więc komu powinienem zgłosić ten problem? Czy powinienem to zgłosić jako błąd jądra systemu Linux? Czy powinienem zostawić negatywną recenzję obudowy, która była reklamowana jako kompatybilna z Linuksem? Czyja to wina tego problemu?
Boann

pracował dla mnie z: 174c: 55aa ASMedia Technology Inc. ASM1051E Mostek SATA 6Gb / s, ASM1053E Mostek SATA 6Gb / s, Mostek ASM1153 SATA 3Gb / s
Dr. Tyrell

1
@ Zdobądź dowolne urządzenie, które jądro próbuje użyć z protokołem UAS, które nie działa poprawnie, jest technicznie zepsutym sprzętem. Sprzęt nie powinien reklamować obsługi UAS, chyba że naprawdę działa. Nadal możesz to zgłosić opiekunom podsystemów USB jądra Linuksa, którzy mają listę znanego złego sprzętu, z którego nadal można korzystać, jeśli będzie się nim zajmować. Możesz również włączyć różne obejścia za pomocą quirksparametru usb_storagemodułu - dokładnie to samo zostanie aktywowane automatycznie, jeśli programiści jądra będą wiedzieć o problemie. Wydajność nadal będzie zmniejszona i / lub brakuje funkcji.
Mikko Rantalainen
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.