Usb

USB 3.0 外置硬碟僅以 480 Mbit/s 執行

  • December 30, 2018

當我連接我的 USB 3.0-Stick 時dmesg說:


[ 3308.966755] usb 2-1.1: new **SuperSpeed USB device** number 5 using xhci_hcd
[ 3308.987443] usb 2-1.1: New USB device found, idVendor=0781, idProduct=5583
[ 3308.987444] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 3308.987445] usb 2-1.1: Product: Ultra Fit
[ 3308.987446] usb 2-1.1: Manufacturer: SanDisk
[ 3308.987447] usb 2-1.1: SerialNumber: 4C530001130125108084
[ 3308.987973] usb-storage 2-1.1:1.0: USB Mass Storage device detected
[ 3308.988102] scsi host8: usb-storage 2-1.1:1.0
[ 3310.003801] scsi 8:0:0:0: Direct-Access     SanDisk  Ultra Fit        1.00 PQ: 0 ANSI: 6
[ 3310.004113] sd 8:0:0:0: [sde] 60062500 512-byte logical blocks: (30.8 GB/28.6 GiB)
[ 3310.004332] sd 8:0:0:0: Attached scsi generic sg5 type 0
[ 3310.004725] sd 8:0:0:0: [sde] Write Protect is off
[ 3310.004727] sd 8:0:0:0: [sde] Mode Sense: 43 00 00 00
[ 3310.004993] sd 8:0:0:0: [sde] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 3310.011636]  sde:
[ 3310.012638] sd 8:0:0:0: [sde] Attached SCSI removable disk
[ 3337.899311] usb 1-2: USB disconnect, device number 14
[ 3337.916315] sd 6:0:0:0: [sdc] Synchronizing SCSI cache
[ 3338.164228] sd 6:0:0:0: [sdc] Synchronize Cache(10) failed: Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK
[ 3345.232408] usb 2-1.1: USB disconnect, device number 5

但是當我將我的 USB 3.0 硬碟驅動器連接到同一個埠時會dmesg說:


[ 3354.269053] usb 1-1.1: new **high-speed USB device** number 16 using xhci_hcd
[ 3354.449932] usb 1-1.1: New USB device found, idVendor=152d, idProduct=0579
[ 3354.449936] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 3354.449939] usb 1-1.1: Product: External USB-3.0
[ 3354.449941] usb 1-1.1: Manufacturer: Intenso
[ 3354.449943] usb 1-1.1: SerialNumber: 2015112320089
[ 3354.451081] scsi host6: uas
[ 3354.451512] scsi 6:0:0:0: Direct-Access     Intenso  External USB-3.0 1201 PQ: 0 ANSI: 6
[ 3354.452039] sd 6:0:0:0: Attached scsi generic sg3 type 0
[ 3357.101531] sd 6:0:0:0: [sdc] 1953525168 512-byte logical blocks: (1.00 TB/932 GiB)
[ 3357.101533] sd 6:0:0:0: [sdc] 4096-byte physical blocks
[ 3357.101709] sd 6:0:0:0: [sdc] Write Protect is off
[ 3357.101710] sd 6:0:0:0: [sdc] Mode Sense: 5f 00 00 08
[ 3357.101963] sd 6:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 3357.108787]  sdc: sdc1
[ 3357.110080] sd 6:0:0:0: [sdc] Attached SCSI disk
[ 3411.218491] usb 1-1.1: USB disconnect, device number 16
[ 3411.236156] sd 6:0:0:0: [sdc] Synchronizing SCSI cache
[ 3411.488046] sd 6:0:0:0: [sdc] Synchronize Cache(10) failed: Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK

我的dd-benchmark 確認 USB 2.0 速度:


user@host:~> sudo dd if=/dev/zero of=/mnt/largefile bs=8k count=2000000
dd: error writing '/mnt/largefile': File too large
524288+0 records in
524287+0 records out
4294967295 bytes (4.3 GB, 4.0 GiB) copied, 54.0439 s, 79.5 MB/s
user@host:~> sudo sh -c "sync && echo 3 > /proc/sys/vm/drop_caches"
[sudo] password for root: 
user@host:~> dd if=/mnt/largefile of=/dev/null bs=8k
524287+1 records in
524287+1 records out
4294967295 bytes (4.3 GB, 4.0 GiB) copied, 101.613 s, **42.3 MB/s**

同時lsusb -v確認“超速能力”


user@host:~> sudo lsusb -v -D /dev/bus/usb/001/018
Device: ID 152d:0579 JMicron Technology Corp. / JMicron USA Technology Corp. 
Device Descriptor:
 bLength                18
 bDescriptorType         1
 bcdUSB               2.10
 bDeviceClass            0 
 bDeviceSubClass         0 
 bDeviceProtocol         0 
 bMaxPacketSize0        64
 idVendor           0x152d JMicron Technology Corp. / JMicron USA Technology Corp.
 idProduct          0x0579 
 bcdDevice            1.00
 iManufacturer           1 Intenso
 iProduct                2 External USB-3.0
 iSerial                 3 2015112320089
 bNumConfigurations      1
 Configuration Descriptor:
   bLength                 9
   bDescriptorType         2
   wTotalLength           85
   bNumInterfaces          1
   bConfigurationValue     1
   iConfiguration          0 
   bmAttributes         0x80
     (Bus Powered)
   MaxPower              500mA
   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     0x0200  1x 512 bytes
       bInterval               0
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x02  EP 2 OUT
       bmAttributes            2
         Transfer Type            Bulk
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0200  1x 512 bytes
       bInterval               0
   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     0x01  EP 1 OUT
       bmAttributes            2
         Transfer Type            Bulk
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0200  1x 512 bytes
       bInterval               0
       Command pipe (0x01)
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x82  EP 2 IN
       bmAttributes            2
         Transfer Type            Bulk
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0200  1x 512 bytes
       bInterval               0
       Status pipe (0x02)
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x83  EP 3 IN
       bmAttributes            2
         Transfer Type            Bulk
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0200  1x 512 bytes
       bInterval               0
       Data-in pipe (0x03)
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x04  EP 4 OUT
       bmAttributes            2
         Transfer Type            Bulk
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0200  1x 512 bytes
       bInterval               0
       Data-out pipe (0x04)
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   0x00000f0e
     BESL Link Power Management (LPM) Supported
   BESL value     3840 us 
 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          32 micro seconds
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0000
 (Bus Powered)

