Wednesday, November 17, 2010

VMWare 2.0.2 Install on Debian Squeeze

These instructions are vital in order to get a working copy of VMWare on Debian Squeeze.  This information was originally available at http//:wiki.debian.org/VMware.  Please check there first for any further updates or information.  The document listed below is for my reference and in the event the wiki is unavailable. 

Installing VMware Server 2 on Squeeze


In general the installation is similiar to that in Lenny, with the following differences:
  • There are different versions of the linux kernel and gcc.
  • Different patches are required for the installer and the modules.
Instructions:
  1. Get the VMWare Server archive (at least version 2.0.2) and your license. Hopefully the issues will be fixed in later versions.
  2. Install the prerequisites (including kernel-headers for your version, and gcc version 4.3).
  3. Unzip the VMWare archive, install VMWare, but do not configure it yet, i. e. answer the question to run "vmware-config.pl" with "no".
  4. Patch vmware-config.pl using a file from the patch archive (choose the directory where you installed the binaries, if not "/usr/bin").
cd /usr/bin
patch -p3 < vmware-config.patch

  1. Patch the module sources using another file from the patch archive (choose the directory where you installed the libraries, if not "/usr/lib").
cd /usr/lib/vmware/modules/source
for i in *.tar ; do tar xpf $i ; done
patch -p4 < vmware-server-2.0.2-203138-update.patch
for i in vmci vmmon vmnet vsock ; do tar cpf $i.tar $i-only ; done

  1. Now run vmware-config.pl.
After that the installation is complete, but a bug related to Tomcat/Java may prevent the web admin interface at http://localhost:8222 from being operational. If you get the message "Error 503: Service unavailable", then continue patching.
[Note: If you want to learn more about this issue, see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=572048. As Java is embedded in VMWare, switching to a current version is no option, neither should be disabling IPv6.]
  1. IPv6 must be disabled for the "WebAccess" service only. Create a patch file named "vmware.patch" (see the "Lenny" section for how to do this using an editor):
--- vmware.orig 2010-05-24 17:05:09.251864323 +0200
+++ vmware      2010-05-24 21:40:37.563871986 +0200
@@ -675,7 +675,7 @@
 watchdog="${vmdb_answer_BINDIR}/vmware-watchdog"
 webAccessServiceName="VMware Virtual Infrastructure Web Access"
 CATALINA_HOME="${vmdb_answer_LIBDIR}/webAccess/tomcat/apache-tomcat-6.0.16"
-webAccessOpts="-client -Xmx64m -XX:MinHeapFreeRatio=30 -XX:MaxHeapFreeRatio=30 -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=$CATALINA_HOME/common/endorsed -classpath $CATALINA_HOME/bin/bootstrap.jar:$CATALINA_HOME/bin/commons-logging-api.jar -Dcatalina.base=$CATALINA_HOME -Dcatalina.home=$CATALINA_HOME -Djava.io.tmpdir=$CATALINA_HOME/temp org.apache.catalina.startup.Bootstrap"
+webAccessOpts="-Djava.net.preferIPv4Stack=true -client -Xmx64m -XX:MinHeapFreeRatio=30 -XX:MaxHeapFreeRatio=30 -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=$CATALINA_HOME/common/endorsed -classpath $CATALINA_HOME/bin/bootstrap.jar:$CATALINA_HOME/bin/commons-logging-api.jar -Dcatalina.base=$CATALINA_HOME -Dcatalina.home=$CATALINA_HOME -Djava.io.tmpdir=$CATALINA_HOME/temp org.apache.catalina.startup.Bootstrap"
 
 #
 # Utilities

  1. Patch /etc/init.d/vmware, and restart the daemon.
cd /etc/init.d
patch < vmware.patch
./vmware-mgmt restart 
Done.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2013 - Squeeze Update
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

After running VMware install but BEFORE the configuration....


3. Patching vmware-server-2.0.2

At this point we need to patch vmware-config.pl file as well as vmware modules. First download and decompress patch provided by: Radu Cotescu:
# cd
# wget http://linuxconfig.org/images/files/2.6.3x-vmware-patch.tar.bz2
# tar xjf 2.6.3x-vmware-patch.tar.bz2
Apply patch:
First apply patch to vmware-config:
# cd /usr/bin/
# patch -p3 < ~/2.6.3x-vmware-patch/config.patch
203138-update.patch
config.patch
LICENSE
README
start-VMware-console.sh
vmware-server-2.0.x-kernel-2.6.3x-install.sh
Apply patch to all modules:
# cd /usr/lib/vmware/modules/source
# for f in *.tar ; do tar pxf $f ; done
# patch -p4 < ~/2.6.3x-vmware-patch/203138-update.patch
patching file vmci-only/include/pgtbl.h
patching file vmnet-only/vnetUserListener.c
patching file vmci-only/Makefile
patching file vmmon-only/common/vmx86.c
patching file vmmon-only/include/compat_cred.h
patching file vmmon-only/include/x86svm.h
patching file vmmon-only/linux/driver.c
patching file vmmon-only/linux/hostif.c
patching file vmmon-only/Makefile
patching file vmnet-only/Makefile
patching file vmnet-only/netif.c
patching file vsock-only/Makefile
# for f in vmci vmmon vmnet vsock ; do tar pcf $f.tar $f-only ; done
# rm -fr *-only

4. Set correct gcc version

The kernel on Debian squeeze was compiled with gcc 4.3 and this is the version of gcc we want to use. By default gcc is set to gcc version 4.4:
# ls -l `which gcc`
lrwxrwxrwx 1 root root 7 Mar 20 11:15 /usr/bin/gcc -> gcc-4.4 
Therefore, we need to change gcc compiler to match our kernel compiler version. The easiest way is to set CC environmental variable to point to gcc v4.3.
The second option is to create a new symlink ( when you finish do not forget to put everything where it belongs ) :
# ln -fs /usr/bin/gcc-4.3 /usr/bin/gcc
# ls -l `which gcc`
lrwxrwxrwx 1 root root 16 Mar 20 12:09 /usr/bin/gcc -> /usr/bin/gcc-4.3

5. Configure vmware-server-2.0.2

We are almost done. At this stage we need to configure vmware-server. Follow vmware-config.pl and change default values where appropriate. Start configuration with:
# vmware-config.pl
After successful build you should see:
Enjoy,

--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.