VMWare Player 3 vs Linux 2.6.32

I wanted to test some crap in VMWare, didn’t feel like messing with the entire server thing so went for the player. Unfortunately, this thing doesn’t work against the 2.6.32 kernel.

After installation, you can fix it with as follows (as root):


cd /tmp
tar xf /usr/lib/vmware/modules/source/vmnet.tar
tar xf /usr/lib/vmware/modules/source/vmci.tar

cd vmnet-only
sed -i "/vnetInt.h/ a\#include \"compat_sched.h\"" vnetUserListener.c

cd ../vmci-only/include
sed -i "/compat_page.h/ a\#include \"compat_sched.h\"" pgtbl.h

cd /tmp
tar cf /usr/lib/vmware/modules/source/vmnet.tar vmnet-only
tar cf /usr/lib/vmware/modules/source/vmci.tar vmci-only

and rerun vmplayer.

VMWare server 2.0 with kernel 2.6.28

I just finished updating my machine to the latest Linux kernel, 2.6.28. All worked, except for VMWare Server (which was still at 1.0.8). Since 2.0 has been released, time for an upgrade!

Downloaded, installed, configuration didn’t work for the vsock module. Actually, it built, but failed to load due to some missing symbols. After some digging I came across the following patch that modifies the vmware-config.pl script:

(note: very bad wordwrapping here, download the file below and use that!)

--- /usr/bin/vmware-config.pl.orig 2008-11-28 12:06:35.641054086 +0100
+++ /usr/bin/vmware-config.pl 2008-11-28 12:30:38.593304082 +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,10 @@
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 . '/../'));
+ }
remove_tmp_dir($build_dir);
return 'yes';
}

To use it, download vmware-configplpatch.txt, and run
cat vmware-configplpatch.txt | patch -p0, and rerun the VMWare configuration script.

Thanks to this post on the Ubuntu Forums for the solution!

Fixing your VMWare’s guest clock

If you’re using VMWare on a variable-speed processor (like all most modern cpu’s these days) you might have noticed that sometimes the guest OS runs a lot faster (causing the guest clock to run faster and all kinds of weird effects).

The fix for that is easy, and specified in this knowledgebase article:

Add to /etc/vmware/config the following lines:

host.cpukHz = 1700000
host.noTSC = TRUE
ptsc.noTSC = TRUE

replacing 1700000 with the actual top speed of your processor. Et voila, runs better ;)

Vmware console on Debian Lenny

I just installed VMWare server on my gf’s linux-laptop, but the server console didn’t want to start for some reason… Just came back to the command line, nothing happening.

Running vmware as
LD_PRELOAD=/usr/lib/libdbus-1.so.3:$LD_PRELOAD vmware made things work, strangely enough ;)

Guess it’s because she’s not running any dbus-aware windowmanager, and thus said library not being loaded before the start of the server console. Ah well, fixed now ;)

Vmware and Linux-2.6.22

If you’re rolling your own kernels, and upgraded to 2.6.22, you might have bumped into a compilation issue:


include/asm/page.h: In function ‘pte_t native_make_pte(long unsigned int)’:
include/asm/page.h:112: error: expected primary-expression before ‘)’ token
include/asm/page.h:112: error: expected ‘;’ before ‘{‘ token
include/asm/page.h:112: error: expected primary-expression before ‘.’ token
include/asm/page.h:112: error: expected `;’ before ‘}’ token

How to fix this:

  1. Download the vmware-any-any-update110.tar.gz update. Unpack in /tmp
  2. Go into the vmware-any-any-update110 directory, and untar the vmmon.tar file (tar xvf vmmon.tar)
  3. Execute the following command:
    sed -i ‘s!# include !!g’ vmmon-only/common/hostKernel.h
  4. Re-tar vmmon.tar (tar cvf vmmon.tar vmmon-only)
  5. run runme.pl

And you’re done!

Thanks to the Gentoo bug tracker and all persons posting on it for the ‘fix’.

As per always, if it eats your cat, it’s not my fault nor my problem! ;)

Edit: vmware-any-any-update112.tar.gz has been released meanwhile, which solves the above problem too.