這是lsusb -t使用 USB-Stick 的輸出:


/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
   |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
   |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
   |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
       **|__ Port 1: Dev 6, If 0, Class=Mass Storage, Driver=usb-storage, 5000M**
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 480M
   |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
   |__ Port 3: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
   |__ Port 3: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
   |__ Port 8: Dev 15, If 0, Class=Mass Storage, Driver=usb-storage, 480M
   |__ Port 9: Dev 5, If 0, Class=Audio, Driver=snd-usb-audio, 12M
   |__ Port 9: Dev 5, If 1, Class=Audio, Driver=snd-usb-audio, 12M
   |__ Port 9: Dev 5, If 2, Class=Audio, Driver=snd-usb-audio, 12M
   |__ Port 9: Dev 5, If 3, Class=Human Interface Device, Driver=usbhid, 12M
   |__ Port 10: Dev 6, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
   |__ Port 10: Dev 6, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M

這是lsusb -t連接到同一個埠的硬碟驅動器:


   sudo lsusb -t -D /dev/bus/usb/001/018
   /:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
       |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
   /:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
       |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
   /:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
       |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
   /:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 480M
       |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
           **|__ Port 1: Dev 18, If 0, Class=Mass Storage, Driver=uas, 480M**
       |__ Port 3: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
       |__ Port 3: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
       |__ Port 8: Dev 15, If 0, Class=Mass Storage, Driver=usb-storage, 480M
       |__ Port 9: Dev 5, If 0, Class=Audio, Driver=snd-usb-audio, 12M
       |__ Port 9: Dev 5, If 1, Class=Audio, Driver=snd-usb-audio, 12M
       |__ Port 9: Dev 5, If 2, Class=Audio, Driver=snd-usb-audio, 12M
       |__ Port 9: Dev 5, If 3, Class=Human Interface Device, Driver=usbhid, 12M
       |__ Port 10: Dev 6, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
       |__ Port 10: Dev 6, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M

如何使此設備以 USB 3.0 SuperSpeed 執行?

短版:

如果您購買了高性能型號,您的 Intenso 外置 SSD 已經以最佳性能執行但是,如果您購買了頂級性能型號,您應該:

  1. 先換一根USB3.1線試試
  2. 排除佈線問題後聯繫製造商。

長版:

  1. 所有 USB 電纜都是平等的,但有些比其他電纜更平等:

USB 2.0 佈局:

Pin     Colour      Name    Description
1       Red         VCC     +5 VDC
2       White       D-      Data -
3       Green       D+      Data +
4       Black       GND     Ground

USB 3.x 佈局:

Pin     Colour              Name                Description
               A connector     B connector
1   Red                     VBUS                Power
2   White                   D−                  USB 2.0 differential pair
3   Green                   D+
4   Black                   GND                 Ground for power return
5   Blue        StdA_SSRX−      StdB_SSTX−      SuperSpeed receiver differential pair
6   Yellow      StdA_SSRX+      StdB_SSTX+
7   N/A                     GND_DRAIN           Ground for signal return
8   Purple      StdA_SSTX−      StdB_SSRX−      SuperSpeed transmitter differential pair
9   Orange      StdA_SSTX+      StdB_SSRX+ 

因此,如果您的電纜損壞或使用了錯誤的電纜,您應該更換它,否則您將退回到 USB 2.0。 2. SSD 的兩個主要部分是控制器橋和實際的NAND晶片。在您的情況下,JMicron 控制器橋能夠支持SuperSpeed ,但您的 SSD中的實際 NAND只能支持高速,因為您的測試證實了這一點

SuperSpeed 和高速 NAND 有什麼區別?

  • SLC:每個單元 1 位:最快、最高成本。
  • MLC:每個單元 2 位
  • TLC:每個單元 3 位
  • QLC:每個單元 4 位:最慢,成本最低因此,您的(小型)USB 記憶棒包含支持 SuperSpeed 的控制器和 NAND,但您的(大型)SSD 僅包含支持 SuperSpeed 的控制器,而不包含與之配套的 NAND。

由於您向我們提供了很多資訊,但沒有提供 SSD 的實際型號,因此我們無法檢查您是否購買了高性能型號而不是頂級性能型號,因為 Intenso 並未在其網站上發布 USB ID。一般來說,頂級性能型號的價格是高性能型號的兩倍,因此在不太可能的情況下,您確實購買了頂級性能型號,製造商搞混了,您應該聯繫他們並要求更換。

引用自:https://unix.stackexchange.com/questions/491526