I've been an avid user of VMware for about 2 years (currently at version 4.5.3 running on SuSE 9.3) and in general it works flawlessly. There are however two nasty problems that require some manual intervention whenever one upgrades a kernel or the VMware package. Both are sparsely documented, which is why I decide to create this page to summarize it here.
So, you've unwrapped the VMware box and eagerly install it on your SuSE box. You run vmware-config.pl - only to be greeted by the following error:
*** Warning: "skb_copy_datagram" [/tmp/vmware-config4/vmnet-only/vmnet.ko] undefined!
...
Unable to make a vmnet module that can be loaded in the running kernel:
insmod: error inserting '/tmp/vmware-config4/vmnet.o': -1 Unknown symbol in module
The problem is due to the incompatibility introduced in the recent kernel versions. You can fix the configuration process by the following not-so-difficult fix:
cp vmnet.tar vmnet.tar.bak
tar xf vmnet.tar
patch -p1 < skb-fix.patch
tar cf vmnet.tar vmnet-only
Once done, you can re-run vmware-config.pl and it should be able to load the vmnet module without a problem.
This problem happens every time I run vmware-config.pl script during the module build satge. The process fails with the following diagnostics:
/bin/sh: scripts/basic/fixdep: No such file or directory
The cause is due to the assumptions about the kernel source layout and file availability that VMware makes. In any case, it is fixed very easily, and, best of all, no patching is required. Just step int /usr/src/linux and run:
make cloneconfig
make modules_prepare
This will fix the problem. Note, however, that you will have to perform this every time the kernel is updated.