You may in fact hit a couple of snags. The first one is that you are required to have the FreeBSD kernel source installed or else it will stop while trying to compile the network drivers.
The second is an incompatibility between VirtualBox and the newer kernels which results in the following error during compilation;
error: 'D_PSEUDO' undeclared here (not in a function)
Perform the following steps as the root user to get Vbox installed.
First, you need to install the kernel sources and rebuild your world and kernel;
Once done, login again as root and change to the directory for the virtualbox-ose port;
cd /usr/ports/emulators/virtualbox-ose
This port will install virtualbox-ose-kmod as a dependency which is where the error causing the error shown above is hiding.
We need to edit one of the source files before we attempt to compile;
# vi ../virtualbox-ose-kmod/work/VirtualBox-4.0.12_OSE/out/freebsd.amd64/release/bin/src/vboxdrv/freebsd/SUPDrv-freebsd.c
On or about line 104 you will see the following C code;
#if __FreeBSD_version > 800061
.d_flags = D_PSEUDO | D_TRACKCLOSE | D_NEEDMINOR,
#else
.d_flags = D_PSEUDO | D_TRACKCLOSE,
#endif
Change it, removing the D_PSUEDO flag so it looks like this;
#if __FreeBSD_version > 800061
.d_flags = D_TRACKCLOSE | D_NEEDMINOR,
#else
.d_flags =
D_PSEUDO |
D_TRACKCLOSE,
#endif
Now, we are ready to do a normal build of virtualbox;
make install clean
Use these configure options
To allow VirtualBox access to hardware such as CD/DVD drives you should also install HALD;
Create /boot/loader.conf and add these lines;
Add these options to your /etc/rc.conf;
Add these lines to /etc/devfs.conf:
Add all users that need virtualbox to the vboxusers group:
Finally, reboot the machine;
cd /usr/ports/sysutils/hal
make install clean
Create /boot/loader.conf and add these lines;
atapicam_load="YES"
vboxdrv_load="YES"
Add these options to your /etc/rc.conf;
vboxnet_enable="YES" # Enable virtualbox
hald_enable="YES" # Required to allow virtualbox to access CDROM device
dbus_enable="YES" # Required by hald
Add these lines to /etc/devfs.conf:
own vboxnetctl root:vboxusers
perm vboxnetctl 0660
perm cd0 0660
perm xpt0 0660
perm pass0 0660
Add all users that need virtualbox to the vboxusers group:
# pw groupmod vboxusers -m username
Finally, reboot the machine;
init 6
No comments:
Post a Comment