Difference between revisions of "Package:VirtualBox"

From Funtoo
Jump to: navigation, search
(guide updating (host os))
(guide updating (guests))
Line 11: Line 11:
 
VirtualBox Homepage: https://www.virtualbox.org
 
VirtualBox Homepage: https://www.virtualbox.org
  
= Glossary of Terms =
+
== Glossary of Terms ==
  
 
{{TableStart}}
 
{{TableStart}}
Line 20: Line 20:
 
{{TableEnd}}
 
{{TableEnd}}
  
= Host OS Installation =
+
== Host OS Installation ==
 
VirtualBox can be installed onto your Host OS - Funtoo Linux - using one of two packages: {{c|app-emulation/virtualbox}} or {{c|app-emulation/virtualbox-bin}}. The latter "-bin" package is a binary (precompiled) copy of VirtualBox. Installing this may be preferable on machines with low computing power.
 
VirtualBox can be installed onto your Host OS - Funtoo Linux - using one of two packages: {{c|app-emulation/virtualbox}} or {{c|app-emulation/virtualbox-bin}}. The latter "-bin" package is a binary (precompiled) copy of VirtualBox. Installing this may be preferable on machines with low computing power.
  
Line 28: Line 28:
 
}}
 
}}
  
== Assign VirtualBox Users ==
+
=== Assign VirtualBox Users ===
  
 
Normal non-root users will not be able to use VirtualBox immediately after it has been installed. The Users that are to use VirtualBox must first become a member of the group  {{c|vboxusers}}. For example, a user ''alice'' is added to {{c|vboxusers}}
 
Normal non-root users will not be able to use VirtualBox immediately after it has been installed. The Users that are to use VirtualBox must first become a member of the group  {{c|vboxusers}}. For example, a user ''alice'' is added to {{c|vboxusers}}
  
 
{{console|body=
 
{{console|body=
###i## gpasswd -a ''alice'' vboxusers
+
###i## gpasswd -a alice vboxusers
 
}}
 
}}
  
 
If currently logged in the User added to {{c|vboxusers}} must first log out before the changes will have an effect.
 
If currently logged in the User added to {{c|vboxusers}} must first log out before the changes will have an effect.
  
== Load VirtualBox Kernel Modules ==
+
=== Load VirtualBox Kernel Modules ===
  
 
VirtualBox requires one or more Linux kernel modules to be loaded on the Host OS (Funtoo Linux) in order to function. As of VirtualBox version 5 these are provided by the package {{c|app-emulation/virtualbox-drivers}} which is installed automatically (as a dependency) when you install app-emulation/virtualbox.
 
VirtualBox requires one or more Linux kernel modules to be loaded on the Host OS (Funtoo Linux) in order to function. As of VirtualBox version 5 these are provided by the package {{c|app-emulation/virtualbox-drivers}} which is installed automatically (as a dependency) when you install app-emulation/virtualbox.
Line 54: Line 54:
 
}}
 
}}
  
== Starting VirtualBox ==
+
=== Starting VirtualBox ===
 
VirtualBox can be started from a terminal.
 
VirtualBox can be started from a terminal.
 
{{console|body=
 
{{console|body=
Line 62: Line 62:
 
In a Desktop Environment, VirtualBox may also be run from a menu entry. Look for the names "VirtualBox" or "Oracle xVM VirtualBox" under menu categories "System" and/or "Emulator".
 
In a Desktop Environment, VirtualBox may also be run from a menu entry. Look for the names "VirtualBox" or "Oracle xVM VirtualBox" under menu categories "System" and/or "Emulator".
  
== Funtoo Linux (Host OS) kernel updates ==
+
=== Funtoo Linux (Host OS) kernel updates ===
 
The VirtualBox kernel modules are compiled for the kernel present on the Host, Funtoo Linux. Each time that the Host kernel is updated or changed, the VirtualBox kernel modules must also be rebuilt.
 
The VirtualBox kernel modules are compiled for the kernel present on the Host, Funtoo Linux. Each time that the Host kernel is updated or changed, the VirtualBox kernel modules must also be rebuilt.
  
Line 78: Line 78:
 
}}
 
}}
  
 +
== Guest OS Installation ==
 +
{{warning|This section is currently under redevelopment.}}
 +
=== Install Guest Additions ===
 +
VirtualBox '''Guest Additions''' is a collection of applications, libraries and kernel modules/drivers that are installed in your Guest OS. These provide support for graphics, networking, and other features such as file transfer and Guest access to real physical devices such as a USB flash drive.
 +
 +
