VMware 4.5.2 build 8848 on Debian GNU/Linux
Let's start by downloading the latest version of the old VMware
4.5.2 Workstation product,
along with the vmware-any-any-update
sources used to build the kernel modules.
wget http://download3.vmware.com/software/wkst/VMware-workstation-4.5.2-8848.tar.gz
wget http://ftp.cvut.cz/people/vana/vmware/vmware-any-any-update90.tar.gz
To install the VMware
software, use:
tar zxvf VMware-workstation-4.5.2-8848.tar.gz
cd vmware-distrib
su
./vmware-install.pl
The ./vmware-install.pl
script prompts you as follows. Note: do not run the
/usr/bin/vmware-config.pl
script when the ./vmware-install.pl
script asks
you whether you want to configure VMware for the first time. Instead, we'll use
the script ./runme.pl
from the vmware-any-any-update90
to configure VMware
,
which involves building linux kernel modules and loading into the kernel.
See below for the next step.
Creating a new installer database using the tar3 format.
Installing the content of the package.
In which directory do you want to install the binary files?
[/usr/bin]
What is the directory that contains the init directories (rc0.d/ to rc6.d/)?
[/etc]
What is the directory that contains the init scripts?
[/etc/init.d]
In which directory do you want to install the library files?
[/usr/lib/vmware]
The path "/usr/lib/vmware" does not exist currently. This program is going to
create it, including needed parent directories. Is this what you want? [yes]
In which directory do you want to install the manual files?
[/usr/share/man]
In which directory do you want to install the documentation files?
[/usr/share/doc/vmware]
The path "/usr/share/doc/vmware" does not exist currently. This program is
going to create it, including needed parent directories. Is this what you
want? [yes]
The installation of VMware Workstation 4.5.2 build-8848 for Linux completed
successfully. You can decide to remove this software from your system at any
time by invoking the following command: "/usr/bin/vmware-uninstall.pl".
Before running VMware Workstation for the first time, you need to configure
it by invoking the following command: "/usr/bin/vmware-config.pl".
Do you want this program to invoke the command for you now? [yes] no
Enjoy,
--the VMware team
The Debian package module-init-tools
needs to be installed to load the
vmmon
and vmnet
kernel modules for VMware
into the linux kernel.
If you don't already have module-init-tools
installed, install them using:
apt-get install module-init-tools
If you haven't yet installed the kernel sources and kernel headers
corresponding to your running kernel, install them as follows:
apt-get install kernel-source-2.6.8
apt-get install kernel-headers-2.6.8-2-386
apt-get install kernel-package
The kernel-headers package should set up a symlink so that scripts building against it
can find the kernel-kbuild scripts, but occasionally that link appears to go AWOL, so
if it's missing create it like this, e.g.:
(cd /usr/src/kernel-headers-2.6.8-2 && ln -s ../kernel-kbuild-2.6-3/scripts scripts)
Some of the sources in the vmware-any-any package need the GNU C++ compiler g++
to be installed.
apt-get install g++
If g++ isn't installed, you'll see this error when compiling vmmon-only/common/task.o
:
gcc: installation problem, cannot exec `cc1plus': No such file or directory
Now we're ready to configure VMware
for the first time. Here we use the
script ./runme.pl
from the vmware-any-any-update90
, which involves building
linux kernel modules and loading into the kernel:
tar zxvf vmware-any-any-update90.tar.gz
cd vmware-any-any-update90
su
./runme.pl
The output of the ./runme.pl
script should look something like the following. In this case the system I'm running it on is running a Debian distro called Kanotix
, so the name of the kernel may look unfamiliar. Please don't be alarmed The Kanotix kernel I used at the time had the name 2.6.10-kanotix-8
,
but if you're running Debian Stable (sarge), the kernel will have a name similar to 2.6.8-2-386
. John Zheng recently
tested that the 2.6.11-kanotix-11 kernel from Kanotix 2005-3 also works fine, using vmware-any-any-update91
.
Updating /usr/bin/vmware ... No patch needed/available
Updating /usr/bin/vmnet-bridge ... VMware Workstation 4.5.2 (build-8848) or VMware GSX Server 3.1.0 (build-9089), now patched
Updating /usr/lib/vmware/bin/vmware-vmx ... VMware Workstation 4.5.2 (build-8848), now patched
Updating /usr/lib/vmware/bin-debug/vmware-vmx ... VMware Workstation 4.5.2 (build-8848), now patched
VMware modules in "/usr/lib/vmware/modules/source" has been updated.
Before running VMware for the first time after update, you need to configure it for your running kernel by invoking the following command:
"/usr/bin/vmware-config.pl". Do you want this script to invoke the command for you now? [no] yes
Making sure services for VMware Workstation are stopped.
Stopping VMware services:
Virtual machine monitor done
You must read and accept the End User License Agreement to continue.
Press enter to display it.
Do you accept? (yes/no) yes
Thank you.
Trying to find a suitable vmmon module for your running kernel.
None of the pre-built vmmon modules for VMware Workstation is suitable for
your running kernel. Do you want this program to try to build the vmmon
module for your system (you need to have a C compiler installed on your
system)? [yes]
Using compiler "/usr/bin/gcc". Use environment variable CC to override.
Your kernel was built with "gcc" version "3.3.5", while you are trying to
use "/usr/bin/gcc" version "3.3.6". This configuration is not recommended
and VMware Workstation may crash if you'll continue. Please try to use
exactly same compiler as one used for building your kernel. Do you want to
go with compiler "/usr/bin/gcc" version "3.3.6" anyway? [no] yes
What is the location of the directory of C header files that match your
running kernel? [/lib/modules/2.6.10-kanotix-8/build/include]
Extracting the sources of the vmmon module.
Building the vmmon module.
Building for VMware Workstation 4.5.2 or VMware GSX Server 3.1.0.
Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config0/vmmon-only'
make -C /lib/modules/2.6.10-kanotix-8/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/kernel-headers-2.6.10-kanotix-8'
CC [M] /tmp/vmware-config0/vmmon-only/linux/driver.o
CC [M] /tmp/vmware-config0/vmmon-only/linux/hostif.o
CC [M] /tmp/vmware-config0/vmmon-only/common/cpuid.o
CC [M] /tmp/vmware-config0/vmmon-only/common/hash.o
CC [M] /tmp/vmware-config0/vmmon-only/common/memtrack.o
CC [M] /tmp/vmware-config0/vmmon-only/common/phystrack.o
CC [M] /tmp/vmware-config0/vmmon-only/common/task.o
CC [M] /tmp/vmware-config0/vmmon-only/common/vmx86.o
CC [M] /tmp/vmware-config0/vmmon-only/vmcore/compat.o
CC [M] /tmp/vmware-config0/vmmon-only/vmcore/moduleloop.o
LD [M] /tmp/vmware-config0/vmmon-only/vmmon.o
Building modules, stage 2.
MODPOST
CC /tmp/vmware-config0/vmmon-only/vmmon.mod.o
LD [M] /tmp/vmware-config0/vmmon-only/vmmon.ko
make[1]: Leaving directory `/usr/src/kernel-headers-2.6.10-kanotix-8'
cp -f vmmon.ko ./../vmmon.o
make: Leaving directory `/tmp/vmware-config0/vmmon-only'
The module loads perfectly in the running kernel.
Extracting the sources of the vmnet module.
Building the vmnet module.
Building for VMware Workstation 4.5.2 or VMware GSX Server 3.1.0.
Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config0/vmnet-only'
make -C /lib/modules/2.6.10-kanotix-8/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/kernel-headers-2.6.10-kanotix-8'
CC [M] /tmp/vmware-config0/vmnet-only/driver.o
CC [M] /tmp/vmware-config0/vmnet-only/hub.o
CC [M] /tmp/vmware-config0/vmnet-only/userif.o
CC [M] /tmp/vmware-config0/vmnet-only/netif.o
CC [M] /tmp/vmware-config0/vmnet-only/bridge.o
CC [M] /tmp/vmware-config0/vmnet-only/procfs.o
LD [M] /tmp/vmware-config0/vmnet-only/vmnet.o
Building modules, stage 2.
MODPOST
CC /tmp/vmware-config0/vmnet-only/vmnet.mod.o
LD [M] /tmp/vmware-config0/vmnet-only/vmnet.ko
make[1]: Leaving directory `/usr/src/kernel-headers-2.6.10-kanotix-8'
cp -f vmnet.ko ./../vmnet.o
make: Leaving directory `/tmp/vmware-config0/vmnet-only'
The module loads perfectly in the running kernel.
Do you want networking for your virtual machines? (yes/no/help) [yes]
Configuring a bridged network for vmnet0.
Do you want to be able to use NAT networking in your virtual machines? [yes]
Configuring a NAT network for vmnet8.
Do you want this program to probe for an unused private subnet? [yes] no
What will be the IP address of your host on the private network? 192.168.203.0
What will be the netmask of your private network? 255.255.255.0
Do you want to be able to use host-only networking in your virtual machines?
[no] yes
Configuring a host-only network for vmnet1.
Do you want this program to probe for an unused private subnet? [yes]
Probing for an unused private subnet (this can take some time)...
The subnet 172.16.10.0/255.255.255.0 appears to be unused.
The following hostonly networks have been defined:
[should this be blank?]
Do you wish to configure another host-only network? [no]
Do you want this program to automatically configure your system to allow
your virtual machines to access the host's filesystem? [no]
Starting VMware services:
Virtual machine monitor done
Virtual ethernet done
Bridged networking on /dev/vmnet0 done
Host-only networking on /dev/vmnet1 (background) done
Host-only networking on /dev/vmnet8 (background) done
NAT service on /dev/vmnet8 done
The configuration of VMware Workstation 4.5.2 build-8848 for Linux for this
running kernel completed successfully.
You can now run VMware Workstation by invoking the following command:
"/usr/bin/vmware".
Enjoy,
--the VMware team
To uninstall VMware
, use the script: /usr/bin/vmware-uninstall.pl
, but hopefully things went well enough that you don't want to do that just quite yet.
To run VMware
, use the command vmware
(as a
non-root user) which should bring up a graphical window. If you need to
run it remotely e.g. on a server with more memory, then TightVNC
may come in handy. However you launch it, the first step is to enter
your license key under one of the menus. It will save your license key
in a file. Note that if VMware hits an internal error, it will sometimes
pop up a URL containing your license key, so beware of clicking on URLs
presented by VMware
while it's running - they may reveal info you would rather keep confidential.
If you've never seen VMware before, you may enjoy watching a commented recording of an installation of
Debian inside a VM, which shows all the steps.
If you are lucky enough to have a gigabyte or more of physical memory on your system, the Oracle Desktop Data Center
(this page is no longer found in 2007) is great for learning about
managing a datacenter right on your desktop inside a virtual machine.
These virtual machines will work normally when at least 700MB of memory
is allocated to them. Too feature-filled for your taste? How about a
trip back in time instead, to Oracle release 4.1 for MSDOS 6.22. Or for an entertaining step-by-step guide to installing the RTM ("release to manufacturing") Microsoft Vista,
see here.