I’ve been always kind of planning on running Linux on my desktop again, given that I now have pretty much unlimited access to vmware software ;-).
I had been running Windows for a while now, mainly because I couldn’t get Ubuntu Edgy to install (jmicron driver bug). With the release of Feisty Fawn, that changed, and now I have a fully installed Feisty Desktop.
Great. Now time to install workstation. I know Workstation 6 is almost out, but I decided to go with 5.5.3 (trying to stay conservative with my home machine).
Immediately I hit the problem of not being able to build the vmmon kernel driver, same output as this VMware community discussion post. The reply on that post suggest’s using the famous any-any patch. So I grab that and run it, and while my vmmon then builds, when I go to run a VM, I’m told that I have a vmmon version mismatch.
This probably just means that the any-any patch hasn’t been updated to work with the Feisty kernel. Great, am I stuck?
Feisty comes with vmware-player packages (if you enable the multiverse) They appear to have the version number of 1.0.2, so something from the Workstation 5.5.x series should work. I asked Phil, and he mentioned that the Ubuntu provided vmmon modules should work fine with WS 5.5.3.
Sweet. Except that the standard install step of running vmware-config.pl always tries to build vmmon, and fails, so how am I supposed to install?
<BEGIN TOTALLY UNSUPPORTED HACK. PERFORM AT YOUR OWN RISK>
There are a few required steps:

  • Install Feisty’s kernel modules.
  • Symlink the modules into the place that 5.5.3’s startup scripts expect them
  • Hack vmware-config.pl so that it doesn’t try to build vmmon and vmnet

First step is easy:

% sudo apt-get install vmware-player-kernel-modules

Second step is relatively easy too:

% cd /lib/modules/2.6.20-15-generic
% sudo mkdir misc
% cd misc
% sudo ln -s ../vmware-player/vmmon.ko vmmon.o
% sudo ln -s ../vmware-player/vmnet.ko vmnet.o

Just a few notes: 2.6.20-15 is what Feisty released with. If you’re reading this by the time that Feisty has released an update kernel, then use the directory that it appropriate for your kernel.
Also, make sure that your module symlinks have the extension .o instead of .ko. This is what the /etc/init.d/vmware script looks for.
Finally, the last step is to modify your vmware-config.pl. Here’s the diff for my modified version:

--- vmware-config.pl.backup     2007-04-21 18:05:58.000000000 -0700
+++ vmware-config.pl    2007-04-21 18:14:33.000000000 -0700
@@ -3649,9 +3649,9 @@
# Configuration related to the monitor
sub configure_mon {
-  if (configure_module('vmmon') eq 'no') {
-    module_error();
-  }
+  #if (configure_module('vmmon') eq 'no') {
+  #  module_error();
+  #}
if (-e '/dev/.devfs' || -e '/dev/.udev.tdb' || -e '/dev/.udevdb' ) {
# Either the devfs" or "udev" filesystem is mounted on the "/dev" directory,
@@ -8955,7 +8955,7 @@
configure_mon();
configure_pp();
configure_net();
-    build_vmnet();
+    #build_vmnet();
}
# Create the directory for the UNIX domain sockets

Essentially you just have to comment out a few lines as the diff indicates. Then run vmware-config.pl as you normally would and you should be good to go.
</TOTAL HACK>

5 comments

  1. Douglas Roberts

    Reply

    Perfect.
    BTW, VMWare just recently released VMWare player 2.0 beta, and it does build properly on Feisty w/2.6.20-15-generic

  2. PG

    Reply

    Works great. If you have a problem with the Guest OS not detecting usb devices you need to do a…
    sudo mount -t usbfs usbfs /proc/bus/usb
    …before running vmware.
    Regards
    PG.

Leave a comment

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