Skip to main content

Installing VMware Server 2.0.1 on Ubuntu 9.04

I use Ubuntu on daily basis and I can live without Windows most of the time. However, once in a while I need to use Windows for things like accessing the iTunes store and editing Microsoft Word documents (yes I know works but it messes up the style from time to time). I created a WIndows VM image under VirtualBox, which worked quite well except that I noticed the constant high CPU load as mentioned by several other users. I tried their suggestions such as using nohz=off and turn off ACPI, which did reduce the CPU load to 50% on one core but didn't get rid of the problem completely.

I eventually decided to give the free VMware Server a try. Setting it up on Windows was pretty simple, just double click and then click through the Wizard. However, installing it on Ubuntu 9.04 is a non-trivial task and took me a little while to complete.
  1. Launch Synaptic package manager and make sure you have linux-header, linux-source, gcc and binutils installed.
  2. Download the .tar.gz package from VMware web site (VMware-server-2.0.1-156745.x86_64.tar.gz in my case).
  3. Extract the files then run the the installation script as super user
  4. The installer will prompt you with half a thousand questions, I just use the default value for most of them.
  5. Eventually the installer will start compiling and loading kernel modules, most of them will go through fine but the VSOCK module installation will fail with the following error message.
    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
    Ignore this insmod error for now and continue to finish the installation.
  6. Apply the following patch to, this fixes the insmod error above so we can re-run it to complete the VSOCK module installation.
    +++ /usr/bin/ 2008-12-01 16:55:59.000000000 +0100
    @@ -4121,6 +4121,11 @@
         return 'no';
    +  if ($name eq 'vsock') {
    +    print wrap("VMWare config patch VSOCK!\n");
    +    system(shell_string($gHelper{'mv'}) . ' -vi ' . shell_string($build_dir . '/../Module.symvers') . ' ' . shell_string($build_dir . '/vsock-only/' ));
    +  }
       print wrap('Building the ' . $name . ' module.' . "\n\n", 0);
       if (system(shell_string($gHelper{'make'}) . ' -C '
                  . shell_string($build_dir . '/' . $name . '-only')
    @@ -4143,6 +4148,12 @@
         if (try_module($name, $build_dir . '/' . $name . '.o', 0, 1)) {
           print wrap('The ' . $name . ' module loads perfectly into the running kernel.'
                      . "\n\n", 0);
    +      if ($name eq 'vmci') {
    +        print wrap("VMWare config patch VMCI!\n");
    +        system(shell_string($gHelper{'cp'}) . ' -vi ' . shell_string($build_dir.'/vmci-only/Module.symvers') . ' ' . shell_string($build_dir . '/../'));
    +      } 
           return 'yes';
  7. Now run the script as super user and the VSOCK module should compile and install fine now.
  8. Now run vmware from the command prompt to launch vmware UI in your browser. You will see following error message as shown below:
  9. Click on "Add Exception", which will pop up another dialog. Click on "Get Certificate" and then "Confirm Security Exception" to add the VMware URL to the exception list.

  10. Finally, you should see the login screen. You need to login as the root user but Ubuntu does not set password for root user by default. Therefore, you first need to set the password by executing
    sudo passwd root
    after setting the password just login as root and enjoy.


  1. did you ever consider that if someone needed the help on this page that the step "apply the following patch to" may be WAY over their heads?

  2. This is how you can apply the patch:
    To run it open a terminal, and do the following:

    1. CD into the directory where the Pearl script is

    >cd /path/to/

    2. Make the script executable

    >chmod +x

    3. Patch!

    >sudo patch /usr/bin/ /path/to/

    Hope this helps.

  3. And you can download the patch from here:

  4. Oscar,
    Thanks a ton for this patch.

    I had working vmware server installation and it went south after Ubuntu Karmic upgrade. I brought back the older Kernel only to see Xorg going beserk on my CPU utilization. After I reinstalled Jaunty, I tried couple of patches from vmware/ubuntu forums and none of them cured the vsock insmod error. To my amazement my kernel seemed to be compiled with the same gcc version as the gcc on my box to the third level and I had right set of headers and libraries.

    Vmware server 2.0.1 (64bit) works fine on Jaunty Kernel
    2.6.28-11-generic with your patch.

    I am a bit curious in how your patch fixed the vsock module and will try to read through your code the next oppotrtunity I get.

    Thanks a Lot!

  5. Seems to work in Karmic - only place I could find the solution, thanks!


Post a Comment

Popular posts from this blog

Load Testing ASP.NET Sites with JMeter

Following my previous post about using JMeter to test MOSS, I tried to figure out what are the bare minimum requirements of using JMeter against a plain ASP.NET website. I wrote a very simple ASP.NET web application with just a button, a text fields and a static label. This application displays the content of a text file in the static label when it loads and write content of the text field back to the file when the button is clicked.I found all I need to do in order to script this using JMeter is to extract __VIEWSTATE and __EVENTVALIDATION fields then send them back in the update request. My JMeter test plain looks like this:

Load Testing SharePoint (MOSS) Sites with JMeter

I have used JMeter for load testing few non-ASP.NET web sites before, however I could not get it to work with ASP.NET web sites. This is mainly due to ASP.NET ViewState and event validations, which stops a recorded JMeter script from being played back.Recently I worked on a MOSS project and we were looking for tools to perform load testing on the server. Many people said the load testing tool in Microsoft Team System for Testers works well with MOSS. However, it is quite expensive so I decided to give JMeter another go. After several hours of hacking, I actually got it to work and here’s how I did it.My test page is the pretty standard MOSS edit document property screen with few extra text fields added and the goal here is to use a JMeter script to change the document properties. Once I have a working script, I can configure JMeter to fire hundreds of instances of this script simultaneously to simulate the user workload.As shown in the screenshot below, the test plan contains two HTTP…

Installing the WTL Application Wizard in Visual C++ 2008 Express Edition

I love Google Chrome, it is fast, elegant and beautiful. After I realized that it was written using WTL, I felt quite keen to learn about this library.I downloaded WTL 8.0 from and Visual C++ 2008 Express Edition from only to realise that there is no WTL Wizard support for Visual C++ 2008 Express Edition. WTL 8.0 ships with WTL/ATL application wizard but the setup script only supports the Visual C++ 2005 Express Edition (setup80x.js). However, the good news is that you can make it work with Visual C++ 2008 Express Edition in few simple steps:Make a copy of the setup80x.js and rename it to setup90x.js. Open setup90x.js up and do a global search and replace from “8.0” to “9.0”.
Save the file and execute it. If you are as lucky as I am, you should see a dialog that tells you that the wizard has been successfully installed.Now, when you run Visual C++ 2008 Express Edition and go File –> New –> Project… you should now see the new WTL/ATL Application…