VMware Server 2.0.2-x On Ubuntu Server 10.04 With VMware Remote Console Plug-in

Today I will tell you how to set up a new Ubuntu 10.04 server which runs VMware server 2.0.2-x and the VMware Remote Console Plug-in.

My box:

CPU: Intel(R) Celeron(R) D CPU 3.06GHz, 1 core
Memory: 2GB

Firefox 3.6 can not run the VMware Remote Console. On the client, I use Chrome to build virtual machines, then I use the VMware Remote Console Plug-in to run them.

We have four steps:

Step one: Set up a new box running Ubuntu server.
Step two: Register, download, patch, and install VMware.
Step three: Create virtual machines.
Step four: Control remote virtual machines with the VMware Remote Console Plug-in from a client.


Step one: Set up a new box running Ubuntu server

Very easy. If you don't know, look at: http://www.howtoforge.com/perfect-server-ubuntu-10.04-lucid-lynx-ispconfig-3.

After the setup, reboot the box.

Log in and activate the root account:

sudo passwd root

Type in the password for root, I choose: 111111

Log out then log in as root and later we do everything as root, too.

Upgrade the box:

apt-get update
apt-get upgrade -y

Install gcc:

apt-get install -y gcc

Configure a static IP address (I use here):

nano /etc/network/interfaces

Delete everything and replace with:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static

Edit /etc/resolv.conf:

nano /etc/resolv.conf

Delete everything and replace with (make sure you use a valid nameserver; in this example I use, my router, which runs a nameserver as well):


Reboot the box:



Step two: Register, download, patch, install VMware

Log on as root and create /root/vm:

mkdir /root/vm
cd /root/vm

To download VMware, you have to register at: https://www.vmware.com/tryvmware/?p=server20&lp=1. They will send you an email. Follow the instructions in the email, and download and save VMware-server-2.0.2-203138.i386.tar.gz in /root/vm and remember to write down the key for VMware Server for Linux (looks like: XXXXX-XXXXX-XXXXX-XXXXX).

Untar the VMware file:

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

Before we install VMware, we have to patch VMware:

mkdir /root/dev
cd /root/dev

Download five files:

wget http://nerdbynature.de/bits/2.6.32-22/00-vmware-2.6.32_functional.diff.txt
wget http://nerdbynature.de/bits/2.6.32-22/02-vmnet-include.diff.txt.gz
wget http://nerdbynature.de/bits/2.6.32-22/01-vmware-2.6.32_cosmetic.diff.txt
wget http://nerdbynature.de/bits/2.6.32-22/vmware-config.pl.diff.txt
wget http://nerdbynature.de/bits/2.6.32-22/patch-vmware_2.6.3x.sh.txt

Unzip the following file:

gunzip 02-vmnet-include.diff.txt.gz

Change the names of the five files:

mv 00-vmware-2.6.32_functional.diff.txt 00-vmware-2.6.32_functional.diff
mv 01-vmware-2.6.32_cosmetic.diff.txt 01-vmware-2.6.32_cosmetic.diff
mv 02-vmnet-include.diff.txt 02-vmnet-include.diff
mv patch-vmware_2.6.3x.sh.txt patch-vmware_2.6.3x.sh
mv vmware-config.pl.diff.txt vmware-config.pl.diff

Edit the file patch-vmware_2.6.3x.sh:

nano patch-vmware_2.6.3x.sh

Delete everything and replace with:

# (C) 2010 [email protected]
# 00-vmware-2.6.32_functional.diff
# - based on vmware-server-modules-linux-2.6.32.patch
# - see http://communities.vmware.com/message/1389232#1389232
# 01-vmware-2.6.32_cosmetic.diff
# - based on rbihlmeyer's comments in http://communities.vmware.com/thread/232842
# 02-vmnet-include.diff
# - stuff .h and .c files in separate directories, as the other
# modules do it
# vmware-config.pl.diff
# - based on http://communities.vmware.com/message/1398525#1398525
PATCHES="00-vmware-2.6.32_functional.diff 01-vmware-2.6.32_cosmetic.diff 02-vmnet-include.diff"

# unset me!
# DEBUG=echo

if [ -z "$1" -o ! "`ls "$1"/*tar 2>/dev/null | wc -l`" = 4 ]; then
echo "Usage: `basename $0` [vmware-modules-source directory]"
exit 1

cd $SRC
$DEBUG mkdir orig || exit 1
$DEBUG mv *tar orig/

