VMware Server VNC console

I use a Mac as my desktop and I’ve never successfully gotten the VMware Server console thing in the web interface to work. Which means if I need console access to a VM I have to boot a copy of windows somewhere and use IE in that.  This little trick gets me out of having to to that.

Add the following lines to the VMX config file for each VM you want access to, then you can just connect in with any VNC client and get the console. Use the host/ip address of the vmware server itself when you connect. I halted each of my VMs while editing that file because I wan’t to make sure VMware wasn’t going to write to the file as well.

RemoteDisplay.vnc.enabled = "TRUE"
RemoteDisplay.vnc.password = "password"
RemoteDisplay.vnc.port = "port"

If you want more than one VM to use VNC you have to use different port numbers.

vmrun – Control VMware Fusion from the command line

I’ve just needed to snapshot a virtual machine running under VMware Fusion on my Mac but I only had SSH access. I’ve discovered the vmrun utility which is hidden away in XXX. VMware have a PDF of how to use it here. Very handy!

% export PATH=/Library/Application\ Support/VMware\ Fusion/:$PATH
% vmrun listSnapshots SpaceWalk.vmx

Total snapshots: 1
Fresh 5.2 all updates
% vmrun -T fusion snapshot SpaceWalk.vmx "SpaceWalk Installed"
% vmrun listSnapshots SpaceWalk.vmx
Total snapshots: 2
Fresh 5.2 all updates
SpaceWalk Installed
%

Bravo!

VMware on linux Fedora 6 Kernel 2.6.19

I’ve just upgraded a Fedora Core 6 machine. The update installed a new kernel, version 2.6.19.

After rebooting with the new kernel and doing step 5 from this post (note: the correct path is now /lib/modules/2.6.19-1.2895.fc6/build/include/linux/config.h). I found that I got the error shown below:

Building the vmnet module.

Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config3/vmnet-only'
make -C /lib/modules/2.6.19-1.2895.fc6/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/kernels/2.6.19-1.2895.fc6-i686'
  CC [M]  /tmp/vmware-config3/vmnet-only/driver.o
  CC [M]  /tmp/vmware-config3/vmnet-only/hub.o
  CC [M]  /tmp/vmware-config3/vmnet-only/userif.o
/tmp/vmware-config3/vmnet-only/userif.c: In function ‘VNetCopyDatagramToUser’:
/tmp/vmware-config3/vmnet-only/userif.c:629: error: ‘CHECKSUM_HW’ undeclared (first use in this function)
/tmp/vmware-config3/vmnet-only/userif.c:629: error: (Each undeclared identifier is reported only once
/tmp/vmware-config3/vmnet-only/userif.c:629: error: for each function it appears in.)
make[2]: *** [/tmp/vmware-config3/vmnet-only/userif.o] Error 1
make[1]: *** [_module_/tmp/vmware-config3/vmnet-only] Error 2
make[1]: Leaving directory `/usr/src/kernels/2.6.19-1.2895.fc6-i686'
make: *** [vmnet.ko] Error 2
make: Leaving directory `/tmp/vmware-config3/vmnet-only'
Unable to build the vmnet module.

