summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVolker Uhrig2008-05-13 16:58:28 +0200
committerVolker Uhrig2008-05-13 16:58:28 +0200
commit9d9630bfd27f9854317119891b7157eab27d42a1 (patch)
tree8ca77e4b114b6363f1152a9dc54aef9b9f80ab5b
parent* more functions in vmware.pm to make the source better read- and understandable (diff)
downloadcore-9d9630bfd27f9854317119891b7157eab27d42a1.tar.gz
core-9d9630bfd27f9854317119891b7157eab27d42a1.tar.xz
core-9d9630bfd27f9854317119891b7157eab27d42a1.zip
* removed files not needed anymore
* added two different runvmware-scripts, currently both are the same if vmware will change their configuration syntax, it's easier to fit the needs git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@1765 95ad53e4-c205-0410-b2fa-d234c58c8868
-rw-r--r--os-plugins/plugins/vmware/files/README5
-rw-r--r--os-plugins/plugins/vmware/files/runvmware-player-v1 (renamed from os-plugins/plugins/vmware/files/runvmware-v2)0
-rw-r--r--os-plugins/plugins/vmware/files/runvmware-player-v2559
-rwxr-xr-xos-plugins/plugins/vmware/files/vmware-init115
4 files changed, 562 insertions, 117 deletions
diff --git a/os-plugins/plugins/vmware/files/README b/os-plugins/plugins/vmware/files/README
index b5610485..ba51b1a6 100644
--- a/os-plugins/plugins/vmware/files/README
+++ b/os-plugins/plugins/vmware/files/README
@@ -16,8 +16,9 @@ Files
This nvram supports a second Floppy drive. Helpfull if you want to
get some data from linux to your Windows VirtualMachine (like
Scanner-IP or Userinformation)
-- runvmware-v2
- The main script which will configure and start the Virtual Machine
+- runvmware-player-v1 and runvmware-player-v2
+ The main script which will configure and start the Virtual Machine.
+ Two different, depending on the player-version
- Vorlage_VMwareImageAdministrator.xml
This example files shows which VMware features are configureable for
each virtual machine.
diff --git a/os-plugins/plugins/vmware/files/runvmware-v2 b/os-plugins/plugins/vmware/files/runvmware-player-v1
index eaa35b0e..eaa35b0e 100644
--- a/os-plugins/plugins/vmware/files/runvmware-v2
+++ b/os-plugins/plugins/vmware/files/runvmware-player-v1
diff --git a/os-plugins/plugins/vmware/files/runvmware-player-v2 b/os-plugins/plugins/vmware/files/runvmware-player-v2
new file mode 100644
index 00000000..eaa35b0e
--- /dev/null
+++ b/os-plugins/plugins/vmware/files/runvmware-player-v2
@@ -0,0 +1,559 @@
+#!/bin/bash
+#
+# Description: Script for preparing VMware environment Diskless
+# X Stations and interactive session chooser (v4)
+#
+# Author(s): see project authors file
+# letzte Ă„nderung Volker, 17 .Feb 2008
+# Copyright: (c) 2003 - 2008 - RZ Universitaet Freiburg
+#
+# Version: 0.16.611
+#
+################################################################################
+
+
+################################################################################
+##
+## Put $HOME to another location
+##
+################################################################################
+
+# We need to change $HOME so it saves everything to /tmp
+#export HOME="/tmp/${USER}"
+# following mkdir we have now twice in this script... but better twice
+# as not seperated. Now its no problem to delete this
+# "Put $HOME to another location" section later
+#mkdir /tmp/${USER}
+#ln -s /home/${USER}/.Xauthority /tmp/${USER}/.Xauthority
+
+
+
+### VARIABLES SECTION ##########################################################
+##
+## declaration of default variables
+##
+################################################################################
+
+## "static" variables only changed within the script
+
+# The PATH...
+export PATH="${PATH}:/var/X11R6/bin:/usr/X11R6/bin"
+
+# Last two values for MAC address
+mac=
+
+# memory information. permem is value to calculate needed memory
+mem=
+totalmem=
+permem=66
+
+# virtual fd/cd/dvd and drive devices, floppy b: for configuration
+#floppya is always false, if we have a floppy device or not isn't
+#important.
+floppya="FALSE"
+floppyb="TRUE"
+floppybname="/etc/vmware/loopimg/fd.img"
+cdr_1="FALSE"
+cdr_2="FALSE"
+# ide is expected default, test for the virtual disk image type should
+# be done while creating the runscripts ...
+ide="TRUE"
+scsi="FALSE"
+hddrv="lsilogic"
+
+# Displayresolution needed for vmware.config
+hostres=$(xvidtune -show 2>/dev/null| grep -ve "^$")
+xres=$(echo "${hostres}" | awk '{print $3}')
+yres=$(echo "${hostres}" | awk '{print $7}')
+
+# VMplayer buildversion
+vmbuild=
+
+# VMware start options
+#-X = fullscreen
+vmopt="-X"
+
+# temporary disk space for logs, etc...
+# use /tmp/vmware/${USER} if /tmp sits on NFS import
+export tmpdir=/tmp/${USER}
+
+# configfile
+confile="${tmpdir}/runvmware.conf"
+
+# users vmware config folder
+vmhome="${HOME}/.vmware"
+#vmhome="/tmp/${USER}/.vmware"
+
+
+# unknow variables needed vor vmwplayer configuration
+confver=8
+hver=4
+
+# set hostname: using original hostname and adding string "-vm"
+# variable isn't used anywhere in this script. but still works (however)
+# TODO: Test it commented out
+hostname="VM-${HOST}"
+
+# Folder of VirtualMachine Images
+vmdir="/var/lib/vmware"
+
+# special Variables, persistence vmware?
+#TODO: do we really need it? Should be everywhere nonpersistent
+np="independent-nonpersistent"
+
+########
+## TODO: everything clean till here
+########
+
+# File if its a link. Stupid crap
+#TODO: perhaps we don't need it
+rightsfile=
+#TODO: don't know what it is for. check later
+noimage=0
+# image checking variable
+filecheck=
+
+
+## Image depending variables. This values will be changed by the script
+
+# vmware image file
+#imagename="CHANGEIT"
+imagename="$1"
+diskfile="${vmdir}/${imagename}"
+
+#TODO: check for a faster way, perhaps we should put this into XML
+# oh - yeah!! Why not do it on the SERVER??? It has enough power and has
+# to do it once and not during every start on a client :)
+#grepping every file could take much (network) resources. And if its
+#an IDE Image, but has somewhere the string ddb.adapterType stuff can
+#become screwed
+# NOOOOOOO - We do not check on every start on every client!!!
+# check if IDE or SCSI
+#hddrv=$(grep -m 1 -ia "ddb.adapterType" ${diskfile} | awk -F "\"" '{print $2}')
+#if [ "${hddrv}" = "ide" ]; then
+# ide="TRUE"
+# scsi="FALSE"
+#elif [ "${hddrv}" = "lsilogic" ]; then
+# ide="FALSE"
+# scsi="TRUE"
+#elif [ "${hddrv}" = "buslogic" ]; then
+# ide="FALSE"
+# scsi="TRUE"
+#fi
+
+# define name for VMware window
+#displayname="CHANGEIT"
+displayname="$2"
+
+# Definition of the client system
+#vmostype="CHANGEIT"
+vmostype="$3"
+
+# Definition of the client system
+#network="CHANGEIT"
+network="$4"
+
+
+# command line variables
+# start with this this default commmand line options + extra
+# TODO: defaults laut datei --include /var/lib/vmware/tmpl/winconfig
+# --include <includefile> include code right before program start
+
+# Should we debug? Hell yes, we should always debug!
+debug=0
+
+#TODO: Bad done... we should do this another way later
+last_changes=$(head -n 15 $0 | grep "@" | awk -F ", " '{print $2}' \
+ | awk -F "-" '{print $3" "$2" "$1}' | sort -bfnr \
+ | awk '{print $3"-"$2"-"$1}' | grep -m 1 [0-9])
+version=$(head -n 15 $0 | grep "# Version: " | awk '{print $3}')
+
+#############
+## TODO: End of uncleaned area
+#############
+
+
+
+
+
+
+### FUNCTION SECTION ###########################################################
+##
+## In this script used functions
+##
+################################################################################
+
+### write runvmware.conf #######################################################
+#TODO: only not yet checked function
+filecheck ()
+{
+ filecheck=$(LANG=us ls -lh ${diskfile} 2>&1)
+ writelog "Filecheck:\n${filecheck}\n"
+ #TODO: don't understand the sence in it
+ noimage=$(echo ${filecheck} | grep -i "no such file or directory" | wc -l)
+ rightsfile=${diskfile}
+
+ # check if link
+ # TODO: mistake with 2nd rightsfile if its in another directory?
+ if [ -L "${diskfile}" ]; then
+ # take link target
+ rightsfile=$(ls -lh ${diskfile} 2>&1 | awk -F "-> *" '{print $2}')
+ rightsfile=${vmdir}/${rightsfile}
+ filecheck=$(LANG=us ls -lh ${rightsfile} 2>&1)
+ fi
+
+ # does file exist
+ if [ "${noimage}" -ge "1" ]; then
+ writelog "Vmware Image Problem:\c"
+ writelog "\tThe image you've specified doesn't exist."
+ writelog "Filecheck says:\c"
+ writelog "\t\t${diskfile}:\n\t\t\tNo such file or directory"
+ writelog "Hint:\c"
+ writelog "\t\t\tCompare spelling of the image with your options.\n"
+ exit 1
+ fi
+
+ # readable?
+ if ! [ -r "${diskfile}" >/dev/null 2>&1 \
+ -o -r "${diskfile}" >/dev/null 2>&1 ]; then
+ writelog "Vmware Image Problem:\c"
+ writelog "\tThe image you've specified has wrong rights."
+ writelog "Filecheck says:\t\t$(echo ${filecheck} \
+ | awk '{print $1" "$3" "$4}') ${rightsfile}"
+ writelog "Hint:\t\t\tChange rights with: chmod a+r ${rightsfile}\n"
+ exit 1
+ fi
+
+ # writable (for persistent-mode)?
+ if ! [ -w "${diskfile}" >/dev/null 2>&1 \
+ -o -w "${diskfile}" >/dev/null 2>&1 ] \
+ && [ "${np}" = "independent-persistent" ]; then
+ writelog "Vmware Image Problem:\c"
+ writelog "\tThe image you've specified has wrong rights."
+ writelog "Filecheck says:\t\t$(echo ${filecheck} \
+ | awk '{print $1" "$3" "$4}') ${rightsfile}"
+ writelog "Hint:\t\t\tUse nonpersistent-mode or change rights to rw\n"
+ exit 1
+ fi
+}
+
+
+### write runvmware.conf #######################################################
+runvmwareconfheader ()
+{
+ echo "
+ ##############################################################################
+ ###### This configuration file was generated by 'runvmware', ######
+ ###### dont use it for your own configurations - it will be overwritten ######
+ ###### ######
+
+ ###### identity ##############################################################
+ displayName = \"${displayname}\"
+ guestOS = \"${vmostype}\"
+ config.version = \"${confver}\"
+ virtualHW.version = \"${hver}\"
+
+ memsize = \"${mem}\"
+ numvcpus = \"1\"
+
+ ###### ide-disks #############################################################
+ ide0:0.mode = \"${np}\"
+ ide0:0.present = \"${ide}\"
+ ide0:0.fileName = \"${diskfile}\"
+
+ ide1:0.present = \"${cdr_1}\"
+ ide1:0.autodetect = \"TRUE\"
+ ide1:0.fileName = \"auto detect\"
+ ide1:0.deviceType = \"cdrom-raw\"
+
+ ide1:1.present = \"${cdr_2}\"
+ ide1:1.autodetect = \"TRUE\"
+ ide1:1.fileName = \"auto detect\"
+ ide1:1.deviceType = \"cdrom-raw\"
+
+ ###### scsi-disks ############################################################
+ scsi0.present = \"${scsi}\"
+ scsi0.virtualDev = \"lsilogic\"
+ scsi0:0.mode = \"${np}\"
+ scsi0:0.present = \"${scsi}\"
+ scsi0:0.fileName = \"${diskfile}\"
+
+ ###### nics ##################################################################
+ ethernet0.present = \"TRUE\"
+ ethernet0.addressType = \"static\"
+ ethernet0.connectionType = \"${network}\"
+ ethernet0.address = \"00:50:56:0D:${mac}\"
+
+ ###### sound #################################################################
+ sound.present = \"TRUE\"
+ sound.virtualDev = \"es1371\"
+
+ ###### usb ###################################################################
+ usb.present = \"TRUE\"
+ usb.generic.autoconnect = \"TRUE\"
+
+ ###### floppies ##############################################################
+ floppy0.present = \"${floppya}\"
+ floppy0.fileName = \"auto detect\"
+
+ # we need floppy b: this for our windows client configuration
+ floppy1.present = \"${floppyb}\"
+ floppy1.fileType = \"file\"
+ floppy1.fileName = \"${floppybname}\"
+ floppy1.startConnected = \"TRUE\"
+
+ ###### ports #################################################################
+ parallel0.present = \"FALSE\"
+
+ serial0.present = \"FALSE\"
+
+ ###### shared folders ########################################################
+ sharedFolder0.present = \"TRUE\"
+ sharedFolder0.enabled = \"TRUE\"
+ sharedFolder0.expiration = \"never\"
+ sharedFolder0.guestName = \"Home\"
+ sharedFolder0.hostPath = \"${HOME}\"
+ sharedFolder0.readAccess = \"TRUE\"
+ sharedFolder0.writeAccess = \"TRUE\"
+ sharedFolder.maxNum = \"1\"
+
+ ###### misc ##################################################################
+ tmpDirectory = \"${tmpdir}\"
+ mainMem.useNamedFile = \"TRUE\"
+ snapshot.disabled = \"TRUE\"
+ tools.syncTime = \"TRUE\"
+ # use redoLogDir = \"/dev/shm\" if sitting on NFS import
+ redoLogDir = \"${tmpdir}\"
+ hints.hideAll = \"TRUE\"
+ logging = \"FALSE\"
+ isolation.tools.hgfs.disable = \"FALSE\"
+ isolation.tools.dnd.disable = \"TRUE\"
+ isolation.tools.copy.enable = \"TRUE\"
+ isolation.tools.paste.enabled = \"TRUE\"
+ gui.restricted = \"TRUE\"
+ pref.hotkey.shift = \"TRUE\"
+ pref.hotkey.control = \"TRUE\"
+ pref.hotkey.alt = \"TRUE\"
+ svga.maxWidth = \"${xres}\"
+ svga.maxHeight = \"${yres}\"
+ " \
+ >${confile}
+
+ # set the appropriate permissions for the vmware config file
+ chmod u+rwx ${confile} >/dev/null 2>&1
+}
+
+
+### creates user configurationfile in ${vmhome} ################################
+preferencesheader ()
+{
+ echo "
+ ##############################################################################
+ ###### This configuration file was generated by 'runvmware', ######
+ ###### dont use it for your own configurations - it will be overwritten ######
+ ###### ######
+ ################################## Wichtig! ##################################
+ ###### *.vmem wird immer angelegt und frisst soviel Speicher, wie fuer ######
+ ###### den Gast vorgesehen. Sollte nicht im tempfs liegen. NFS OK, da ######
+ ###### IO nur einmal beim Start erheblich. Wird gesteuert ueber ######
+ ###### tmpDirectory = /nfs-viel-platz und darin wird dann vmware-\$user ######
+ ###### angelegt. ######
+
+ # DEBUG: some versions accept it only upper or lowercase... which one?
+ # The following 4 could also be uppercase
+ hints.hideAll = \"true\"
+ pref.exchangeSelections = \"true\"
+ pref.hotkey.shift = \"true\"
+ pref.tip.startup = \"false\"
+ pref.vmplayer.exit.vmAction = \"poweroff\"
+ # DEBUG: some versions accept it only upper or lowercase... which one?
+ # The following 2 could also be uppercase
+ pref.vmplayer.fullscreen.autohide = \"true\"
+ pref.vmplayer.webUpdateOnStartup = \"false\"
+ prefvmx.defaultVMPath = \"${vmhome}\"
+ prefvmx.mru.config = \"${confile}:\"
+ tmpDirectory = \"${tmpdir}\"
+ webUpdate.checkPeriod = \"manual\"
+ pref.eula.size = \"2\"
+ pref.eula.0.appName = \"VMware Player\"
+ pref.eula.0.buildNumber = \"${vmbuild}\"
+ pref.eula.1.appName = \"VMware Workstation\"
+ pref.eula.1.buildNumber = \"${vmbuild}\"
+ " \
+ >${vmhome}/preferences
+}
+
+
+### log function ###############################################################
+# function to write to stdout and logfile
+writelog ()
+{
+ # write to stdout
+ echo -e "$1"
+
+ # log in file
+ echo -e "$1" >>${tmpdir}/runvmware.${USER}.log
+}
+
+
+
+
+
+
+### MAIN SECTION ###############################################################
+##
+## Main part of the script...
+##
+################################################################################
+
+# Delete the LOCK file. its unsecure, but ...
+rm -f ${tmpdir}/*LOCK >/dev/null 2>&1
+
+# create vmware directories
+mkdir -p ${tmpdir} >/dev/null 2>&1
+mkdir -p ${vmhome} >/dev/null 2>&1
+
+# NO X-server, no runvmware ;)
+[ -z "$DISPLAY" ] && echo -e "\n\tStart only within a desktop!\n" && exit 1
+
+# logo for console
+cat <<EOL
+
+ .----.--.--.-----.--.--.--------.--.--.--.---.-.----.-----.
+ | _| | | | | | | | | | _ | _| -__|
+ |__| |_____|__|__|\___/|__|__|__|________|___._|__| |_____|
+ Script for preparing VMware environment...(v${version})
+
+
+EOL
+
+
+### CHECK MACHINE SETUP ########################################################
+
+## log script information
+writelog "##################################################\n"
+writelog "# File created by $0 (v.${version})\n# on $(date)\n"
+writelog "##################################################\n"
+writelog "Starting...$(echo ${np} | sed 's/i.*-//g' \
+ | tr [a-z] [A-Z])-mode\n"
+
+## log disksetup
+writelog "Directories:
+ \tTmpdir:\t\t${tmpdir}\n\tVMhome:\t\t${vmhome}\n\tTmpdir info:\
+ \t$(mount | grep -i "/tmp ")\n"
+
+## configuring MAC address: first four bytes are fixed (00:50:56:0D) the
+## last two bytes are taken from the local network adaptor
+writelog "Starting hardware / device detection...\c"
+
+## Get last two MAC values for VMPlayer
+# NF = Number of Fields of found values in awk
+mac=$(/sbin/ifconfig eth0 | grep eth0 | sed -e "s/ //g" \
+ | awk -F ":" '{print $(NF-1)":"$NF}')
+
+
+## check if we have enough free memory
+
+# get memory in MB
+totalmem=$(expr $(grep -i "memtotal" /proc/meminfo | awk '{print $2}') / 1024)
+
+# calculate memory for vmplayer
+# TODO: unhappy how it is calculated
+mem=$(expr ${totalmem} / 100 \* ${permem} / 4 \* 4)
+
+# check memory range
+memtest=${totalmem}-128
+if [ "${mem}" -lt "128" ] || [ "${mem}" -gt "${totalmem}" ]; then
+ writelog "\n\n\tYour memory is out of range: ${mem} MB.
+ \tMin. 128 MB for host and guest!\n\tTry --mem option.\n"
+ exit 1
+fi
+
+
+## look for cdrom, dvd and add them to the vm config file
+if [ -L /dev/cdrom ] ; then
+ cdr_1="TRUE"
+fi
+
+if [ -L /dev/cdrom1 ] ; then
+ cdr_2="TRUE"
+fi
+
+
+## Write all results to logfile
+writelog "finished\nResults:\n\tMAC:\t\t00:50:56:0D:${mac}\n\tMem:\t\t
+ ${mem} MB \tMax. res.:\t${xres}x${yres}\n\t\tCD-ROM_1:\t${cdr_1}\n\t
+ CD-ROM_2:\t${cdr_2}\n"
+writelog "finished\nResults:\n\tDiskfile:\t${diskfile}\n\tDisktype:\t${hddrv}
+ \tVMostype:\t${vmostype}\n\tDisplayname:\t${displayname}\n"
+
+# check if image exists, etc...
+filecheck
+
+# VMPlayer Version.
+# strings is the fastest and most secure way, vmplayer -v takes too much time
+# and resources
+vmbuild=$(strings /usr/lib/vmware/bin/vmplayer \
+ | grep -m 1 "build-"|sed 's/.*build-//')
+if [ ! -n ${vmbuild} ]; then
+ vmbuild=$(vmplayer -v | sed 's/.*build-//')
+fi
+
+### write configuration files ##################################################
+# create preferences
+preferencesheader
+
+# create VMware startup file
+runvmwareconfheader
+
+# poolconfiguration config.xml
+#TODO: change default to global variable ${POOL} in the future
+#comment out cause of scanner... we do it now by hand... just a hack
+#TODO: cleaner source...
+#sed -e "s/HOSTNAME/${hostname}/" \
+# -e "s/USER/${USER}/" /var/lib/vmware/templates/client-config.xml.default \
+# > /etc/vmware/fd-loop/config.xml
+echo "<settings>" > /etc/vmware/fd-loop/config.xml
+echo " <eintrag>" >> /etc/vmware/fd-loop/config.xml
+echo " <computername param=\"${hostname}\">" >> /etc/vmware/fd-loop/config.xml
+echo " </computername>" >> /etc/vmware/fd-loop/config.xml
+echo " <username param=\"${USER}\">" >> /etc/vmware/fd-loop/config.xml
+echo " </username>" >> /etc/vmware/fd-loop/config.xml
+# if we have a scanner, then copy scannerinformation to this xml
+sanelines="$(wc -l /etc/sane.d/net.conf|awk '{ print $1 };')"
+if [ -f /etc/sane.d/net.conf ] && [ "${sanelines}" -eq 1 ]; then
+ echo "<scanner param=\"$(cat /etc/sane.d/net.conf)\">" \
+ >> /etc/vmware/fd-loop/config.xml
+ echo "</scanner>" >> /etc/vmware/fd-loop/config.xml
+fi
+echo " </eintrag>" >> /etc/vmware/fd-loop/config.xml
+echo "</settings>" >> /etc/vmware/fd-loop/config.xml
+
+
+# sync is needed to ensure that data is really written to virtual disk
+sync
+
+# own nvram. We need it for floppy drive b, default nvram has just drive a
+# TODO: Take care if plugin-repo changes
+#cp /var/lib/vmware/templates/nvram.5.0 ${tmpdir}/nvram
+cp /opt/openslx/plugin-repo/nvram.5.0 ${tmpdir}/nvram
+
+# adjust volume
+writelog "Unmuting sound...\c"
+amixer -q sset Master 28 unmute
+amixer -q sset PCM 28 unmute
+writelog "finished\n"
+
+### run vmplayer ###############################################################
+# ...with the automatically written config file
+if [ $(which vmplayer 2>/dev/null) ]; then writelog "\nStarting VMplayer..."
+ # run VMplayer
+ writelog "... vmplayer ${vmopt} ${confile}...\n"
+ vmplayer ${vmopt} ${confile} 2>&1 >/dev/null
+else
+ writelog "\nNo VMware/VMPlayer found!\n"
+ exit 1
+fi
+
+writelog "\nBye.\n"
+exit 0
diff --git a/os-plugins/plugins/vmware/files/vmware-init b/os-plugins/plugins/vmware/files/vmware-init
deleted file mode 100755
index d41230ca..00000000
--- a/os-plugins/plugins/vmware/files/vmware-init
+++ /dev/null
@@ -1,115 +0,0 @@
-#!/bin/sh
-#
-# parts taken from vmware start script:
-# Copyright 1998-2007 VMware, Inc. All rights reserved.
-#
-# This script manages the services needed to run VMware software
-
-# Basic support for the Linux Standard Base Specification 1.3
-# Used by insserv and other LSB compliant tools.
-### BEGIN INIT INFO
-# Provides: VMware
-# Required-Start: $network $syslog
-# Required-Stop:
-# Default-Start: 2 3 5
-# Default-Stop: 0 6
-# Short-Description: Manages the services needed to run VMware software
-# Description: Manages the services needed to run VMware software
-### END INIT INFO
-
-# prereqs:
-# 1) a) this script b) the modules (vmmon, vmblock, vmnet) match the
-# installed vmware/player version (ensured by stage1 install)
-# 2) the script is tailored to the vendor-os we are running
-# 3) the script checks a configuration file to know which modes to
-# prepare
-# 4) we use the dhcp-server for ALL internal interfaces we are running
-# 5) stage3 produces a configfile /etc/vmware/slxvmconfig where the
-# settings of networking etc. are made
-
-# read the configuration file generated in stage3 to configure the
-# host internal interfaces
-. /etc/vmware/slxvmconfig
-
-
-load_modules() {
- # to be filled in via the stage1 configuration script
- modprobe -qa vmmon vmnet vmblock 2>/dev/null
- # most probably nobody wants to run the parallel port driver ...
- #modprobe vm...
-}
-unload_modules() {
- # to be filled with the proper list within via the stage1 configuration
- # script
- rmmod vmmon vmblock vmnet 2>/dev/null
-}
-# the bridged interface
-setup_vmnet0() {
- if [ -n "$vmnet0" ] ; then
- # the path might be directly point to the plugin dir
- /usr/bin/vmnet-bridge -d /var/run/vmnet-bridge-0.pid /dev/vmnet0 eth0
- fi
-}
-# we definately prefer the hostonly interface for NATed operation too
-# distinction is made via enabled forwarding
-setup_vmnet1() {
- if [ -n "$vmnet1" ] ; then
- test -c /dev/vmnet1 || mknod c 119 1 /dev/vmnet1
- # the path might be directly point to the plugin dir
- /usr/bin/vmnet-netifup -d /var/run/vmnet-netifup-vmnet1.pid \
- /dev/vmnet1 vmnet1
- dhcpif="$dhcpif vmnet1"
- ip addr add $vmnet1 dev vmnet1
- if [ -n "$vmnet1nat" ] ; then
- # needs refinement interface name for eth0 is known in stage3 already
- echo "1" > /proc/sys/net/ipv4/conf/vmnet1/forwarding 2>/dev/null
- echo "1" > /proc/sys/net/ipv4/conf/eth0/forwarding 2>/dev/null
- #iptables -A -s vmnet1 -d eth0
- fi
- fi
-}
-# incomplete ...
-setup_vmnet8() {
- if [ -n "$vmnet8" ] ; then
- test -c /dev/vmnet1 || mknod c 119 8 /dev/vmnet8
- # /etc/vmware/vmnet-natd-8.mac simply contains a mac like 00:50:56:F1:30:50
- /usr/bin/vmnet-natd -d /var/run/vmnet-natd-8.pid \
- -m /etc/vmware/vmnet-natd-8.mac -c /etc/vmware/nat.conf
- dhcpif="$dhcpif vmnet8"
- ip addr add $vmnet8 dev vmnet8
- fi
-}
-runvmdhcpd() {
- if [ -n "$dhcpif" ] ; then
- # the path might be directly point to the plugin dir
- mkdir /var/run/vmware 2>/dev/null
- /usr/bin/vmnet-dhcpd -cf /etc/vmware/dhcpd.conf -lf \
- /var/run/vmware/dhcpd.leases -pf /var/run/vmnet-dhcpd-vmnet8.pid $dhcpif
- fi
-}
-
-case $1 in
- start)
- # message output should match the given vendor-os
- echo "Starting vmware background services ..."
- load_modules
- setup_vmnet0
- setup_vmnet1
- setup_vmnet8
- runvmdhcpd
- ;;
- stop)
- # message output should match the given vendor-os
- echo "Stopping vmware background services ..."
- killall vmnet-netifup vmnet-natd vmnet-bridge vmware vmplayer \
- vmware-tray 2>/dev/null
- # wait for shutting down of interfaces
- usleep 50000
- unload_modules
- ;;
- status)
- echo "Say something useful here ..."
- ;;
-esac
-
-exit 0