Build host vmware kernel modules

From VI-Toolkit
Revision as of 06:28, 5 February 2009 by Wila (talk | contribs) (Updated to force remove of the not_configured file as per http://communities.vmware.com/message/1162033)
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 -f /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