summaryrefslogtreecommitdiffstats
path: root/remote/modules/vmware/data/opt/openslx/vmchooser/vmware
diff options
context:
space:
mode:
Diffstat (limited to 'remote/modules/vmware/data/opt/openslx/vmchooser/vmware')
-rw-r--r--remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_static_directory_structure.inc (renamed from remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/write_config_files.inc)6
-rw-r--r--remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_vmhome_preferences_file.inc1
-rw-r--r--remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_vmware_config_file_legacy.inc316
-rw-r--r--remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/determine_hardware_limitations.inc (renamed from remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_vmware_config_file.inc)79
-rw-r--r--remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/log_config_summary.inc60
-rw-r--r--remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/logging.inc64
-rw-r--r--remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/parse_vmx.inc151
-rw-r--r--remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/set_hardware_legacy.inc152
-rw-r--r--remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/set_vmware_include_variables.inc5
-rw-r--r--remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/write_config_files_legacy.inc29
-rw-r--r--remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/write_final_vmx.inc189
-rw-r--r--remote/modules/vmware/data/opt/openslx/vmchooser/vmware/run-virt.include37
12 files changed, 303 insertions, 786 deletions
diff --git a/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/write_config_files.inc b/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_static_directory_structure.inc
index 555688bf..96363de3 100644
--- a/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/write_config_files.inc
+++ b/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_static_directory_structure.inc
@@ -13,12 +13,6 @@ 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 file ${vmhome}/preferences
-source "${VMWAREINCLUDEDIR}/create_vmhome_preferences_file.inc" && create_vmhome_preferences_file
-
-# create VMware config file (conffile)
-source "${VMWAREINCLUDEDIR}/create_vmware_config_file.inc"
-
# link to conffile if confdir != redodir
[ "$confdir" != "$redodir" ] && ln -s "$conffile" "$redodir/run-vmware.conf" >/dev/null 2>&1
diff --git a/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_vmhome_preferences_file.inc b/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_vmhome_preferences_file.inc
index b618041c..d50402f3 100644
--- a/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_vmhome_preferences_file.inc
+++ b/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_vmhome_preferences_file.inc
@@ -68,4 +68,5 @@ create_vmhome_preferences_file() {
echo 'pref.hotkey.rightControl = "true"' >> "$vmhome/preferences"
fi
writelog "Vmware preferences file created in $vmhome."
+ true
}
diff --git a/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_vmware_config_file_legacy.inc b/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_vmware_config_file_legacy.inc
deleted file mode 100644
index df6e6f39..00000000
--- a/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_vmware_config_file_legacy.inc
+++ /dev/null
@@ -1,316 +0,0 @@
-########################################
-# Include: Create vmware startup files #
-########################################
-
-create_vmware_config_file_legacy() {
- echo "# This configuration file was generated by $0" > "$conffile"
-
- MAXMEM="9999999"
- MAXCORES="4"
- shfolders="TRUE"
- sound="es1371"
-
- # define hardware configuration depending on the guest OS used
- # this needs to be fixed and is the base for the creation of new VMs
- case "$vmostype" in
- win31*|windows31*)
- vmostype="win31"
- shfolders="FALSE"
- sound="sb16"
- MAXMEM="32"
- MAXCORES="1"
- ;;
- winnt*|windowsnt*)
- vmostype="winnt"
- shfolders="FALSE"
- sound="sb16"
- MAXMEM="1000"
- MAXCORES="2"
- ;;
- win95*|windows95*)
- vmostype="win95"
- shfolders="FALSE"
- MAXMEM="96"
- MAXCORES="1"
- ;;
- win98*|windows98*)
- vmostype="win98"
- MAXMEM="256"
- MAXCORES="1"
- ;;
- winme*|windowsme*)
- vmostype="winme"
- MAXMEM="384"
- MAXCORES="1"
- ;;
- win2000|windows2000|win2000pro*)
- vmostype="win2000pro"
- MAXMEM="4000"
- MAXCORES="2"
- ;;
- win2000srv*|windows2000srv*|win2000serv*|windows2000serv*)
- vmostype="win2000serv"
- shfolders="FALSE"
- MAXMEM="4000"
- MAXCORES="4"
- ;;
- win2000adv*|windows2000adv*|win2000dat*|windows2000dat*)
- vmostype="win2000advserv"
- shfolders="FALSE"
- MAXMEM="8000"
- MAXCORES="8"
- ;;
- winnet*64|win*2003*64|windowsnet*64)
- vmostype="winnetstandard-64"
- MAXMEM="8000"
- ;;
- winnet*|win*2003*|windowsnet*)
- vmostype="winnetstandard"
- MAXMEM="4000"
- ;;
- winxphome*|windowsxphome*)
- vmostype="winxphome"
- MAXMEM="4000"
- MAXCORES="1"
- ;;
- winxp*64|windowsxp*64)
- vmostype="winxppro-64"
- MAXMEM="8000"
- MAXCORES="2"
- ;;
- winxp*|windowsxp*)
- vmostype="winxppro"
- MAXMEM="4000"
- MAXCORES="1"
- ;;
- winvista*64|windowsvista*64)
- vmostype="winvista-64"
- MAXMEM="16000"
- MAXCORES="2"
- ;;
- winvista*|windowsvista*)
- vmostype="winvista"
- MAXMEM="8000"
- MAXCORES="2"
- ;;
- win7*64|windows7*64)
- vmostype="windows7-64"
- MAXMEM="32000"
- MAXCORES="4"
- ;;
- win7*|windows7*)
- vmostype="windows7"
- MAXMEM="8000"
- MAXCORES="4"
- ;;
- win8*64|windows8*64)
- vmostype="windows8-64"
- MAXMEM="32000"
- MAXCORES="4"
- ;;
- win8*|windows8*)
- vmostype="windows8"
- MAXMEM="8000"
- MAXCORES="4"
- ;;
- win*64)
- MAXMEM="16000"
- MAXCORES="4"
- ;;
- win*)
- MAXMEM="8000"
- ;;
- dos|msdos*|ms-dos*)
- vmostype="dos"
- shfolders="FALSE"
- MAXMEM="128"
- ;;
- macos*64)
- vmostype="freebsd-64"
- MAXMEM="4000"
- MAXCORES="2"
- ;;
- macos*)
- vmostype="freebsd"
- MAXMEM="4000"
- MAXCORES="1"
- ;;
- beos*)
- vmostype="other"
- shfolders="FALSE"
- ;;
- # Unknown guestOS setting in .xml - use conservative defaults
- *64)
- vmostype="other-64"
- shfolders="FALSE"
- MAXMEM="123456"
- MAXCORES="4"
- ;;
- *)
- vmostype="other"
- shfolders="FALSE"
- MAXMEM="8000"
- MAXCORES="1"
- ;;
- esac
- real_core_count="$cpu_cores"
- [ "$cpu_cores" -gt "$MAXCORES" ] && cpu_cores="$MAXCORES"
- # It currently makes no sense to set the virtual number of cores
- # to a different value than the virtual number of cores per virtual CPU.
- cores_per_socket="$cpu_cores"
-
- if [ "x$shfolders" != "xFALSE" ] && [ "$SHARE_REMAP_MODE" != 1 ]; then
- enable_share='sharedFolder.option = "alwaysEnabled"'
- HGFS_DISABLED="FALSE"
- else
- enable_share=
- HGFS_DISABLED="TRUE"
- fi
-
- [ "$mem" -ge "$MAXMEM" ] && mem="$MAXMEM"
- [ "$hwver" -lt "7" -a "$mem" -gt "3500" ] && mem="3500"
-
- if [ -n "$FLOPPYIMG" ]; then
- floppy1="TRUE"
- else
- floppy1="FALSE"
- fi
-
- cat >> "$conffile" <<-HEREEND
- .encoding = "UTF-8"
- config.version = "8"
-
- # general hardware (ehci, 3d accel)
- ehci.present = "TRUE"
- $FORCE3D
- mks.enable3d = "$enable3d"
-
- monitor.virtual_mmu = "automatic"
- monitor.virtual_exec = "automatic"
-
- # id
- virtualHW.version = "$hwver"
- displayName = "$displayname"
- guestOS = "$vmostype"
-
- # CPU/MEM
- numvcpus = "$cpu_cores"
- cpuid.coresPerSocket = "$cores_per_socket"
- maxvcpus = "$real_core_count"
- memsize = "$mem"
- MemAllowAutoScaleDown = "FALSE"
- MemTrimRate = "-1"
-
- # ide-disks
- ide0:0.present = "$ide"
- ide0:0.fileName = "$vm_diskfile"
- ## Edited for persistent mode.
- ide0:0.mode = "independent-${diskmode}"
- ##
- ide1:0.present = "$cdrom0"
- ide1:0.autodetect = "TRUE"
- ide1:0.fileName = "auto detect"
- ide1:0.deviceType = "cdrom-raw"
- ide1:1.present = "$cdrom1"
- ide1:1.autodetect = "TRUE"
- ide1:1.fileName = "auto detect"
- ide1:1.deviceType = "cdrom-raw"
-
- # scsi-disks
- scsi0.present = "$scsi"
- scsi0:0.present = "$scsi"
- scsi0:0.fileName = "$vm_diskfile"
- scsi0.virtualDev = "$hddrv"
- ## Edited for persistent mode.
- scsi0:0.mode = "independent-${diskmode}"$stateFileConfiguration
- ##
-
- # floppies
- floppy0.present = "$floppy0"
- floppy0.startConnected = "TRUE"
- floppy0.autodetect = "TRUE"
- floppy0.fileName = "auto detect"
-
- # we need floppy b: for the client configuration
- floppy1.present = "$floppy1"
- floppy1.readonly = "TRUE"
- floppy1.startConnected = "TRUE"
- floppy1.fileType = "file"
- floppy1.fileName = "$FLOPPYIMG"
-
- # nics
- ethernet0.present = "TRUE"
- ethernet0.addressType = "static"
- $network_virtualDev
- #ethernet0.connectionType = "hostonly"
- ethernet0.connectionType = "custom"
- ethernet0.vnet = "$hostdev"
- ethernet0.address = "00:50:56:$macaddrsuffix"
- ethernet0.wakeOnPcktRcv = "FALSE"
-
- # sound
- sound.present = "TRUE"
- $sound_fileName
- sound.virtualdev = "$sound"
- pciSound.enableVolumeControl = "FALSE"
- sound.enableVolumeControl = "FALSE"
-
- # svga
- svga.autodetect = "TRUE"
-
- # usb
- usb.present = "TRUE"
- usb.generic.autoconnect = "TRUE"
-
- # pci configuration
- usb.pciSlotNumber = "16"
- ethernet0.pciSlotNumber = "17"
- sound.pciSlotNumber = "18"
- ehci.pciSlotNumber = "19"
- scsi0.pciSlotNumber = "20"
-
- $PCIE
-
- # shared folders
- $enable_share
- sharedFolder0.present = "$shfolders"
- sharedFolder0.enabled = "$shfolders"
- sharedFolder0.expiration = "never"
- sharedFolder0.guestName = "$homesharename"
- sharedFolder0.hostPath = "$homesharepath"
- sharedFolder0.readAccess = "TRUE"
- sharedFolder0.writeAccess = "TRUE"
- sharedFolder1.present = "$shfolders"
- sharedFolder1.enabled = "$shfolders"
- sharedFolder1.expiration = "never"
- sharedFolder1.guestName = "$commonsharename"
- sharedFolder1.hostPath = "$commonsharepath"
- sharedFolder1.readAccess = "TRUE"
- sharedFolder1.writeAccess = "TRUE"
- sharedFolder.maxNum = "2"
-
- # dirs/configs
- tmpDirectory = "$redodir"
- redoLogDir = "$redodir"
- mainMem.useNamedFile = "TRUE"
- snapshot.disabled = "TRUE"
- tools.syncTime = "TRUE"
- isolation.tools.hgfs.disable = "$HGFS_DISABLED"
- hgfs.mapRootShare = "TRUE"
- isolation.tools.dnd.disable = "FALSE"
- isolation.tools.copy.enable = "TRUE"
- isolation.tools.paste.enabled = "TRUE"
-
- # serial port
- serial0.present = "$serial"
- $serialdev
-
- # parallel port
- 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
-}
diff --git a/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_vmware_config_file.inc b/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/determine_hardware_limitations.inc
index 9e0bfe4f..11ea2e3a 100644
--- a/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_vmware_config_file.inc
+++ b/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/determine_hardware_limitations.inc
@@ -1,9 +1,7 @@
########################################
-# Include: Create vmware startup files #
+# Include: Determine hw limitations depending on hwver and guest os #
########################################
-writelog "Creating vmware configuration file: $conffile"
-
MAXMEM="9999999"
MAXCORES="4"
shfolders="TRUE"
@@ -11,114 +9,116 @@ sound="es1371"
# define hardware configuration depending on the guest OS used
# this needs to be fixed and is the base for the creation of new VMs
-case "$vmostype" in
+case "$VM_OS_TYPE" in
win31*|windows31*)
- vmostype="win31"
+ VM_OS_TYPE="win31"
shfolders="FALSE"
sound="sb16"
MAXMEM="32"
MAXCORES="1"
;;
winnt*|windowsnt*)
- vmostype="winnt"
+ VM_OS_TYPE="winnt"
shfolders="FALSE"
sound="sb16"
MAXMEM="1000"
MAXCORES="2"
;;
win95*|windows95*)
- vmostype="win95"
+ VM_OS_TYPE="win95"
shfolders="FALSE"
MAXMEM="96"
MAXCORES="1"
;;
win98*|windows98*)
- vmostype="win98"
+ VM_OS_TYPE="win98"
MAXMEM="256"
MAXCORES="1"
;;
winme*|windowsme*)
- vmostype="winme"
+ VM_OS_TYPE="winme"
MAXMEM="384"
MAXCORES="1"
;;
win2000|windows2000|win2000pro*)
- vmostype="win2000pro"
+ VM_OS_TYPE="win2000pro"
MAXMEM="4000"
MAXCORES="2"
;;
win2000srv*|windows2000srv*|win2000serv*|windows2000serv*)
- vmostype="win2000serv"
+ VM_OS_TYPE="win2000serv"
shfolders="FALSE"
MAXMEM="4000"
MAXCORES="4"
;;
win2000adv*|windows2000adv*|win2000dat*|windows2000dat*)
- vmostype="win2000advserv"
+ VM_OS_TYPE="win2000advserv"
shfolders="FALSE"
MAXMEM="8000"
MAXCORES="8"
;;
winnet*64|win*2003*64|windowsnet*64)
- vmostype="winnetstandard-64"
+ VM_OS_TYPE="winnetstandard-64"
MAXMEM="8000"
+ MAXCORES="8"
;;
winnet*|win*2003*|windowsnet*)
- vmostype="winnetstandard"
+ VM_OS_TYPE="winnetstandard"
MAXMEM="4000"
+ MAXCORES="8"
;;
winxphome*|windowsxphome*)
- vmostype="winxphome"
+ VM_OS_TYPE="winxphome"
MAXMEM="4000"
- MAXCORES="1"
+ MAXCORES="2"
;;
winxp*64|windowsxp*64)
- vmostype="winxppro-64"
+ VM_OS_TYPE="winxppro-64"
MAXMEM="8000"
- MAXCORES="2"
+ MAXCORES="8"
;;
winxp*|windowsxp*)
- vmostype="winxppro"
+ VM_OS_TYPE="winxppro"
MAXMEM="4000"
- MAXCORES="1"
+ MAXCORES="4"
;;
winvista-64)
- vmostype="winvista-64"
+ VM_OS_TYPE="winvista-64"
MAXMEM="16000"
- MAXCORES="2"
+ MAXCORES="4"
;;
windows7-64)
- vmostype="windows7-64"
+ VM_OS_TYPE="windows7-64"
MAXMEM="32000"
- MAXCORES="4"
+ MAXCORES="8"
;;
windows8-64)
- vmostype="windows8-64"
+ VM_OS_TYPE="windows8-64"
MAXMEM="32000"
MAXCORES="8"
;;
windows9-64)
- vmostype="windows9-64"
+ VM_OS_TYPE="windows9-64"
MAXMEM="64000"
MAXCORES="8"
;;
winvista)
- vmostype="winvista"
+ VM_OS_TYPE="winvista"
MAXMEM="8000"
MAXCORES="2"
;;
windows7)
- vmostype="windows7"
+ VM_OS_TYPE="windows7"
MAXMEM="8000"
MAXCORES="4"
;;
windows8)
- vmostype="windows8"
+ VM_OS_TYPE="windows8"
MAXMEM="8000"
MAXCORES="4"
;;
windows9)
- vmostype="windows9"
+ VM_OS_TYPE="windows9"
MAXMEM="8000"
MAXCORES="4"
;;
@@ -128,37 +128,39 @@ case "$vmostype" in
;;
win*)
MAXMEM="8000"
+ MAXCORES="1"
;;
dos|msdos*|ms-dos*)
- vmostype="dos"
+ VM_OS_TYPE="dos"
shfolders="FALSE"
MAXMEM="128"
+ MAXCORES="1"
;;
macos*64)
- vmostype="freebsd-64"
+ VM_OS_TYPE="freebsd-64"
MAXMEM="4000"
MAXCORES="2"
;;
macos*)
- vmostype="freebsd"
+ VM_OS_TYPE="freebsd"
MAXMEM="4000"
MAXCORES="1"
;;
beos*)
- vmostype="other"
+ VM_OS_TYPE="other"
shfolders="FALSE"
;;
# Unknown guestOS setting in .xml - this encompasses linux too,
# as there is a multitude of different distributions. Perhaps further
# action will be needed if this leads to problems with exotic OSs.
*64)
- vmostype="other-64"
+ VM_OS_TYPE="other-64"
# shfolders="FALSE"
MAXMEM="123456"
MAXCORES="4"
;;
*)
- vmostype="other"
+ VM_OS_TYPE="other"
# shfolders="FALSE"
MAXMEM="8000"
MAXCORES="1"
@@ -179,8 +181,5 @@ else
fi
[ "$mem" -ge "$MAXMEM" ] && mem="$MAXMEM"
-[ "$hwver" -lt "7" -a "$mem" -gt "3500" ] && mem="3500"
-
-# set the appropriate permissions for the vmware config file
-chmod u+rwx "${conffile}" >/dev/null 2>&1
+[ "$HWVER" -lt "7" -a "$mem" -gt "3500" ] && mem="3500"
diff --git a/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/log_config_summary.inc b/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/log_config_summary.inc
new file mode 100644
index 00000000..41986b2a
--- /dev/null
+++ b/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/log_config_summary.inc
@@ -0,0 +1,60 @@
+##################################################
+# Include: Print vm config summary into log file #
+##################################################
+
+# log script information
+writelog "# File created by $0 (VMware version ${vmware_version})\n# on $(date)\n"
+## Edited for persistent mode.
+writelog "Starting with ${diskmode} 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\t$macaddr"
+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 "\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
+
+writelog "Shared folders:"
+if [ "${HGFS_DISABLED}" = "FALSE" ]; then
+ writelog "\tNo shared folders enabled."
+else
+ writelog "\Shared folders enabled."
+fi
+
+# image
+writelog "Diskimage:"
+writelog "\tDiskfile:\t${VM_DISKFILE_RO}"
+writelog "\tHWVersion:\t${HWVER}"
+writelog "\tVMostype:\t${VM_OS_TYPE}"
+
+# misc
+writelog "Misc:"
+writelog "\tDisplayname:\t${VM_DISPLAYNAME}"
+if [ "${cap3d}" = "TRUE" -a "${enable3d}" = "TRUE" ]; then
+ writelog "\t3D Graphics:\tenabled"
+fi
+# empty line at end
+writelog ""
+
diff --git a/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/logging.inc b/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/logging.inc
deleted file mode 100644
index f7ee634a..00000000
--- a/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/logging.inc
+++ /dev/null
@@ -1,64 +0,0 @@
-###############################
-# Include: Logging and stdout #
-###############################
-
-logging() {
- # log script information
- writelog "# File created by $0 (VMware version ${vmware_version})\n# on $(date)\n"
- ## Edited for persistent mode.
- writelog "Starting with ${diskmode} 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\t$macaddr"
- 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
-
- writelog "Shared folders:"
- if [ "${HGFS_DISABLED}" = "FALSE" ]; then
- writelog "\tNo shared folders enabled."
- else
- writelog "\Shared folders enabled."
- 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 ""
-
-}
diff --git a/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/parse_vmx.inc b/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/parse_vmx.inc
index 878e9a9d..dec80e1d 100644
--- a/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/parse_vmx.inc
+++ b/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/parse_vmx.inc
@@ -4,156 +4,5 @@
writelog "Parsing virtual machine description file..."
-# check for vmdk file marker %VM_DISK_PATH% and put vmdk path in it's place: also VM_DISK_MODE
-# and VM_DISK_REDOLOGDIR.
-# IMAGE=$(grep -io '<image_path.*"' "${xmlfile}" | sed -e "s/&.*;/; /g" | awk -F '"' '{ print $2 }')
-sed -i 's#%VM_DISK_PATH%#'"$vm_diskfile"'#g' "${TMPCONFIG}"
-sed -i 's#%VM_DISK_MODE%#'"independent-nonpersistent"'#g' "${TMPCONFIG}"
-sed -i 's#%VM_DISK_REDOLOGDIR%#'"$redodir"'#g' "${TMPCONFIG}"
-
-# Ethernet: All we do is entering a generated MAC, as we do not want to interfere
-# in the possible case no networking is wanted.
-writelog "Guest MAC: $macaddr"
-echo 'ethernet0.addressType = "static"' >> "${TMPCONFIG}"
-echo 'ethernet0.address = "'"${macaddr}"'"' >> "${TMPCONFIG}"
-
-# DVD, CDROM
-# XXX: For now it's save to assume ide channel 1 is free, as we support only one HDD, and it it's IDE, it's on channel 0
-cat >> "${TMPCONFIG}" <<-HEREEND
-ide1:0.present = "$cdrom0"
-ide1:0.autodetect = "TRUE"
-ide1:0.fileName = "auto detect"
-ide1:0.deviceType = "cdrom-raw"
-ide1:1.present = "$cdrom1"
-ide1:1.autodetect = "TRUE"
-ide1:1.fileName = "auto detect"
-ide1:1.deviceType = "cdrom-raw"
-HEREEND
-
-if [ -n "$FLOPPYIMG" ]; then
- floppy1="TRUE"
-else
- floppy1="FALSE"
-fi
-
-# Floppies:
-cat >> "${TMPCONFIG}" <<-HEREEND
-floppy0.present = "$floppy0"
-floppy0.startConnected = "FALSE"
-floppy0.autodetect = "TRUE"
-floppy0.fileName = "auto detect"
-floppy1.present = "$floppy1"
-floppy1.startConnected = "TRUE"
-floppy1.fileType = "file"
-floppy1.fileName = "$FLOPPYIMG"
-HEREEND
-
-writelog "numvcpus = ${cpu_cores} - maxvcpus=${real_core_count}"
-
-# RAM, CPUs
-cat >> "${TMPCONFIG}" <<-HEREEND
-numvcpus = "$cpu_cores"
-cpuid.coresPerSocket = "$cores_per_socket"
-maxvcpus = "$real_core_count"
-memsize = "$mem"
-MemAllowAutoScaleDown = "FALSE"
-MemTrimRate = "-1"
-HEREEND
-
-# USB
-if [ -n "$SLX_EXAM" ]; then
- # Exam mode: No USB (TODO: Configurable)
- sed -i '/^usb\./d' "${TMPCONFIG}"
- echo 'usb.present = "FALSE"' >> "${TMPCONFIG}"
-else
- cat >> "${TMPCONFIG}" <<-HEREEND
- usb.present = "TRUE"
- usb.generic.autoconnect = "TRUE"
- HEREEND
-fi
-
-# shared folders
-if [ "$HGFS_DISABLED" = "FALSE" ]; then
- cat >> "${TMPCONFIG}" <<-HEREEND
- sharedFolder.option = "alwaysEnabled"
- sharedFolder0.present = "$shfolders"
- sharedFolder0.enabled = "$shfolders"
- sharedFolder0.expiration = "never"
- sharedFolder0.guestName = "$homesharename"
- sharedFolder0.hostPath = "$homesharepath"
- sharedFolder0.readAccess = "TRUE"
- sharedFolder0.writeAccess = "TRUE"
- sharedFolder1.present = "$shfolders"
- sharedFolder1.enabled = "$shfolders"
- sharedFolder1.expiration = "never"
- sharedFolder1.guestName = "$commonsharename"
- sharedFolder1.hostPath = "$commonsharepath"
- sharedFolder1.readAccess = "TRUE"
- sharedFolder1.writeAccess = "FALSE"
- sharedFolder.maxNum = "2"
- hgfs.mapRootShare = "TRUE"
- hgfs.linkRootShare = "TRUE"
- HEREEND
-fi
-
-# Isolation tools: settings
-cat >> "${TMPCONFIG}" <<-HEREEND
-isolation.tools.hgfs.disable = "$HGFS_DISABLED"
-isolation.tools.dnd.disable = "FALSE"
-isolation.tools.copy.enable = "TRUE"
-isolation.tools.paste.enabled = "TRUE"
-HEREEND
-
-# Serial, parallel: Empty, nothing is being currently set. TODO later.
-
-# Graphics, GPU: 3D will be enabled (even if vmware doesn't support the chip) if we whitelisted it.
-if [ -n "$SLX_VMWARE_3D" ]; then
- writelog "FORCE3D set - overriding 3D in vmx file."
- echo 'mks.gl.allowBlacklistedDrivers = "TRUE"' >> "${TMPCONFIG}"
- # We override... play safe and cap the hwVersion to 10, since some i915 chips goofed up with 12
- # Investigate if we might have to do this in other cases where we don't override
- if grep -qi '^mks.enable3d.*true' "${TMPCONFIG}"; then
- vmw_cap_hw_version "10"
- fi
-else
- writelog "FORCE3D not set - 3D will only work if GPU/driver is whitelisted by vmware."
-fi
-
-# Disable DPI scaling information passing via vmware tools
-sed -i '/^gui.applyHostDisplayScaling/d' "${TMPCONFIG}"
-echo 'gui.applyHostDisplayScalingToGuest = "FALSE"' >> "${TMPCONFIG}"
-
-# Additinal exam mode settings
-if [ -n "$SLX_EXAM" ]; then
- echo 'gui.restricted = "true"' >> "${TMPCONFIG}"
-fi
-
-# Killing duplicate lines (output much nicer than sort -u):
-awk '!a[$0]++' "${TMPCONFIG}" > "${TMPCONFIG}.tmp" && mv "${TMPCONFIG}.tmp" "${TMPCONFIG}"
-
-# Apply $maxhardwareversion to final VMX
HWVER=$(grep -i -m1 '^virtualHW.version *= *' "${TMPCONFIG}" | awk -F '=' '{print $2}' | sed -r 's/[^0-9]//g')
-if [ -n "$HWVER" ] && [ "$HWVER" -gt "$maxhardwareversion" ]; then
- writelog "Hardware version capped to $maxhardwareversion (was $HWVER)"
- sed -i 's/^virtualHW\.version.*$/virtualHW.version = "'$maxhardwareversion'"/I' "${TMPCONFIG}"
- HWVER="$maxhardwareversion"
-fi
-
-# Enable nested virtualization if not specified in remote vmx
-if [ -e "/run/hwinfo" ] && ! grep -qi '^vhv\.enable' "${TMPCONFIG}" \
- && grep -qE '^flags\s*:.*\b(ept|npt)\b' "/proc/cpuinfo" \
- && [ "$HWVER" -ge "9" ]; then
- . "/run/hwinfo"
- [ "${HW_KVM}" = "ENABLED" ] && echo 'vhv.enable = "TRUE"' >> "${TMPCONFIG}"
-fi
-# TODO: Need a way to check if supported by hardware before enabling!
-#grep -qi '^vpmc\.enable' "${TMPCONFIG}" || echo 'vpmc.enable = "TRUE"' >> "${TMPCONFIG}"
-
-# Disable space check warnings
-sed -i '/^mainMem.freeSpaceCheck/d' "${TMPCONFIG}"
-echo 'mainMem.freeSpaceCheck = "FALSE"' >> "${TMPCONFIG}"
-
-# At last_ Let's copy it to $confdir/run-vmware.conf
-cp -p "${TMPCONFIG}" "$conffile" && writelog "Copied TMPDIR/IMGUUID ${TMPCONFIG} to conffile ${conffile}" || \
- ( writelog "Could not copy TMPDIR/IMGUUID -${TMPCONFIG}- to conffile ${conffile}!"; cleanexit 1 )
diff --git a/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/set_hardware_legacy.inc b/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/set_hardware_legacy.inc
deleted file mode 100644
index 22718839..00000000
--- a/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/set_hardware_legacy.inc
+++ /dev/null
@@ -1,152 +0,0 @@
-#########################################
-# Include: Hardware checks and settings #
-#########################################
-
-set_hardware_legacy() {
-
-# use different network card (default e1000, vlance, vmxnet)
-if [ -n "${network_card}" ]; then
- network_virtualDev="ethernet0.virtualDev = \"${network_card}\""
-else
- network_virtualDev='ethernet0.virtualDev = "e1000"'
-fi
-
-# use different network card (default e1000, vlance, vmxnet)
-hostdev="/dev/vmnet1"
-case "${network_kind}" in
- bridge|bridged)
- hostdev="/dev/vmnet0"
- ;;
- nat)
- hostdev="/dev/vmnet1"
- ;;
- hostonly|host-only)
- hostdev="/dev/vmnet2"
- ;;
-esac
-
-# set standard sound card, overwrite depending on OS (options sb16, es1371, hdaudio)
-sound="es1371"
-
-# set sound card explicitly if there is more than one card in the host system
-sound_fileName='sound.fileName = "-1"
-sound.autodetect = "TRUE"'
-
-# check for 3D configuration setting
-case "$enable3d" in
- true|yes)
- enable3d="TRUE"
- ;;
- *)
- enable3d="FALSE"
- ;;
-esac
-
-# check for whitelisted HW-3D
-FORCE3D=""
-if [ -n "$SLX_VMWARE_3D" ]; then
- FORCE3D='mks.gl.allowBlacklistedDrivers = "TRUE"'
-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}\""
- 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}\""
- 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
-
-# check if ide/scsi and hwver of image
-# read only the first 30 lines to be sure
-imghead=$(head -n 30 "${diskfile}")
-
-## Added to handle persistent snapshots.
-if [[ "$originalVMDKFilePath" ]]; then
- echo "Select \"${originalVMDKFilePath}\" as information base for \"${diskfile}\"."
- imghead=$(head -n 30 "$originalVMDKFilePath") && \
-
- # Support suspend mode.
- stateFilePath="$(readlink -f "$(dirname "$diskfile")/"*.vmss)" && \
- if [ -f "$stateFilePath" ]; then
- echo "Found state file \"$stateFilePath\"." && \
- stateFileConfiguration="
- checkpoint.vmState = \"$stateFilePath\""
- fi
- POSTRUN="stateFilePath=\"\$(readlink -f \"${confdir}/\"*.vmss)\" && memoryFilePath=\"\$(readlink -f \"${confdir}/\"*.vmem)\" && [ -f \"\$stateFilePath\" ] && echo \"Saving state and memory file \\\"\$stateFilePath\\\" and \\\"\$memoryFilePath\\\".\" && mv -f \"\$stateFilePath\" \"$(dirname "$diskfile")/\" && mv -f \"\$memoryFilePath\" \"$(dirname "$diskfile")/\""
-fi
-
-##
-hwver=$(echo "${imghead}" | grep -m1 -ia "ddb.virtualHWVersion" | awk -F '"' '{print $2}')
-
-
-if [ -z "$override_hddtype" ]; then
- hddrv=$(echo "${imghead}" | grep -m1 -ia "ddb.adapterType" | awk -F '"' '{print $2}')
-else
- hddrv=$override_hddtype
-fi
-
-PCIE=
-case "${hddrv}" in
- ide)
- ide="TRUE"
- scsi="FALSE"
- ;;
- lsisas*)
- ide="FALSE"
- scsi="TRUE"
- PCIE='pciBridge4.present = "TRUE"
- pciBridge4.virtualDev = "pcieRootPort"
- pciBridge4.functions = "8"'
- ;;
- lsilogic|buslogic)
- ide="FALSE"
- scsi="TRUE"
- ;;
- scsi)
- ide="FALSE"
- scsi="TRUE"
- hddrv="lsilogic"
- ;;
- *)
- slxlog "virt-vmware-hdd" "vmware: Unknown HDD adapter type $hddrv"
- ;;
-esac
-
-}
diff --git a/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/set_vmware_include_variables.inc b/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/set_vmware_include_variables.inc
index 0c45ee59..da820bc6 100644
--- a/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/set_vmware_include_variables.inc
+++ b/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/set_vmware_include_variables.inc
@@ -3,8 +3,6 @@
#####################################################################
set_vmware_include_variables() {
- [ "$mem" -gt 3800 -a "$(uname -m)" != "x86_64" ] && mem=3800
-
# temporary disk space for logs, etc...
redodir="/tmp/virt/vmware/${USER}.$$"
@@ -14,9 +12,6 @@ set_vmware_include_variables() {
# configfile
conffile="${confdir}/run-vmware.conf"
- # diskfile
- diskfile="${vmpath}"
-
# users vmware config folder
[ -z "${HOME}" ] && HOME=$(getent passwd "$(whoami)" | awk -F ':' '{print $6}')
vmhome="${HOME}/.vmware"
diff --git a/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/write_config_files_legacy.inc b/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/write_config_files_legacy.inc
deleted file mode 100644
index 52a341ba..00000000
--- a/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/write_config_files_legacy.inc
+++ /dev/null
@@ -1,29 +0,0 @@
-###############################
-# Include: Write config files #
-###############################
-
-write_config_files_legacy() {
- # create vmware directories
- mkdir -p "$redodir" >/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 file ${vmhome}/preferences
- source "${VMWAREINCLUDEDIR}/create_vmhome_preferences_file.inc" && create_vmhome_preferences_file
-
- # create VMware config file (conffile)
- source "${VMWAREINCLUDEDIR}/create_vmware_config_file_legacy.inc" && create_vmware_config_file_legacy
-
- # link to conffile if confdir != redodir
- [ "$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
- # TODO: Move to general run-virt, right before exec of vm
- sync
-
- # own nvram. We need it for floppy drive b, default nvram has just drive a
- if ! cp "/opt/openslx/vmchooser/vmware/nvram" "$confdir/nvram"; then
- slxlog "virt-vmware-nvram" "Could not copy nvram from '/opt/openslx/vmchooser/vmware/nvram' '$confdir/nvram'"
- fi
-}
diff --git a/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/write_final_vmx.inc b/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/write_final_vmx.inc
new file mode 100644
index 00000000..e664f02f
--- /dev/null
+++ b/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/write_final_vmx.inc
@@ -0,0 +1,189 @@
+
+# check for vmdk file marker %VM_DISK_PATH% and put vmdk path in it's place: also VM_DISK_MODE
+# and VM_DISK_REDOLOGDIR.
+sed -i 's#%VM_DISK_PATH%#'"$VM_DISKFILE_RO"'#g' "${TMPCONFIG}"
+sed -i 's#%VM_DISK_MODE%#'"independent-nonpersistent"'#g' "${TMPCONFIG}"
+sed -i 's#%VM_DISK_REDOLOGDIR%#'"$redodir"'#g' "${TMPCONFIG}"
+
+# Ethernet: All we do is entering a generated MAC, as we do not want to interfere
+# in the possible case no networking is wanted.
+writelog "Guest MAC: $macaddr"
+echo 'ethernet0.addressType = "static"' >> "${TMPCONFIG}"
+echo 'ethernet0.address = "'"${macaddr}"'"' >> "${TMPCONFIG}"
+
+# DVD, CDROM
+# XXX: For now it's safe to assume ide channel 1 is free, as we support only one HDD, and if it's IDE, it's on channel 0
+cat >> "${TMPCONFIG}" <<-HEREEND
+ide1:0.present = "$cdrom0"
+ide1:0.autodetect = "TRUE"
+ide1:0.fileName = "auto detect"
+ide1:0.deviceType = "cdrom-raw"
+ide1:1.present = "$cdrom1"
+ide1:1.autodetect = "TRUE"
+ide1:1.fileName = "auto detect"
+ide1:1.deviceType = "cdrom-raw"
+HEREEND
+
+if [ -n "$FLOPPYIMG" ]; then
+ floppy1="TRUE"
+else
+ floppy1="FALSE"
+fi
+
+# Floppies:
+cat >> "${TMPCONFIG}" <<-HEREEND
+floppy0.present = "$floppy0"
+floppy0.startConnected = "FALSE"
+floppy0.autodetect = "TRUE"
+floppy0.fileName = "auto detect"
+floppy1.present = "$floppy1"
+floppy1.startConnected = "TRUE"
+floppy1.fileType = "file"
+floppy1.fileName = "$FLOPPYIMG"
+HEREEND
+
+writelog "numvcpus = ${cpu_cores} - maxvcpus=${real_core_count}"
+
+# RAM, CPUs
+cat >> "${TMPCONFIG}" <<-HEREEND
+numvcpus = "$cpu_cores"
+cpuid.coresPerSocket = "$cores_per_socket"
+maxvcpus = "$real_core_count"
+memsize = "$mem"
+MemAllowAutoScaleDown = "FALSE"
+MemTrimRate = "-1"
+HEREEND
+
+# USB fallback: Only write usb config if there's none
+if ! grep -q -i "^usb\.present" "${TMPCONFIG}"; then
+ # Nothing found, go ahead
+ if [ -n "$SLX_EXAM" ]; then
+ # Exam mode: Default to no USB
+ sed -i '/^usb\./Id' "${TMPCONFIG}"
+ echo 'usb.present = "FALSE"' >> "${TMPCONFIG}"
+ else
+ cat >> "${TMPCONFIG}" <<-HEREEND
+ usb.present = "TRUE"
+ HEREEND
+ fi
+fi
+sed -i '/^usb\.generic\.autoconnect/Id' "${TMPCONFIG}"
+echo 'usb.generic.autoconnect = "TRUE"' >> "${TMPCONFIG}"
+# USB 3.0 support changes quality and has different side effects
+# with every minor release of vmware. Always force 2.0 for now.
+# TODO: Get it fixed by vmware?
+sed -i '/^ehci\.present/Id;/^usb_xhci\.present/Id' "${TMPCONFIG}"
+echo 'ehci.present = "TRUE"' >> "${TMPCONFIG}"
+
+# shared folders
+if [ "$HGFS_DISABLED" = "FALSE" ]; then
+ cat >> "${TMPCONFIG}" <<-HEREEND
+ sharedFolder.option = "alwaysEnabled"
+ sharedFolder0.present = "$shfolders"
+ sharedFolder0.enabled = "$shfolders"
+ sharedFolder0.expiration = "never"
+ sharedFolder0.guestName = "$homesharename"
+ sharedFolder0.hostPath = "$homesharepath"
+ sharedFolder0.readAccess = "TRUE"
+ sharedFolder0.writeAccess = "TRUE"
+ sharedFolder1.present = "$shfolders"
+ sharedFolder1.enabled = "$shfolders"
+ sharedFolder1.expiration = "never"
+ sharedFolder1.guestName = "$commonsharename"
+ sharedFolder1.hostPath = "$commonsharepath"
+ sharedFolder1.readAccess = "TRUE"
+ sharedFolder1.writeAccess = "FALSE"
+ sharedFolder.maxNum = "2"
+ hgfs.mapRootShare = "TRUE"
+ hgfs.linkRootShare = "TRUE"
+ HEREEND
+fi
+
+# Isolation tools: settings
+cat >> "${TMPCONFIG}" <<-HEREEND
+isolation.tools.hgfs.disable = "$HGFS_DISABLED"
+isolation.tools.dnd.disable = "FALSE"
+isolation.tools.copy.enable = "TRUE"
+isolation.tools.paste.enabled = "TRUE"
+HEREEND
+
+# Serial, parallel: Empty, nothing is being currently set. TODO later.
+
+# Graphics, GPU: 3D will be enabled (even if vmware doesn't support the chip) if we whitelisted it.
+if [ -n "$SLX_VMWARE_3D" ]; then
+ writelog "FORCE3D set - overriding 3D in vmx file."
+ echo 'mks.gl.allowBlacklistedDrivers = "TRUE"' >> "${TMPCONFIG}"
+ # We override... play safe and cap the hwVersion to 10, since some i915 chips goofed up with 12
+ # Investigate if we might have to do this in other cases where we don't override
+ if grep -qi '^mks.enable3d.*true' "${TMPCONFIG}"; then
+ vmw_cap_hw_version "10"
+ fi
+else
+ writelog "FORCE3D not set - 3D will only work if GPU/driver is whitelisted by vmware."
+fi
+
+# Disable DPI scaling information passing via vmware tools
+sed -i '/^gui.applyHostDisplayScaling/Id' "${TMPCONFIG}"
+echo 'gui.applyHostDisplayScalingToGuest = "FALSE"' >> "${TMPCONFIG}"
+
+# Additinal exam mode settings
+if [ -n "$SLX_EXAM" ]; then
+ echo 'gui.restricted = "true"' >> "${TMPCONFIG}"
+fi
+
+# Hack resolution if we know the desired one is not in the default list of vmx_svga
+# For now, only do it on the odd ones, as we don't know if this has any side effects
+# This seems unnecessary on Win7 but is required on WinXP - need more research for other OSs
+case "$RESOLUTION" in
+ 1600x900|2560x1440|2880x1800|3200x1800)
+ X=${RESOLUTION%x*}
+ Y=${RESOLUTION#*x}
+ BYTES=$(( ( ( X * Y * 4 + 65535 ) / 65536 ) * 65536 ))
+ [ "$BYTES" -lt 16777216 ] && BYTES=16777216
+ cat >> "${TMPCONFIG}" <<-EOF
+ svga.autodetect = "FALSE"
+ svga.vramSize = $BYTES
+ svga.maxWidth = $X
+ svga.maxHeight = $Y
+ EOF
+ ;;
+esac
+
+# Killing duplicate lines (output much nicer than sort -u):
+awk '!a[$0]++' "${TMPCONFIG}" > "${TMPCONFIG}.tmp" && mv -f "${TMPCONFIG}.tmp" "${TMPCONFIG}"
+
+# Apply $maxhardwareversion to final VMX
+if [ -n "$HWVER" ] && [ "$HWVER" -gt "$maxhardwareversion" ]; then
+ writelog "Hardware version capped to $maxhardwareversion (was $HWVER)"
+ sed -i 's/^virtualHW\.version.*$/virtualHW.version = "'$maxhardwareversion'"/I' "${TMPCONFIG}"
+ HWVER="$maxhardwareversion"
+fi
+
+# Enable nested virtualization if not specified in remote vmx
+if [ -e "/run/hwinfo" ] && ! grep -qi '^vhv\.enable' "${TMPCONFIG}" \
+ && grep -qE '^flags\s*:.*\b(ept|npt)\b' "/proc/cpuinfo" \
+ && [ "$HWVER" -ge "9" ]; then
+ . "/run/hwinfo"
+ [ "${HW_KVM}" = "ENABLED" ] && echo 'vhv.enable = "TRUE"' >> "${TMPCONFIG}"
+fi
+# TODO: Need a way to check if supported by hardware before enabling!
+#grep -qi '^vpmc\.enable' "${TMPCONFIG}" || echo 'vpmc.enable = "TRUE"' >> "${TMPCONFIG}"
+
+# Disable space check warnings
+sed -i '/^mainMem.freeSpaceCheck/Id' "${TMPCONFIG}"
+echo 'mainMem.freeSpaceCheck = "FALSE"' >> "${TMPCONFIG}"
+
+# See if there are any USB devices connected that we want to pass through immediately
+get_usb_devices 'usb.autoConnect.deviceXXXXX = "0x%VENDOR%:0x%PRODUCT%"' \
+ | sed -r 's/0x0+/0x/g' \
+ | awk '{sub(/XXXXX/,NR-1)}1' \
+ >> "${TMPCONFIG}"
+
+# At last_ Let's copy it to $confdir/run-vmware.conf
+if cp -p "${TMPCONFIG}" "$conffile"; then
+ writelog "Copied TMPDIR/IMGUUID ${TMPCONFIG} to conffile ${conffile}"
+else
+ writelog "Could not copy TMPDIR/IMGUUID -${TMPCONFIG}- to conffile ${conffile}!"
+ cleanexit 1
+fi
+
diff --git a/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/run-virt.include b/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/run-virt.include
index 4d263272..f66bc9b8 100644
--- a/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/run-virt.include
+++ b/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/run-virt.include
@@ -20,7 +20,7 @@
################################################################################
VMWAREINCLUDEDIR=/opt/openslx/vmchooser/vmware/includes
-vmostype=$(rv_clean_string "$vmostype")
+VM_OS_TYPE=$(rv_clean_string "$VM_OS_TYPE")
# declaration of default variables for vmware
source "${VMWAREINCLUDEDIR}/set_vmware_include_variables.inc" && set_vmware_include_variables
@@ -33,32 +33,23 @@ vmw_cap_hw_version() {
[ "$1" -lt "$maxhardwareversion" ] && maxhardwareversion="$1"
}
-if [ "$LEGACY" ]; then
- # hardware checks
- source "${VMWAREINCLUDEDIR}/set_hardware_legacy.inc" && set_hardware_legacy
- # write configuration files
- # write_config_files calls:
- # set_vmhome_preferences_header
- # set_vmware_startup_file
- source "${VMWAREINCLUDEDIR}/write_config_files_legacy.inc" && write_config_files_legacy
-else
- # write configuration files
- source "${VMWAREINCLUDEDIR}/write_config_files.inc"
+# get information from downloaded vmx
+source "${VMWAREINCLUDEDIR}/parse_vmx.inc"
- # parse the given vmx file
- source "${VMWAREINCLUDEDIR}/parse_vmx.inc"
-fi
+# determine limitations wrt RAM and CPU count of VM
+source "${VMWAREINCLUDEDIR}/determine_hardware_limitations.inc"
-# logging and stdout
-# needs writelog() from vmchooser-run_virt
-source "${VMWAREINCLUDEDIR}/logging.inc" && logging
+# create file and directory structure for vmware setup
+source "${VMWAREINCLUDEDIR}/create_static_directory_structure.inc"
-# See if there are any USB devices connected that we want to pass through immediately
-get_usb_devices 'usb.autoConnect.deviceXXXXX = "0x%VENDOR%:0x%PRODUCT%"' \
- | sed -r 's/0x0+/0x/g' \
- | awk '{sub(/XXXXX/,NR-1)}1' \
- >> "$conffile"
+# create preferences file ${vmhome}/preferences
+source "${VMWAREINCLUDEDIR}/create_vmhome_preferences_file.inc" && create_vmhome_preferences_file
+# parse the given vmx file
+source "${VMWAREINCLUDEDIR}/write_final_vmx.inc"
+
+# print summary - needs writelog() from vmchooser-run_virt
+source "${VMWAREINCLUDEDIR}/log_config_summary.inc"
# For debugging
cp "$conffile" "/tmp/vmware-last-config"