如何修復 Ubuntu 14.04 VirtualBox VM 中的 USB 3.0 問題

如何修復 Ubuntu 14.04 VirtualBox VM 中的 USB 3.0 問題

在過去的幾天裡,我花了大量時間尋找解決這項挑戰的方法。

我有一個 Seagate Expansion Desktop Drive,它是一個外部 2 TB USB 3.0 磁碟,我用它來進行測試。在一項測試中,該驅動器連接到我的 Macbook Pro 上的 USB 3.0 端口,並在另一項測試中連接到我的 Mac Mini 上的 USB 3.0 端口。 Macbook Pro 和 Mac Mini 都安裝了 virtualbox,並安裝了 Ubuntu guest 虛擬機器。 ubuntu 來賓應該可以存取該驅動器。

我目前的設定:Macbook Pro:

Model Name: MacBook Pro
  Model Identifier: MacBookPro11,1
  Processor Name:   Intel Core i7
  Processor Speed:  2,8 GHz
  Number of Processors: 1
  Total Number of Cores:    2
  L2 Cache (per Core):  256 KB
  L3 Cache: 4 MB
  Memory:   16 GB
  Boot ROM Version: MBP111.0138.B15
  SMC Version (system): 2.16f68

版本:

主持人:

Mac OSX: 10.10.5
VirtualBox: 5.0.4 r102546
USB device: Seagate Expansion Desktop Drive 2TB
Oracle VM VirtualBox Extension Pack: 5.0.4r102546 Installed
In Setup - Ports - USB  USB 3.0 (xHCI) Controller is enabled

客人:

Guest:  Ubuntu 14.04
VboxGuestAdditions installed

uname -a

Linux patal-vbox-ubuntu-002 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

前提條件: 希捷硬碟已連接至Macbook Pro(或Mini)上的電源和USB 3.0 連接埠(在osx 中的Filer 中彈出) Macbook Pro 啟動並登入VirtualBox 啟動Guest (Ubuntu 14.04) 啟動並登入(視窗模式非全螢幕)

預期結果:Seagate 硬碟應列在 ubuntu 中裝置下的檔案管理器中。此磁碟機應在 /dev 中以磁碟機列出,例如 ubuntu 中的 /dev/sdb 該磁碟機應可在 ubuntu 中安裝

實際結果: 磁碟機未在 ubuntu 中的裝置下的檔案管理器中列出 磁碟機未在 ubuntu 中的 /dev 下列出

root@patal-vbox-ubuntu-002:~# ls -al /dev/sd*
brw-rw---- 1 root disk 8, 0 sep 26 09:16 /dev/sda
brw-rw---- 1 root disk 8, 1 sep 26 09:11 /dev/sda1
brw-rw---- 1 root disk 8, 2 sep 26 09:16 /dev/sda2
brw-rw---- 1 root disk 8, 5 sep 26 09:11 /dev/sda5

lsusb:

root@patal-vbox-ubuntu-002:~# lsusb
Bus 002 Device 002: ID 0bc2:3321 Seagate RSS LLC 
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Seagate RSS LLC 的詳細 lsusb 輸出:root@patal-vbox-ubuntu-002:~# lsusb -v

Bus 002 Device 002: ID 0bc2:3321 Seagate RSS LLC 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         9
  idVendor           0x0bc2 Seagate RSS LLC
  idProduct          0x3321 
  bcdDevice            1.00
  iManufacturer           2 Seagate
  iProduct                3 Expansion Desk
  iSerial                 1 NA4KX5JA
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          121
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower                0mA
    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             32
        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             32
        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             32
        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

dmesg 輸出:

