Thursday, January 8, 2009

VMware Server 1.0.8 on openSUSE 11.1

I decided to upgrade my laptop system from almost "prehistoric" openSuSE 10.1 to the newest version 11.1. It was quite successful but I had to resolve an issue with VMware Server 1.0.8 which I am used to using in my work a lot.

The whole configuration process crashed on vmware kernel modules compilation. The kernel version in new openSUSE is 2.6.27.7. As there aren't precompiled modules for it within version 1.0.8 they need to be recompiled at first. Don't forget to have installed kernel-source, make, gcc and patch packages. Secondly, you need to configure installed kernel sources with make cloneconfig to correspond with the running kernel and platform. Finally, configure VMware Server installation. Everything follows here:
zypper in -y kernel-source make gcc patch
cd /usr/src/linux
make mrproper; make cloneconfig
vmware-config.pl
But the last command produces these errors:
Building the vmmon module.
Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config2/vmmon-only'
make -C /lib/modules/2.6.27.7-9-pae/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/linux-2.6.27.7-9-obj/i386/pae'
make -C ../../../linux-2.6.27.7-9 O=/usr/src/linux-2.6.27.7-9-obj/i386/pae/. modules
CC [M] /tmp/vmware-config2/vmmon-only/linux/driver.o
In file included from /tmp/vmware-config2/vmmon-only/./include/x86.h:20,
from /tmp/vmware-config2/vmmon-only/./include/machine.h:24,
from /tmp/vmware-config2/vmmon-only/linux/driver.h:15,
from /tmp/vmware-config2/vmmon-only/linux/driver.c:49:
/tmp/vmware-config2/vmmon-only/./include/x86apic.h:79:1: warning: "APIC_BASE_MSR" redefined
In file included from include2/asm/fixmap_32.h:29,
from include2/asm/fixmap.h:5,
from include2/asm/apic.h:9,
from include2/asm/smp.h:13,
from /usr/src/linux-2.6.27.7-9/include/linux/smp.h:28,
from /usr/src/linux-2.6.27.7-9/include/linux/topology.h:33,
from /usr/src/linux-2.6.27.7-9/include/linux/mmzone.h:687,
from /usr/src/linux-2.6.27.7-9/include/linux/gfp.h:4,
from /usr/src/linux-2.6.27.7-9/include/linux/kmod.h:22,
from /usr/src/linux-2.6.27.7-9/include/linux/module.h:13,
from /tmp/vmware-config2/vmmon-only/linux/driver.c:12:
include2/asm/apicdef.h:134:1: warning: this is the location of the previous definition
In file included from /tmp/vmware-config2/vmmon-only/./include/machine.h:24,
from /tmp/vmware-config2/vmmon-only/linux/driver.h:15,
from /tmp/vmware-config2/vmmon-only/linux/driver.c:49:
/tmp/vmware-config2/vmmon-only/./include/x86.h:830:1: warning: "PTE_PFN_MASK" redefined
In file included from include2/asm/paravirt.h:7,
from include2/asm/irqflags.h:55,
from /usr/src/linux-2.6.27.7-9/include/linux/irqflags.h:57,
from include2/asm/system.h:11,
from include2/asm/processor.h:17,
from /usr/src/linux-2.6.27.7-9/include/linux/prefetch.h:14,
from /usr/src/linux-2.6.27.7-9/include/linux/list.h:6,
from /usr/src/linux-2.6.27.7-9/include/linux/module.h:9,
from /tmp/vmware-config2/vmmon-only/linux/driver.c:12:
include2/asm/page.h:22:1: warning: this is the location of the previous definition
In file included from /tmp/vmware-config2/vmmon-only/linux/vmhost.h:13,
from /tmp/vmware-config2/vmmon-only/linux/driver.c:71:
/tmp/vmware-config2/vmmon-only/./include/compat_semaphore.h:5:27: error: asm/semaphore.h: No such file or directory
/tmp/vmware-config2/vmmon-only/linux/driver.c:146: error: unknown field 'nopage' specified in initializer
/tmp/vmware-config2/vmmon-only/linux/driver.c:147: warning: initialization from incompatible pointer type
/tmp/vmware-config2/vmmon-only/linux/driver.c:150: error: unknown field 'nopage' specified in initializer
/tmp/vmware-config2/vmmon-only/linux/driver.c:151: warning: initialization from incompatible pointer type
/tmp/vmware-config2/vmmon-only/linux/driver.c: In function 'LinuxDriver_Ioctl':
/tmp/vmware-config2/vmmon-only/linux/driver.c:1670: error: too many arguments to function 'smp_call_function'
make[4]: *** [/tmp/vmware-config2/vmmon-only/linux/driver.o] Error 1
make[3]: *** [_module_/tmp/vmware-config2/vmmon-only] Error 2
make[2]: *** [sub-make] Error 2
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.27.7-9-obj/i386/pae'
make: *** [vmmon.ko] Error 2
make: Leaving directory `/tmp/vmware-config2/vmmon-only'
Unable to build the vmmon module.
The compilation of vmmon module crashed because of incompatibility between the kernel version and available vmmon module. The solution is to download updated version of modules vmware-update-2.6.27-5.5.7-2 and update them:
wget http://www.insecure.ws/warehouse/vmware-update-2.6.27-5.5.7-2.tar.gz
tar zxfv vmware-update-2.6.27-5.5.7-2.tar.gz
cd vmware-update-2.6.27-5.5.7-2
./runme.pl
This update updates all required modules and configuration script vmware-config.pl. After that, the compilation of vmmon module is successful and you can finish the configuration. I hope it will help you.

14 comments:

Anonymous said...

great, I always like to download sources from a site having the name insecure and compile it as a kernel module ;-)

Anonymous said...

yeah great , you still cant start virtual machines though on a x86_64 system

Jan 18 13:46:24 angel kernel: vmmon: Had to deallocate AWE 818 pages from vm driver ffff88005bf0e00

Sheep said...

Thank you. And I have had no problem starting either 32-bit or 64-bit virtual machines on an x86_64 system (Linux ed 2.6.27.7-9-default #1 SMP 2008-12-04 18:10:04 +0100 x86_64 x86_64 x86_64 GNU/Linux)

Anonymous said...

=) works with my Dell Inspiron 700m... thanks

Anonymous said...

Thank you. Works great.

Small business web site design said...

nice post

Anonymous said...

DUDE....YOU...ROCK!
many thanks, and know that I am now running my windows 7 vm under opensuse 11.1 and playing the air guitar for you!

Raul Libório said...

Goooooooood Job MAN!!

NaNaN said...

thanks, you save a lot of my time :-)

Anonymous said...

Excellent, thanks a bunch!

Anonymous said...

Hi !
Your tip saved me a lot of time.
However have you had any problem trying to invoke the vwmare console ?

I do !

~>vmware
/usr/lib/vmware/bin/vmware: symbol lookup error: /usr/lib/libgio-2.0.so.0: undefined symbol: g_thread_gettime
-------------------

VMware-server-1.0.9-156507.i386.rpm

Patch applied and vmware server running correctly

OpenSuSE 11.1 on x86_64 patches applied to date.
Thanks !

Anonymous said...

Cool thanks!

Anonymous said...

It helped mi on UBUNTU 9.04 to.
David, thanx ...

cisco said...

Great blog and nice post I am trying to maintain a list of cute blogs. Thanks and nice collection of blogs. I’m going to have to browse through those. it’s nice I can come and read your blog.
ccna ccent