VirtualBox

Version 1 (modified by Michael Thayer, 7 years ago) ( diff )

--

Windows Hosts

Use the packing target of kmk to create out\win.(x86|amd64)\(debug|release)\bin\VirtualBox-*.msi. Use this MSI install package to do a normal install. If installation fails for any reason, use logging with the MSI installer:

msiexec /i VirtualBox-xxxxx.msi /l* install.log

During development it is probably much more useful to run directly from the output directory. In order to do that you need to load the drivers. (For only loading the support driver, substitute load.cmd for loadall.cmd.) Use the following commands with the windows host:

loadall.cmd

For uninstallation:

comregister.cmd -u
loadall.cmd -u

Whenever changes are made to the main API or the driver, you need to repeat the registration and driver loading steps.

When changing files be sure to have first a look in taskmanager if the VBoxSVC and/or VBoxSDS servers are still running. This may happen if VBox didn't terminate correctly.
A quicker alternative is to get pskill from http://www.sysinternals.com/Utilities/PsKill.html and simply kill VBoxSVC and VBoxSDS when uncertain whether they are running or not:

pskill VBoxSVC
pskill VBoxSDS

If you don't want to debug assertions, you can start VirtualBox with:

set VBOX_ASSERT=none
set VBOX_LOG=...
set VBOX_LOG_FLAGS=time thread buffered

Linux Hosts

If you want to get started up with a minimum of fuss and learning curve, execute ./loadall.sh from the build folder. This will do the following:

  • Put kernel modules using the current local source code in place so that they are automatically loaded at boot (for the current kernel only).
  • Set up automatic device node creation, including ownership and permissions, using udev.
  • Set up USB pass-through. To use this you need to be a member of the group vboxusers (log out and back in again after joining to make it effective).

You can update the minimal installation by repeating the procedure, or clean it up again by executing ./loadall.sh -u.

Geting a minimal local build going without any form of installation can be done by executing ./load.sh from the build directory. This loads the main support driver and nothing else. You can repeat this after changes or updates to the module source code. The module can be removed again with ./load.sh -u. In this case you need to take care of udev rules and/or device nodes yourself.

SELinux hosts (e.g. Oracle Linux, Fedora): It might be necessary to disable SELinux if you see messages like nsNativeComponentLoader: SelfRegisterDll(VBoxC.so) Load FAILED with error: /root/src/vbox/out/linux.amd64/debug/bin/components/../VBoxVMM.so: cannot restore segment prot after reloc: Permission denied

Disable SELinux temporary on a running system by executing

/usr/sbin/setenforce 0

or disable it permanently by editing /etc/selinux/config and changing "enforcing" to "disabled".

Mac OS X Hosts

To get a local build going, load the kernel extensions:

cd VBox/out/darwin.x86/release/dist
sudo ./load.sh

If you get code signing error while running above script execute following command and restart the machine.

sudo nvram boot-args=kext-dev-mode=1

Running the executables in VirtualBox.app/Contents/MacOS works as usual.

Solaris Hosts

To get a local build going without using the install package is as follows:

Copy the VBI interfaces (not required for VirtualBox 3.1 and higher) from the source tree to the appropriate place. Copying both 32-bit and 64-bit doesn't hurt.

cp src/VBox/Runtime/r0drv/solaris/vbi/64/vbi /platform/i86pc/kernel/misc/amd64/vbi
cp src/VBox/Runtime/r0drv/solaris/vbi/32/vbi /platform/i86pc/kernel/misc/vbi

Next, copy and install the appropriate vboxdrv

cp out/solaris.amd64/release/bin/vboxdrv /platform/i86pc/kernel/drv/amd64/vboxdrv
cp out/solaris.x86/release/bin/vboxdrv /platform/i86pc/kernel/drv/vboxdrv

Copy the driver configuration file (no 64/32-bit differences here, the configuration file goes into the 32-bit location)

cp src/VBox/HostDrivers/Support/solaris/vboxdrv.conf /platform/i86pc/kernel/drv

If you have previous installed the module, remove it first before trying to load a new one

su
rem_drv vboxdrv

Load the module(s)

add_drv -m'* 0666 root sys' vboxdrv

Create the devlink

ln -s /devices/pseudo/vboxdrv@0:vboxdrv /dev/vboxdrv

Check if the module is of the right revision using:

modinfo | grep vbox
237 fffffffff7a97748   2900  75   1  vboxflt (VirtualBox NetBow 3.2.1r61839)
238 fffffffff8771000  27e10 107   1  vboxdrv (VirtualBox HostDrv 3.2.1r61839)
...
Note: See TracWiki for help on using the wiki.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette