Fixing VSOCK module issue in VMware-Server 2.0

I have installed Vmware-Server 2.0 on Ubuntu 9.04 (Jaunty).
While executing vmware-config.pl I encountered the following error :

None of the pre-built vsock modules for VMware Server is suitable for your
running kernel. Do you want this program to try to build the vsock module for
your system (you need to have a C compiler installed on your system)? [yes]

Extracting the sources of the vsock module.

Building the vsock module.

Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config0/vsock-only’
make -C /lib/modules/2.6.27-7-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.27-7-generic’
CC [M] /tmp/vmware-config0/vsock-only/linux/af_vsock.o
CC [M] /tmp/vmware-config0/vsock-only/linux/driverLog.o
CC [M] /tmp/vmware-config0/vsock-only/linux/util.o
/tmp/vmware-config0/vsock-only/linux/util.c: In function ‘VSockVmciLogPkt’:
/tmp/vmware-config0/vsock-only/linux/util.c:157: warning: format not a string literal and no format arguments
CC [M] /tmp/vmware-config0/vsock-only/linux/vsockAddr.o
LD [M] /tmp/vmware-config0/vsock-only/vsock.o
Building modules, stage 2.
MODPOST 1 modules
WARNING: “VMCIDatagram_CreateHnd” [/tmp/vmware-config0/vsock-only/vsock.ko] undefined!
WARNING: “VMCIDatagram_DestroyHnd” [/tmp/vmware-config0/vsock-only/vsock.ko] undefined!
WARNING: “VMCI_GetContextID” [/tmp/vmware-config0/vsock-only/vsock.ko] undefined!
WARNING: “VMCIDatagram_Send” [/tmp/vmware-config0/vsock-only/vsock.ko] undefined!
CC /tmp/vmware-config0/vsock-only/vsock.mod.o
LD [M] /tmp/vmware-config0/vsock-only/vsock.ko
make[1]: Leaving directory `/usr/src/linux-headers-2.6.27-7-generic’
cp -f vsock.ko ./../vsock.o
make: Leaving directory `/tmp/vmware-config0/vsock-only’
Unable to make a vsock module that can be loaded in the running kernel:
insmod: error inserting ‘/tmp/vmware-config0/vsock.o’: -1 Unknown symbol in module
There is probably a slight difference in the kernel configuration between the
set of C header files you specified and your running kernel. You may want to
rebuild a kernel based on that directory, or specify another directory.

The VM communication interface socket family is used in conjunction with the VM
communication interface to provide a new communication path among guests and
host. The rest of this software provided by VMware Server is designed to work
independently of this feature. If you wish to have the VSOCK feature you can
install the driver by running vmware-config.pl again after making sure that
gcc, binutils, make and the kernel sources for your running kernel are
installed on your machine. These packages are available on your distribution’s
installation CD.
[ Press the Enter key to continue.]

VSOCK = VM Communication Interface Socket.

Here are the steps which I did to fix vsock module problem.

  1. The first thing to do is to unpack the vsock source:
    $ tar xvf /usr/lib/vmware/modules/source/vsock.tar
  2. Change some of its auto-configuration.
    $ cd vsock-only
    $ sed -i 's/^\#include //' autoconf/*.c
  3. The command above will traverse the autoconf folder and go through all the files that matches *.c and remove all lines that looks like:
    #include
    these are part of the test file that the build system uses to figure out what features are available:
  4. Build the code:
    $ make
  5. Copy the driver over where VMware’s startup scripts can find it:
    $ sudo cp vsock.o /lib/modules/$(uname -r)/misc
    $ sudo ln -s vsock.o /lib/modules/$(uname -r)/misc/vsock.ko
  6. Create the dependency module so that the correct module dependencies will be available after booting the system
    $ sudo depmod -a
  7. Now shut down all your running VMs and restart VMware’s services:
    For Ubuntu/Debian
    $ sudo invoke-rc.d vmware restart
    or
    For Fedora/RedHat (or derivatives)
    $ sudo /sbin/service vmware restart

Now the vsock driver should load properly. Try running http://localhost:8222 on your favourite browser. You can see the VMware UI. Enjoy !

Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: