vmware with kernel 2.6.20 errors

I upgraded to kubuntu 7.04 (feisty) and wanted to carry on running vmware. To keep it working, you should run vmware-config.pl each time you get a new kernel, this builds the vmware modules for your kernel.

When I did it after the upgrade, I started getting strange errors as it got to compiling the modules, errors like:

error: expected declaration specifiers or ‘...’ before ‘compat_exit’
or
error: ‘CHECKSUM_HW’ undeclared (first use in this function)
or
vmnet-only/procfs.c:33:26: error: linux/config.h: No such file or directory

All of them are fairly easy to fix, do all of these and you will probably have success building vmware on feisty or fedora 7 or {insert your new distro}

vmmon stuff

cd /usr/lib/vmware/modules/source/
sudo tar -xvf vmmon.tar
cd vmmon-only
sudo vi include/compat_kernel.h

Find this:

#define __NR_compat_exit __NR_exit
static inline _syscall1(int, compat_exit, int, exit_code);

and change the static inline ..... line to:

int compat_exit(int exit_code);

Then tar up the vmmon-only directory again.

cd .. #go back to the source directory
tar -cf vmmon.tar vmmon-only

vmnet stuff

Lucky someone has been here before, and made a patch and some lazy instructions: check out  http://nerdbynature.de/bits/2.6.19-rc5/ for the lowdown, otherwise check http://www.vmware.com/community/message.jspa?messageID=512232 on the vmtn forum.

the very easy way

Go here http://platan.vc.cvut.cz/ftp/pub/vmware/ and download the vmware-any-any-update109.tar.gz (version number may change!) updater, untar it and run runme.pl as root - this does everything that needs doing in one easy step.

last bit

For the error complaining of no config.h, just make a fake one :)

touch /usr/src/linux-headers-`uname -r`/include/linux/config.h
Now just run vmware-config.pl (or sudo vmware-config.pl) again and it should go through without complaining.