This is one issue that had troubled me for long but was not important enough for me to put any effort into solving it. All this changed when I had to upgrade my BIOS on my Dell Optiplex 9020 machine. The problems are:
- One cannot upgrade BIOS from a Linux machine, a Windows installation is a must. At least, a DOS bootable CD, USB Flash drive is needed.
- I run Manjaro on this machine and installing Windows just for the BIOS upgrade is just too much.
So, I had to find a way to access USB devices on my Windows VM guest. I have never been able to do that. Primarily because, I never tried. This time I had to. So here is what is needed:
- Go to the Virtualbox Downloads page
- If the Virtualbox installed on the system is not the latest, move to the Virtualbox Old Builds section
- Download the Extension Pack.
- Hit the link and the Firefox Save File Dialog pops up with Virtualbox selected as the app to open the file with. Just say OK:
- Virtualbox will try to install the Extension Pack. It will pop up the following EULA. Scroll to the bottom and the I Agree and I Disagree buttons will get enabled. You know what to choose:
- If all goes well, Virtualbox will throw this at you:
- It is time for some radical changes in the system. Bring to life a terminal emulator and feed it the following command to add the desired user to the
usermod -a G vboxusers <User_Name>
- Now move to the settings of the Virtualbox Windows guest and click the USB settings. Make sure that you click on all checkboxes and finally the settings dialog looks like this:
- Make sure that the device you want to access in the Windows guest is NOT mounted on the Linux host. If it is, unmount it. Then, click on the button with the USB icon which has the green colored plus (+) sign. The above picture shows the tooltip for the said button. Click on that and all available USB devices on the machine will be listed. Choose the one you want to add a filter for. Adding a filter will make the device available on the Windows guest. This makes the device completely inaccessible on the host. Every time you bootstrap the Windows guest, the filter will make sure that the device is available in the guest.
- Some driver installations will happen in the guest once the filter is added. A restart of the guest and host would be good for the society.