VMware Workstation 8.0.1 vs Linux Kernel 3.2.0

The patch attached to this blog post is needed to successfully run VMware Workstation 8.0.1 on the current Linux kernel 3.2.0-rc2. So, it will be needed for the final 3.2 release, too. If you need instructions how to apply the patch please consult my other blog entries. Have fun!


What is the procedure to apply this patch?

Go to the module source directory and untar all archives:

cd /usr/lib/vmware/modules/source
for file in *
tar xvf $file

Apply the patch:

patch -p1 < /path/to/vmware-workstation-8.0.1-kernel-3.2.patch

Pack all archives once again, and get rid of the unpacked directories:

for file in *-only
tar cvf `basename $file -only`.tar $file
rm -rf *-only

Now you can rebuild and load modules:

vmware-modconfig --console --install-all

I get this:

root@dharper6:/usr/lib/vmware/modules/source# vmware-modconfig --console --install-all
Stopping VMware services:
VMware Authentication Daemon 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/3.2.0-7-i5/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
make[1]: Entering directory `/usr/src/linux-headers-3.2.0-7-i5'
CC [M] /tmp/vmware-root/modules/vmmon-only/linux/driver.o
CC [M] /tmp/vmware-root/modules/vmmon-only/linux/driverLog.o
CC [M] /tmp/vmware-root/modules/vmmon-only/linux/hostif.o
CC [M] /tmp/vmware-root/modules/vmmon-only/linux/iommu.o
CC [M] /tmp/vmware-root/modules/vmmon-only/common/apic.o
CC [M] /tmp/vmware-root/modules/vmmon-only/common/comport.o
CC [M] /tmp/vmware-root/modules/vmmon-only/common/cpuid.o
CC [M] /tmp/vmware-root/modules/vmmon-only/common/hashFunc.o
CC [M] /tmp/vmware-root/modules/vmmon-only/common/memtrack.o
CC [M] /tmp/vmware-root/modules/vmmon-only/common/phystrack.o
CC [M] /tmp/vmware-root/modules/vmmon-only/common/task.o
CC [M] /tmp/vmware-root/modules/vmmon-only/common/vmx86.o
CC [M] /tmp/vmware-root/modules/vmmon-only/vmcore/moduleloop.o
/tmp/vmware-root/modules/vmmon-only/linux/iommu.c: In function ‘IOMMU_AdjustMappings’:
/tmp/vmware-root/modules/vmmon-only/linux/iommu.c:180:4: error: implicit declaration of function ‘iommu_found’ [-Werror=implicit-function-declaration]
/tmp/vmware-root/modules/vmmon-only/linux/iommu.c: In function ‘IOMMU_RegisterDevice’:
/tmp/vmware-root/modules/vmmon-only/linux/iommu.c:415:7: error: too few arguments to function ‘iommu_domain_alloc’
include/linux/iommu.h:68:29: note: declared here
cc1: some warnings being treated as errors

make[2]: *** [/tmp/vmware-root/modules/vmmon-only/linux/iommu.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [_module_/tmp/vmware-root/modules/vmmon-only] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.2.0-7-i5'
make: *** [vmmon.ko] Error 2
make: Leaving directory `/tmp/vmware-root/modules/vmmon-only'
Unable to install vmmon
root@dharper6:/usr/lib/vmware/modules/source# uname -r

Thoughts? Ubuntu 11.10 w/ custom kernel.

Huh, can't help you there, I'm not running Ubuntu. Obviously they messed with the kernel source.

Your best bet is to search elsewhere for the help, 'cause I'm sure there are other Ubuntu users with the same problem.

See the solution posted on my blog: http://slackblogs.blogspot.com/2012/01/vmware-workstation-8-and-linux-kernel.html

This works on Ubuntu 12.04 Beta 1.

any idea?

Works fine here. I patched the modules when the kernel was 3.2.0-rc2, and they still compile flawlessly with the final 3.2.0

I used -p0 instead of -p1 in the patch command and then it worked for me.

Even for Workstation 8.0.3 on 3.2.0-24-generic (Ubuntu 12.04 LTS 64bit)
Followed script someone else echoed below, but with -p0 in the patch command.

i try to run the patch but this is what i get

can't find file to patch at input line 4
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
|diff -urN vmnet-orig/compat_netdevice.h vmnet-only/compat_netdevice.h
|--- vmnet-orig/compat_netdevice.h 2011-11-14 07:13:15.000000000 +0100
|+++ vmnet-only/compat_netdevice.h 2011-11-20 23:28:23.000000000 +0100
File to patch: