Oracle VirtualBox is unable to list/filter the USB devices attached to my system. As a result, the guest OS is not able to see any USB device either.
This is my configuration:
- Host: VirtualBox 5.0.0 r101573 on Ubuntu 14.04, with Oracle VM VirtualBox Extension Pack installed
- Guest: Windows 7, with VirtualBox Guest Additions installed
I've been trying with a USB flash drive and a Garmin sports watch: when connected to the host, they are both recognised by the system, i.e. they are in the list outputted by the lsusb command.
However, when running VirtualBox, no USB device is actually detected (Enable USB Controller is obviously checked). If I select the VM, then Settings -> USB and I try to add a filter, a tooltip is displayed:
<no devices available>I've tried different options as USB controller, even tried to attach the devices to different USB ports (2.0 instead of 3.0), but that didn't change anything. Since no USB devices are listed there I assume the problem is with the host, not with the guest.
The USB mouse I have is working in both the host and the guest, but that's probably a device that is treated differently.
The VBox.log does not report anything suspicious regarding the USB, and VirtualBox does not throw any error either.
The same problem occurred when I had VirtualBox 4.3.30 installed.
Is there a way to resolve the issue?
19 Answers
Please add your user name to the vboxusers group with this command:
sudo adduser $USER vboxusersAfter that you must logout and login. (For Ubuntu 20.04, a reboot is required)
Please check this for more details:
13If you don't have the adduser command, you can do this instead:
sudo usermod -aG vboxusers $USERLogout and login again in order to reload user's group info and usb device will now show up in the list.
1First of all, @csorig's answer is right. You need to be in the vboxusers group. That's the basic.
But if it still doesn't work for any reason... it's not documented anywhere, but I found that USB host device sharing does not work if the system has run out of inotify resources.
You can try running tail -f /var/log/syslog or something like that. If it shows up a message like:
tail: inotify cannot be used, reverting to polling: Too many open filesthen you need to increase your inotify watch limit or disable software that is consuming them. In my case it was a continuous backup software running in background.
The basic method to increase this limit is:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p 3 After numerous searching I've concluded with the help of this wiki to the below script that fixed the problem:
#!/bin/bash
#
# Heavily inspired by
#
vbox_usbnode_path=$(find / -name VBoxCreateUSBNode.sh 2> /dev/null | head -n 1)
if [[ -z $vbox_usbnode_path ]]; then echo Warning: VBoxCreateUSBNode.sh file has not been found. exit 1
fi
chmod 755 $vbox_usbnode_path
chown root:root $vbox_usbnode_path
vboxusers_gid=$(getent group vboxusers | awk -F: '{printf "%d\n", $3}')
vbox_rules="SUBSYSTEM==\"usb_device\", ACTION==\"add\", RUN+=\"$vbox_usbnode_path \$major \$minor \$attr{bDeviceClass} $vboxusers_gid\"
SUBSYSTEM==\"usb\", ACTION==\"add\", ENV{DEVTYPE}==\"usb_device\", RUN+=\"$vbox_usbnode_path \$major \$minor \$attr{bDeviceClass} $vboxusers_gid\"
SUBSYSTEM==\"usb_device\", ACTION==\"remove\", RUN+=\"$vbox_usbnode_path --remove \$major \$minor\"
SUBSYSTEM==\"usb\", ACTION==\"remove\", ENV{DEVTYPE}==\"usb_device\", RUN+=\"$vbox_usbnode_path --remove \$major \$minor\""
echo "$vbox_rules" > /etc/udev/rules.d/virtualbox.rules
rm -f /etc/udev/rules.d/*-virtualbox.rules
udevadm control --reload
adduser `logname` vboxusers
echo All actions succeeded.
echo Log out and log in to see if the issue go fixed.Be sure to have VM VirtualBox Extension Pack installed and at least USB 2.0 (EHCI) Controller enabled at VM's USB settings.
After these, run the above script with sudo.
There's a lot of things that can go wrong when sharing USB to guests. In any case, the checklist I did was:
- install the
Extension Packon the host andGuest Additionson the guest. - add current user to
vboxusersgroup. - manually add the corresponding
USB filterin VirtualBox settings and only connect the device after finish booting the guest OS. - under VirtualBox, select
USB 3.0 (xHCI) Controler.
I've successfully managed to share a USB stick to a Windows XP guest on a Linux Mint 19 host after some initial failed attempts. Good luck !
1Interestingly it also failed on me when vboxusers was the the last line of /etc/group!
I just permuted it with the former line and it started to work! May be I could simply have added an empty line at the very end of /etc/groups, I did not check.
I had the same problem.
After I permuted the line vboxuser in the file /etc/group with another line, it started to work.
I used another USB port and... it worked.
We have to be aware that there are different types of USB ports and devices.
If you please, try using another USB port before attempting other ways.
2None of the solutions or ideas presented here worked for me. And my issue was intermittent, would come and go between updates and reboots and reinstalls of VirtualBox on Ubuntu.
Solution: using a slightly older kernel, i.e. rebooting and choosing a few versions back, does the trick: it works again.