Проблема з підключенням до зовнішньої пам’яті USB3 в Linux (проблема драйвера UAS)


23

У Ubuntu 15.10, коли я хочу відформатувати за допомогою файлової системи NTFS зовнішній диск 4TO, підключений USB3 (на док-станції жорсткого диска StarTech USB / eSATA), у мене дуже багато помилок вводу / виводу, і формат виходить з ладу.

Я спробував GParted v 0.19 і GParted на останньому живому компакт-диску gparted-live-0.23.0-1-i586.isoз тією ж проблемою.

Після цього, використовуючи GParted на Ubuntu 15.10 та те саме підключення USB3, я намагався відформатувати як ext4, без проблем. Це справді дивно.

Оскільки я не знаю, чи mkfs.ext4інструменти, використані GParted для форматування диска, перевіряють диск на зразок (чи не подобається) mkntfs, спершу припускаю, що проблема пов’язана з новим диском. Можливо, цей новий диск викликає проблеми. Тому я намагаюся працювати e2fsck -cна цьому жорсткому диску. У Ubuntu 15.10 e2fsck -cзамерзає на 0,45%, і я не знаю чому.

Отже, використовуючи іншу версію Ubuntu (15.04) на тому ж ПК, я намагаюся підключити той же диск 4TO за допомогою підключення eSATA док-станції HDD StarTech. Цього разу e2fsck -cпрацює правильно.

Через кілька годин можна побачити результат:

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

Я не фахівець з badblockрезультатів, але, здається, на цьому диску взагалі немає поганого блоку?

Отже, якщо проблема не в жорсткому диску, можливо, проблема може бути пов’язана з mkntfsвикористовуваним через USB3? Які ще тести можна спробувати?

Деякі відомості про док-станцію 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

Інформація про диску, про яку йдеться: /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

dmesgповертає безліч помилок щодо диска; дивіться цей витяг:

[   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

Я знайшов цю інформацію на цьому форумі , що є якась проблема з UAS та новими Linux ядрами? Здається, проблема відома в багатьох місцях в Інтернеті, USB3 + Linux здається проблематичним у багатьох випадках - але для старих ядер. Будь-які ідеї вирішити цю проблему на більш пізньому ядрі?

Моє ядро:

➜  ~  uname -r 
4.2.0-16-generic

Гм, здається, UAS зламаний для різних USB3 мікросхем ASMedia Technology Inc.; ви можете переглянути більше інформації тут .

Я припускаю, що це моя проблема, але як я можу її вирішити зараз, і який чіп використовується для реалізації USB3 в докері StarTech?

Відповіді:


9

Я зіткнувся з цим питанням сьогодні на ядрі 4.8.0.

Відповідно до цього повідомлення на форумі, його можна обійти

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

та перезавантаження.


3
Зауважте, що параметр quirks повинен бути встановлений для конкретного ідентифікатора пристрою, який порушує порушення, знайденого через lsusb.
Боан

14

У мене був такий самий випуск у Mint 18, але знайдене нами рішення може бути застосоване до * Ubuntu 15/16, а також до подібних дистрибутивів Linux. Для мене, однак, я отримував непоправну систему блокування незабаром після того, як побачив помилки UAS в dmesg.

У моєму корпусі є чіп ASMedia ASM1053, який, схоже, має проблеми з модулем UAS мого ядра (4.4.0-72-generic).

Після невеликого пошуку я поєднав два знайдені нами рішення: цей, про який згадував YtvwlD, і цей .

По-перше, ви повинні отримати ідентифікатор обладнання вашого пристрою за допомогою команди lsusb . Після цього знайдіть свій зовнішній / огороджувальний / містковий. Це може відображатися як нижче:

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

У моєму випадку ідентифікатор - 174c: 5136 .

Після цього потрібно створити файл у /etc/modprobe.d/, щоб належний пристрій потрапив у чорний список від використання UAS (що спричиняє проблеми), оновити зображення initramfs за допомогою update-initramfs , а потім перезавантажити, щоб зміни вступили в силу.

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

Звичайно, замініть "174c: 5136" на апаратний ідентифікатор вашого моста / корпусу / зовнішнього. Якщо все зроблено правильно, під час підключення пристрою після перезавантаження ви побачите таке повідомлення від dmesg :

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

З тих пір я не мав жодних проблем із моїм корпусом.


Схоже, я також стикаюся з цією проблемою в Debian 9.4 4.14.18-sunxi64. :(
TCB13

Виправлена ​​проблема в моєму ядрі тут: unix.stackexchange.com/a/441772/23085 . Схоже, деякі ядра мають usb-storageвбудований, а не завантажений модуль, і процедура дещо інша.
TCB13

1
Хоча цей огидний злом, що зменшує продуктивність, застосований до кожної машини, але дозволяє корпусу в основному працювати, він все одно знижує продуктивність, огидний злом, який потрібно застосувати до кожної машини. Що робити, якщо я завантажую дистрибутив Linux, очікуючи, що зможу створити резервну копію або відновити файли? Цей злом там не працюватиме. То кому я повинен повідомити про цю проблему? Чи слід повідомляти про це як помилку ядра Linux? Чи варто залишити негативний огляд корпусу, який рекламувався як сумісний з Linux? Чия винна ця проблема?
Боан

працював для мене з: 174c: 55aa ASMedia Technology Inc. ASM1051E SATA 6Gb / s міст, ASM1053E SATA 6Gb / s міст, ASM1153 SATA 3Gb / s міст
Dr. Tyrell

1
@Boann будь-який пристрій, який ядро ​​намагається використовувати з протоколом UAS, який не працює належним чином, технічно є несправним обладнанням. Обладнання не повинно рекламувати підтримку UAS, якщо воно справді не працює. Ви все ще можете повідомити про це службовцям підсистеми підсистеми Linux kernel Linux, які мають список відомих поганих апаратних засобів, які все ще можуть бути використані при спеціальній обробці. Ви також можете ввімкнути різні обхідні шляхи, використовуючи quirksпараметр usb_storageмодуля - точно те саме буде активовано автоматично, якщо розробники ядра знають про проблему. Продуктивність все одно буде знижена та / або відсутні функції.
Мікко Ранталайнен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.