Note about the 2.6.37xx
There’s a solution to make the kernel modules building under openSUSE factory (11.4) and the kernel 2.6.37
Preparation
download the lastest vmware workstation 7.1.3 (the patch is only for this version)
download the patch vmware-7.1.3-2.6.37-rc5.patch
download the script to patch patch-modules_v62-opensuse.sh
Install
Proceed to the normal installation of workstation, if you have older version, it will be replaced
by running under root account
sh VMware-Workstation-Full-7.1.3-324285.x86_64.bundle
Patch
Now we have to apply the needed patch, just run as root
sh patch-modules_v62-opensuse.sh
Here the output result
sh patch-modules_v62-opensuse.sh (Stripping trailing CRs from patch.) patching file vmci-only/include/compat_semaphore.h (Stripping trailing CRs from patch.) patching file vmmon-only/linux/driver.c (Stripping trailing CRs from patch.) patching file vmnet-only/compat_semaphore.h (Stripping trailing CRs from patch.) patching file vsock-only/shared/compat_semaphore.h Stopping VMware services: VMware USB Arbitrator done VM communication interface socket family done Virtual machine communication interface done Virtual machine monitor done Blocking file system done Using 2.6.x kernel build system. make: Entering directory `/tmp/vmware-root/modules/vmmon-only' make -C /lib/modules/2.6.37-rc5-12-desktop/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= modules make[1]: Entering directory `/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop' make -C ../../../linux-2.6.37-rc5-12 O=/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop/. modules CC [M] /tmp/vmware-root/modules/vmmon-only/linux/driver.o CC [M] /tmp/vmware-root/modules/vmmon-only/linux/iommu.o /tmp/vmware-root/modules/vmmon-only/linux/iommu.c: In function ‘IOMMUUnregisterDeviceInt’: /tmp/vmware-root/modules/vmmon-only/linux/iommu.c:217:17: warning: ignoring return value of ‘device_attach’, declared with attribute warn_unused_result CC [M] /tmp/vmware-root/modules/vmmon-only/linux/hostif.o /tmp/vmware-root/modules/vmmon-only/linux/hostif.c: In function ‘HostIFReadUptimeWork’: /tmp/vmware-root/modules/vmmon-only/linux/hostif.c:2004:37: warning: ‘newUpBase’ may be used uninitialized in this function CC [M] /tmp/vmware-root/modules/vmmon-only/linux/driverLog.o CC [M] /tmp/vmware-root/modules/vmmon-only/common/memtrack.o CC [M] /tmp/vmware-root/modules/vmmon-only/common/vmx86.o CC [M] /tmp/vmware-root/modules/vmmon-only/common/cpuid.o CC [M] /tmp/vmware-root/modules/vmmon-only/common/task.o CC [M] /tmp/vmware-root/modules/vmmon-only/common/hashFunc.o CC [M] /tmp/vmware-root/modules/vmmon-only/common/comport.o CC [M] /tmp/vmware-root/modules/vmmon-only/common/phystrack.o CC [M] /tmp/vmware-root/modules/vmmon-only/vmcore/moduleloop.o LD [M] /tmp/vmware-root/modules/vmmon-only/vmmon.o Building modules, stage 2. MODPOST 1 modules CC /tmp/vmware-root/modules/vmmon-only/vmmon.mod.o LD [M] /tmp/vmware-root/modules/vmmon-only/vmmon.ko make[1]: Leaving directory `/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop' make -C $PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= postbuild make[1]: Entering directory `/tmp/vmware-root/modules/vmmon-only' make[1]: `postbuild' is up to date. make[1]: Leaving directory `/tmp/vmware-root/modules/vmmon-only' cp -f vmmon.ko ./../vmmon.o make: Leaving directory `/tmp/vmware-root/modules/vmmon-only' Built vmmon module Using 2.6.x kernel build system. make: Entering directory `/tmp/vmware-root/modules/vmnet-only' make -C /lib/modules/2.6.37-rc5-12-desktop/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= modules make[1]: Entering directory `/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop' make -C ../../../linux-2.6.37-rc5-12 O=/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop/. modules CC [M] /tmp/vmware-root/modules/vmnet-only/driver.o CC [M] /tmp/vmware-root/modules/vmnet-only/hub.o CC [M] /tmp/vmware-root/modules/vmnet-only/userif.o CC [M] /tmp/vmware-root/modules/vmnet-only/netif.o CC [M] /tmp/vmware-root/modules/vmnet-only/bridge.o CC [M] /tmp/vmware-root/modules/vmnet-only/filter.o CC [M] /tmp/vmware-root/modules/vmnet-only/procfs.o CC [M] /tmp/vmware-root/modules/vmnet-only/smac_compat.o CC [M] /tmp/vmware-root/modules/vmnet-only/smac.o CC [M] /tmp/vmware-root/modules/vmnet-only/vnetEvent.o CC [M] /tmp/vmware-root/modules/vmnet-only/vnetUserListener.o LD [M] /tmp/vmware-root/modules/vmnet-only/vmnet.o Building modules, stage 2. MODPOST 1 modules CC /tmp/vmware-root/modules/vmnet-only/vmnet.mod.o LD [M] /tmp/vmware-root/modules/vmnet-only/vmnet.ko make[1]: Leaving directory `/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop' make -C $PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= postbuild make[1]: Entering directory `/tmp/vmware-root/modules/vmnet-only' make[1]: `postbuild' is up to date. make[1]: Leaving directory `/tmp/vmware-root/modules/vmnet-only' cp -f vmnet.ko ./../vmnet.o make: Leaving directory `/tmp/vmware-root/modules/vmnet-only' Built vmnet module Using 2.6.x kernel build system. make: Entering directory `/tmp/vmware-root/modules/vmblock-only' make -C /lib/modules/2.6.37-rc5-12-desktop/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= modules make[1]: Entering directory `/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop' make -C ../../../linux-2.6.37-rc5-12 O=/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop/. modules CC [M] /tmp/vmware-root/modules/vmblock-only/linux/filesystem.o CC [M] /tmp/vmware-root/modules/vmblock-only/linux/dentry.o CC [M] /tmp/vmware-root/modules/vmblock-only/linux/stubs.o CC [M] /tmp/vmware-root/modules/vmblock-only/linux/dbllnklst.o CC [M] /tmp/vmware-root/modules/vmblock-only/linux/file.o CC [M] /tmp/vmware-root/modules/vmblock-only/linux/block.o CC [M] /tmp/vmware-root/modules/vmblock-only/linux/module.o CC [M] /tmp/vmware-root/modules/vmblock-only/linux/super.o CC [M] /tmp/vmware-root/modules/vmblock-only/linux/inode.o CC [M] /tmp/vmware-root/modules/vmblock-only/linux/control.o LD [M] /tmp/vmware-root/modules/vmblock-only/vmblock.o Building modules, stage 2. MODPOST 1 modules CC /tmp/vmware-root/modules/vmblock-only/vmblock.mod.o LD [M] /tmp/vmware-root/modules/vmblock-only/vmblock.ko make[1]: Leaving directory `/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop' make -C $PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= postbuild make[1]: Entering directory `/tmp/vmware-root/modules/vmblock-only' make[1]: `postbuild' is up to date. make[1]: Leaving directory `/tmp/vmware-root/modules/vmblock-only' cp -f vmblock.ko ./../vmblock.o make: Leaving directory `/tmp/vmware-root/modules/vmblock-only' Built vmblock module Using 2.6.x kernel build system. make: Entering directory `/tmp/vmware-root/modules/vmci-only' make -C /lib/modules/2.6.37-rc5-12-desktop/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= modules make[1]: Entering directory `/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop' make -C ../../../linux-2.6.37-rc5-12 O=/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop/. modules CC [M] /tmp/vmware-root/modules/vmci-only/linux/driver.o CC [M] /tmp/vmware-root/modules/vmci-only/linux/driverLog.o CC [M] /tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciDatagram.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciDriver.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciDs.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciContext.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciHashtable.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciEvent.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciQueuePair.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciGroup.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciResource.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciProcess.o LD [M] /tmp/vmware-root/modules/vmci-only/vmci.o Building modules, stage 2. MODPOST 1 modules CC /tmp/vmware-root/modules/vmci-only/vmci.mod.o LD [M] /tmp/vmware-root/modules/vmci-only/vmci.ko make[1]: Leaving directory `/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop' make -C $PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= postbuild make[1]: Entering directory `/tmp/vmware-root/modules/vmci-only' make[1]: `postbuild' is up to date. make[1]: Leaving directory `/tmp/vmware-root/modules/vmci-only' cp -f vmci.ko ./../vmci.o make: Leaving directory `/tmp/vmware-root/modules/vmci-only' Built vmci module Using 2.6.x kernel build system. make: Entering directory `/tmp/vmware-root/modules/vsock-only' make -C /lib/modules/2.6.37-rc5-12-desktop/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= modules make[1]: Entering directory `/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop' make -C ../../../linux-2.6.37-rc5-12 O=/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop/. modules CC [M] /tmp/vmware-root/modules/vsock-only/linux/af_vsock.o /tmp/vmware-root/modules/vsock-only/linux/af_vsock.c: In function ‘VSockVmciStreamConnect’: /tmp/vmware-root/modules/vsock-only/linux/af_vsock.c:3172:4: warning: case value ‘255’ not in enumerated type ‘socket_state’ CC [M] /tmp/vmware-root/modules/vsock-only/linux/vsockAddr.o CC [M] /tmp/vmware-root/modules/vsock-only/linux/util.o CC [M] /tmp/vmware-root/modules/vsock-only/linux/stats.o CC [M] /tmp/vmware-root/modules/vsock-only/linux/notify.o CC [M] /tmp/vmware-root/modules/vsock-only/driverLog.o LD [M] /tmp/vmware-root/modules/vsock-only/vsock.o Building modules, stage 2. MODPOST 1 modules CC /tmp/vmware-root/modules/vsock-only/vsock.mod.o LD [M] /tmp/vmware-root/modules/vsock-only/vsock.ko make[1]: Leaving directory `/usr/src/linux-2.6.37-rc5-12-obj/x86_64/desktop' make -C $PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= postbuild make[1]: Entering directory `/tmp/vmware-root/modules/vsock-only' make[1]: `postbuild' is up to date. make[1]: Leaving directory `/tmp/vmware-root/modules/vsock-only' cp -f vsock.ko ./../vsock.o make: Leaving directory `/tmp/vmware-root/modules/vsock-only' Built vsock module Starting VMware services: VMware USB Arbitrator done Virtual machine monitor done Virtual machine communication interface done VM communication interface socket family done Blocking file system done Virtual ethernet done Shared Memory Available done All done, you can now run VMWare WorkStation. Modules sources backup can be found in the '/usr/lib/vmware/modules/source-workstation7.1.3-2010-12-13-19:07:07-backup' directory
References
vmware community post
vmware community thread
Mark D Bernstein aka InitiaZero for providing the script and patch by email and having ping me about it
Enjoy, and thanks to people having done the crappy job before.