April 18, 2010: I updated the patch with the modifications suggested by Andrea. The problems in building the vmci module on the x86_64 architecture are fixed now.

I released a new patch for VMware Server 2.0.2 which brings some improvements, adds support for newer versions of the Linux kernel and fixes all the problems mentioned in the previous post. The patch was made to be the least intrusive as possible in the VMware Server 2.0.2 code. It was tested on Ubuntu 9.10 (2.6.31-17-generic) and Fedora 12 (2.6.32.10-90.fc12).

The patch has the following features:

  • Add support for versions of the Linux Kernel that implement COW credentials.
  • Add support for net_device_ops structure.
  • Add support for netdev_priv().
  • Remove references to init_mm structure by removing APIC support for 2.6.25 and later (APIC code currently uses the macro pgd_offset_k).
  • Suppress GCC warnings.
  • Fix the vsock use of exported symbols from from vmci module problem.
  • Fix the ether_setup() (misplaced) problem introduced by the previous patch (the NAT network connection problem).
  • Fix other known issues.

The following are instructions on how to apply the patch:

Download the VMware Server (VMware-server-2.0.2-203138.i386.tar.gz).

Download the VMware Server 2 update patch #2:

$ wget -N http://risesecurity.org/~rcvalle/VMware-server-2.0.2-203138-update-2.patch

Extract VMware Server:

$ tar -xzf VMware-server-2.0.2-203138.i386.tar.gz

Extract VMware Server modules:

Change working directory to vmware-server-distrib/lib/modules/source/
$ tar -xf vmci.tar
$ tar -xf vmmon.tar
$ tar -xf vmnet.tar
$ tar -xf vsock.tar

Apply the patch:

Change working directory to vmware-server-distrib/
patch -p1 < ../VMware-server-2.0.2-203138-update-2.patch

Archive VMware Server modules again:

Change working directory to vmware-server-distrib/lib/modules/source/
$ rm -f vmci.tar
$ rm -f vmmon.tar
$ rm -f vmnet.tar
$ rm -f vsock.tar
$ tar -cf vmci.tar vmci-only/
$ tar -cf vmmon.tar vmmon-only/
$ tar -cf vmnet.tar vmnet-only/
$ tar -cf vsock.tar vsock-only/

Run installer script as root:

Change working directory to vmware-server-distrib/
$ sudo ./vmware-install.pl

Note for Ubuntu users:

When asked for the current administrative user for VMware Server, specify your user as a different administrator.

Note about VMware Remote Console Plug-in:

The VMware Remote Console Plug-in does not work properly on Ubuntu 9.10, Fedora 12 and other newer distributions. A workaround for this is to set the environment variable VMWARE_USE_SHIPPED_GTK before running the VMware Remote Console Plug-in. To set this environment variable at login time, add the following line to your ~/.profile:

export VMWARE_USE_SHIPPED_GTK=yes