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



Question:

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.


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.


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »