Virtual Box on My Media Server

2008 Nov 27 at 13:33 » Tagged as :virtualization, wiki,

After using VirtualBox on my desktop for a while I wanted to try it out on my file server. The desktop has a an Intel E6400 CPU but the imagess actually reside on my file server rather than on the desktop itself (I have gigabit ether). I wanted to install VirtualBox on the file server which has an Intel E2180 ( a chip without the vmx flag) to see what the performance would be like.

The installation itself was straight forward, I just used 'rpm -i VirtualBox-2.0.4_38406_fedora9-1.x86_64.rpm' but once installed the application failed to start up. No error message was produced. When that happens the best thing to do is to try executing it from the command line. The the following error was observed:VirtualBox:

supR3HardenedMainGetTrustedMain: dlopen("/usr/lib/virtualbox/VirtualBox.so",) failed: /usr/lib/virtualbox/VirtualBox.so: undefined symbol: _ZN10QStatusBar9showEventEP10QShowEvent

Googling revealed that this is something that happens due to the kernel module not being loaded - which is due to an incompatibility with the kernel version on that machine. The module can be built with  '/etc/init.d/vboxdrv setup' but it complained about not finding the kernel sources even though both the kernel header and the kernel devel packages are installed. Further investigations revealed that the version numbers for both the kernel-devel nd kernel-header packages are different from the kernel iteself. Apparently the last kernel update had gone haywire. No matter it can be easily rectified with a yum update.

After updating , you need to do a reboot and I tried runnig VirtualBox again. Now I recieved a less cryptic error message:

WARNING: The vboxdrv kernel module is not loaded. Either there is no module
available for the current kernel (2.6.27.5-37.fc9.x86_64) or it failed to
load. Please recompile the kernel module and install it by

sudo /etc/init.d/vboxdrv setup

One wonders why this more detailed message wasn't produced the first time around. Recompiling the kernel made no difference anyway. The _ZN10QStatusBar9showEventEP10QShowEvent error still pops up.

There are few posts in the web on this topic. Some of the suggestions are just laughable, they either blame Fedora (even though Debian and Ubuntu users had also complained) or the kernel version (2.6.25). Well mine was 2.6.26 before the kernel update now it's 2.6.27. Besides I have Virtual Box running on my desktop which has the exact same version of Fedora/Linux Kernel and Glibc as the new installation.

What I did find was a post about a similar error which blamed Qt for the problem. Looking closely at the error message, it does look like a Qt function. So lets update Qt (yes the version of Qt in rgw two computers happen to be different too)

Updating Qt didn't work. So I thought to remove the 64 bit VirtualBox rpm and to replace it with the 32bit version. After that the previous error went away, it's place is now taken up by a new one.

VirtualBox: supR3HardenedMainGetTrustedMain: dlopen("/usr/lib/virtualbox/VirtualBox.so",) failed: /usr/lib/virtualbox/VirtualBox.so: undefined symbol: _ZN7QRegionpLERK5QRect

Looking closely at this, I am more than convinced that I am barking up the right tree. QRect is surely a Qt function. I even thought to uninstall the 64 bit version and use the 32 bit version of VirtualBox in it's place because I felt there may be an incompatibility due to the fact that this processor does not have the VMX flag.

I did manage to solve this by first doing 'yum clean all' followed by updating both qt and qt-devel.