How can I fix a USB 3.0 Issue in a Ubuntu 14.04 VirtualBox VM
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.
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.
Related videos on Youtube
mcfearsson
Updated on September 18, 2022Comments
-
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 over 8 yearsIs the drive correctly recognized if the client is set to USB2.0 ?
-
mcfearsson over 8 yearsI 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 over 8 yearsPlease 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 over 8 yearsOn 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-virtualbox 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/…
-