VMWare Server 2: Unable to build the vsock module

If you encounter the following error after installing VMWare Server 2.0 RCx to Ubuntu:

Using 2.6.x kernel build system.
make: Entering directory `/root/tmp/vmware-config0/vsock-only'
make -C /lib/modules/2.6.24.4-desktop-1mnb/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/linux-2.6.24.4-desktop-1mnb'
CC [M] /root/tmp/vmware-config0/vsock-only/linux/af_vsock.o
In file included from /root/tmp/vmware-config0/vsock-only/linux/af_vsock.c:92:
/root/tmp/vmware-config0/vsock-only/./include/compat_wait.h:64: error: conflicting types for ‘poll_initwait’
include/linux/poll.h:65: error: previous declaration of ‘poll_initwait’ was here
/root/tmp/vmware-config0/vsock-only/linux/af_vsock.c:260: warning: initialization from incompatible pointer type
/root/tmp/vmware-config0/vsock-only/linux/af_vsock.c: In function ‘__VSockVmciCreate’:
/root/tmp/vmware-config0/vsock-only/linux/af_vsock.c:1789: warning: passing argument 1 of ‘sk_alloc’ makes pointer from integer without a cast
/root/tmp/vmware-config0/vsock-only/linux/af_vsock.c:1789: warning: passing argument 3 of ‘sk_alloc’ makes integer from pointer without a cast
/root/tmp/vmware-config0/vsock-only/linux/af_vsock.c:1789: warning: passing argument 4 of ‘sk_alloc’ makes pointer from integer without a cast
make[2]: *** [/root/tmp/vmware-config0/vsock-only/linux/af_vsock.o] Error 1
make[1]: *** --_module_/root/tmp/vmware-config0/vsock-only-- Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.24.4-desktop-1mnb'
make: *** http://vsock.ko Error 2
make: Leaving directory `/root/tmp/vmware-config0/vsock-only'
Unable to build the vsock module.

fret not since there is a workaround to this. Although this is just a minor inconvenience and your VM will still run fine, you’ll better off fixing it. Read on

The problem is that the 2.6.24 kernel as packaged by Ubuntu 8.04 “hardy” changed how its source code provides certain information. This can be fixed by modifying the vsock module’s source code.

vsock = VM communication interface socket

  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 <linux\/autoconf\.h>//' 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 <linux/autoconf.h>
    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
  8. Now the vsock driver should load up properly. Try entering http://localhost/ui/ in your favorite browser (I supposed it’s Firefox). Tested on Ubuntu 8.04 (Hardy Heron). Now get that virtual server running……

1,859 Comments

  1. Pingback: garbage removal

  2. Pingback: creepypasta meaning

  3. Pingback: cost of renting a dumpster

  4. Pingback: residential dumpster

  5. Pingback: creepypasta wikipedia

  6. Grupo Serval presídios

    Greate post. Keep writing such kind of info on your blog. Im really impressed by it.

    Reply
  7. Pingback: top creepypasta

  8. Pingback: roll off dumpster

  9. Pingback: rent a garbage bin

Leave a Comment

Your email address will not be published. Required fields are marked *