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
--
-Paul Iadonisi
Senior System Administrator
Red Hat Certified Engineer / Local Linux Lobbyist
Ever see a penguin fly? -- Try Linux.
GPL all the way: Sell services, don't lease secrets