# run-virt.include # ----------------------------------------------------------------------------- # Copyright (c) 2009 - RZ Uni Freiburg # Copyright (c) 2009 - OpenSLX GmbH # # This program is free software distributed under the GPL version 2. # See http://openslx.org/COPYING # # If you have any feedback please consult http://openslx.org/feedback and # send your suggestions, praise, or complaints to feedback@openslx.org # # General information about OpenSLX can be found at http://openslx.org/ # ----------------------------------------------------------------------------- # run-virt.include # - # ----------------------------------------------------------------------------- # declaration of default variables ################################################################################ # temporary disk space for logs, etc... redodir=/tmp/vmware/${USER} # dir for configs and vmem file confdir=${redodir} # configfile conffile="${confdir}/run-vmware.conf" # users vmware config folder vmhome="${HOME}/.vmware" # percentage of memory to use for vmwares in standard case permem=60 # serial port defined (e.g. "ttyS0" or "autodetect") serial=$(grep -i "${conffile} # set the appropriate permissions for the vmware config file chmod u+rwx ${conffile} >/dev/null 2>&1 } ### creates user configurationfile in ${vmhome} ################################ preferencesheader () { echo ".encoding = \"UTF-8\" # This configuration file was generated by $0 # updates/tips webUpdate.enabled = \"FALSE\" pref.vmplayer.webUpdateOnStartup = \"FALSE\" pref.tip.startup = \"FALSE\" # configs prefvmx.defaultVMPath = \"${vmhome}\" prefvmx.mru.config = \"${conffile}:\" # hot keys pref.hotkey.shift = \"true\" pref.hotkey.gui = \"true\" # fullscreen/mouse/keyboard pref.fullscreen.toolbarPixels = \"0\" pref.vmplayer.fullscreen.autohide = \"TRUE\" pref.grabOnMouseClick = \"TRUE\" pref.motionGrab = \"TRUE\" pref.motionUngrab = \"TRUE\" pref.hideCursorOnUngrab = \"TRUE\" pref.autoFit = \"TRUE\" pref.autoFitFullScreen = \"fitGuestToHost\" pref.vmplayer.exit.vmAction = \"poweroff\" pref.vmplayer.confirmOnExit = \"TRUE\" # shared folders pref.enableAllSharedFolders = \"TRUE\" # eula 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" >>${redodir}/run-vmware.${USER}.log } # Delete the LOCK file. its insecure, but ... rm -f ${confdir}/*LOCK >/dev/null 2>&1 # create vmware directories mkdir -p ${redodir} >/dev/null 2>&1 mkdir -p ${confdir} >/dev/null 2>&1 mkdir -p ${vmhome} >/dev/null 2>&1 ## log script information writelog "# File created by $0 (v.${version})\n# on $(date)\n" writelog "Starting with nonpersistent mode ...\n" ## look for cdrom, dvd and add them to the vm config file (( cdri=1 )) for cdrs in /dev/cdrom*; do if [ -L $cdrs ]; then declare cdr_${cdri}="TRUE" (( cdri=${cdri}+1 )) fi done ## Write all results to logfile writelog "finished" ## log disksetup writelog "Directories:" writelog "\tConfdir:\t${confdir}" writelog "\tConffile:\t${conffile}" writelog "\tRedodir:\t${redodir}" writelog "\tVMhome:\t\t${vmhome}" writelog "\t/tmp info: \ $(grep "/tmp " /proc/mounts) $(df -h | grep " /tmp$" | awk '{print $2}')" # HW setup writelog "Hardware:" writelog "\tMAC:\t\t00:50:56:0D:${mac}" writelog "\tMem:\t\t${mem} MB" writelog "\tMax. res.:\t${xres}x${yres}" writelog "\tCD-ROM_1:\t${cdr_1}" writelog "\tCD-ROM_2:\t${cdr_2}" # Image writelog "Diskimage:" writelog "\tDiskfile:\t${diskfile}" writelog "\tDisktype:\t${hddrv}" writelog "\tVMostype:\t${vmostype}" writelog "\tDisplayname:\t${displayname}" # check if image exists, etc... #filecheck ### write configuration files ################################################## # create preferences preferencesheader # create VMware startup file runvmwareconfheader # 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: optimize, currently kinda inefficient, too much copys, but we # don't know which one is installed... for i in /opt/openslx/plugin-repo/vmware/*; do cp ${i}/nvram.5.0 ${confdir}/nvram 2>/dev/null done # set the variables appropriately VIRTCMD=vmplayer VIRTCMDOPTS="${vmopt} ${conffile}"