+++ title = "VirtualBox" lastmod = "2017-07-22T15:17:22+03:00" +++ # VirtualBox [VirtualBox](https://virtualbox.org) is an x86 virtualization software package developed by Sun Microsystems. ## Install kernel headers For using VirtualBox in either guest or host mode, it is important that you install the correct headers for your kernel, as Solus support both a `current` and `lts` kernel. If you aren't sure which kernel you are running, run the following in terminal: ``` bash uname -r ``` You will either have a `.current` or `.lts` suffix. Example: `4.12.7-11.current` If you have an lts kernel, install the lts headers: ``` bash sudo eopkg install linux-lts-headers ``` If you have a current kernel, installing the current headers: ``` bash sudo eopkg install linux-current-headers ``` Now proceed for setting up Solus as Guest or Host. ## Solus as Guest Make sure you have the necessary core packages installed: ``` bash sudo eopkg upgrade sudo eopkg install gcc make autoconf binutils xorg-server-devel ``` Reboot your system first so that it's all up to date. Now, download the [Guest Additions](http://download.virtualbox.org/virtualbox/) as an `.iso` file and mount it from VirtualBox's menu. Then in the guest machine do the following (this will also reboot your system): ``` bash sudo mkdir -p /mnt/cdrom sudo mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom cd /mnt/cdrom sudo sh VBoxLinuxAdditions.run sudo reboot ``` **Note:** For each kernel update you will need to rebuild the VirtualBox Modules. So simply remount the ISO and run the instructions again. ### Clipboard Sharing, Copy & Paste, Drag & Drop By default, the VirtualBox modules for those VirtualBox features are not loaded/enabled, therefore the features simply do not work if selected in the Guest. If you want that these features do work properly automatically, without starting the corresponding VBoxClient yourself, you can use xdg to autostart VBoxClient thus enabling the features. /usr/bin/VBoxClient-all: ``` bash #!/bin/sh ## @file # Start the Guest Additions X11 Client # # # Copyright (C) 2007-2012 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; # you can redistribute it and/or modify it under the terms of the GNU # General Public License (GPL) as published by the Free Software # Foundation, in version 2 as it comes in the "COPYING" file of the # VirtualBox OSE distribution. VirtualBox OSE is distributed in the # hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. # # Sanity check: if non-writeable PID-files are present in the user home # directory VBoxClient will fail to start. for i in $HOME/.vboxclient-*.pid; do test -w $i || rm -f $i done if ! test -c /dev/vboxguest 2>/dev/null; then # Do not start if the kernel module is not present. notify-send "VBoxClient: the VirtualBox kernel service is not running. Exiting." elif test -z "${SSH_CONNECTION}"; then # This script can also be triggered by a connection over SSH, which is not # what we had in mind, so we do not start VBoxClient in that case. We do # not use "exit" here as this script is "source"d, not executed. /usr/bin/VBoxClient --clipboard /usr/bin/VBoxClient --checkhostversion /usr/bin/VBoxClient --display /usr/bin/VBoxClient --seamless /usr/bin/VBoxClient --draganddrop fi ``` You need to make the file executable in order for this to work: ``` bash sudo chmod +x /usr/bin/VBoxClient-all ``` /etc/xdg/autostart/vboxclient.desktop: ``` bash [Desktop Entry] Type=Application Encoding=UTF-8 Version=1.0 Name=vboxclient Name[C]=vboxclient Comment[C]=VirtualBox User Session Services Comment=VirtualBox User Session Services Comment[it]=Servizi di sessione utente di VirtualBox Comment[pl]=Usługi sesji użytkownika VirtualBox Exec=/usr/bin/VBoxClient-all X-GNOME-Autostart-enabled=true X-KDE-autostart-after=panel ``` ## Solus as Host Download the latest [VirtualBox Installer](https://www.virtualbox.org/wiki/Linux_Downloads) - [direct link](http://download.virtualbox.org/virtualbox/5.1.26/VirtualBox-5.1.26-117224-Linux_amd64.run) (5.1.26) right click link and Save As. Now install the dependencies and VirtualBox like so: ``` bash sudo eopkg it -c system.devel sudo sh ~/Downloads/VirtualBox-5.1.26-117224-Linux_amd64.run ``` Replace the version number of the file with the one you downloaded.