ปัญหาการเชื่อมต่อกับที่จัดเก็บข้อมูลภายนอก USB3 บน Linux (ปัญหาไดรเวอร์ UAS)


23

บน Ubuntu 15.10 เมื่อฉันต้องการฟอร์แมตโดยใช้ระบบไฟล์ NTFS ดิสก์ 4TO ภายนอกที่เชื่อมต่อโดย USB3 (บนฮาร์ดไดรฟ์ StarTech USB / eSATA ฮาร์ดดิสก์) ฉันมีข้อผิดพลาด I / O จำนวนมากและรูปแบบล้มเหลว

ฉันลอง GParted v 0.19 และ GParted ในซีดีสดล่าสุดgparted-live-0.23.0-1-i586.isoด้วยปัญหาเดียวกัน

หลังจากนั้นและใช้ GParted บน Ubuntu 15.10 และการเชื่อมต่อ USB3 เดียวกันฉันพยายามจัดรูปแบบext4โดยไม่มีปัญหา มันแปลกจริงๆ

เนื่องจากฉันไม่ทราบว่าmkfs.ext4เครื่องมือที่ใช้โดย GParted เพื่อจัดรูปแบบดิสก์ทดสอบดิสก์ที่ชอบ (หรือไม่ชอบ) mkntfsฉันคิดว่าปัญหานี้เชื่อมโยงกับดิสก์ใหม่ก่อน บางทีดิสก์ใหม่นี้อาจทำให้เกิดปัญหา ดังนั้นฉันจึงลองเรียกใช้e2fsck -cHDD นี้ บน Ubuntu 15.10 e2fsck -cหยุดที่ 0.45% และฉันไม่รู้ว่าทำไม

ดังนั้นการใช้ Ubuntu รุ่นอื่น (15.04) บนพีซีเครื่องเดียวกันฉันพยายามเชื่อมต่อดิสก์ 4TO เดียวกันโดยใช้การเชื่อมต่อ eSATA ของ StarTech HDD Dock เวลานี้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 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

ข้อมูลเกี่ยวกับดิสก์ที่เป็นปัญหา: /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 kernels ใหม่หรือไม่? ดูเหมือนว่าปัญหาจะเป็นที่รู้จักในหลาย ๆแห่งบนอินเทอร์เน็ต 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
lsusbโปรดทราบว่านิสัยใจคอพารามิเตอร์ความต้องการที่จะกำหนดให้เป็นรหัสเฉพาะของอุปกรณ์ที่กระทำผิดที่พบผ่านทาง
Boann

14

ฉันมีปัญหาเดียวกันนี้ในวันที่ Mint 18 แต่วิธีแก้ปัญหาที่ฉันพบสามารถนำไปใช้กับ * Ubuntu 15/16 เช่นเดียวกับการกระจาย Linux ที่คล้ายกัน อย่างไรก็ตามสำหรับฉันฉันได้รับการล็อคระบบที่เรียกคืนไม่ได้หลังจากที่เห็นข้อผิดพลาดของ UAS ใน dmesg

กล่องหุ้มของฉันมีชิป ASMedia ASM1053 ซึ่งดูเหมือนว่าจะมีปัญหากับโมดูล UAS ของเคอร์เนลของฉัน (4.4.0-72-generic)

หลังจากที่บิตของการค้นหาผมรวมสองโซลูชั่นที่ฉันพบ: หนึ่งนี้ซึ่ง YtvwlD กล่าวถึงและหนึ่งในนี้

ก่อนอื่นคุณต้องรับ ID ฮาร์ดแวร์ของอุปกรณ์ของคุณโดยใช้คำสั่งlsusb เมื่อคุณทำเช่นนั้นค้นหาภายนอก / ตู้ / สะพานของคุณ มันอาจปรากฏขึ้นเช่นด้านล่าง:

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

ในกรณีของฉัน ID คือ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" ด้วย ID ฮาร์ดแวร์ของบริดจ์ / กล่องหุ้ม / ภายนอก หากทำอย่างถูกต้องคุณจะเห็นข้อความเช่นนี้จากdmesgเมื่อคุณเชื่อมต่ออุปกรณ์หลังจากรีบูตเครื่อง:

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

ฉันไม่ได้มีปัญหาใด ๆ กับสิ่งที่แนบมาของฉันตั้งแต่


หน้าตาเหมือนฉันยังทำงานเป็นปัญหานี้ใน Debian 4.14.18-sunxi649.4 :(
TCB13

แก้ไขปัญหาในเคอร์เนลของฉันที่นี่: unix.stackexchange.com/a/441772/23085 ดูเหมือนว่าเมล็ดบางส่วนมีusb-storageอยู่แล้วภายในแทนที่จะโหลดเป็นโมดูลและขั้นตอนแตกต่างกันเล็กน้อย
TCB13

1
ในขณะที่แฮ็คที่ลดประสิทธิภาพซึ่งนำไปใช้กับเครื่องทุกเครื่องจะยอมให้สิ่งที่แนบมาทำงานโดยทั่วไป แต่ก็ยังคงเป็นแฮ็คที่ช่วยลดประสิทธิภาพและน่าเกลียดซึ่งต้องใช้กับเครื่องทุกเครื่อง จะทำอย่างไรถ้าฉันบู๊ต Linux สด distro โดยคาดว่าจะสามารถสำรองหรือกู้คืนไฟล์ได้ แฮ็คนี้จะไม่ทำงานที่นั่น ดังนั้นฉันควรรายงานปัญหานี้ให้ใคร ฉันควรรายงานว่าเป็นข้อผิดพลาดเคอร์เนล Linux หรือไม่ ฉันควรแสดงความคิดเห็นเชิงลบเกี่ยวกับสิ่งที่แนบมาซึ่งโฆษณาว่าทำงานร่วมกับ Linux ได้หรือไม่ ปัญหานี้เป็นความผิดของใคร
Boann

ทำงานให้ฉันด้วย: 174c: 55aa ASMedia Technology Inc. ASM1051E SATA 6Gb / s bridge, ASM1053E SATA 6Gb / s Bridge, ASM1153 SATA 3Gb / s Bridge
Dr. Tyrell

1
@Boann อุปกรณ์ใด ๆ ที่เคอร์เนลพยายามใช้กับโพรโทคอล UAS ที่ทำงานไม่ถูกต้องเป็นฮาร์ดแวร์ที่ใช้งานไม่ได้ในทางเทคนิค ฮาร์ดแวร์ไม่ควรโฆษณาการสนับสนุน UAS เว้นแต่จะได้ผลจริง คุณยังสามารถรายงานสิ่งนี้กับผู้ดูแลระบบย่อยเคอร์เนล usb ของลินุกซ์ที่มีรายชื่อฮาร์ดแวร์ที่ไม่ดีที่สามารถใช้งานได้หากจัดการเป็นพิเศษ นอกจากนี้คุณยังสามารถเลือกใช้วิธีแก้ไขปัญหาต่าง ๆ โดยใช้quirksพารามิเตอร์ของusb_storageโมดูล - สิ่งเดียวกันนี้จะเปิดใช้งานโดยอัตโนมัติหากนักพัฒนาเคอร์เนลทราบเกี่ยวกับปัญหานี้ ประสิทธิภาพจะยังคงลดลงและ / หรือคุณสมบัติขาดหายไป
Mikko Rantalainen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.