==== Funtoo or Gentoo Linux Guests ====
 +
Following the successful installation of you Funtoo Linux ''Guest OS'' (that is within a Virtual Machine), install the package {{c|app-emulation/virtualbox-guest-additions}}.
 +
{{console|body=
 +
###i## emerge --ask app-emulation/virtualbox-guest-additions
 +
}}
  
 +
Next, add your Guest OS Users to the group {{c|vboxguest}}. For example, a user ''bob'' is added to {{c|vboxguests}}
 +
 +
{{console|body=
 +
###i## gpasswd -a bob vboxguests
 +
}}
  
 +
Now add virtual-box-guest additions to the default runlevel of OpenRC.
  
= Guest OS Installation =
+
{{console|body=
{{warning|This section is currently under redevelopment.}}
+
###i## rc-update add virtualbox-guest-additions default
== Guest Additions ==
+
}}
Make sure that user running X session belongs to <code>vboxguest</code> group. Create group when it does not exist. Add user to the group. That will enable :
 
  
*Shared clipboard;
+
Without having to reboot you can now start virtualbox-guest-additions within the Funtoo Guest OS with the command
*Display resizing;
+
{{console|body=
*Seamless mode;
+
###i## rc
*Drag & Drop.
+
}}
  
<console>
+
==== Other GNU/Linux Guests ====
###i## groupadd vboxguest
+
For other GNU/Linux, please refer to [https://www.virtualbox.org/manual/ch04.html#idp11274368 VirtualBox documentation].
###i## gpasswd -a ''user'' vboxguest
 
</console>
 
  
== Windows Guests ==
+
==== Microsoft Windows Guests ====
 
{{important|This is new information.}}
 
{{important|This is new information.}}
VirtualBox versions '''less than 5.0'''
+
VirtualBox Guest Additions are installed in a Windows Guest by mounting a virtual CD-ROM image (.iso) within the guest virtual machine.
  
You must enable <code>additions</code> 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 drivers.
+
In your Host OS Funtoo Linux, confirm the version of VirtualBox installed:
 +
For {{c|app-emulation/virtualbox}}
 +
{{console|body=
 +
$##i## emerge --pretend --quiet app-emulation/virtualbox
 +
[##g##ebuild##!g##  ##y##R##!y##  ] ##g##app-emulation/virtualbox-5.0.20##!g##
 +
}}
 +
 
 +
'''For VirtualBox versions earlier than 5.0''' (versions 4.x)
  
VirtualBox versions '''5.0 and above'''
+
Under the earlier chapter [[ Package:VirtualBox#Host_OS_Installation|Host OS Installation ]], install {{c|app-emulation/virtualbox}} (or {{c|app-emulation/virtualbox-bin}}) with the USE flag {{c|additions}} enabled. This will provide the ISO necessary for installing Guest Additions within a Microsoft Windows guest.
  
'''As of version 5.0 the USE flag''' {{c|additions}} '''has been removed from the package app-emulation/virtualbox'''. The guest additions ISO required for a Windows guest is now provided in a separate package, app-emulation/virtualbox-additions. Install this to access the guest additions ISO: {{f|/usr/share/virtualbox/VBoxGuestAdditions.iso}}.
+
'''For VirtualBox versions 5.0 and above'''
  
== Linux Guests ==
+
From version 5.0 the USE flag {{c|additions}} has been removed from the package app-emulation/virtualbox. The Guest Additions ISO required for a Windows-based Guest OS is now provided in a separate package, {{c|app-emulation/virtualbox-additions}}. Install this manually
 +
{{console|body=
 +
###i## emerge --ask app-emulation/virtualbox-additions
 +
}}
  
If you want to run Funtoo GNU/Linux as a guest O/S, emerge <code>app-emulation/virtualbox-guest-additions</code> in the Funtoo GNU/Linux guest O/S. For other GNU/Linux, please refer to [https://www.virtualbox.org/manual/ch04.html#idp11274368 VirtualBox documentation].
+
{{warning|The package app-emulation/'''virtualbox-additions''' installs the Guest Additions ISO on your Host OS (Funtoo Linux). This is what you mount in a VM with Windows as a Guest OS. The package app-emulation/'''virtualbox-guest-additions''' is different. This is the Guest Additions that you install ''inside of a VM'' that happens to be a Guest OS of Funtoo Linux or Gentoo Linux.
  
= Tips and Tricks =
+
The two packages perform different tasks so be sure to install the correct package!}}
== Providing USB2, USB3, VRDP and/or PXE Boot ROM to Guest OS ==
+
 
 +
Mount the Guest Additions ISO {{f|/usr/share/virtualbox/VBoxGuestAdditions.iso}} inside of your Microsoft Windows guest. Within Windows, browse to and install VirtualBox Guest Additions.
 +
 
 +
== Tips and Tricks ==
 +
=== Configure Video within Funtoo Linux Guests ===
 +
{{SectionNeedsUpdates}}
 +
 
 +
 
 +
=== Providing USB2, USB3, VRDP and/or PXE Boot ROM to Guest OS ===
 
{{SectionNeedsUpdates}}
 
{{SectionNeedsUpdates}}
 
Accept PUEL licence
 
Accept PUEL licence
Line 117: Line 148:
 
emerge app-emulation/virtualbox-extpack-oracle
 
emerge app-emulation/virtualbox-extpack-oracle
  
= Troubleshooting =
+
== Troubleshooting ==
== EFI case ==
+
=== EFI case ===
 +
{{SectionNeedsUpdates}}
 
latest releases of virtualbox have a volatile NVRAM and this makes an EFI guest boot troublesome. To workaround this following steps required:
 
latest releases of virtualbox have a volatile NVRAM and this makes an EFI guest boot troublesome. To workaround this following steps required:
 
* remove any CD images (like systemrescuecd) from the VM settings
 
* remove any CD images (like systemrescuecd) from the VM settings

Revision as of 13:49, May 25, 2016

VirtualBox

   Tip

We welcome improvements to this page. To edit this page, Create a Funtoo account. Then log in and then click here to edit this page. See our editing guidelines to becoming a wiki-editing pro.

VirtualBox is a free and open source virtualization 'hypervisor' for x86-based machines. VirtualBox can be installed and run on GNU/Linux and other Operating Systems.

The virtual machines provided by VirtualBox can be used to run a number of guest Operating Systems such as GNU/Linux, Windows, and others.

VirtualBox is available for Funtoo Linux on the arch profiles x86-32bit, x86-64bit and pure-64.

VirtualBox Homepage: https://www.virtualbox.org

Glossary of Terms

TermExplanation
Host OS An install of Funtoo Linux on physical hardware. VirtualBox will be installed to and run from here.
Guest OSThe Operating System that is run within a Virtual Machine provided by VirtualBox. The Guest OS could be Funtoo Linux, another GNU/Linux distribution, Windows, etc.
Guest AdditionsGuest Additions is a collection of applications, libraries and kernel modules/drivers that are installed in your Guest OS. These provide support for graphics, networking, and other features such as file transfer and Guest access to real physical devices such as a USB flash drive.

Host OS Installation

VirtualBox can be installed onto your Host OS - Funtoo Linux - using one of two packages: app-emulation/virtualbox or app-emulation/virtualbox-bin. The latter "-bin" package is a binary (precompiled) copy of VirtualBox. Installing this may be preferable on machines with low computing power.

For a typical install, run

root # emerge --ask app-emulation/virtualbox

Assign VirtualBox Users

Normal non-root users will not be able to use VirtualBox immediately after it has been installed. The Users that are to use VirtualBox must first become a member of the group vboxusers. For example, a user alice is added to vboxusers

root # gpasswd -a alice vboxusers

If currently logged in the User added to vboxusers must first log out before the changes will have an effect.

Load VirtualBox Kernel Modules

VirtualBox requires one or more Linux kernel modules to be loaded on the Host OS (Funtoo Linux) in order to function. As of VirtualBox version 5 these are provided by the package app-emulation/virtualbox-drivers which is installed automatically (as a dependency) when you install app-emulation/virtualbox.

As root load these modules in a terminal

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

Each time the Host machine (Funtoo Linux) is rebooted the modules will be unloaded. The modules can be loaded automatically during system startup via OpenRC (sys-app/openrc). To achieve this, edit the file /etc/conf.d/modules to contain the following line

   /etc/conf.d/modules
modules="vboxdrv vboxnetadp vboxnetflt"

Starting VirtualBox

VirtualBox can be started from a terminal.

user $ virtualbox

In a Desktop Environment, VirtualBox may also be run from a menu entry. Look for the names "VirtualBox" or "Oracle xVM VirtualBox" under menu categories "System" and/or "Emulator".

Funtoo Linux (Host OS) kernel updates

The VirtualBox kernel modules are compiled for the kernel present on the Host, Funtoo Linux. Each time that the Host kernel is updated or changed, the VirtualBox kernel modules must also be rebuilt.

As is typical for most kernel changes or updates, please run

root # emerge --ask @module-rebuild

before running VirtualBox under the new kernel.

If you wish to check that the VirtualBox kernel drivers will be rebuilt in this way, please examine the file /var/lib/module-rebuild/moduledb. For example, using the command grep

user $ grep virtualbox /var/lib/module-rebuild/moduledb
a:1:app-emulation/virtualbox-modules-5.0.20

Guest OS Installation

   Warning

This section is currently under redevelopment.

Install Guest Additions

VirtualBox Guest Additions is a collection of applications, libraries and kernel modules/drivers that are installed in your Guest OS. These provide support for graphics, networking, and other features such as file transfer and Guest access to real physical devices such as a USB flash drive.

Funtoo or Gentoo Linux Guests

Following the successful installation of you Funtoo Linux Guest OS (that is within a Virtual Machine), install the package app-emulation/virtualbox-guest-additions.

root # emerge --ask app-emulation/virtualbox-guest-additions

Next, add your Guest OS Users to the group vboxguest. For example, a user bob is added to vboxguests

root # gpasswd -a bob vboxguests

Now add virtual-box-guest additions to the default runlevel of OpenRC.

root # rc-update add virtualbox-guest-additions default

Without having to reboot you can now start virtualbox-guest-additions within the Funtoo Guest OS with the command

root # rc

Other GNU/Linux Guests

For other GNU/Linux, please refer to VirtualBox documentation.

Microsoft Windows Guests

   Important

This is new information.

VirtualBox Guest Additions are installed in a Windows Guest by mounting a virtual CD-ROM image (.iso) within the guest virtual machine.

In your Host OS Funtoo Linux, confirm the version of VirtualBox installed: For app-emulation/virtualbox

user $ emerge --pretend --quiet app-emulation/virtualbox
[ebuild   R   ] app-emulation/virtualbox-5.0.20

For VirtualBox versions earlier than 5.0 (versions 4.x)

Under the earlier chapter Host OS Installation , install app-emulation/virtualbox (or app-emulation/virtualbox-bin) with the USE flag additions enabled. This will provide the ISO necessary for installing Guest Additions within a Microsoft Windows guest.

For VirtualBox versions 5.0 and above

From version 5.0 the USE flag additions has been removed from the package app-emulation/virtualbox. The Guest Additions ISO required for a Windows-based Guest OS is now provided in a separate package, app-emulation/virtualbox-additions. Install this manually

root # emerge --ask app-emulation/virtualbox-additions
   Warning

The package app-emulation/virtualbox-additions installs the Guest Additions ISO on your Host OS (Funtoo Linux). This is what you mount in a VM with Windows as a Guest OS. The package app-emulation/virtualbox-guest-additions is different. This is the Guest Additions that you install inside of a VM that happens to be a Guest OS of Funtoo Linux or Gentoo Linux.

The two packages perform different tasks so be sure to install the correct package!

Mount the Guest Additions ISO /usr/share/virtualbox/VBoxGuestAdditions.iso inside of your Microsoft Windows guest. Within Windows, browse to and install VirtualBox Guest Additions.

Tips and Tricks

Configure Video within Funtoo Linux Guests

   Important

This section is in need of updates.


Providing USB2, USB3, VRDP and/or PXE Boot ROM to Guest OS

   Important

This section is in need of updates.

Accept PUEL licence

emerge app-emulation/virtualbox-extpack-oracle

Troubleshooting

EFI case

   Important

This section is in need of updates.

latest releases of virtualbox have a volatile NVRAM and this makes an EFI guest boot troublesome. To workaround this following steps required:

  • remove any CD images (like systemrescuecd) from the VM settings
  • start the VM
  • wait for the countdown or press Esc immediately to reach the EFI shell
  • type edit startup.nsh to open the full-screen editor
  • enter "fs0:\EFI\Funtoo Linux [GRUB]\grubx64.efi" (including the double quotes, since the path contains spaces)
  • press CTRL-s (maybe twice) to save and confirm saving by pressing Enter
  • quit editor by pressing CTRL-q
  • type reset to reboot the machine (or kill the VM and boot it using the GUI)
  • wait for the countdown or press Enter to immediately run the startup.nsh script

EFI guests now should properly boot. reference reports: https://www.virtualbox.org/ticket/14279 and https://bugs.funtoo.org/browse/FL-2640