Junk Food for the Brain

Open Source and Awesomesauce :)

How to Install Virtual Box 3.0 in Fedora 11 32 Bit

| Comments

When trying to install VirtualBox 3.0 in Fedora 11 32bit, you may encounter this error:-

[root@atreides ~]# rpm -ivh VirtualBox-2.2.4_47978_fedora11-1.i586.rpm 
Preparing...                ########################################### [100%]
   1:VirtualBox             ########################################### [100%]  
Creating group 'vboxusers'. VM users must be member of that group!  
No precompiled module for this kernel found -- trying to build one. Messages
emitted during module compilation will be logged to /var/log/vbox-install.log.  
Compilation of the kernel module FAILED! VirtualBox will not start until this
problem is fixed. Please consult /var/log/vbox-install.log to find out why the
kernel module does not compile. Most probably the kernel sources are not found.
Install them and execute  
  /etc/init.d/vboxdrv setup  
as root.

This happens even when you have the kernel-devel rpm package installed already.

The short:- Your kernel is most probably a PAE kernel, so just yum install kernel-PAE-devel.i686 and then run /etc/init.d/vboxdrv setup. You can then run VirtualBox as usual.
The long:-
Further investigating, I tailed the /var/log/vbox-install.log file, which gave this error :-

[root@atreides ~]# tail /var/log/vbox-install.log
** Compiling vboxdrv
Makefile:145: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR= and run Make again.  Stop.

I found it kind of weird, since I have already installed the kernel-devel rpm. So I decided to check my kernel version with this command:-

[root@atreides ~]# uname -a
Linux atreides.dune 2.6.29.5-191.fc11.i686.PAE #1 SMP Tue Jun 16 23:19:53 EDT 2009 i686 i686 i386 GNU/Linux

After reading up further, I saw this in the Fedora 11 Release Notes:- 3.1. x86 Specifics for Fedora By default, the PAE kernel is used on 32-bit hardware, where supported by the hardware.

My CPU supports PAE, so by default the kernel-PAE rpm is installed. I checked this by using the following command:-

[root@atreides ~]# rpm -qa | grep kernel
kernel-PAE-2.6.29.4-167.fc11.i686
kernel-firmware-2.6.29.5-191.fc11.noarch
kernel-PAE-2.6.29.5-191.fc11.i686
kernel-devel-2.6.29.5-191.fc11.i586
kerneloops-0.12-5.fc11.i586
kernel-headers-2.6.29.5-191.fc11.i586

You can see that kernel-PAE-2.6.29.4-167.fc11.i686 and kernel- PAE-2.6.29.5-191.fc11.i686 is installed.

Doing a yum search kernel-PAE shows this:-

[raja@atreides ~]$ yum search kernel-PAE
Loaded plugins: fastestmirror, presto, refresh-packagekit
========================================= Matched: kernel-PAE =========================================
kmod-iscsitarget-PAE.i686 : Metapackage which tracks in iscsitarget kernel module for newest kernel-PAE
kernel-PAE.i686 : The Linux kernel compiled for PAE capable machines
kernel-PAE-devel.i686 : Development package for building kernel modules to match the PAE kernel
kernel-PAEdebug.i686 : The Linux kernel compiled with extra debugging enabled for PAE capable machines
kernel-PAEdebug-devel.i686 : Development package for building kernel modules to match the PAEdebug
                           : kernel
kmod-VirtualBox-OSE-PAE.i686 : Metapackage which tracks in VirtualBox-OSE kernel module for newest
                             : kernel-PAE
kmod-blcr-PAE.i686 : Metapackage which tracks in blcr kernel module for newest kernel-PAE
kmod-em8300-PAE.i686 : Metapackage which tracks in em8300 kernel module for newest kernel-PAE
kmod-kqemu-PAE.i686 : Metapackage which tracks in kqemu kernel module for newest kernel-PAE
kmod-ndiswrapper-PAE.i686 : Metapackage which tracks in ndiswrapper kernel module for newest kernel-PAE
kmod-nvidia-173xx-PAE.i686 : Metapackage which tracks in nvidia-173xx kernel module for newest
                           : kernel-PAE
kmod-nvidia-PAE.i686 : Metapackage which tracks in nvidia kernel module for newest kernel-PAE
kmod-open-vm-tools-PAE.i686 : Metapackage which tracks in open-vm-tools kernel module for newest
                            : kernel-PAE
kmod-rt2860-PAE.i686 : Metapackage which tracks in rt2860 kernel module for newest kernel-PAE
kmod-rt2870-PAE.i686 : Metapackage which tracks in rt2870 kernel module for newest kernel-PAE
kmod-rt3070-PAE.i686 : Metapackage which tracks in rt3070 kernel module for newest kernel-PAE
kmod-slmodem-PAE.i686 : Metapackage which tracks in slmodem kernel module for newest kernel-PAE
kmod-sysprof-PAE.i686 : Metapackage which tracks in sysprof kernel module for newest kernel-PAE
kmod-wl-PAE.i686 : Metapackage which tracks in wl kernel module for newest kernel-PAE

Now you know that the kernel-sources for the PAE kernel is kernel-PAE- devel.i686. So, I’d hav to install that instead.

[root@atreides ~]# yum install kernel-PAE-devel.i686
Loaded plugins: fastestmirror, presto, refresh-packagekit
Loading mirror speeds from cached hostfile
 * fedora: mirror.oscc.org.my
 * rpmfusion-free: mirror.transact.net.au
 * rpmfusion-free-updates: mirror.transact.net.au
 * rpmfusion-nonfree: mirror.transact.net.au
 * rpmfusion-nonfree-updates: mirror.transact.net.au
 * updates: mirror.oscc.org.my
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package kernel-PAE-devel.i686 0:2.6.29.5-191.fc11 set to be installed
--> Finished Dependency Resolution  
Dependencies Resolved  
=======================================================================================================
 Package                      Arch             Version                       Repository           Size
=======================================================================================================
Installing:
 kernel-PAE-devel             i686             2.6.29.5-191.fc11             updates             6.2 M  
Transaction Summary
=======================================================================================================
Install      1 Package(s)         
Update       0 Package(s)         
Remove       0 Package(s)           
Total download size: 6.2 M
Is this ok [y/N]: y
Downloading Packages:
Setting up and reading Presto delta metadata
Processing delta metadata
Package(s) data still to download: 6.2 M
kernel-PAE-devel-2.6.29.5-191.fc11.i686.rpm                                     | 6.2 MB     08:33     
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : kernel-PAE-devel-2.6.29.5-191.fc11.i686                                         1/1   
Installed:
  kernel-PAE-devel.i686 0:2.6.29.5-191.fc11                                                              
Complete!

Once done, run /etc/init.d/vboxdrv setup as root, and your done.

root@atreides ~]# /etc/init.d/vboxdrv setup
Stopping VirtualBox kernel module                          [  OK  ]
Recompiling VirtualBox kernel module                       [  OK  ]
Starting VirtualBox kernel module                          [  OK  ]

You can now run VirtualBox. :)