[  795.810773] usb 2-1: new SuperSpeed USB device number 3 using xhci_hcd
[  795.829590] usb 2-1: New USB device found, idVendor=0bc2, idProduct=3321
[  795.829594] usb 2-1: New USB device strings: Mfr=2, Product=3, SerialNumber=1
[  795.829595] usb 2-1: Product: Expansion Desk
[  795.829596] usb 2-1: Manufacturer: Seagate
[  795.829597] usb 2-1: SerialNumber: NA4KX5JA
[  795.857795] usb 2-1: USB controller 0000:00:0c.0 does not support streams, which are required by the UAS driver.
[  795.857798] usb 2-1: Please try an other USB controller if you wish to use UAS.
[  795.857799] usb-storage 2-1:1.0: USB Mass Storage device detected
[  795.857848] scsi host5: usb-storage 2-1:1.0
[  822.485641] usb 2-1: reset SuperSpeed USB device number 3 using xhci_hcd
[  822.503463] xhci_hcd 0000:00:0c.0: xHCI xhci_drop_endpoint called with disabled ep ffff880013ebac00
[  822.503468] xhci_hcd 0000:00:0c.0: xHCI xhci_drop_endpoint called with disabled ep ffff880013ebac48
[  890.772127] audit_printk_skb: 120 callbacks suppressed
[  890.772130] audit: type=1400 audit(1443252349.697:62): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=2761 comm="apparmor_parser"
[  890.772135] audit: type=1400 audit(1443252349.697:63): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/cupsd" pid=2761 comm="apparmor_parser"
[  890.772386] audit: type=1400 audit(1443252349.697:64): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/cupsd" pid=2761 comm="apparmor_parser"

我懷疑問題出在 dmesg 的這一行:

[  795.857795] usb 2-1: USB controller 0000:00:0c.0 does not support streams, which are required by the UAS driver.

是 Virtualbox 問題還是 Ubuntu 問題? ubuntu 是否無法正確處理 USB xHCI 控制器?

順便說一句,該驅動器可以在專用的 kubuntu 工作站和同一 macbook pro 的 Windows 10 虛擬機器上運行。

@nephente(按要求附加)我假設您的意思是將 VirtualBox 中的控制器設定為 USB 2.0 (EHCI) 控制器。如果是這種情況,我會在 VirtualBox 中收到以下錯誤:

Failed to attach the USB device Seagate Expansion Desk [0100] to the virtual machine patal-vbox-ubuntu-002. 

Failed to create a proxy device for the USB device. 

(Error: VERR_PDM_NO_USB_PORTS). 

Result Code:    NS_ERROR_FAILURE (0x80004005) Component: ConsoleWrap Interface: IConsole {872da645-4a9b-1727-bee2-5585105b9eed}

我也嘗試過但未能提及的另一件事是將 USB 3.0 裝置連接到 USB 2.0 集線器,並將集線器連接到 Macbook Pro。這也行不通。

@Takkat 感謝您創建過濾器並確保驅動器從 osx 卸載/彈出的建議。

我為 Seagate Expansion Desk(桌面中的 Desk)建立了一個過濾器,並確保該驅動器未安裝在 osx 中。

結果:確保驅動器未安裝並為驅動器建立過濾器沒有任何區別。如本文開頭所述,該驅動器仍可被識別。

答案1

VirtualBox 5.0 版最近新增了 USB 3.0 支援。請閱讀發行說明這裡。 (要快速搜索,請使用瀏覽器中的搜尋功能並輸入“USB 3”)。

為了存取這個新功能,您必須安裝擴充包。

在這裡下載

為了安裝擴充包,您必須右鍵單擊下載的檔案並選擇“開啟方式...”virtualbox。

我不知道這(在 MAC 中)是否與 Linux 中相同,但您可能需要將使用者新增至「virtualbox」群組才能毫無問題地存取某些功能。

答案2

我面臨同樣的問題。升級 VirtualBox 後,我剛剛關閉了虛擬機,並在其 VirtualBox 屬性中修改了 USB 3.0 (xHCI) 的 USB 控制器。

現在,我的 USB 外接磁碟機工作正常。

答案3

我在使用 USB3 和 USB2 時遇到了困難。我已經加載了 Guest Additions 和擴充包。什麼也沒顯示。我使用lsusbLinux 終端機來識別一個設備,並(在虛擬機器關閉時)使用匯流排、設備、供應商 ID 和產品 ID 建立了一個 USB3 過濾器。

例子:

總線 010 設備 006:ID 1f75:0903 Innostor Technology Corporation。總線# = 特定的 USB3 控制器。

設備# 是設備上的連接埠。 ID 是供應商 ID(最初在實際十六進位位址之前可能有一個 0x。

我的裝置供應商 ID 是 1f75,但它顯示為 0x1f75,僅使用最後 4 位數字(與產品 ID 相同),一旦我儲存並啟動,我可以在啟動時看到設備,但 vbox guest 無法取得它們。

我從以下位置獲取了 Windows USB 驅動程式:

英特爾(英特爾(R)USB_3.0_eXtensible_Host_Controller_Driver)

並安裝它,刪除我創建的原始過濾器,重新啟動虛擬機,一切正常。

相關內容