02.13.06

Posted in Quick Guides at 10:40 pm by jasonb

If you’ve been trying to run VMWare v4.5 on the latest Linux release candidate kernels, you may be having trouble compiling it. Fortunately, a few quick fixes and you should be able to compile again.

First, and possibly optional, you should get the latest vmware-any-any-nn.tar.gz from the usual place. Unpack it and apply as usual. You will need to be root, sudo, or however you obtain root on your system. Abort vmware-config.pl when it starts as it will fail presently.

Second, you need to edit /usr/local/bin/vmware-config.pl and, as a quick hack, comment out the following block of code. (I used =pod and =cut to denote it as a large Perl comment block.)

=pod
  if ($header_page_offset =~ /[0-9a-fA-F]{8,}/) {
    # We found a valid page offset
    if (defined($gSystem{'page_offset'}) and
        not (lc($header_page_offset) eq lc($gSystem{'page_offset'}))) {
      if ($source eq 'user') {
        print wrap('The kernel defined by this directory of header files does '
                   . 'not have the same address space size as your running '
                   . 'kernel.' . "\n\n", 0);
      }
      return '';
    }
  }
=cut

Finally, as referenced in this thread at VMWare’s support forum, you need to unpack two tarballs in /usr/local/lib/vmware/modules/source, vmmon.tar and vmnet.tar, and make a one line addition to each file.

# cd /usr/local/lib/vmware/modules/source
# tar -xvf vmmon.tar
# vi vmmon-only/Makefile.kernel
 
Replace
$(EXTRA_CFLAGS) -Iinclude2/asm/mach-default \
 
With
$(EXTRA_CFLAGS) -Iinclude2/asm/mach-default -DKBUILD_BASENAME=\"$(DRIVER)\"\

# mv vmmon.tar vmmon.tar.old
# tar -cvf vmmon.tar vmmon-only
# rm vmmon-only -Rf

Repeat the above process for vmnet.tar, then rerun /usr/local/bin/vmware-config.pl and it should compile without incident.

Leave a Comment

Your blog, no spam: the world-wide, extensive, and sound Hash-cash.