If you need to run VMware Workstation 7.1.6 or Player 3.1.6 (because newer versions require virtualization support in CPU) with recent kernels, you will run into several problems:
- If you use kernel with just two-number version (e.g. 3.11), VMware refuses to compile the kernel modules because it expects three numbers in kernel version (e.g. 3.2.0). This can be solved by patching VMware binary files:
# sed 's/\x83\xe8\x03\x83\xf8\x01\x0f\x96\xc0/\x83\xe8\x02\x83\xf8\x01\x0f\x96\xc0/' -i /usr/lib/vmware/lib/libvmware-modconfig-console.so/libvmware-modconfig-console.so
# sed 's/\x83\xe8\x03\x83\xf8\x01\x0f\x96\xc0/\x83\xe8\x02\x83\xf8\x01\x0f\x96\xc0/' -i /usr/lib/vmware/lib/libvmware-modconfig.so/libvmware-modconfig.so
as described here: https://bbs.archlinux.org/viewtopic.php?pid=974766#p974766 - If you attempt to compile the modules manually, it will fail because they use deprecated kernel functions. This can be solved by applying some patches to the module sources:
- Patch that updates the modules to work with kernel 3.4:
vmware-716-kernel34.patch
from http://blog.errorok.com/2012/07/07/262/
This also includes patch-modules_3.4.0.sh script that does all the work – unpacking, patching, packing the sources back and running compilation. - Patches to vmblock and vmnet for kernel 3.12:
vmblock-7.1.5-3.12.patch
vmnet-7.1.5-3.12.patch
from https://github.com/amitkr/vmware-patches
- Patch that updates the modules to work with kernel 3.4:
- VMware fails to find kernel header files because it searches for
version.h
file at/lib/modules/`uname -r`/build/include/linux/version.h
. This can be easily solved by creating a symlink to the new file location:
ln -s /lib/modules/`uname -r`/build/include/generated/uapi/linux/version.h /lib/modules/`uname -r`/build/include/linux/version.h
I put everything together and created a package of the above patches and modified script that does everything automatically: vmware-patch_for_kernel_3.11.tar.gz
- Make sure you have gcc and kernel headers for the currently running kernel installed:
# aptitude install linux-headers-`uname -r`
- Install VMware:
$ kdesu ./VMware-Player-3.1.6-744570.i386.bundle
or
$ gksu ./VMware-Player-3.1.6-744570.i386.bundle
- Unpack and apply the patches:
$ tar xf vmware-patch_for_kernel_3.11.tar.gz
# cd vmware-patch_for_kernel_3.11
# ./patch-vmware_for_kernel_3.11.sh - Run VMware.
Tested with Debian Wheezy using kernel 3.11 from wheezy-backports.