From Funtoo
Revision as of 21:02, March 4, 2014 by Oleg (talk | contribs) (→‎Installation)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

VirtualBox is an application that allows to run a guest O/S inside a host O/S.

Glossary of Terms

Host O/S
system running on computer you are actually on;
Guest O/S
system indtalled within VirtualBox;
Guest Additions
drivers for the Guest O/S.

Versions of VirtualBox

VirtualBox is available in two versions :

  1. Source based package : app-emulation/virtualbox;
  2. Binary package : app-emeulation/virtualbox-bin.

Binary package contains extensions which are not available with the source one. When we install the source based package, we must refer to the USE flags list hereafter.

USE flags

Use flag Default Recommended Description
additions Yes Yes Install Guest System Tools ISO.
alsa Yes Yes Add support for media-libs/alsa-lib (Advanced Linux Sound Architecture).
doc No Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally.
extensions No Yes Install extension module packages.
headless No Build without any graphic frontend.
java No No Add support for Java.
opengl Yes Add support for OpenGL (3D graphics).
pam Yes Yes Add support for PAM (Pluggable Authentication Modules) - DANGEROUS to arbitrarily flip.
pulseaudio Yes Add support for PulseAudio sound server.
python Yes Add optional support/bindings for the Python language.
python_single_target_python2_7 Yes Build for Python 2.7 only.
python_targets_python2_7 Yes Build with Python 2.7
qt4 Yes Yes Add support for the Qt GUI/Application Toolkit version 4.x. No GUI when not set.
sdk Yes Enable building of SDK.
vboxwebsrv No No Build and install the VirtualBox webservice.
vnc No Enable VNC (remote desktop viewer) support.

Depending on desktop environment, some USE flags may already be set or unset. Set USE flags as per Recommended column when unset.



This tutorial deals with installation of source based package.

root # echo ">=app-emulation/virtualbox-extpack-oracle-4.3.8 PUEL" >> /etc/portage/package.license/virtualbox
root # emerge app-emulation/virtualbox

Installation of app-emulation/virtualbox implies app-emulation/virtualbox-extpack-oracle. That is why PUEL license must be enabled.

Guest Additions

Make sure that user running X session belongs to vboxguest group. Create group when it does not exist. Add user to the group. That will enable :

  • Shared clipboard;
  • Display resizing;
  • Seamless mode;
  • Drag & Drop.
root # groupadd vboxguest
root # gpasswd -a ''user'' vboxguest

Windows Guests

You must enable additions USE flag when you intend to install Windows as a guest O/S. That will also install the ISO image containing all necessary Windows guest drivrers.

Linux Guests

If you want to run Funtoo GNU/Linux as a guest O/S, emerge app-emulation/virtualbox-guest-additions in the Funtoo GNU/Linux guest O/S. For other GNU/Linux, please refer to VirtualBox documentation.

Post Installation

You will not be able to run and use VirtualBox as a regular user if you are not a member of the vboxusers group.

root # gpasswd -a ''user'' vboxusers

You must re-log so changes take effect.

Loading Modules

Required and optional modules must be loaded before launching VirtualBox. You can do that as root or upon boot.


vboxnetadp and vboxnetflt are optional.

As root

root # modprobe vboxdrv
root # modprobe vboxnetadp
root # modprobe vboxnetflt

Upon boot OpenRC

Edit /etc/conf.d/modules :

modules="vboxdrv vboxnetadp vboxnetflt"

Upon boot systemd

root # echo 'vboxdrv' >> /etc/modules-load.d/virtualbox.conf
root # echo 'vboxnetadp' >> /etc/modules-load.d/virtualbox.conf
root # echo 'vboxnetflt' >> /etc/modules-load.d/virtualbox.conf

Kernel Driver

Each time a new kernel is installed, vboxdrv kernel module must be recompiled. To ensure Portage knows about that, look at /var/lib/module-rebuild/moduledb. The following record must be present.


Running emerge @module-rebuild will recompile VirtualBox driver after installation of new kernel.

It is strongly recommended to install sys-kernel/dkms. This package keeps track of Linux kernel changes. It recompiles vboxdrv if necessary.