How-to: VMware-server – VMware-workstation 5.5 under Ubuntu Feisty

1 minute read

Since Ubuntu 7.04, Feisty Fawn, Ubuntu is using a standard kernel 2.6.20. Because of a few changes in the API, VMware-server and VMware-workstation 5.5 fail to install under Ubuntu 7.04 Feisty Fawn.

This how-to will show the steps to follow in order to get it install.

In this tutorial, I assume that you already know how to install those vmware products. This tutorial will be focus on the steps to follow in order to get vmware modules to compile.

The error people running Ubuntu Feisty Fawn is as follow:

Building the vmmon module.

Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config0/vmmon-only'
make -C /lib/modules/2.6.20-15-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.20-15-generic'
CC [M] /tmp/vmware-config0/vmmon-only/linux/driver.o
In file included from /tmp/vmware-config0/vmmon-only/linux/driver.c:80:
/tmp/vmware-config0/vmmon-only/./include/compat_kernel.h:21: error: expected declaration specifiers or ‘...’ before ‘compat_exit’
/tmp/vmware-config0/vmmon-only/./include/compat_kernel.h:21: error: expected declaration specifiers or ‘...’ before ‘exit_code’
/tmp/vmware-config0/vmmon-only/./include/compat_kernel.h:21: warning: type defaults to ‘int’ in declaration of ‘_syscall1’
make[2]: *** [/tmp/vmware-config0/vmmon-only/linux/driver.o] Error 1
make[1]: *** [_module_/tmp/vmware-config0/vmmon-only] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.20-15-generic'
make: *** [vmmon.ko] Error 2
make: Leaving directory `/tmp/vmware-config0/vmmon-only'
Unable to build the vmmon module.

For more information on how to troubleshoot module-related problems, please
visit our Web site at "http://www.vmware.com/download/modules/modules.html" and
"http://www.vmware.com/support/reference/linux/prebuilt_modules_linux.html".

Execution aborted.

To pass over this error, we are going to edit one of the file from the module source: vmmon.tar. Let’s go to the directory hosting the archive, backup and untar vmmon.tar, and finally edit compat_kernel.h:

cd lib/modules/source/
cp vmmon.tar vmmon.tar.bck
tar -xvf vmmon.tar
vi vmmon-only/include/compat_kernel.h

And change the line with:

static inline _syscall1(int, compat_exit, int, exit_code);

to

/* static inline _syscall1(int, compat_exit, int, exit_code); */

Tar the directory to vmmon.tar:

chmod 755 vmmon.tar
tar -cvf vmmon.tar vmmon-only

Finally, go back to vmware distrib directory:

cd ../../../

Rebuild vmware server/workstation and enjoy :).