diff options
-rw-r--r-- | vmware/img.fd0 | bin | 0 -> 1474560 bytes | |||
-rw-r--r-- | vmware/license.ws.5.0 | 12 | ||||
-rw-r--r-- | vmware/locations | 40 | ||||
-rw-r--r-- | vmware/nvram.5.0 | bin | 0 -> 8664 bytes | |||
-rwxr-xr-x | vmware/runvmware | 835 |
5 files changed, 887 insertions, 0 deletions
diff --git a/vmware/img.fd0 b/vmware/img.fd0 Binary files differnew file mode 100644 index 00000000..7c47c615 --- /dev/null +++ b/vmware/img.fd0 diff --git a/vmware/license.ws.5.0 b/vmware/license.ws.5.0 new file mode 100644 index 00000000..556d7730 --- /dev/null +++ b/vmware/license.ws.5.0 @@ -0,0 +1,12 @@ +# VMware software license +StartFields = "Cpt, ProductID, LicenseVersion, LicenseType, Epoch" +Cpt = "COPYRIGHT (c) VMware, Inc. 1999-2004" +ProductID = "VMware Workstation for Linux" +LicenseVersion = "5.0" +LicenseType = "User" +Epoch = "2004-9-1" +Serial = "28K0L-HCP78-PY2AL-4VNA1" +Name = "LDC-Test" +CompanyName = "RZ Uni FR" +LastModified = "2005-08-01 @ 12:09:43 UTC" +Hash = "93e84785-3d7dbee1-b60f36af-ae953499-2dd65a55" diff --git a/vmware/locations b/vmware/locations new file mode 100644 index 00000000..3e17cd53 --- /dev/null +++ b/vmware/locations @@ -0,0 +1,40 @@ +file /etc/vmware/locations +answer BINDIR /usr/bin +answer LIBDIR /usr/lib/vmware +answer DOCDIR /usr/share/doc/vmware +answer MANDIR /usr/share/man +answer INITDIR /etc/init.d +answer INITSCRIPTSDIR /etc/init.d +file /etc/init.d/vmware 1065542439 +answer EULA_AGREED yes +answer BUILDR_vmmon no +answer BUILDR_vmnet yes +answer NETWORKING yes +file /dev/vmnet0 +file /dev/vmnet1 +file /dev/vmnet2 +file /dev/vmnet3 +file /dev/vmnet4 +file /dev/vmnet5 +file /dev/vmnet6 +file /dev/vmnet7 +file /dev/vmnet8 +file /dev/vmnet9 +answer VNET_0_INTERFACE eth0 +remove_file /dev/vmnet0 +file /dev/vmnet0 +answer VNET_8_HOSTONLY_HOSTADDR 1.2.3.4 +answer VNET_8_HOSTONLY_NETMASK 255.255.255.0 +remove_file /dev/vmnet8 +file /dev/vmnet8 +answer VNET_8_NAT no +remove_answer VNET_8_HOSTONLY_HOSTADDR +answer VNET_8_HOSTONLY_HOSTADDR 1.2.4.1 +remove_answer VNET_8_HOSTONLY_NETMASK +answer VNET_8_HOSTONLY_NETMASK 255.255.255.0 +directory /etc/vmware/vmnet8 +directory /etc/vmware/vmnet8/nat +file /etc/vmware/vmnet8/nat/nat.conf 1065542600 +answer ISC_COPYRIGHT_SEEN yes +answer VNET_1_SAMBA no +remove_file /etc/vmware/config diff --git a/vmware/nvram.5.0 b/vmware/nvram.5.0 Binary files differnew file mode 100644 index 00000000..a4506b1d --- /dev/null +++ b/vmware/nvram.5.0 diff --git a/vmware/runvmware b/vmware/runvmware new file mode 100755 index 00000000..baf35257 --- /dev/null +++ b/vmware/runvmware @@ -0,0 +1,835 @@ +#!/bin/sh +# +# Description: Script for preparing VMware environment Diskless X Stations +# (v4.0) +# +# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 05-08-2005 +# Michael Janczyk <mj0@uni-freiburg.de>, 10-03-2006 +# Copyright: (c) 2003, 2006 - RZ Universitaet Freiburg +# +VERSION=pre0.14; LAST_CHANGES=10.03.06 +################################################################################ + + + + +### VERBOSE? ################################################################### +# set verbose mode (set -x(v)) +#set -xv + + + +# TO BE CHANGED!!!! +# TO BE CHANGED!!!! +# TO BE CHANGED!!!! +# TO BE CHANGED!!!! +# TO BE CHANGED!!!! +# TO BE CHANGED!!!! +# TO BE CHANGED!!!! +# TO BE CHANGED!!!! +# TO BE CHANGED!!!! +# TO BE CHANGED!!!! +# TO BE CHANGED!!!! +# TO BE CHANGED!!!! +# TO BE CHANGED!!!! +# TO BE CHANGED!!!! +# TO BE CHANGED!!!! +# TO BE CHANGED!!!! + + + +### HEADER SECTION ############################################################# +# VMware guestOS variable declaration +ostypeheader () + { + echo ' + # This configuration can be changed in runvmware + + ##### + # For OSType use the first part of the image-name. + # -OSType- | -VMWare name- | -Description (use "-" for space)- + ##### + windows98 win98 Windows-98 + windows2000 win2000pro Windows-2000-Professional + windowsxp winxppro Windows-XP-Professional + suse suse Novell-SuSe-Linux + kubuntu other26xlinux kubuntu + debian other26xlinux debian + + ##### + # What to boot if none of the obove is found, equivalent to * + # -else- | -VMWare name- | -Description (use "-" for space)- + ##### + + else other Unspecified-OS + ' + } + + +# runvmware alias header +aliasheader () + { + echo ' + # This configuration can be changed in runvmware + # + # -NO DUPLICATE ENTRIES!!!- + + ###### + # -OSType- | -aliases separated through spaces- + ##### + windows98 win98 + windows2000 win2k + windowsxp winxppro winxp + suse suse93 + + ##### + # -Spec names- | -aliases separated through spaces- + ##### + kursversion kurs k + ' + } + + +# runvmware.conf +runvmwareconfheader () + { + echo " + # This configuration file was generated by 'runvmware', dont use it for your + # own configurations - it will be overwritten + + apmSuspend = \"FALSE\" + config.version = \"$CONFVER\" + debug = \"FALSE\" + disable_acceleration = \"FALSE\" + displayName = \"$DISPLAYNAME\" + ethernet0.address = \"00:50:56:0D:$MAC\" + ethernet0.addressType = \"static\" + ethernet0.connectionType = \"bridged\" + ethernet0.present = \"TRUE\" + $FLOPPYA + floppy1.fileName = \"$FILENAME\" + floppy1.fileType = \"file\" + floppy1.present = \"TRUE\" + floppy1.startConnected = \"TRUE\" + guestOS = \"$VMOSTYPE\" + hard-disk.enableIBR = \"FALSE\" + ide0:0.fileName = \"$TMPDIR/disk\" + ide0:0.mode = \"$NP\" + ide0:0.present = \"TRUE\" + isolation.tools.dnd.disable = \"TRUE\" + logging = \"FALSE\" + memsize = \"$MEM\" + parallel0.bidirectional = \"FALSE\" + parallel0.fileName = \"/dev/parport0\" + parallel0.present = \"FALSE\" + priority.grabbed = \"normal\" + priority.ungrabbed = \"normal\" + redoLogDir = \"$TMPDIR\" + resume.repeatable = \"FALSE\" + scsi0:0.deviceType = \"cdrom-raw\" + scsi0:0.fileName = \"$CDR_1_NAME\" + scsi0:0.present = \"$CDR_1\" + scsi0:1.deviceType = \"cdrom-raw\" + scsi0:1.fileName = \"$CDR_2_NAME\" + scsi0:1.present = \"$CDR_2\" + scsi0.present = \"$VMSCSI\" + serial0.fileName = \"/dev/ttyS0\" + serial0.present = \"TRUE\" + sharedFolder0.enabled = \"TRUE\" + sharedFolder0.expiration = \"never\" + sharedFolder0.guestName = \"home\" + sharedFolder0.hostPath = \"$HOME\" + sharedFolder0.present = \"TRUE\" + sharedFolder0.readAccess = \"TRUE\" + sharedFolder0.writeAccess = \"TRUE\" + sharedFolder.maxNum = \"1\" + sound.present = \"TRUE\" + suspendToDisk = \"TRUE\" + tmpDirectory = \"$TMPDIR\" + tools.syncTime = \"TRUE\" + usb.present = \"TRUE\" + virtualHW.version = \"4\" + " \ + >$CONFILE + + # Set the appropriate permissions for the vmware config file + chmod u+rwx $CONFILE >/dev/null 2>&1 + } + + +preferencesheader () + { + echo " + # This configuration file was generated by 'runvmware', dont use it for your + # own configurations - it will be overwritten + + hint.buslogic.needDriver = \"FALSE\" + hint.cpuid.unknownfeature = \"FALSE\" + hint.disklib.lockerror = \"FALSE\" + hint.guestos.xp = \"FALSE\" + hint.gui.poweroff = \"FALSE\" + hint.gui.reset = \"FALSE\" + hint.mks.fullscreen = \"FALSE\" + hint.mks.notLocal = \"FALSE\" + hint.moninit.newKernel = \"FALSE\" + hint.nfsmounted.persistent = \"FALSE\" + hint.nfsmounted.undoable = \"FALSE\" + hint.nologging = \"FALSE\" + hint.scsi.needDriver = \"FALSE\" + hint.sound.openMixerFailed = \"FALSE\" + hint.tools.toolsImage = \"FALSE\" + hint.upgrade.legacyVM = \"FALSE\" + hint.usbgLinux.altuhci = \"FALSE\" + hint.vmui.poweroff = \"FALSE\" + hint.xkeymap.notLocal = \"FALSE\" + pref.allowInsanePkgs = \"FALSE\" + pref.autoFitFullScreen = \"fitHostToGuest\" + pref.autoRaise = \"FALSE\" + pref.exchangeSelections = \"TRUE\" + pref.grabOnKeyPress = \"FALSE\" + pref.hotkey.shift = \"true\" + pref.motionGrab = \"TRUE\" + pref.motionScrollBarrier = \"100000\" + pref.motionUngrabBarrier = \"1\" + pref.openedVM0.present = \"TRUE\" + pref.openedVM.maxNum = \"1\" + pref.syncTime = \"FALSE\" + pref.tip.startup = \"FALSE\" + pref.toolbarIcons = \"FALSE\" + pref.view.navBar.type = \"favorites\" + pref.vmplayer.exit.vmAction = \"poweroff\" + pref.vmplayer.fullscreen.autohide = \"TRUE\" + pref.vmplayer.webUpdateOnStartup = \"FALSE\" + prefvmx.defaultVMPath = \".vmware\" + prefvmx.mru.config = \"$CONFILE:\" + prefvmx.mru.suspended = \"\" + tmpDirectory = \"$CONFDIR\" + webUpdate.checkLast = \"1120235802\" + webUpdate.checkPeriod = \"manual\" + " \ + >$VMDIR/preferences + } + + +# Create Windows 98 config files +win98header () + { + echo -e "\tREGEDIT4\r + + [HKEY_CURRENT_USER\Networ\Persistent\H]\r + \"RemotePath\"=\"\\\\192.168.1.2\\$USER\"\r + \"UserName\"=\"$USER\"\r + \"ProviderName\"=\"Microsoft Network\"\r" \ + > /media/loop0/home.reg + + echo -e "\tREGEDIT4\r + + [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP]\r + \"ComputerName\"=\"$HOSTNAME\"\r + \"Workgroup\"=\"$WORKGROUP\"\r + \"Comment\"=\"$COMMENT\"\r + \"StaticVxD\"=\"vnetsup.vxd\"\r + \"Start\"=hex:00\r + \"NetClean\"=hex:01\r + + [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\\\ +ComputerName]\r + \"ComputerName\"=\"$HOSTNAME\"\r" \ + > /media/loop0/rechner.reg + + echo -e "\tREGEDIT4\r + + [HKEY_LOCAL_MACHINE\Network\Logon]\r + \"username\"=\"$USER\"\r + \"PrimaryProvider\"=\"Microsoft Network\"\r + \"LMLogon\"=hex:00,00,00,00\r" \ + > /media/loop0/logon.reg + } + + +winresheader () + { + echo -e "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r + <settings>\r + <eintrag>\r + <resolution_x param=\"$X_PARAM\">\r + </resolution_x>\r + <resolution_y param=\"$Y_PARAM\">\r + </resolution_y>\r + <username param=\"$USER\">\r + </username>\r + </eintrag>\r + </settings>\r" \ + > /media/loop0/config.xml + } + + + + +### VARIABLES SECTION ########################################################## + +# Declaration of default variables + +# Hardware variables +# Temporary disk space for logs, etc... +export TMPDIR=/tmp/vmware_temporary/$USER/tmp +# ;) +MAC= +declare -i MEM=0 +declare -i MEMTEST=0 +MEMOPT= +PERMEM=66 +# Virtual Devices +VMSCSI=FALSE +CDR_1=FALSE +CDR_2=FALSE +FLOPPYA="floppy0.present = \"FALSE\"" +# Resolution +HOSTRES=`xvidtune -show | grep -ve "^$"` +X_PARAM=`echo "$HOSTRES" | awk '{print $3}'` +Y_PARAM=`echo "$HOSTRES" | awk '{print $7}'` + + +# VMware variables +# VMware start options +VMOPT="-X -q" +# Config directory and file +CONFDIR=/tmp/vmware_temporary/$USER/vmware +CONFILE=$CONFDIR/runvmware.conf +VMDIR=$HOME/.vmware +# Zenity +SESS_ZEN="/etc/X11/sessions" +# VMware version +VM_VER=5 +# Special Variables +#UNDOPOINT="keep" +CONFVER=7 +NP="independent-nonpersistent" +# Set hostname: using original hostname and adding string "-vm" +HOSTNAME=`hostname`"-vm" +# Set samba workgroup +WORKGROUP="tux-net" +# Place for the virtual floppy "B:" +FILENAME=`mount | grep -i "$HOST-1440.img" | awk '{print $1}'` +COMMENT="Diskless Workstation VMware-Image" +# Image Variables +IMGDIR="/usr/share/vmware" +ALIAS= +SPEC= +ENDING="vmdk" +DISKFILE= +RIGHTSFILE= +NOIMAGE=0 +OSTYPE= +DISPLAYNAME="Unknown OS" +# Image checking variable +FILECHECK= + + +# Command line variables +# Command line options, transform to lower case +LINEOPTS=( `echo $@ | tr [A-Z] [a-z]` ) +SILENT= +DEBUG=0 +INTER= +COMDEF= +NARG= + + + + +### FUNCTIONS SECTION ########################################################## + +# Function to write to stdout/logfile +# Logs labeled with $2=0 write to stdout, if debug set, write to logfile +writelog () + { + # Write to stdout + ! [ $SILENT ] && [ "$2" = "0" ] && echo -e "$1" + + # Check if range given e.g. 0 0 + if [ -z "$2" ] || [ -z "$3" ];then + echo -e "\n\nNO RANGE IN WRITELOG STATEMENT:\n$1\n\tPlease correct!\n" + exit 1 + fi + + # Log if level greater than 1 and log only from level $2 to level $3 + [ "$DEBUG" -ge "1" ] && [ "$DEBUG" -ge "$2" ] && [ "$DEBUG" -le "$3" ] && \ + echo -e "$1" >>$CONFDIR/runvmware.$DEBUG.log + } + + +help () + { + cat <<EOH + +USAGE: $0 [--options] + +Image options: + -i interactive mode with image selection + -o <ostype> start ostype, e.g. windowsxp, suse,... + (first part of image name) + -s <specification> specify your image, e.g. standard + (second part of image name) + -a use aliases in runvmware header + --silent no stdout from runvmware + --displayaliases aliases you can use with option -a + --mem <n(M(h)),n(G(h))> override autoallocation of memory, in percent + m,M megabyte, g,G gigabyte, h,H reserve f. host + --delay <n seconds> delay the start of the script n seconds + --image <directory> specify image directory + --persistent use persistent mode + --define-vm-ostype <os> overwrite vmware ostype +VMware options: + --run <programm> specify programm, e.g. vmware, vmplayer, ... + --windowed start in windowed mode + --edit only open config file in vmware (only VMware) + --donotquit do not quit after image stopped (only VMware) +runvmware options: + -h|--help this help + --version + --debug <level> level 1 -> print stdout to file + + Dirk von Suchodoletz, Michael Janczyk + <dirk@goe.net>, <mj0@uni-freiburg.de> + +EOH + + # Print Version , remove path + echo -e "$0: LAST CHANGES $LAST_CHANGES | VERSION $VERSION\n" |\ + awk -F "/" '{print "\t\t"$NF}' + + exit 0 + } + + +checkalias () + { + writelog "Checking alias for $OSTYPE${SPEC:+", $SPEC"}...\c" 0 1 + # OSTYPE= + OSALIAS=`aliasheader | grep -v "#.*" | grep -w "$OSTYPE" | awk '{print $1}'` + [ -n "$OSALIAS" ] && OSTYPE=$OSALIAS + + # SPEC= + [ -n "$SPEC" ] && \ + SPECALIAS=`aliasheader | grep -v "#.*" | grep -w "$SPEC" | awk '{print $1}'` + [ -n "$SPECALIAS" ] && SPEC=$SPECALIAS + + writelog "finished\nResult:\n\tOS=$OSTYPE${SPEC:+"\\\n\\\tSPEC=$SPEC"}\n" 0 1 + } + + +x_dialog () + { + DESKTOPS=( `ls $SESS_ZEN 2>/dev/null | sed -e "s,.desktop,,"` ) + DESKTOPSNR=`ls $SESS_ZEN 2>/dev/null | wc -l` + (( NARG=0 )) + while [ "$DESKTOPSNR" -gt "$NARG" ]; do + MENU="$MENU ${DESKTOPS[$NARG]} ${DESKTOPS[$NARG]}" + (( NARG=$NARG+1 )) + done + + # --stderr because of 1>/dev/nul + Xdialog --title "VMware Image Menu" \ + --stderr \ + --no-tags \ + --ok-label "Run Image" \ + --cancel-label "Abort Runvmware" \ + --menubox "Please choose the image you would like to run:" 24 51 6 \ + $MENU 1>/dev/null + } + + +filecheck () + { + FILECHECK=`LANG=us ls -lh $DISKFILE 2>&1` + writelog "Filecheck:\n$FILECHECK\n" 0 1 + NOIMAGE=`echo $FILECHECK | grep -i "No such file or directory" | wc -l` + RIGHTSFILE=$DISKFILE + + # Check if link + if [ -L "$DISKFILE" ]; then + writelog "Vmware Image Problem:\c" 0 1 + writelog "\tThe image you've specified is a link.\n" 0 1 + writelog "\tContinuing to start VMware, but it may cause problems!\n" 0 0 + + # Take link target + RIGHTSFILE=`ls -lh $DISKFILE 2>&1 | awk -F "->" '{print $2}'` + FILECHECK=`LANG=us ls -lh $RIGHTSFILE 2>&1` + fi + + # Does file exist + if [ "$NOIMAGE" -ge "1" ]; then + writelog "Vmware Image Problem:\c" 0 0 + writelog "\tThe image you've specified doesn't exist." 0 0 + writelog "Filecheck says:\c" 0 1 + writelog "\t\t$DISKFILE:\n\t\t\tNo such file or directory" 0 1 + writelog "Hint:\c" 0 0 + writelog "\t\t\tCompare spelling of the image with your options.\n" 0 0 + exit 1 + fi + + # Readable? + if ! [ -r "$DISKFILE" ]; then # $RIGHTSFILE see above + writelog "Vmware Image Problem:\c" 0 1 + writelog "\tThe image you've specified has wrong rights." 0 1 + writelog "Filecheck says:\t\t`echo $FILECHECK |\ + awk '{print $1" "$3" "$4}'` $RIGHTSFILE" 0 1 + writelog "Hint:\t\t\tChange rights with: chmod a+r $RIGHTSFILE\n" 0 0 + exit 1 + fi + } + + + + +#### INTERPRET COMMAND LINE OPTIONS ############################################ +# Print help if no clo +if [ $# = "0" ]; then + help + exit 0 +fi + +# Start +(( NARG=0 )) +while [ $# -gt "$NARG" ]; do + case "${LINEOPTS[$NARG]}" in + -h|--help) + help + ;; + --version) + echo -e "\n$0: LAST CHANGES $LAST_CHANGES | VERSION $VERSION\n" |\ + awk -F "/" '{print "\t"$NF}' + exit 0 + ;; + -i) + INTER="yes" + ;; + -o) + (( NARG=$NARG+1 )) # Needed for checking unknown options + OSTYPE=${LINEOPTS[$NARG]} + ;; + -s) + (( NARG=$NARG+1 )) + SPEC=${LINEOPTS[$NARG]} + ;; + -a) + ALIAS="yes" + ;; + --silent) + SILENT=true + ;; + --displayaliases) + aliasheader; exit 0 + ;; + --delay) + (( NARG=$NARG+1 )) + sleep ${LINEOPTS[$NARG]} + ;; + --image) + (( NARG=$NARG+1 )) + IMGDIR=${LINEOPTS[$NARG]} + ;; + --persistent) + NP="independent-persistent" + ;; + --define-vm-ostype) + (( NARG=$NARG+1 )) + VMOSTYPE=${LINEOPTS[$NARG]} + COMDEF="yes" + ;; + --mem) + (( NARG=$NARG+1 )) + MEMOPT=${LINEOPTS[$NARG]} + ;; + --run) + (( NARG=$NARG+1 )) + VMRUN=${LINEOPTS[$NARG]} + ;; + --debug) + (( NARG=$NARG+1 )) + DEBUG=${LINEOPTS[$NARG]} + ;; + --windowed) + VMOPT=`echo $VMOPT | sed -e "s,-X,-x,"` + ;; + --edit) + VMOPT="" + ;; + --donotquit) + VMOPT=`echo $VMOPT | sed -e "s,-q,,"` + ;; + *) + echo -e "\n\tOption \"${LINEOPTS[$NARG]}\" not found, please correct.\n" + sleep 1 + help + ;; + esac + (( NARG=$NARG+1 )) +done + + + + +### STARTING ################################################################### + +# Logo for console +cat <<EOL + + .----.--.--.-----.--.--.--------.--.--.--.---.-.----.-----. + | _| | | | | | | | | | _ | _| -__| + |__| |_____|__|__|\___/|__|__|__|________|___._|__| |_____| + Script for preparing VMware environment...(v$VERSION) + + +EOL +writelog "Starting...`echo $NP|sed -e \"s,i.*-,,g\"|tr [a-z] [A-z]`-mode\n" 0 0 + + + + +### CHECK MACHINE SETUP ######################################################## + +# Create environment +# Remove leftover locks from former runs, +# problems may occure if you run more then one vmware with this script +rm -rf $TMPDIR >/dev/null 2>&1 +rm -f $CONFDIR/*LOCK >/dev/null 2>&1 +rm -f $CONFDIR/*.$DEBUG.log >/dev/null 2>&1 + +# Check if /tmp/vmware_temporary is existing +writelog "Checking /tmp/vmware_temporary directory...\c" 0 99 +if ! [ -d "/tmp/vmware_temporary" ]; then + writelog "\n/tmp/vmware_temporary does not exist, or is no directory!" 0 99 + writelog "\n\tExiting!\n" 0 99 + exit 1 +fi +writelog "OK!" 0 99 + +# Create vmware directories +mkdir -p $TMPDIR >/dev/null 2>&1 +mkdir -p $CONFDIR >/dev/null 2>&1 +mkdir -p $VMDIR >/dev/null 2>&1 + + + +# Start logging, because now we have the directories created ;) +writelog "##################################################" 1 99 +writelog "#\n# File created by $0 (v.$VERSION)\n# on `date`" 1 99 +writelog "# LOGLEVEL=$DEBUG\n#" 1 99 +writelog "##################################################\n" 1 99 +# Repeat only for logfile ;) +writelog "Starting...`echo $NP|sed -e \"s,i.*-,,g\"|tr [a-z] [A-z]`-mode\n" 1 1 + +# Log disksetup +writelog "Directories:" 0 1 +writelog "\tTMPDIR=$TMPDIR\n\tCONFDIR=$CONFDIR\n\tVMDIR=$VMDIR\n" 0 1 +writelog "vmware_temporary:\n`ls -l /tmp/vmware_temporary`\n" 0 1 + + + +# 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" 0 1 + +MAC=`/sbin/ifconfig eth0 | grep eth0 | sed -e "s, ,,g" | \ + awk -F : '{print $(NF-1)":"$NF}'` + + +# Gather memory info and set virtual machine memory size accordingly +MEMTEST=`cat /proc/meminfo | grep MemTotal | sed -e 's,[0-9][0-9][0-9] kB,,' \ + -e 's,MemTotal: *,,'` + +# Check if command line option given and calculate memory for vmware +if [ -n "$MEMOPT" ]; then + # Memory allocation for host or guest? + MEMHOST=`echo $MEMOPT | grep -i "h"`\ + && MEMOPT=`echo $MEMOPT | sed -e "s,[h,H],,"` + # Memory given in megabyte + MEMMEG=`echo $MEMOPT | grep -i "m"` + # Memory given in gigabyte + MEMGIG=`echo $MEMOPT | grep -i "g"` + # Remove m or M + [ -n "$MEMMEG" ] && MEM=`echo $MEMOPT | sed -e "s,[m,M],,"` + # Remove g or G and convert to megabyte + [ -n "$MEMGIG" ] && MEM=`echo $MEMOPT | sed -e "s,[g,G],,"`\ + && MEM=$MEM*1024 + # If no m or g, then it is percent + [ -z "$MEMMEG" ] && [ -z "$MEMGIG" ] && MEM=$MEMTEST/100*$MEMOPT/4*4 + # Memory allocation for host or guest? If host calculate for guest. + [ -n "$MEMHOST" ] && MEM=$MEMTEST-$MEM + # Else use PERMEM variable to calculate memory percentage for vmware +else MEM=$MEMTEST/100*$PERMEM/4*4 +fi + +# Check memory range +MEMTEST=$MEMTEST-128 +if [ "$MEM" -lt "128" ] || [ "$MEM" -gt "$MEMTEST" ]; then + writelog "\n\n\tYour memory is out of range: $MEM MB.\n\ + \tMin. 128 MB for host and guest!\n\tTry --mem option.\n" 0 1 + exit 1 +fi + + +# Look for cdrom,dvd and floppy and add them to the vm config file +if [ -L /dev/cdrom1 ] ; then + VMSCSI=TRUE + CDR_1=TRUE + CDR_1_NAME="/dev/cdrom1" +fi + +if [ -L /dev/cdrom2 ] ; then + VMSCSI=TRUE + CDR_2=TRUE + CDR_2_NAME="/dev/cdrom2" +fi + + +# Floppy +[ -d /sys/block/fd0 ] && FLOPPYA="floppy0.fileName = /dev/fd0" + + +writelog "finished\nResults:\n\tMAC=$MAC\n\tMEM=$MEM\n\tVMSCSI=$VMSCSI" 0 1 +writelog "\tCDR_1=$CDR_1\n\tCDR_2=$CDR_2\n" 0 1 + + + + +### SELECT VIRTUAL IMAGE ####################################################### + +# Interactive mode +if [ -n "$INTER" ]; then + writelog "Starting interactive mode...\c" 0 0 + + MENUTEST=`ls $SESS_ZEN 2>/dev/null | wc -l` + + # Check for session files + if [ "$MENUTEST" = "0" ]; then + writelog "\rNo sessions found in /etc/X11/sessions for option -i" 0 99 + writelog "Please use option -o/-s and check your configuration \n" 0 0 + exit 1 + fi + + # Check for Xdialog + if ! [ `which Xdialog 2>/dev/null` ]; then + writelog "\rXdialog not found!\t\t" 0 99 + writelog "Please install Xdialog for interactive mode, \c" 0 0 + writelog "or use options -o/-s.\n" 0 0 + exit 1 + fi + + # Create Menu, etc... + ARGS=`x_dialog 2>&1 | tr [A-Z] [a-z] | sed -e "s,-, ,"` # 2>&1, see function + OSTYPE=`echo $ARGS | awk '{print $1}'` + SPEC=`echo $ARGS | awk '{print $2}'` + + if [ -z "$ARGS" ]; then + writelog "\rNo image selected, please retry or use option -o / -s\n" 0 0 + writelog "No image was selected (opton -i); return value is: $ARGS\n" 2 2 + exit 1 + fi + + writelog "finished.\nResult:\n\tostype=$OSTYPE${SPEC:+\n\tspec=$SPEC}\n" 0 1 +fi + + +# Aliases +[ -n "$ALIAS" ] && checkalias + + +# Image allocation +writelog "Starting image detection...\c" 0 1 + +DISKFILE="$IMGDIR/$OSTYPE${SPEC:+"-$SPEC"}.$ENDING" + +# Check if VMOSTYPE defined via command line +if [ -z "$COMDEF" ]; then + VMOSTYPE=`ostypeheader | grep -v "#.*" | grep -w "$OSTYPE" | \ + awk '{print $2}'` + DISPLAYNAME=`ostypeheader | grep -v "#.*" | grep -w "$OSTYPE" |\ + awk '{print $3}' | sed -e "s,-, ,g"` + + # If OSTYPE not found use else statement + VMOSTYPE=${VMOSTYPE:-`ostypeheader | grep -v "#.*" | grep -w "else" | \ + awk '{print $2}'`} + DISPLAYNAME=${DISPLAYNAME:-`ostypeheader | grep -v "#.*" | \ + grep -w "else" | awk '{print $3}' |\ + sed -e "s,-, ,g"`} +fi + +writelog "finished\nResults:\n\tDISKFILE=$DISKFILE\n\tVMOSTYPE=$VMOSTYPE" 0 1 +writelog "\tDISPLAYNAME=$DISPLAYNAME\n" 0 1 + + +# Link to windows image +writelog "Linking \"ln -fs $DISKFILE $TMPDIR/disk\"...\c" 0 1 +ln -fs $DISKFILE $TMPDIR/disk +writelog "finished\nResult:\n`ls -l $TMPDIR/disk`\n" 0 1 + + +# Check if image exists, etc... +filecheck + + + + +### WRITE CONFIGURATION FILES ################################################## + +# Create preferences +preferencesheader + +# Create VMware startup file +runvmwareconfheader + +# Prepare config files for the clientOS (win) +[ "$VMOSTYPE" = "win98" ] && win98header # Windows 98 specific + +# Set Resolution for Windows guest +winresheader + + + + +### DELETE IF OBSOLETE ######################################################### +# old, delete when obsolete +xvidtune -show | grep -ve "^$"| \ +awk {'print "[resolution]\r\nx="$3"\r\ny="$7"\r\n\r\n[username]\r\n\ + user_name="ENVIRON["USER"]"\r\n"'} \ + > /media/loop0/config.ini + + + + +### RUN VMWARE(-Player) ######################################################## + +# ...with the automatically written config file +if [ `which vmplayer 2>/dev/null` ] && [ -z "$VMRUN" ]\ + || [ "$VMRUN" = "vmplayer" ]; then + writelog "\nStarting VMplayer..." 0 0 + cp /usr/share/dxs/VMware/nvram.5.0 $CONFDIR/nvram 2>&1 >/dev/null + VMOPT=`echo $VMOPT | sed -e "s,-q,," -e "s,-x,,"` # Remove unsupported opts. + vmplayer $VMOPT $CONFILE 2>&1 >/dev/null + +elif [ `which vmware 2>/dev/null` ] && [ -z "$VMRUN" ]\ + || [ "$VMRUN" = "vmware" ]; then + # Copy licence file and virtual bios to VMware directory + writelog "copying nvram and licence..." 0 0 + cp /usr/share/dxs/VMware/license.ws.5.0 $VMDIR 2>&1 >/dev/null + cp /usr/share/dxs/VMware/nvram.5.0 $CONFDIR/nvram 2>&1 >/dev/null + + # Run VMware + writelog "\nStarting VMware..." 0 0 + vmware $VMOPT $CONFILE 2>&1 >/dev/null + +else + writelog "\nNo VMware/VMPlayer found!\n" 0 99 + exit 1 + +fi + + + + +writelog "\nBye.\n" 0 0 +exit 0 +################################################################################ |