How can I fix a USB 3.0 Issue in a Ubuntu 14.04 VirtualBox VM

17,966

Solution 1

The USB 3.0 support has been added recently in VirtualBox version 5.0. Please read the release notes here. (For quick search use the search function in your browser and write "USB 3").

In order to access this new feature you have to install the Extension Pack.

Download Here

In order to install the extension pack you must right click on the downloaded file and "Open with..." virtualbox.

I don't know if this is the same (in MACs) as in Linux, but you may need add your user in 'virtualbox' group in order to access some features without problems.

Solution 2

I was facing the same problem. After upgrade my VirtualBox, I just powered off my virtual machine and in its VirtualBox properties I modified the USB controller for USB 3.0 (xHCI).

Now, my USB external drive is working fine.

Solution 3

I was having difficult with USB3 and USB2. I had loaded Guest Additions and extension pack. Nothing showed. I used lsusb from Linux terminal to identify one device and (while the vm was shut down) created a USB3 filter with the Bus, Device, vendor ID, and the Product ID.

Example:

Bus 010 Device 006: ID 1f75:0903 Innostor Technology Corporation. Bus # = The specific USB3 controller.

Device # is the port on the device. ID is Vendor ID (initially there may be a 0x before the actual hex address.

My device Vendor ID is 1f75 but it showed up as 0x1f75 just use the last 4 digits (same with PRODUCT ID) once I saved that and booted I could see the devices when I started but vbox guest couldn't grab them.

I grabbed a Windows usb driver from:

Intel(Intel(R)USB_3.0_eXtensible_Host_Controller_Driver)

and installed it, deleted the original filter I created, rebooted the virtual machine and all worked.

Share:
17,966

Related videos on Youtube

mcfearsson
Author by

mcfearsson

Updated on September 18, 2022

Comments

  • mcfearsson
    mcfearsson over 1 year

    For the last few days I have spent a huge amount time searching for a solution to this challenge.

    I have a Seagate Expansion Desktop Drive which is an external 2 TB USB 3.0 disk that I use for testing. The drive is attached to a USB 3.0 port on my Macbook Pro in one test, and to a USB 3.0 port on my Mac Mini for another test. Both the Macbook Pro and Mac Mini have virtualbox installed and have a Ubuntu guest installed. The drive should be accessible to the ubuntu guest.

    My current setup: 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
    

    Versions:

    Host:

    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:

    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
    

    Precondition: Seagate drive connected to power and USB 3.0 port on Macbook Pro (or Mini) (ejected in Filer in osx) Macbook Pro started and logged in VirtualBox started Guest (Ubuntu 14.04) Started and logged in (window mode not full screen)

    Expected result: Seagate drive should be listed in the File manager under Devices in ubuntu. The drive should be listed in /dev as a drive such as /dev/sdb in ubuntu for example The drive should be mountable in ubuntu

    Actual result: The drive is not listed in the File manager under Devices in ubuntu The drive is not listed under /dev in ubuntu

    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
    

    verbose lsusb output for Seagate RSS LLC: 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 output:

    [  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"
    

    I suspect the issue is on this line from the dmesg:

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

    Is it a Virtualbox issue or a Ubuntu issue? Could ubuntu not be handling the USB xHCI controller correctly?

    Incidently the Drive works on a dedicated kubuntu workstation, and in a Windows 10 VM from the same macbook pro.

    @nephente (appended as requested) I assume you mean to set the controller in VirtualBox to USB 2.0 (EHCI) Controller. If this is the case then I get the following error in 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}
    

    One other thing I also tried but failed to mention was to attaching the USB 3.0 device to a USB 2.0 hub and attached the hub to the Macbook Pro. This didn't work either.

    @Takkat Thanks for your suggestion of creating a filter and ensuring the drive is unmounted/ejected from osx.

    I have created a filter for the Seagate Expansion Desk (Desk as in Desktop), and made sure that the drive is not mounted in osx.

    Result: making sure the drive was not mounted and creating a filter for the drive did not make any difference. The drive is still recognised as described in the beginning of this post.

    • Nephente
      Nephente over 8 years
      Is the drive correctly recognized if the client is set to USB2.0 ?
    • mcfearsson
      mcfearsson over 8 years
      I assume you mean to set the controller in VirtualBox to USB 2.0 (EHCI) Controller. If this is the case then I get the following error in 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}
    • Nephente
      Nephente over 8 years
      Please append any new information to the orginal question by editing it. It is unreadable in comment form. Regarding NikTh's answer: The expansion pack is installed...?
    • Takkat
      Takkat over 8 years
      On an OSX host USB needs to be unmounted to be available for a virtualbox guest. Appartently this can not be achieved easily as the host tends to grab it again. You may need a USB-filter (see askubuntu.com/questions/25596/how-to-set-up-usb-for-virtualb‌​ox askubuntu.com/questions/209950/…) to permanently attach an USB to the guest, then unplug/replug the USB device. Also see apple.stackexchange.com/questions/125225/…