Build host vmware kernel modules

From VI-Toolkit
Revision as of 07:36, 15 December 2008 by Wila (talk | contribs) (added SUSE lines)
Jump to navigation Jump to search

Integrated modules build script sometimes fails

The kernel modules script on linux hosts VMware Player version 2.5 and VMware Workstation 6.5.x has received a graphical user interface. Because of this it provides a much smoother end user experience when the user upgrades to a newer version of the kernel. Unless there's a dependency on which it breaks. In that case you might get the error

VMware Player is installed, but it has not been (correctly) configured for your running kernel. To (re-)configure it, your system administrator must find and run "vmware-config.pl"...

Unfortunately there is no vmware-config.pl script anymore, that's a left over from the previous version.

Lucky enough Noel on the vmware forums has created a script to resolve this which can be found here 6.5 Segfault in 6.5 beta

The solution

You must run the following script with root privileges

#!/bin/bash

cd ~
rm -rf vmware-modules
mkdir vmware-modules
cd vmware-modules
find /usr/lib/vmware/modules/source -name "*.tar" -exec tar xf '{}' \;
mkdir -p /lib/modules/`uname -r`/misc
rm -f /lib/modules/`uname -r`/misc/{vmblock.ko,vmci.ko,vmmon.ko,vmnet.ko,vsock.ko}
cd vmblock-only; make; cd ..; cp -p vmblock.o /lib/modules/`uname -r`/misc/vmblock.ko
cd vmci-only; make; cd ..; cp -p vmci.o /lib/modules/`uname -r`/misc/vmci.ko
cd vmmon-only; make; cd ..; cp -p vmmon.o /lib/modules/`uname -r`/misc/vmmon.ko
cd vmnet-only; make; cd ..; cp -p vmnet.o /lib/modules/`uname -r`/misc/vmnet.ko
#cd vmppuser-only; make; cd ..; cp -p vmppuser.o /lib/modules/`uname -r`/misc/vmppuser.ko
cd vsock-only; make; cd ..; cp -p vsock.o /lib/modules/`uname -r`/misc/vsock.ko
depmod -a
service vmware restart
#If a new install, remove the not_configured tag or the error will keep coming back
rm /etc/vmware/not_configured 

Preconditions for the script to work

You will have to get your kernel-headers before hand. On Ubuntu or debian based systems execute this:

sudo apt-get install linux-headers-$(uname -r)

On fedora / Red Hat based systems:

su -c "yum install kernel-devel"

On SUSE / openSUSE use YaST to fetch the latest linux-kernel-headers

Troubleshooting

After the manual compile your folder with kernel modules should look like this:

$ ls -l /lib/modules/`uname -r`/misc
total 376
-rw-r--r-- 1 root root 36509 2008-12-07 01:07 vmblock.ko
-rw-r--r-- 1 root root 95745 2008-12-07 01:07 vmci.ko
-rw-r--r-- 1 root root 118128 2008-12-07 01:07 vmmon.ko
-rw-r--r-- 1 root root 79897 2008-12-07 01:07 vmnet.ko
-rw-r--r-- 1 root root 34834 2008-12-07 01:07 vsock.ko