Changes

Jump to: navigation, search

Package:VirtualBox

6,112 bytes added, 2 years ago
no edit summary
<code>VirtualBox</code> is an application {{Ebuild|Summary=A desktop virtualization package from Oracle Corporation that allows you to run a guest Ooperating system (Linux, Windows or other) on your Linux system.|CatPkg=app-emulation/virtualbox}}'''VirtualBox''' is a free and open source [https://www.wikipedia.org/wiki/Virtualization virtualization] '[https://www.wikipedia.org/wiki/Hypervisor hypervisor]' for x86-based machines. VirtualBox can be installed and run on GNU/Linux and other Operating Systems. The [https:/S inside /en.wikipedia.org/wiki/Virtual_machine virtual machines] provided by VirtualBox can be used to run a host Onumber 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:/S/www.virtualbox.org
== Glossary of Terms ==
:;{{TableStart}}{{2ColHead|Term|Explanation}}{{2Col|'''''Host O/S : system running OS''''' |An install of Funtoo Linux on computer you are actually on;physical hardware. VirtualBox will be installed to and run from here.}}:;{{2Col|'''''Guest O/S : system indtalled OS'''''|The 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.}}:;{{2Col|'''''Guest Additions'''''|''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.}}{{TableEnd}} == 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. For a typical install, run{{console|body=###i## 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 {{c|vboxusers}}. For example, a user ''alice'' is added to {{c|vboxusers}} {{console|body=###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. === 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 for }} which is installed automatically (as a dependency) when you install app-emulation/virtualbox. As ''root '' load these modules in a terminal{{console|body=###i## modprobe vboxdrv###i## modprobe vboxnetadp###i## 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 {{f|/etc/conf.d/modules}} to contain the Guest Ofollowing line{{file|name=/etc/Sconf.d/modules|body=modules="vboxdrv vboxnetadp vboxnetflt"}}
== Versions of = Starting VirtualBox ===VirtualBox can be started from a terminal.{{console|body=$##i## virtualbox}}
In a Desktop Environment, VirtualBox is available in two versions :may also be run from a menu entry. Look for the names "VirtualBox" or "Oracle xVM VirtualBox" under menu categories "System" and/or "Emulator".
# '''Source based package''' : app-emulation/virtualbox;=== Funtoo Linux (Host OS) kernel updates ===# '''Binary package''' : app-emeulation/virtualbox-binThe 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.
Binary package contains extensions which are not available with the source one. When we install the source based packageAs is typical for most kernel changes or updates, we must refer to please run {{console|body=###i## emerge --ask @module-rebuild}}''before'' running VirtualBox under the USE flags list hereafternew kernel.
== USE flags ==If you wish to check that the VirtualBox kernel drivers will be rebuilt in this way, please examine the file {{f|/var/lib/module-rebuild/moduledb}}. For example, using the command {{c|grep}}
{{console| classbody="wikitable" style="margin-left: 1em; margin-right: 1em;" width=80%! width="20%" | Use flag! width="10%" | Default! width="10%" | Recommended! width="60%" | Description|-| style="text-align:center;" |additions| style="text-align:center;" |Yes| style="text-align:center;" |Yes| Install Guest System Tools ISO.|-| style="text-align:center;" |alsa| style="text-align:center;" |Yes| style="text-align:center;" |Yes| Add support for media-libs$##i## grep virtualbox /var/alsa-lib (Advanced Linux Sound Architecture).|-| style="text-align:center;" |doc| style="text-align:center;" |No| style="text-align:center;" || Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally.|-| style="text-align:center;" |extensions| style="text-align:center;" |No| style="text-align:center;" |Yes| Install extension /module packages.|-| style="text-align:center;" |headless| style="text-align:center;" |No| style="text-align:center;" || Build without any graphic frontend.|-| style="text-align:center;" |java| style="text-align:center;" |No| style="text-align:center;" |No| Add support for Java.|-| style="text-align:center;" |opengl| style="text-align:center;" |Yes| style="text-align:center;" || Add support for OpenGL (3D graphics).|-| style="text-align:center;" |pam| style="text-align:center;" |Yes| style="text-align:center;" |Yes| Add support for PAM (Pluggable Authentication Modules) - DANGEROUS to arbitrarily flip.|-| style="text-align:center;" |pulseaudio| style="text-align:center;" |Yes| style="text-align:center;" || Add support for PulseAudio sound server.|-| style="text-align:center;" |python| style="text-align:center;" |Yes| style="text-align:center;" || Add optional supportrebuild/bindings for the Python language.|-| style="text-align:center;" |python_single_target_python2_7| style="text-align:center;" |Yes| style="text-align:center;" || Build for Python 2.7 only.|-| style="text-align:center;" |python_targets_python2_7| style="text-align:center;" |Yesmoduledb| style="text-align:center;" || Build with Python 2.7|-| style="text-aligna:center;" |qt4| style="text-align1:center;" |Yes| style="textapp-align:center;" |Yes| Add support for the Qt GUIemulation/Application Toolkit version 4.x. No GUI when not set.|-| style="text-align:center;" |sdk| style="text-align:center;" |Yes| style="text-align:center;" || Enable building of SDK.|-| style="text-align:center;" |vboxwebsrv| style="text##r##virtualbox##!r##-align:center;" |No| style="textmodules-align:center;" |No| Build and install the VirtualBox webservice5.|-| style="text-align:center;" |vnc| style="text-align:center;" |No| style="text-align:center;" || Enable VNC (remote desktop viewer) support0.20|}}
{{fancyimportant|Depending on desktop environment, some USE flags may already be set or unset. Set USE flags as per == Guest OS Installation ===== Install Guest Additions ===VirtualBox '''RecommendedGuest Additions''' column when unsetis 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.}}
== Installation ==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 {{fancyimportantc|This tutorial deals with installation of source based packagevboxguest}}.For example, a user ''bob'' is added to {{c|vboxguests}}
<{{console>###i## echo ">|body=app-emulation/virtualbox-extpack-oracle-4.3.8 PUEL" >> /etc/portage/package.license/virtualbox###i## emerge appgpasswd -emulation/virtualboxa bob vboxguest</console> }}
Installation of <code>appNow add virtual-emulation/virtualbox</code> implies <code>appbox-emulation/virtualbox-extpack-oracle</code>. That is why PUEL license must be enabledguest additions to the default runlevel of OpenRC.
{{console|body== Guest Additions ==###i## rc-update add virtualbox-guest-additions default}}
Make sure that user running X session belongs to <code>vboxguest</code> group. Create group when it does not exist. Add user Without having to reboot you can now start virtualbox-guest-additions within the Funtoo Guest OS with the group. That will enable :command{{console|body=###i## rc}}
*Shared clipboard;==== Other GNU/Linux Guests ====*Display resizing;*Seamless mode;*Drag & DropFor other GNU/Linux, please refer to [https://www.virtualbox.org/manual/ch04.html#idp11274368 VirtualBox documentation].
<console>==== Microsoft Windows Guests ====###i## groupadd vboxguest###i## gpasswd VirtualBox Guest Additions are installed in a Windows Guest by mounting a virtual CD-a ''user'' vboxguest</console>ROM image (.iso) within the guest virtual machine.
In your Host OS Funtoo Linux, confirm the version of VirtualBox installed:For {{c|app-emulation/virtualbox}}{{console|body=== Windows Guests ===$##i## emerge --pretend --quiet app-emulation/virtualbox[##g##ebuild##!g## ##y##R##!y## ] ##g##app-emulation/virtualbox-5.0.20##!g##}}
You must enable <code>additions</code> USE flag when you intend to install Windows as a guest O/S'''For VirtualBox versions 4. That will also install the ISO image containing all necessary Windows guest drivrersx (less than 5.0)'''
=== Linux Guests ===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.
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]versions 5.0 and above'''
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== Post Installation ==###i## emerge --ask app-emulation/virtualbox-additions}}
You will not be able to run and use VirtualBox {{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 regular user if Guest OS. The package app-emulation/'''virtualbox-guest-additions''' is different. This is the Guest Additions that you are not install ''inside of a member VM'' that happens to be a Guest OS of the <code>vboxusers</code> groupFuntoo Linux or Gentoo Linux.
<console>###i## gpasswd -a ''user'' vboxusers</console>The two packages perform different tasks so be sure to install the correct package!}}
You must re-log so changes take effectMount 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.
=== Loading Modules Headless ==To be able to use VRDP you have to install {{c|app-emulation/virtualbox-extpack-oracle.}} To verify if extpack installed and usable:{{console|body=###i## VBoxManage list extpacksExtension Packs: 1Pack no. 0: Oracle VM VirtualBox Extension PackVersion: 5.2.6Revision: 120293Edition:Description: USB 2.0 and USB 3.0 Host Controller, Host Webcam, VirtualBox RDP, PXE ROM, Disk Encryption, NVMe.VRDE Module: VBoxVRDPUsable: trueWhy unusable:}}
Required and optional modules must be loaded before launching Create a testvm using this command:{{console|body=###i## VBoxManage createvm --name "testvm"Virtual machine 'testvm' is created.UUID: 7b19dc85-2991-4e6a-b1e9-e8e6704e75b4Settings file: '/root/.VirtualBox/Machines/testvm/testvm. You can do that as vbox'###i## VBoxManage registervm /root or upon boot/.VirtualBox/Machines/testvm/testvm.vbox###i## VBoxManage list vms"testvm" {7b19dc85-2991-4e6a-b1e9-e8e6704e75b4}}}
Specify the hardware configurations of the VM (ioapic is needed for SMP):{{fancynoteconsole|<code>vboxnetadp</code> and <code>vboxnetflt<body=###i## VBoxManage modifyvm testvm --memory 1024 --cpus 4 --ioapic on --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 eth0 --ostype Linux_64}}{{note|Enabling the I/code> are optionalO APIC is required for 64-bit guest operating systems, especially Windows Vista; it is also required if you want to use more than one virtual CPU in a virtual machine.}}
Create disk image:{{console|body==== As root ====###i## VBoxManage createmedium --filename ~/VirtualBox\ VMs/testvm/testvm-disk01.vdi --size 100000%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%Medium created. UUID: 0234cd8e-617a-435b-bed4-9aee99a0f34a}}
<Resize HDD to 50 GB.{{console>|body=###i## modprobe vboxdrvVBoxManage modifymedium ~/VirtualBox\ VMs/testvm/testvm-disk01.vdi --resize 500000%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%Medium created. UUID: 0234cd8e-617a-435b-bed4-9aee99a0f34a}} Add a SCSI controller:###i## modprobe vboxnetadp{{console|body=###i## modprobe vboxnetfltVBoxManage storagectl testvm --name "SATA Controller" --add sata</console>}}
Attach install CD-ROM iso image and disk image:{{console|body==== Upon boot OpenRC ====###i## VBoxManage storageattach "testvm" --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium /root/VirtualBox\ VMs/testvm/testvm-disk01.vdi###i## VBoxManage storageattach "testvm" --storagectl "SATA Controller" --port 1 --device 0 --type dvddrive --medium /root/iso/systemrescuecd-x86-5.1.0.iso}}
Edit <code>/etc/conf.d/modules</code> :{{console|body=###i## VBoxHeadless --startvm "testvm" -v on &}}
<pre>modules="vboxdrv vboxnetadp vboxnetflt"</pre>The above command will launch the VM, as well as VRDE remote desktop server. The remote desktop server is needed to access the headless VM's console. By default, the VRDE server is listening on TCP port 3389.
After install you might want to remove the install CD from the drive like this.{{console|body==== Upon boot systemd ====###i## VBoxManage storageattach "testvm" --storagectl "SATA Controller" --port 1 --device 0 --type dvddrive --medium none}}
<console>
###i## echo 'vboxdrv' >> /etc/modules-load.d/virtualbox.conf
###i## echo 'vboxnetadp' >> /etc/modules-load.d/virtualbox.conf
###i## echo 'vboxnetflt' >> /etc/modules-load.d/virtualbox.conf
</console>
==Tips and Tricks = Kernel Driver ==== Configure Video within Funtoo Linux Guests ==={{note|This section is being developed.}}For Funtoo, Gentoo and other GNU/Linux ''Guest OS'' the [https://ww.wikipedia.org/wiki/X_Window_System X Window System] can be optimized for running within a VirtualBox virtual machine.
Each time In a new kernel is installedFuntoo Linux ''Guest OS'', <code>vboxdrv<modify the file {{f|/code> kernel module must be recompiledetc/portage/[[make. To ensure Portage knows about that, look at <code>conf]]}} to include the following line{{file|name=/varetc/libportage/modulemake.conf|body=VIDEO_CARDS="virtualbox"}}Then, reinstalling the xorg-server and xorg-drivers, will let X.Org work in "Guest OS"{{console|body=###i## emerge x11-rebuildbase/moduledb<xorg-server x11-base/code>. The following record must be present.xorg-drivers}}
<pre>a:1:app-emulation=== Providing USB2, USB3, VRDP and/virtualbox-modules-''version''</pre>or PXE Boot ROM to Guest OS ==={{note|This section is being developed.}}Accept PUEL licence
Running <code>emerge @moduleapp-rebuild<emulation/code> will recompile VirtualBox driver after installation of new kernel.virtualbox-extpack-oracle
It is strongly recommended == Troubleshooting ===== EFI case ===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 install reach the EFI shell* type <code>sysedit startup.nsh</code> to open the full-kernelscreen editor* enter <nowikicode>"fs0:\EFI\Funtoo Linux [GRUB]\grubx64.efi" </code> (including the double quotes, since the path contains spaces)* press <code>CTRL-s</nowikicode> (maybe twice) to save and confirm saving by pressing Enter* quit editor by pressing <code>dkmsCTRL-q</code>. This package keeps track of Linux kernel changes. It recompiles * type <code>vboxdrvreset</code> if necessaryto 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 scriptEFI guests now should properly boot.reference reports: https://www.virtualbox.org/ticket/14279 and https://bugs.funtoo.org/browse/FL-2640
An alternative workaround is to rename the grub EFI binary to take advantage of the EFI default boot behavior. During installation, when installing a boot-loader, do these additional steps:* Create a folder under <code>/boot/EFI</code> called <code>BOOT</code>* Copy <code>/boot/EFI/Funtoo Linux [GRUB]/grubx64.efi</code> to <code>/boot/EFI/BOOT/BOOTX64.EFI</code>[[Category:HOWTOEbuilds]][[Category:TutorialVirtualization]]{{EbuildFooter}}
wiki-staff
387
edits

Navigation menu