Baru-baru ini saya membeli kartu pengontrol PCI Express x1 USB 3.0 (berisi pengontrol NEC USB 3.0) dengan maksud menggunakan hard drive eksternal USB 3.0 dengan kotak Linux saya. Saya memasang kartu di slot PCIe kosong pada motherboard saya, menghubungkan kartu ke kabel daya, menggantung kabel USB 3.0 antara salah satu port baru dan HDD eksternal saya, dan menghubungkan HDD ke stopkontak di dinding untuk daya. Mem-boot sistem, drive bekerja 100% seperti yang dimaksudkan, dengan satu pengecualian throughput: daripada menggunakan konektivitas SuperSpeed 4,8 Gbps, tampaknya jatuh kembali ke Kecepatan Tinggi 480 Mbps USB 2.0-throughput gaya 2.0. Disk Utility menunjukkannya sebagai perangkat 480 Mbps, dan menjalankan pasangan Disk Utility dan benchmark dd mengkonfirmasi bahwa drive gagal melebihi ~ 40 MB / s (batas perkiraan USB 2.0), meskipun itu merupakan SSD yang mampu jauh lebih dari bahwa.
Ketika saya menghubungkan HDD USB 3.0 saya, dmesg
menunjukkan ini:
[ 3923.280018] usb 3-2: new high speed USB device using ehci_hcd and address 6
di mana saya berharap menemukan ini:
[ 3923.280018] usb 3-2: new SuperSpeed USB device using xhci_hcd and address 6
Sistem saya berjalan pada kernel 2.6.35-25-generic pada saat itu. Lalu, saya menemukan utas forum ini oleh seseorang yang menemukan bahwa bug, yang ada di kernel sebelum 2.6.37-rc5, bisa menjadi penyebab masalah jenis ini. Akibatnya, saya menginstal kernel Ubuntu mainline 2.6.37-generik untuk menentukan apakah masalah akan hilang. Tidak, jadi saya mencoba 2.6.38-rc3-generic, dan bahkan 2.6.38 setiap malam dari 2010.02.01, tidak berhasil.
Singkatnya, saya mencoba menentukan mengapa, dengan dukungan USB 3.0 di kernel, drive USB 3.0 saya gagal berjalan pada throughput SuperSpeed penuh.
Lihat komentar di bawah pertanyaan ini untuk detail tambahan.
Output yang mungkin relevan dengan masalah (saat booting dari 2.6.38-rc3):
Baris yang relevan dari dmesg
:
[ 19.589491] xhci_hcd 0000:03:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
[ 19.589512] xhci_hcd 0000:03:00.0: setting latency timer to 64
[ 19.589516] xhci_hcd 0000:03:00.0: xHCI Host Controller
[ 19.589623] xhci_hcd 0000:03:00.0: new USB bus registered, assigned bus number 12
[ 19.650492] xhci_hcd 0000:03:00.0: irq 17, io mem 0xf8100000
[ 19.650556] xhci_hcd 0000:03:00.0: irq 47 for MSI/MSI-X
[ 19.650560] xhci_hcd 0000:03:00.0: irq 48 for MSI/MSI-X
[ 19.650563] xhci_hcd 0000:03:00.0: irq 49 for MSI/MSI-X
[ 19.653946] xHCI xhci_add_endpoint called for root hub
[ 19.653948] xHCI xhci_check_bandwidth called for root hub
Bagian yang relevan dari sudo lspci -v
:
03:00.0 USB Controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 03) (prog-if 30)
Flags: bus master, fast devsel, latency 0, IRQ 17
Memory at f8100000 (64-bit, non-prefetchable) [size=8K]
Capabilities: [50] Power Management version 3
Capabilities: [70] MSI: Enable- Count=1/8 Maskable- 64bit+
Capabilities: [90] MSI-X: Enable+ Count=8 Masked-
Capabilities: [a0] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [140] Device Serial Number ff-ff-ff-ff-ff-ff-ff-ff
Capabilities: [150] #18
Kernel driver in use: xhci_hcd
Kernel modules: xhci-hcd
Bagian yang relevan dari sudo lsusb -v
:
Bus 012 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 3.00
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 3
bMaxPacketSize0 9
idVendor 0x1d6b Linux Foundation
idProduct 0x0003 3.0 root hub
bcdDevice 2.06
iManufacturer 3 Linux 2.6.38-020638rc3-generic xhci_hcd
iProduct 2 xHCI Host Controller
iSerial 1 0000:03:00.0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 12
Hub Descriptor:
bLength 9
bDescriptorType 41
nNbrPorts 4
wHubCharacteristic 0x0009
Per-port power switching
Per-port overcurrent protection
TT think time 8 FS bits
bPwrOn2PwrGood 10 * 2 milli seconds
bHubContrCurrent 0 milli Ampere
DeviceRemovable 0x00
PortPwrCtrlMask 0xff
Hub Port Status:
Port 1: 0000.0100 power
Port 2: 0000.0100 power
Port 3: 0000.0100 power
Port 4: 0000.0100 power
Device Status: 0x0003
Self Powered
Remote Wakeup Enabled
Penuh, tanpa kata-kata lsusb
:
Bus 012 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 011 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 010 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 009 Device 003: ID 04d9:0702 Holtek Semiconductor, Inc.
Bus 009 Device 002: ID 046d:c068 Logitech, Inc. G500 Laser Mouse
Bus 009 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 006: ID 174c:5106 ASMedia Technology Inc.
Bus 003 Device 004: ID 0bda:0151 Realtek Semiconductor Corp. Mass Storage Device (Multicard Reader)
Bus 003 Device 002: ID 058f:6366 Alcor Micro Corp. Multi Flash Reader
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 006: ID 1687:0163 Kingmax Digital Inc.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 046d:081b Logitech, Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Output penuh:
lsusb
juga? Anda telah meletakkan banyak fokus pada controller dan kernel, yang keduanya digunakan orang lain dengan sukses. Saya curiga drive itu salah.