Sự cố kết nối với bộ nhớ ngoài USB3 trên Linux (sự cố trình điều khiển UAS)


23

Trên Ubuntu 15.10, khi tôi muốn định dạng bằng hệ thống tệp NTFS, đĩa 4TO bên ngoài được kết nối bằng USB3 (trên dock đĩa cứng StarTech USB / eSATA), tôi gặp rất nhiều lỗi I / O và định dạng không thành công.

Tôi đã thử GParted v 0.19 và GParted trên CD trực tiếp mới nhất gparted-live-0.23.0-1-i586.iso, với cùng một vấn đề.

Sau đó, và sử dụng GParted trên Ubuntu 15.10 và cùng kết nối USB3, tôi đã cố gắng định dạng như ext4không có vấn đề gì. Nó thực sự kỳ lạ.

Vì tôi không biết liệu các mkfs.ext4công cụ được GParted sử dụng để định dạng đĩa kiểm tra đĩa như thế nào (hoặc không thích) mkntfs, trước tiên tôi cho rằng vấn đề được liên kết với đĩa mới. Có lẽ đĩa mới này đang gây ra vấn đề. Vì vậy, tôi thử chạy e2fsck -ctrên ổ cứng này. Trên Ubuntu 15.10, e2fsck -cđóng băng ở mức 0,45% và tôi không biết tại sao.

Vì vậy, bằng cách sử dụng một phiên bản Ubuntu khác (15.04) trên cùng một PC, tôi cố gắng kết nối cùng một đĩa 4TO bằng kết nối eSATA của dock StarTech HDD. Lần này, e2fsck -cchạy chính xác.

Sau một vài giờ, bạn có thể thấy kết quả:

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

Tôi không phải là một chuyên gia về badblockđầu ra, nhưng có vẻ như không có khối xấu nào trên đĩa này?

Vì vậy, nếu vấn đề không phải là ổ cứng, có lẽ vấn đề có thể được liên kết để mkntfssử dụng qua USB3? Những thử nghiệm khác tôi có thể thử?

Một số thông tin về 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

Thông tin về đĩa trong câu hỏi: /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

dmesgtrả về rất nhiều lỗi về đĩa; xem phần trích này:

[   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

Tôi tìm thấy thông tin này trên bài đăng diễn đàn này , rằng có một số vấn đề với UAS và hạt nhân Linux mới? Có vẻ như vấn đề được biết đến ở nhiều nơi trên internet, USB3 + Linux có vẻ có vấn đề trong nhiều trường hợp - nhưng đối với các nhân cũ. Bất kỳ ý tưởng để giải quyết vấn đề này trên một hạt nhân gần đây hơn?

Nhân của tôi là:

➜  ~  uname -r 
4.2.0-16-generic

Hmm, có vẻ như UAS bị hỏng đối với các chip USB3 khác nhau ASMedia Technology Inc.; bạn có thể xem thêm thông tin ở đây .

Tôi cho rằng đây là vấn đề của tôi, nhưng làm thế nào tôi có thể giải quyết nó ngay bây giờ và con chip nào được sử dụng để triển khai USB3 trong dock StarTech?

Câu trả lời:


9

Tôi đã gặp vấn đề này ngày hôm nay trên kernel 4.8.0.

Theo bài đăng diễn đàn này, nó có thể bị phá vỡ bởi

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

và khởi động lại.


3
Lưu ý rằng tham số quirks cần được đặt thành ID cụ thể của thiết bị vi phạm, được tìm thấy qua lsusb.
Boann

14

Tôi đã gặp vấn đề tương tự trên Mint 18, nhưng giải pháp tôi tìm thấy có lẽ có thể được áp dụng cho * Ubuntu 15/16 cũng như các bản phân phối Linux tương tự. Tuy nhiên, đối với tôi, tôi đã bị khóa hệ thống không thể phục hồi ngay sau khi thấy các lỗi UAS trong dmesg.

Vỏ bọc của tôi có chip ASMedia ASM1053, dường như có vấn đề với mô-đun UAS của hạt nhân của tôi (4.4.0-72-generic).

Sau một chút tìm kiếm, tôi đã kết hợp hai giải pháp tôi tìm thấy: giải pháp này, mà YtvwlD đã đề cập và giải pháp này .

Trước tiên, bạn phải lấy ID phần cứng của thiết bị bằng lệnh lsusb . Một khi bạn làm điều đó, xác định vị trí bên ngoài / bao vây / cầu của bạn. Nó có thể hiển thị như dưới đây:

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

Trong trường hợp của tôi, ID là 174c: 5136 .

Sau đó, bạn phải tạo một tệp trong /etc/modprobe.d/ để thiết bị phù hợp được liệt kê vào danh sách đen khi sử dụng UAS (gây ra sự cố), cập nhật hình ảnh initramfs bằng update-initramfs , sau đó khởi động lại để thay đổi có hiệu lực.

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

Tất nhiên, thay thế "174c: 5136" bằng ID phần cứng của cầu / vỏ / bên ngoài của bạn. Nếu được thực hiện chính xác, bạn sẽ thấy một thông báo như thế này từ dmesg khi bạn kết nối thiết bị của mình sau khi khởi động lại:

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

Tôi đã không có bất kỳ vấn đề với bao vây của tôi kể từ đó.


Có vẻ như tôi cũng đang gặp vấn đề này trong Debian 9.4 4.14.18-sunxi64. :(
TCB13

Đã khắc phục sự cố trong kernel của tôi tại đây: unix.stackexchange.com/a/441772/23085 . Có vẻ như một số hạt nhân đã tích usb-storagehợp thay vì được tải dưới dạng một mô-đun và quy trình này hơi khác một chút.
TCB13

1
Mặc dù việc giảm hiệu năng, hack ghê gớm này, được áp dụng cho mọi máy, cho phép bao vây cơ bản hoạt động, nhưng đây vẫn là một hack giảm hiệu năng, gớm ghiếc, phải được áp dụng cho mọi máy. Điều gì sẽ xảy ra nếu tôi khởi động một bản phân phối trực tiếp Linux, hy vọng có thể sao lưu hoặc khôi phục các tệp? Hack này sẽ không hoạt động ở đó. Vậy tôi nên báo cáo vấn đề này cho ai? Tôi có nên báo cáo đây là lỗi kernel Linux không? Tôi có nên để lại đánh giá tiêu cực về vỏ bọc, được quảng cáo là tương thích với Linux không? Vấn đề này là của ai?
Boann

làm việc cho tôi với: 174c: Cầu 55aa ASMedia Technology Inc ASM1051E SATA 6Gb / s, cầu ASM1053E SATA 6Gb / s, cầu ASM1153 SATA 3Gb / s
Tiến sĩ Tyrell

1
@Boann bất kỳ thiết bị nào mà kernel cố gắng sử dụng với giao thức UAS không hoạt động chính xác là về mặt kỹ thuật phần cứng bị hỏng. Phần cứng không nên quảng cáo hỗ trợ UAS trừ khi nó thực sự hoạt động. Bạn vẫn có thể báo cáo điều này với các nhà bảo trì hệ thống con kernel USB có danh sách các phần cứng xấu đã biết vẫn có thể được sử dụng nếu được xử lý đặc biệt. Bạn cũng có thể chọn tham gia vào các cách giải quyết khác nhau bằng cách sử dụng quirkstham số của usb_storagemô-đun - chính xác điều tương tự sẽ được kích hoạt tự động nếu các nhà phát triển kernel biết về vấn đề này. Hiệu suất sẽ vẫn bị giảm và / hoặc thiếu tính năng.
Mikko Rantalainen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.