# run-virt.include # ----------------------------------------------------------------------------- # Copyright (c) 2009..2012 - RZ Uni Freiburg # Copyright (c) 2009..2013 - 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 # - component for vmware/player of the vmchooser plugin run-virt.sh ################################################################################ # configuration writer functions ################################################################################ runvmwareconfheader () { echo "# This configuration file was generated by $0" > "$conffile" # check for the ostype case "${vmostype}" in win31*) mem="32" cpu_cores="1" sound="sb16" shfolders="FALSE" ;; win95*) mem="92" cpu_cores="1" shfolders="FALSE" ;; win98*|winme*) mem="256" cpu_cores="1" shfolders="FALSE" ;; winxp*|windowsxp*) shfolders="TRUE" ;; winvista*|windowsvista*) shfolders="TRUE" ;; windows7*) shfolders="TRUE" enable3d="TRUE" ;; windows8*) shfolders="TRUE" ;; linux*|*ubuntu*|*suse*|debian*|*sci*) vmostype="linux" shfolders="TRUE" ;; macos*) cpu_cores="1" vmostype="other" shfolders="FALSE" ;; beos*) cpu_cores="1" vmostype="other" shfolders="FALSE" ;; *) vmostype="other" shfolders="FALSE" ;; esac svga_autodetect="TRUE" numvcpus="${cpu_cores}" [ "${cpu_cores}" -ge "4" 2>/dev/null ] && numvcpus="4" if [ "x$shfolders" != "xFALSE" ]; then ENABLE_SHARE='sharedFolder.option = "alwaysEnabled"' else ENABLE_SHARE='' fi [ "${mem}" -ge "8000" ] && mem=8000 cap3d="WHAT IS THIS VAR USED FOR?" # helper var for loging output cat >> "$conffile" </dev/null 2>&1 } preferencesheader () { cat > "$vmhome/preferences" <> "$vmhome/preferences" <> "$vmhome/preferences" </dev/null 2>&1 mkdir -p "$confdir" >/dev/null 2>&1 mkdir -p "$vmhome/dndlogs" >/dev/null 2>&1 touch "$vmhome/dndlogs/dndlog.conf" >/dev/null 2>&1 # create preferences preferencesheader # create VMware startup file runvmwareconfheader # link to conffile if confdir != redodir ln -s "$conffile" "$redodir/run-vmware.conf" >/dev/null 2>&1 # 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... cp "/etc/openslx/vmware/nvram" "$confdir/nvram" 2>/dev/null # logging and stdout ################################################################################ # log script information writelog "# File created by $0 (VMversion ${vmversion})\n# on $(date)\n" writelog "Starting with non-persistent mode ...\n" # write all results to logfile # 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:${VM_ID}:${machostpart}" if [ -n "${network_card}" ]; then writelog "\tNet Adaptor:\t${network_card}" fi writelog "\tMem:\t\t${mem} MB" # echo nur wenn hostmem gesetzt [ -n "${hostmem}" ] && writelog "\tHostmem:\t${hostmem} MB" writelog "\tMax. res.:\t${xres}x${yres}" writelog "\tCD-ROM1:\t${cdrom0}" writelog "\tCD-ROM2:\t${cdrom1}" writelog "\tFloppy_A:\t${floppy0}" if [ "${serial}" = "TRUE" ]; then writelog "\tSerial Port:\t${serialdev}" fi if [ "${parallel}" = "TRUE" ]; then writelog "\tParallel Port:\t${paraldev}" fi # image writelog "Diskimage:" writelog "\tDiskfile:\t${diskfile}" writelog "\tDisktype:\t${hddrv}" writelog "\tHWVersion:\t${hwver}" writelog "\tVMostype:\t${vmostype}" # misc writelog "Misc:" writelog "\tDisplayname:\t${displayname}" if [ "${cap3d}" = "TRUE" -a "${enable3d}" = "TRUE" ]; then writelog "\t3D Graphics:\tenabled" fi # empty line at end writelog "" # finally set env for run-virt.sh ################################################################################ # configure and start samba service to provide user's home directory if [ -f /usr/sbin/smbd ] ; then sudo /opt/openslx/bin/sed -i /etc/vmware/smb.conf -e "s,USER,$USER," sudo /usr/sbin/nmbd -s /etc/vmware/smb.conf sudo /usr/sbin/smbd -s /etc/vmware/smb.conf fi # using the modified version of the wrapper script VIRTCMD="/opt/openslx/bin/vmplayer" VIRTCMDOPTS="${vmopt} ${conffile}" RMDIRS="${redodir} ${conffile}"