diff options
| author | Simon Rettberg | 2013-07-12 18:42:48 +0200 |
|---|---|---|
| committer | Simon Rettberg | 2013-07-12 18:45:32 +0200 |
| commit | 0200669d6112c4f5aed3ccb2acea281ac3352858 (patch) | |
| tree | 467c3e9fc93d0e74f61d4347cf59e8162d1d4a12 /remote/modules/vmplayer/data | |
| parent | [pam] add ncp support for HS-Offenburg (diff) | |
| download | tm-scripts-0200669d6112c4f5aed3ccb2acea281ac3352858.tar.gz tm-scripts-0200669d6112c4f5aed3ccb2acea281ac3352858.tar.xz tm-scripts-0200669d6112c4f5aed3ccb2acea281ac3352858.zip | |
[vmplayer] Rework run-virt.include to better set memory limits, CPU count and guestOS
Diffstat (limited to 'remote/modules/vmplayer/data')
| -rw-r--r-- | remote/modules/vmplayer/data/etc/openslx/vmware/run-virt.include | 357 |
1 files changed, 232 insertions, 125 deletions
diff --git a/remote/modules/vmplayer/data/etc/openslx/vmware/run-virt.include b/remote/modules/vmplayer/data/etc/openslx/vmware/run-virt.include index 0267656d..6c062c09 100644 --- a/remote/modules/vmplayer/data/etc/openslx/vmware/run-virt.include +++ b/remote/modules/vmplayer/data/etc/openslx/vmware/run-virt.include @@ -18,77 +18,184 @@ # configuration writer functions ################################################################################ -runvmwareconfheader () +function clean_string () { -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 + if [ "$#" -ge 1 ]; then + echo "$@" | tr '[:upper:]' '[:lower:]' | tr -d '\t _./' + else + cat - | tr '[:upper:]' '[:lower:]' | tr -d '\t _./' + fi +} -cap3d="WHAT IS THIS VAR USED FOR?" # helper var for loging output +vmostype=$(clean_string "$vmostype") -cat >> "$conffile" <<HEREEND +runvmwareconfheader () +{ + echo "# This configuration file was generated by $0" > "$conffile" + + MAXMEM="9999999" + + # check for the ostype + # 1) memory limits + case "$vmostype" in + win31*|windows31*) + MAXMEM="32" + vmostype="win31" + ;; + winnt*|windowsnt*) + MAXMEM="1000" + vmostype="winnt" + ;; + win95*|windows95*) + MAXMEM="96" + vmostype="win95" + ;; + win98*|windows98*) + MAXMEM="384" + vmostype="win98" + ;; + winme*|windowsme*) + MAXMEM="384" + vmostype="winme" + ;; + win2000|windows2000|win2000pro*) + MAXMEM="4000" + vmostype="win2000pro" + ;; + win2000srv*|windows2000srv*|win2000serv*|windows2000serv*) + MAXMEM="4000" + vmostype="win2000serv" + ;; + win2000adv*|windows2000adv*|win2000dat*|windows2000dat*) + MAXMEM="8000" + vmostype="win2000advserv" + ;; + winnet*64|win*2003*64|windowsnet*64) + MAXMEM="8000" + vmostype="winnetstandard-64" + ;; + winnet*|win*2003*|windowsnet*) + MAXMEM="4000" + vmostype="winnetstandard" + ;; + winxphome*|windowsxphome*) + MAXMEM="4000" + vmostype="winxphome" + ;; + winxp*64|windowsxp*64) + MAXMEM="8000" + vmostype="winxppro-64" + ;; + winxp*|windowsxp*) + MAXMEM="4000" + vmostype="winxppro" + ;; + winvista*64|windowsvista*64) + MAXMEM="16000" + vmostype="winvista-64" + ;; + winvista*|windowsvista*) + MAXMEM="8000" + vmostype="winvista" + ;; + win7*64|windows7*64) + MAXMEM="32000" + vmostype="windows7-64" + ;; + win7*|windows7*) + MAXMEM="8000" + vmostype="windows7" + ;; + win*64) + MAXMEM="16000" + ;; + win*) + MAXMEM="8000" + ;; + dos|msdos*|ms-dos*) + MAXMEM="128" + vmostype="dos" + ;; + *64) + MAXMEM="123456" + ;; + *) + MAXMEM="8000" + ;; + esac + + # 2) other hardware + capabilities + shfolders="FALSE" + case "$vmostype" in + win31) + cpu_cores="1" + sound="sb16" + ;; + winnt) + cpu_cores="2" + sound="sb16" + ;; + win95|win98|winme) + cpu_cores="1" + ;; + win2000pro) # Don't know if Win 2000 supports shared folders, disabled to be safe + cpu_cores="2" + ;; + win2000serv) + cpu_cores="4" + ;; + win2000advserv) + cpu_cores="8" + ;; + winxphome) + cpu_cores="1" + shfolders="TRUE" + ;; + winxp*|winvista*|windows7*) + shfolders="TRUE" + ;; + winnet*) + shfolders="TRUE" + ;; + linux*|ubuntu*|suse*|debian*) + shfolders="TRUE" + ;; + macos*64) + cpu_cores="2" + vmostype="freebsd-64" + ;; + macos*) + cpu_cores="1" + vmostype="freebsd" + ;; + beos*) + vmostype="other" + ;; + # Unknown guestOS setting in .xml - use conservative defaults + *64) + vmostype="other-64" + ;; + *) + vmostype="other" + ;; + 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 "$MAXMEM" ] && mem="$MAXMEM" + + cap3d="WHAT IS THIS VAR USED FOR?" # helper var for loging output + + cat >> "$conffile" <<HEREEND .encoding = "UTF-8" config.version = "8" @@ -210,9 +317,9 @@ parallel0.present = "$parallel" parallel0.bidirectional = "$paralbidi" $paraldev HEREEND - -# set the appropriate permissions for the vmware config file -chmod u+rwx ${conffile} >/dev/null 2>&1 + + # set the appropriate permissions for the vmware config file + chmod u+rwx ${conffile} >/dev/null 2>&1 } preferencesheader () @@ -260,10 +367,10 @@ pref.enableAllSharedFolders = "TRUE" # eula HEREEND - -# different eula parameters from Workstation 9+/ Player 5+ + + # different eula parameters from Workstation 9+/ Player 5+ case "$vmversion" in - 3.*|4.*|7.*|8.*) + 3.*|4.*|7.*|8.*) cat >> "$vmhome/preferences" <<HEREEND pref.eula.size = "2" pref.eula.0.appName = "VMware Player" @@ -272,8 +379,8 @@ pref.eula.1.appName = "VMware Workstation" pref.eula.1.buildNumber = "$vmbuild" HEREEND ;; - 5.*|9.*) - # code + 5.*|9.*) + # code cat >> "$vmhome/preferences" <<HEREEND pref.eula.count = "2" pref.eula0.product = "VMware Player" @@ -283,7 +390,7 @@ pref.eula1.build = "$vmbuild" HEREEND ;; esac - + } @@ -327,7 +434,7 @@ vmopt="-X" ################################################################################ # use different network card (default e1000, vlance, vmxnet) -if [ -n "${network_card}" ]; then +if [ -n "${network_card}" ]; then network_virtualDev="ethernet0.virtualDev = \"${network_card}\"" else network_virtualDev='# using default virtualDev for ethernet0' @@ -337,12 +444,12 @@ fi sound="es1371" # check for 3D configuration setting -case "${enable3d}" in -*true*|*yes*|*TRUE*|*True*|*YES*|*Yes*) - enable3d="TRUE" +case "$(clean_string "$enable3d")" in + true|yes) + enable3d="TRUE" ;; -*) - enable3d="FALSE" + *) + enable3d="FALSE" ;; esac @@ -355,46 +462,46 @@ fi # serial/parallel port defined (e.g. "ttyS0, lp0" or "autodetect") case "$serial" in -tty*) - if [ -e "/dev/$serial" ]; then - serialdev="serial0.filename = \"/dev/${serial}\"" + tty*) + if [ -e "/dev/$serial" ]; then + serialdev="serial0.filename = \"/dev/${serial}\"" + serial="TRUE" + else + serialdev="# no serial port configured" + serial="FALSE" + fi + ;; + auto*) + serialdev="serial0.autodetect = \"TRUE\"" serial="TRUE" - else + ;; + *) serialdev="# no serial port configured" serial="FALSE" - fi - ;; -auto*) - serialdev="serial0.autodetect = \"TRUE\"" - serial="TRUE" - ;; -*) - serialdev="# no serial port configured" - serial="FALSE" ;; esac case "$parallel" in -lp*|parport*) - if [ -e "/dev/$parallel" ]; then - paraldev="parallel0.filename = \"/dev/${parallel}\"" + lp*|parport*) + if [ -e "/dev/$parallel" ]; then + paraldev="parallel0.filename = \"/dev/${parallel}\"" + paralbidi="TRUE" + parallel="TRUE" + else + paraldev="# no parallel port configured" + paralbidi="FALSE" + parallel="FALSE" + fi + ;; + auto*) + paraldev="parallel0.autodetect = \"TRUE\"" paralbidi="TRUE" parallel="TRUE" - else + ;; + *) paraldev="# no parallel port configured" paralbidi="FALSE" parallel="FALSE" - fi - ;; -auto*) - paraldev="parallel0.autodetect = \"TRUE\"" - paralbidi="TRUE" - parallel="TRUE" - ;; -*) - paraldev="# no parallel port configured" - paralbidi="FALSE" - parallel="FALSE" ;; esac @@ -404,13 +511,13 @@ imghead=$(head -n 30 "${diskfile}") hddrv=$(echo "${imghead}" | grep -m1 -ia "ddb.adapterType" | awk -F '"' '{print $2}') hwver=$(echo "${imghead}" | grep -m1 -ia "ddb.virtualHWVersion" | awk -F '"' '{print $2}') case "${hddrv}" in -ide) - ide="TRUE" - scsi="FALSE" + ide) + ide="TRUE" + scsi="FALSE" ;; -lsilogic|buslogic) - ide="FALSE" - scsi="TRUE" + lsilogic|buslogic) + ide="FALSE" + scsi="TRUE" ;; esac @@ -456,12 +563,12 @@ 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}')" +$(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}" + writelog "\tNet Adaptor:\t${network_card}" fi writelog "\tMem:\t\t${mem} MB" # echo nur wenn hostmem gesetzt @@ -471,10 +578,10 @@ writelog "\tCD-ROM1:\t${cdrom0}" writelog "\tCD-ROM2:\t${cdrom1}" writelog "\tFloppy_A:\t${floppy0}" if [ "${serial}" = "TRUE" ]; then - writelog "\tSerial Port:\t${serialdev}" + writelog "\tSerial Port:\t${serialdev}" fi if [ "${parallel}" = "TRUE" ]; then - writelog "\tParallel Port:\t${paraldev}" + writelog "\tParallel Port:\t${paraldev}" fi # image writelog "Diskimage:" @@ -486,7 +593,7 @@ writelog "\tVMostype:\t${vmostype}" writelog "Misc:" writelog "\tDisplayname:\t${displayname}" if [ "${cap3d}" = "TRUE" -a "${enable3d}" = "TRUE" ]; then - writelog "\t3D Graphics:\tenabled" + writelog "\t3D Graphics:\tenabled" fi # empty line at end writelog "" @@ -497,9 +604,9 @@ writelog "" # 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 + 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 |
