Недавно я приобрел карту контроллера PCI Express x1 USB 3.0 (содержащую контроллер NEC USB 3.0) с намерением использовать внешний жесткий диск USB 3.0 с моей коробкой Linux. Я установил карту в пустой слот PCIe на материнской плате, подключил карту к кабелю питания, подключил кабель USB 3.0 между одним из новых портов и внешним жестким диском и подключил жесткий диск к сетевой розетке для питания. При загрузке системы накопитель работает на 100% по назначению, за одним исключением пропускной способности: вместо того, чтобы использовать соединение SuperSpeed 4,8 Гбит / с, он, похоже, возвращается к пропускной способности High Speed 480 Мбит / с USB 2.0. Дисковая утилита показывает его как устройство со скоростью 480 Мбит / с, а выполнение пары тестов Дисковой утилиты и dd подтверждает, что диск не может превышать ~ 40 МБ / с (приблизительный предел USB 2.0), несмотря на то, что это твердотельный накопитель, способный гораздо больше, чем тот.
Когда я подключаю свой жесткий диск USB 3.0, dmesg
показывает это:
[ 3923.280018] usb 3-2: new high speed USB device using ehci_hcd and address 6
где я ожидал бы найти это:
[ 3923.280018] usb 3-2: new SuperSpeed USB device using xhci_hcd and address 6
В то время моя система работала на ядре 2.6.35-25-generic. Затем я наткнулся на эту ветку на форуме одного человека, который обнаружил, что ошибка, существовавшая в ядрах до 2.6.37-rc5, могла быть причиной этой проблемы. Следовательно, я установил ядро Ubuntu общего назначения 2.6.37, чтобы определить, исчезнет ли проблема. Это не так, поэтому я попробовал 2.6.38-rc3-generic и даже 2.6.38 по ночам с 2010.02.01, но безрезультатно.
Короче говоря, я пытаюсь определить, почему при поддержке USB 3.0 в ядре мой USB 3.0 не работает с полной пропускной способностью SuperSpeed.
Смотрите комментарии под этим вопросом для получения дополнительной информации.
Вывод, который может иметь отношение к проблеме (при загрузке с 2.6.38-rc3):
Соответствующие строки из 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
Соответствующий раздел 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
Соответствующий раздел 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
Полный, не многословный 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
Полный вывод:
lsusb
тоже, пожалуйста? Вы уделяете большое внимание контроллеру и ядру, которые другие люди успешно используют. Я подозреваю, что диск мог быть виноват.