I found the solution here, I’ve made my own patch which is available here. To apply this patch do the following (this assumes you have downloaded the patch into /tmp:

# cd /usr/lib/vmware/modules/source/
# cp vmnet.tar vmnet.tar.orig
# tar xf vmnet.tar
# patch -p0 < /tmp/vmnet-only-2.6.19.patch
# tar cf vmnet.tar vmnet-only
# vmware-config.pl

This should now complete ok

Vmware Server on Fedora Core 6

I’ve just installed vmware on Fedora Core 6 without any hassles, this is how I did it.

  1. I knew that I needed the following packages so I installed these with yum before starting:
    1. kernel-devel
    2. gcc
    3. xinetd
  2. I ran yum update next, this is optional, but I think it is best to do this now because vmware builds a module for your kernel so you really want to grab any kernel updates now.
  3. I disabled the iptables firewall at this point, the machine is internal therefore it was not required:
        [root@zaphod init.d]# chkconfig iptables off
    
  4. reboot the machine
  5. There is a compile error while the config script builds the kernel module (this is with kernel version 2.6.18-1.2869.fc6). An empty file needs touching to fix this:
    
    touch /lib/modules/2.6.18-1.2869.fc6/build/include/linux/config.h
    
    
  6. Download and install the application, for reference I used the rpm named VMware-server-1.0.1-29996.i386.rpm
  7. Run vmware-config.pl, I accepted most of the defaults, the output of mine is shown below:
        [root@zaphod ~]# vmware-config.pl
        Making sure services for VMware Server are stopped.
    
        Stopping VMware services:
           Virtual machine monitor                                 [  OK  ]
           Bridged networking on /dev/vmnet0                       [  OK  ]
           Virtual ethernet                                        [  OK  ]
    
        Configuring fallback GTK+ 2.4 libraries.
    
        In which directory do you want to install the mime type icons?
        [/usr/share/icons]
    
        What directory contains your desktop menu entry files? These files have a
        .desktop file extension. [/usr/share/applications]
    
        In which directory do you want to install the application's icon?
        [/usr/share/pixmaps]
    
        Trying to find a suitable vmmon module for your running kernel.
    
        None of the pre-built vmmon modules for VMware Server 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.
    
        What is the location of the directory of C header files that match your running
        kernel? [/lib/modules/2.6.18-1.2869.fc6/build/include]
    
        Extracting the sources of the vmmon module.
    
        Building the vmmon module.
    
        Using 2.6.x kernel build system.
        make: Entering directory `/tmp/vmware-config1/vmmon-only'
        make -C /lib/modules/2.6.18-1.2869.fc6/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
        make[1]: Entering directory `/usr/src/kernels/2.6.18-1.2869.fc6-i686'
          CC [M]  /tmp/vmware-config1/vmmon-only/linux/driver.o
          CC [M]  /tmp/vmware-config1/vmmon-only/linux/hostif.o
          CC [M]  /tmp/vmware-config1/vmmon-only/common/cpuid.o
          CC [M]  /tmp/vmware-config1/vmmon-only/common/hash.o
          CC [M]  /tmp/vmware-config1/vmmon-only/common/memtrack.o
          CC [M]  /tmp/vmware-config1/vmmon-only/common/phystrack.o
          CC [M]  /tmp/vmware-config1/vmmon-only/common/task.o
          CC [M]  /tmp/vmware-config1/vmmon-only/common/vmx86.o
          CC [M]  /tmp/vmware-config1/vmmon-only/vmcore/moduleloop.o
          LD [M]  /tmp/vmware-config1/vmmon-only/vmmon.o
          Building modules, stage 2.
          MODPOST
          CC      /tmp/vmware-config1/vmmon-only/vmmon.mod.o
          LD [M]  /tmp/vmware-config1/vmmon-only/vmmon.ko
        make[1]: Leaving directory `/usr/src/kernels/2.6.18-1.2869.fc6-i686'
        cp -f vmmon.ko ./../vmmon.o
        make: Leaving directory `/tmp/vmware-config1/vmmon-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.
    
        The following bridged networks have been defined:
    
        . vmnet0 is bridged to eth0
    
        All your ethernet interfaces are already bridged.
    
        Do you want to be able to use NAT networking in your virtual machines? (yes/no)
        [yes] no
    
        Do you want to be able to use host-only networking in your virtual machines?
        [no] no
    
        Extracting the sources of the vmnet module.
    
        Building the vmnet module.
    
        Using 2.6.x kernel build system.
        make: Entering directory `/tmp/vmware-config1/vmnet-only'
        make -C /lib/modules/2.6.18-1.2869.fc6/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
        make[1]: Entering directory `/usr/src/kernels/2.6.18-1.2869.fc6-i686'
          CC [M]  /tmp/vmware-config1/vmnet-only/driver.o
          CC [M]  /tmp/vmware-config1/vmnet-only/hub.o
          CC [M]  /tmp/vmware-config1/vmnet-only/userif.o
          CC [M]  /tmp/vmware-config1/vmnet-only/netif.o
          CC [M]  /tmp/vmware-config1/vmnet-only/bridge.o
          CC [M]  /tmp/vmware-config1/vmnet-only/procfs.o
          CC [M]  /tmp/vmware-config1/vmnet-only/smac_compat.o
          SHIPPED /tmp/vmware-config1/vmnet-only/smac_linux.x386.o
          LD [M]  /tmp/vmware-config1/vmnet-only/vmnet.o
          Building modules, stage 2.
          MODPOST
        WARNING: could not find /tmp/vmware-config1/vmnet-only/.smac_linux.x386.o.cmd for /tmp/vmware-config1/vmnet-only/smac_linux.x386.o
          CC      /tmp/vmware-config1/vmnet-only/vmnet.mod.o
          LD [M]  /tmp/vmware-config1/vmnet-only/vmnet.ko
        make[1]: Leaving directory `/usr/src/kernels/2.6.18-1.2869.fc6-i686'
        cp -f vmnet.ko ./../vmnet.o
        make: Leaving directory `/tmp/vmware-config1/vmnet-only'
        The module loads perfectly in the running kernel.
    
        Please specify a port for remote console connections to use [902]
    
        Stopping xinetd:                                           [  OK  ]
        Starting xinetd:                                           [  OK  ]
        Configuring the VMware VmPerl Scripting API.
    
        Building the VMware VmPerl Scripting API.
    
        Using compiler "/usr/bin/gcc". Use environment variable CC to override.
    
        Installing the VMware VmPerl Scripting API.
    
        The installation of the VMware VmPerl Scripting API succeeded.
    
        Generating SSL Server Certificate
    
        In which directory do you want to keep your virtual machine files?
        [/var/lib/vmware/Virtual Machines]
    
        The path "/var/lib/vmware/Virtual Machines" does not exist currently. This
        program is going to create it, including needed parent directories. Is this
        what you want? [yes]
    
        Please enter your 20-character serial number.
    
        Type XXXXX-XXXXX-XXXXX-XXXXX or 'Enter' to cancel:  XXXXX-XXXXX-XXXXX-XXXXX
    
        Starting VMware services:
           Virtual machine monitor                                 [  OK  ]
           Virtual ethernet                                        [  OK  ]
           Bridged networking on /dev/vmnet0                       [  OK  ]
    
        The configuration of VMware Server 1.0.1 build-29996 for Linux for this running
        kernel completed successfully.
    [root@zaphod ~]#
    
  8. Reboot the machine
  9. When it finishes booting you should have some vmware processes

I also installed the Web Management Interface, the steps involved were:

  1. Download the tarball. I grabbed VMware-mui-1.0.1-29996.tar.gz
  2. Extract it and cd into the vmware-mui-distrib directory
  3. Run ./vmware-install.pl. The output of mine is shown below:
    [root@zaphod vmware-mui-distrib]# ./vmware-install.pl
    Creating a new installer database using the tar3 format.
    
    You must read and accept the End User License Agreement to continue.
    Press enter to display it.
    
    VMWARE MASTER END USER LICENSE AGREEMENT
    
    Do you accept? (yes/no) yes
    
    Thank you.
    
    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/rc.d]
    
    What is the directory that contains the init scripts?
    [/etc/rc.d/init.d]
    
    In which directory do you want to install the VMware Management Interface
    files? [/usr/lib/vmware-mui]
    
    The path "/usr/lib/vmware-mui" does not exist currently. This program is going
    to create it, including needed parent directories. Is this what you want?
    [yes]
    
    In which directory would you like to install the documentation files?
    [/usr/lib/vmware-mui/doc]
    
    The path "/usr/lib/vmware-mui/doc" 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 Management Interface 1.0.1 build-29996 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-mui.pl".
    
    Before running VMware Management Interface for the first time, you need to
    configure it by invoking the following command:
    "/usr/bin/vmware-config-mui.pl". Do you want this program to invoke the command
    for you now? [yes]
    
    Configuring httpd.conf to run Apache as:
    User: nobody and Group: nobody
    
    Set the number of minutes before a http session times out. (This is the length
    of time before someone connecting to VMware Management Interface will be logged
    out) [60]
    
    Generating SSL Server Certificate
    
       Starting httpd.vmware:                                  [  OK  ]
    The configuration of VMware Management Interface completed successfully.
    
    [root@zaphod vmware-mui-distrib]#
    
  4. The install should have started it ok, you can now browse to http://your.host.name:8222/

Both the web interface and vmware itself chkconfig themselves on so they should run ok at boot. I rebooted my machine now to check all was well.