# untar
for t in orig/*.tar; do
$DEBUG tar -xf $t

# patch
for p in $PATCHES; do
$DEBUG patch -p1 < "$DIR"/"$p"

# tar
for d in *-only; do
$DEBUG tar -cf `echo $d | sed 's/-only/.tar/'` $d
$DEBUG rm -rf *-only

# vsock.ko needs symbols from vmci
$DEBUG cd ../../../bin || exit 2
if [ -x vmware-config.pl -a -f $DIR/vmware-config.pl.diff ]; then
$DEBUG patch -p0 < $DIR/vmware-config.pl.diff

Save the file and quit.


chmod u+x patch-vmware_2.6.3x.sh
./patch-vmware_2.6.3x.sh /root/vm/vmware-server-distrib/lib/modules/source

Install VMware:

cd /root/vm/vmware-server-distrib

You can press ENTER to accept all default values. Accept the license. Enter the VMware Server key that VMware gave to you. That's it. If the installation is successful, it ends like this:

The installation of VMware VIX API 1.6.2 build-203138 for Linux completed
successfully. You can decide to remove this software from your system at any
time by invoking the following command: "/usr/bin/vmware-uninstall-vix.pl".


--the VMware team

Starting VMware services:
Virtual machine monitor done
Virtual machine communication interface done
VM communication interface socket family: done
Virtual ethernet done
Bridged networking on /dev/vmnet0 done
Host-only networking on /dev/vmnet1 (background) done
DHCP server on /dev/vmnet1 done
Host-only networking on /dev/vmnet8 (background) done
DHCP server on /dev/vmnet8 done
NAT service on /dev/vmnet8 done
VMware Server Authentication Daemon (background) done
Shared Memory Available done
Starting VMware management services:
VMware Server Host Agent (background) done
VMware Virtual Infrastructure Web Access
Starting VMware autostart virtual machines:
Virtual machines done

The configuration of VMware Server 2.0.2 build-203138 for Linux for this
running kernel completed successfully.

Thank you for using the script!
Patch provided by:
Ramon de Carvalho Valle
Script author:
Radu Cotescu

Reboot the box:


Share this page:

5 Comment(s)

Add comment


From: Aaron

When compiling the 4 modules, the first one comes up with some warnings:


Extracting the sources of the vmmon module

Building the vmmon module

Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config0/vmmon-only'
make -C /lib/modules/2.6.32-25-generic-pae/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.32-25-generic-pae'
  CC [M]  /tmp/vmware-config0/vmmon-only/linux/driver.o
  CC [M]  /tmp/vmware-config0/vmmon-only/linux/driverLog.o
  CC [M]  /tmp/vmware-config0/vmmon-only/linux/hostif.o
/tmp/vmware-config0/vmmon-only/linux/hostif.c:3601:2: warning: #warning current->cred->fsuid = 0;
/tmp/vmware-config0/vmmon-only/linux/hostif.c:3608:2: warning: #warning current->cred->fsuid = fsuid;
/tmp/vmware-config0/vmmon-only/linux/hostif.c:3626:2: warning: #warning cap_lower(current->cred->cap_effective, CAP_SYS_RESOURCE);
/tmp/vmware-config0/vmmon-only/linux/hostif.c: In function âHostIFReadUptimeWorkâ:
/tmp/vmware-config0/vmmon-only/linux/hostif.c:1862: warning: ânewUpBaseâ may be used uninitialized in this function
  CC [M]  /tmp/vmware-config0/vmmon-only/common/comport.o
  CC [M]  /tmp/vmware-config0/vmmon-only/common/cpuid.o
  CC [M]  /tmp/vmware-config0/vmmon-only/common/hashFunc.o
  CC [M]  /tmp/vmware-config0/vmmon-only/common/memtrack.o
  CC [M]  /tmp/vmware-config0/vmmon-only/common/phystrack.o
  CC [M]  /tmp/vmware-config0/vmmon-only/common/task.o
  CC [M]  /tmp/vmware-config0/vmmon-only/common/vmx86.o
  CC [M]  /tmp/vmware-config0/vmmon-only/vmcore/moduleloop.o
  LD [M]  /tmp/vmware-config0/vmmon-only/vmmon.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /tmp/vmware-config0/vmmon-only/vmmon.mod.o
  LD [M]  /tmp/vmware-config0/vmmon-only/vmmon.ko
make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-25-generic-pae'
cp -f vmmon.ko ./../vmmon.o
make: Leaving directory `/tmp/vmware-config0/vmmon-only'
The vmmon module loads perfectly into the running kernel.


My thought is that it has something to do with the region/language settings on my system vs. the patches (just a guess). The warnings do not cause any issues as far as I can tell, I am successfully running several different operating systems that do not appear to have any problems. I was just wondering if there might be some kind of fix to correct the warnings. Thanks Aaron

From: Anonymous

Awesome thank you so much. this works perfectly.

From: Prasanta Baruah

Works great. Thanks for the good tutorial.




From: Gary

This worked like a charm and saved my bacon. Many thanks!!!

From: Anonymous

I blindly followed this guide and was a little confused when my network stopped working after the network interfaces file was updated.  The section says "paste this exactly as it is printed" which is basically just a DHCP command.  The thing is that you should check your ifconfig command first to verify that your network is running on eth0 and not something like eth1, eth2, etc.  My compter has eth0-eth5 (6 network connections - a large server).  My onbaord NIC that is connected for testing id eth2 and I didn't check this.  If you are a newbie and don't know what you are doing this will be a major roadblock for your.  So after the "apt-get install -y gcc" command and before the "nano /etc/network/interfaces" command you should type "ifconfig" and look and see what adapter your computer is running on.