It took a little digging, but here's at least a temporary fix for VMware module build problem. It involves one fix in the vmware-any-any-update59 patch and one fix in the kernel scripts/Makefile.modpost file.
---cut here--- bash-2.05b# cd /lib/modules/$(uname -r)/build/scripts bash-2.05b# mv Makefile.modpost{,.orig} bash-2.05b# cp -p Makefile.modpost{.orig,} bash-2.05b# vi Makefile.modpost
Find these lines:
--- 51: quiet_cmd_modpost = MODPOST 52: cmd_modpost = scripts/modpost \ 53: $(if $(filter vmlinux,$^),-o,-i) $(objtree)/Module.symvers \ 54: $(filter-out FORCE,$^) ---
delete line 53
bash-2.05b# cd bash-2.05b# tar xzf vmware-any-any-update59.tar.gz bash-2.05b# cd vmware-any-any-update59 bash-2.05b# tar xf vmmon.tar bash-2.05b# cd vmmon-only/linux bash-2.05b# vi hostif_compat.h
Find these lines:
192: #elif defined(CONFIG_X86_4G) || defined(CONFIG_X86_UACCESS_INDIRECT) 193: HostIFGetUserPage(addr, NULL); 194: return 0; 195: #else
Change line 193 to:
HostIFGetUserPage(addr, NULL, NULL);
bash-2.05b# cd ../.. bash-2.05b# tar cf vmmon.tar vmmon-only
bash-2.05b# ./runme.pl Updating /usr/bin/vmware ... Unknown version Sorry, there is no binary patch available for your version of vmware. VMware modules in "/usr/lib/vmware/modules/source" has been updated.
Before running VMware for the first time after update, you need to configure it for your running kernel by invoking the following command: "/usr/bin/vmware-config.pl". Do you want this script to invoke the command for you now? [yes]
Making sure VMware Workstation's services are stopped.
Stopping VMware services: Virtual machine monitor [ OK ] Bridged networking on /dev/vmnet0 [ OK ] Virtual ethernet [ OK ]
Trying to find a suitable vmmon module for your running kernel.
None of VMware Workstation's pre-built vmmon modules is suitable for your running kernel. Do you want this program to try to build the vmmon module for your system (you need to have a C compiler installed on your system)? [yes]
Using compiler "/usr/bin/gcc". Use environment variable CC to override.
What is the location of the directory of C header files that match your running kernel? [/lib/modules/2.6.5-1.322/build/include]
Extracting the sources of the vmmon module.
Building the vmmon module.
Building for VMware Workstation 4.5.x or VMware GSX Server 3.0.0. Using 2.6.x kernel build system. make: Entering directory `/tmp/vmware-config0/vmmon-only' make -C /lib/modules/2.6.5-1.322/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules make[1]: Entering directory `/lib/modules/2.6.5-1.322/build' CC [M] /tmp/vmware-config0/vmmon-only/linux/driver.o CC [M] /tmp/vmware-config0/vmmon-only/linux/hostif.o CC [M] /tmp/vmware-config0/vmmon-only/common/cpuid.o CC [M] /tmp/vmware-config0/vmmon-only/common/hash.o CC [M] /tmp/vmware-config0/vmmon-only/common/memtrack.o CC [M] /tmp/vmware-config0/vmmon-only/common/phystrack.o CC [M] /tmp/vmware-config0/vmmon-only/common/task.o cc1plus: warning: "-Wdeclaration-after-statement" is valid for C/ObjC but not for C++ CC [M] /tmp/vmware-config0/vmmon-only/common/vmx86.o CC [M] /tmp/vmware-config0/vmmon-only/vmcore/compat.o CC [M] /tmp/vmware-config0/vmmon-only/vmcore/compilercheck.o CC [M] /tmp/vmware-config0/vmmon-only/vmcore/moduleloop.o LD [M] /tmp/vmware-config0/vmmon-only/vmmon.o Building modules, stage 2. MODPOST CC /tmp/vmware-config0/vmmon-only/vmmon.mod.o LD [M] /tmp/vmware-config0/vmmon-only/vmmon.ko make[1]: Leaving directory `/lib/modules/2.6.5-1.322/build' cp -f vmmon.ko ./../vmmon.o make: Leaving directory `/tmp/vmware-config0/vmmon-only' The module loads perfectly in the running kernel.
Extracting the sources of the vmnet module.
Building the vmnet module.
Using 2.6.x kernel build system. make: Entering directory `/tmp/vmware-config0/vmnet-only' make -C /lib/modules/2.6.5-1.322/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules make[1]: Entering directory `/lib/modules/2.6.5-1.322/build' CC [M] /tmp/vmware-config0/vmnet-only/driver.o CC [M] /tmp/vmware-config0/vmnet-only/hub.o CC [M] /tmp/vmware-config0/vmnet-only/userif.o CC [M] /tmp/vmware-config0/vmnet-only/netif.o CC [M] /tmp/vmware-config0/vmnet-only/bridge.o CC [M] /tmp/vmware-config0/vmnet-only/procfs.o LD [M] /tmp/vmware-config0/vmnet-only/vmnet.o Building modules, stage 2. MODPOST CC /tmp/vmware-config0/vmnet-only/vmnet.mod.o LD [M] /tmp/vmware-config0/vmnet-only/vmnet.ko make[1]: Leaving directory `/lib/modules/2.6.5-1.322/build' cp -f vmnet.ko ./../vmnet.o make: Leaving directory `/tmp/vmware-config0/vmnet-only' The module loads perfectly in the running kernel.
You have already setup networking.
Would you like to skip networking setup and keep your old settings as they are? (yes/no) [yes]
Do you want this program to automatically configure your system to allow your virtual machines to access the host's filesystem? (yes/no/help) [no]
Starting VMware services: Virtual machine monitor [ OK ] Virtual ethernet [ OK ] Bridged networking on /dev/vmnet0 [ OK ]
The configuration of VMware Workstation 4.5.1 build-7568 for Linux for this running kernel completed successfully.
You can now run VMware Workstation by invoking the following command: "/usr/bin/vmware".
Enjoy,
--the VMware team