为什么USB 3.0外置硬盘不能以USB 3.0速度运行?


16

我最近购买了PCI Express x1 USB 3.0控制器卡(包含NEC USB 3.0控制器),目的是在Linux机器上使用USB 3.0外部硬盘驱动器。我将卡安装在主板上的空PCIe插槽中,将卡连接至电源线,在新端口之一和我的外部HDD之间绞接了USB 3.0电缆,然后将HDD连接至墙上的电源插座。启动系统后,该驱动器将按预期的100%正常工作,但吞吐量除外:它似乎没有使用SuperSpeed 4.8 Gbps连接,而是回落到了高速480 Mbps USB 2.0样式的吞吐量。Disk Utility将其显示为480 Mbps设备,并且运行了几次Disk Utility和dd基准测试,确认该驱动器的SSD容量远远超过40 MB / s(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通用内核上运行。然后,我偶然发现了一个论坛论坛话题,该人发现2.6.37-rc5之前的内核中存在一个错误,可能是此类问题的罪魁祸首。因此,我安装了2.6.37通用主线Ubuntu内核,以确定问题是否会消失。没有,所以我尝试了2.6.38-rc3-generic,甚至从2010.02.01起每晚尝试2.6.38,都无济于事。

简而言之,我试图确定为什么在内核中支持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

全输出:


1
我们也可以有一个简单的(非冗长的)lsusb吗?您将重点放在控制器和内核上,其他人都成功地使用了它们。我怀疑驱动器可能有故障。
奥利

@Oli:好的,我将输出添加到了问题中。
jgottula 2011年

并且由于您提到它可能是驱动器,因此可能需要注意的是,我使用的是Roseston USB3-to-SATA适配器(RAD-SATA-USB3)和金士顿SSDNow V驱动器(SNV125-S2 / 30GB)。
jgottula 2011年

1
谢谢。(对于其他人来说,更多-抱歉,您已经说过这句话)驱动器机箱使用ASMedia ASM1051芯片组。
奥利

万一这些细节证明有用,则USB 3.0 PCIe卡是AZiO AUDU3,它再次使用流行的NEC控制器。
jgottula 2011年

Answers:


5

您确定磁盘已插入正确的(USB 3.0)端口吗?看起来您的USB 3.0控制器正在提供USB总线12,但是磁盘已连接到USB总线3。

根据您的dmesg,USB总线#3由PCI设备'06:01.2:USB控制器:VIA Technologies,Inc. USB 2.0(rev 65)'提供,它将仅为USB 2.0。


4
令我非常尴尬的是,您绝对正确!我的主板上有两个USB卡,由于必须伸手去插入USB 3.0电缆,所以在运行Linux时,我一定把它插错了,而在运行Windows时,(尤其是)正确的插了!绝对确保这次(在Linux下)将电缆插入蓝色端口,可以实现120 MB / s的完整吞吐量。谢谢先生指出我的尴尬错误!
jgottula

woo!我很高兴您能对它进行排序:)
杰里米·科尔

2
伙计...我最喜欢这个问题,后来才发现是PEBCAK!:P urbandictionary.com/define.php?term=pebcak
傻子

1
PICNIC是PEBCAK最受青睐的术语,因为它更易于发音,并提供更多的单词演奏功能。PICNIC =问题不在椅子上在计算机中。
凯特·阿姆斯特丹,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.