summaryrefslogtreecommitdiffstats
path: root/core/modules/vmware
diff options
context:
space:
mode:
authorJonathan Bauer2017-01-25 18:32:35 +0100
committerJonathan Bauer2017-01-25 18:32:35 +0100
commiteea5898961a40fc50f01356f90c42904a73a3f74 (patch)
tree52c19d11efc2d7d904ac89e36ff271de305cfc5a /core/modules/vmware
parent[pam] Include cifs.upcall for DFS support (diff)
downloadmltk-eea5898961a40fc50f01356f90c42904a73a3f74.tar.gz
mltk-eea5898961a40fc50f01356f90c42904a73a3f74.tar.xz
mltk-eea5898961a40fc50f01356f90c42904a73a3f74.zip
major run-virt restructure, only vmware plugin tested!
Diffstat (limited to 'core/modules/vmware')
-rw-r--r--core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/create_vmhome_preferences_file.inc (renamed from core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_vmhome_preferences_file.inc)22
-rw-r--r--core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/determine_hardware_limitations.inc196
-rw-r--r--core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/init_core.inc44
-rw-r--r--core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/log_config_summary.inc59
-rw-r--r--core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/parse_vmx.inc22
-rw-r--r--core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/write_final_vmx.inc227
-rw-r--r--core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/nvram (renamed from core/modules/vmware/data/opt/openslx/vmchooser/vmware/nvram)bin8664 -> 8664 bytes
-rw-r--r--core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/run-virt.include50
-rw-r--r--core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_static_directory_structure.inc23
-rw-r--r--core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_vmware_config_file.inc186
-rw-r--r--core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_vmware_config_file_legacy.inc312
-rw-r--r--core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/determine_hardware_limitations.inc185
-rw-r--r--core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/log_config_summary.inc60
-rw-r--r--core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/logging.inc64
-rw-r--r--core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/parse_vmx.inc8
-rw-r--r--core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/set_hardware_legacy.inc152
-rw-r--r--core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/set_vmware_include_variables.inc25
-rw-r--r--core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/write_config_files.inc29
-rw-r--r--core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/write_config_files_legacy.inc29
-rw-r--r--core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/write_final_vmx.inc211
-rw-r--r--core/modules/vmware/data/opt/openslx/vmchooser/vmware/run-virt.include60
-rw-r--r--core/modules/vmware/module.build6
-rw-r--r--core/modules/vmware/module.conf2
23 files changed, 615 insertions, 1357 deletions
diff --git a/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_vmhome_preferences_file.inc b/core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/create_vmhome_preferences_file.inc
index d50402f3..ed76490b 100644
--- a/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_vmhome_preferences_file.inc
+++ b/core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/create_vmhome_preferences_file.inc
@@ -1,8 +1,13 @@
+###########################################
+# Include: Create VMware preferences file #
+###########################################
+## Functions ##
create_vmhome_preferences_file() {
- cat > "$vmhome/preferences" <<-HEREEND
+ cat > "${VM_HOME}/preferences" <<-HEREEND
.encoding = "UTF-8"
- # This configuration file was generated by $0
-
+ # This configuration file was generated on $(date)
+ # by $0 for VMWare version $vmware_version
+
# updates
webUpdate.enabled = "FALSE"
webUpdate.lastCheck.status = "done_updates"
@@ -27,8 +32,8 @@ create_vmhome_preferences_file() {
hint.buslogic.needDriver = "FALSE"
# configs
- prefvmx.defaultVMPath = "$vmhome"
- prefvmx.mru.config = "$conffile:"
+ prefvmx.defaultVMPath = "${VM_HOME}"
+ prefvmx.mru.config = "$VM_RUN_FILE:"
# hot keys
pref.hotkey.control = "true"
@@ -65,8 +70,9 @@ create_vmhome_preferences_file() {
pref.eula1.build = "$vmware_build"
HEREEND
if [ -n "$SLX_EXAM" ]; then
- echo 'pref.hotkey.rightControl = "true"' >> "$vmhome/preferences"
+ echo 'pref.hotkey.rightControl = "true"' >> "${VM_HOME}/preferences"
fi
- writelog "Vmware preferences file created in $vmhome."
- true
+ writelog "Vmware preferences file created in $VM_HOME."
}
+
+call_post_source create_vmhome_preferences_file
diff --git a/core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/determine_hardware_limitations.inc b/core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/determine_hardware_limitations.inc
new file mode 100644
index 00000000..f5fdf669
--- /dev/null
+++ b/core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/determine_hardware_limitations.inc
@@ -0,0 +1,196 @@
+##########################################################################
+# Include: Determine limitations caused by hardware version and guest os #
+##########################################################################
+## Functions
+set_vm_hardware_limits() {
+ # Sanity checks
+ if isempty VM_OS_TYPE; then
+ writelog "VM_OS_TYPE is empty! This should have been parsed from the VM metadata."
+ EXIT_TYPE="user" EXIT_REASON="Konnte Gastbetriebsystems der gewählten virtuellen Maschine nicht ermitteln!" cleanexit 1
+ fi
+
+ declare -g MAXMEM="9999999"
+ declare -g MAXCORES="4"
+ declare -g SHARED_FOLDERS="TRUE"
+ declare -g SOUND_DEV="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 "$VM_OS_TYPE" in
+ win31*|windows31*)
+ VM_OS_TYPE="win31"
+ SHARED_FOLDERS="FALSE"
+ SOUND_DEV="sb16"
+ MAXMEM="32"
+ MAXCORES="1"
+ ;;
+ winnt*|windowsnt*)
+ VM_OS_TYPE="winnt"
+ SHARED_FOLDERS="FALSE"
+ SOUND_DEV="sb16"
+ MAXMEM="1000"
+ MAXCORES="2"
+ ;;
+ win95*|windows95*)
+ VM_OS_TYPE="win95"
+ SHARED_FOLDERS="FALSE"
+ MAXMEM="96"
+ MAXCORES="1"
+ ;;
+ win98*|windows98*)
+ VM_OS_TYPE="win98"
+ MAXMEM="256"
+ MAXCORES="1"
+ ;;
+ winme*|windowsme*)
+ VM_OS_TYPE="winme"
+ MAXMEM="384"
+ MAXCORES="1"
+ ;;
+ win2000|windows2000|win2000pro*)
+ VM_OS_TYPE="win2000pro"
+ MAXMEM="4000"
+ MAXCORES="2"
+ ;;
+ win2000srv*|windows2000srv*|win2000serv*|windows2000serv*)
+ VM_OS_TYPE="win2000serv"
+ SHARED_FOLDERS="FALSE"
+ MAXMEM="4000"
+ MAXCORES="4"
+ ;;
+ win2000adv*|windows2000adv*|win2000dat*|windows2000dat*)
+ VM_OS_TYPE="win2000advserv"
+ SHARED_FOLDERS="FALSE"
+ MAXMEM="8000"
+ MAXCORES="8"
+ ;;
+ winnet*64|win*2003*64|windowsnet*64)
+ VM_OS_TYPE="winnetstandard-64"
+ MAXMEM="8000"
+ MAXCORES="8"
+ ;;
+ winnet*|win*2003*|windowsnet*)
+ VM_OS_TYPE="winnetstandard"
+ MAXMEM="4000"
+ MAXCORES="8"
+ ;;
+ winxphome*|windowsxphome*)
+ VM_OS_TYPE="winxphome"
+ MAXMEM="4000"
+ MAXCORES="2"
+ ;;
+ winxp*64|windowsxp*64)
+ VM_OS_TYPE="winxppro-64"
+ MAXMEM="8000"
+ MAXCORES="8"
+ ;;
+ winxp*|windowsxp*)
+ VM_OS_TYPE="winxppro"
+ MAXMEM="4000"
+ MAXCORES="4"
+ ;;
+ winvista-64)
+ VM_OS_TYPE="winvista-64"
+ MAXMEM="16000"
+ MAXCORES="4"
+ ;;
+ windows7-64)
+ VM_OS_TYPE="windows7-64"
+ MAXMEM="32000"
+ MAXCORES="8"
+ ;;
+ windows8-64)
+ VM_OS_TYPE="windows8-64"
+ MAXMEM="32000"
+ MAXCORES="8"
+ ;;
+ windows9-64)
+ VM_OS_TYPE="windows9-64"
+ MAXMEM="64000"
+ MAXCORES="8"
+ ;;
+ winvista)
+ VM_OS_TYPE="winvista"
+ MAXMEM="8000"
+ MAXCORES="2"
+ ;;
+ windows7)
+ VM_OS_TYPE="windows7"
+ MAXMEM="8000"
+ MAXCORES="4"
+ ;;
+ windows8)
+ VM_OS_TYPE="windows8"
+ MAXMEM="8000"
+ MAXCORES="4"
+ ;;
+ windows9)
+ VM_OS_TYPE="windows9"
+ MAXMEM="8000"
+ MAXCORES="4"
+ ;;
+ win*64)
+ MAXMEM="16000"
+ MAXCORES="4"
+ ;;
+ win*)
+ MAXMEM="8000"
+ MAXCORES="1"
+ ;;
+ dos|msdos*|ms-dos*)
+ VM_OS_TYPE="dos"
+ SHARED_FOLDERS="FALSE"
+ MAXMEM="128"
+ MAXCORES="1"
+ ;;
+ macos*64)
+ VM_OS_TYPE="freebsd-64"
+ MAXMEM="4000"
+ MAXCORES="2"
+ ;;
+ macos*)
+ VM_OS_TYPE="freebsd"
+ MAXMEM="4000"
+ MAXCORES="1"
+ ;;
+ beos*)
+ VM_OS_TYPE="other"
+ SHARED_FOLDERS="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)
+ VM_OS_TYPE="other-64"
+ # SHARED_FOLDERS="FALSE"
+ MAXMEM="123456"
+ MAXCORES="4"
+ ;;
+ *)
+ VM_OS_TYPE="other"
+ # SHARED_FOLDERS="FALSE"
+ MAXMEM="8000"
+ MAXCORES="1"
+ ;;
+ esac
+
+ declare -rg HOST_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.
+ declare -rg VM_CORES_PER_SOCKET="$CPU_CORES"
+
+ if [ "x$SHARED_FOLDERS" != "xFALSE" ] && [ "$SHARE_REMAP_MODE" != 1 ]; then
+ declare -rg HGFS_DISABLED="FALSE"
+ else
+ declare -rg HGFS_DISABLED="TRUE"
+ fi
+
+ [ "${VM_MEM}" -ge "${MAXMEM}" ] && VM_MEM="${MAXMEM}"
+ [ "${VM_HW_VERSION}" -lt "7" -a "${VM_MEM}" -gt "3500" ] && VM_MEM="3500"
+ return 0
+}
+
+## MAIN ##
+call_post_source set_vm_hardware_limits
diff --git a/core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/init_core.inc b/core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/init_core.inc
new file mode 100644
index 00000000..63318589
--- /dev/null
+++ b/core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/init_core.inc
@@ -0,0 +1,44 @@
+#######################################################################
+# Include: Declaration of core functions and variables of this plugin #
+#######################################################################
+# This core include just executes stuff! No post source calls!
+# For now define helpers here, maybe use a dedicated include later on
+vmw_cap_hw_version() {
+ [ -z "$1" ] && writelog "cap_hw_version called without parameter!" && return 1
+ [ "$1" -lt "$maxhardwareversion" ] && maxhardwareversion="$1"
+}
+
+# Temporary disk space for logs, etc...
+declare -rg VM_REDO_DIR="/tmp/virt/vmware/${USER}.$$"
+
+# Dir for configs and vmem file
+declare -rg VM_CONF_DIR="/tmp/virt/vmware/${USER}.$$"
+
+# The VMX file of the starting VM
+declare -rg VM_RUN_FILE="${VM_CONF_DIR}/run-vmware.conf"
+
+# Users vmware config folder
+[ -z "${HOME}" ] && declare -rg HOME=$(getent passwd "$(whoami)" | awk -F ':' '{print $6}')
+declare -rg VM_HOME="${HOME}/.vmware"
+
+# mltk generates a vmware config file with several version infos for vmware/player, read it
+$(safesource "${VMWARE_PLUGIN_DIR}/vmware.conf")
+
+# VMware start options
+# "-X": start in fullscreen
+declare -rg VM_START_OPTIONS="-X"
+
+# create vmware directories
+mkdir -p "$VM_REDO_DIR" >/dev/null 2>&1
+mkdir -p "$VM_CONF_DIR" >/dev/null 2>&1
+mkdir -p "$VM_HOME/dndlogs" >/dev/null 2>&1
+touch "$VM_HOME/dndlogs/dndlog.conf" >/dev/null 2>&1
+
+# link to VM_RUN_FILE if VM_CONF_DIR != VM_REDO_DIR
+[ "$VM_CONF_DIR" != "$VM_REDO_DIR" ] && ln -s "$VM_RUN_FILE" "$VM_REDO_DIR/run-vmware.conf" >/dev/null 2>&1
+
+# own nvram. We need it for floppy drive b, default nvram has just drive a
+if ! cp "${VMWARE_PLUGIN_DIR}/nvram" "$VM_CONF_DIR/nvram"; then
+ slxlog "virt-vmware-nvram" "Could not copy nvram from '${VMWARE_PLUGIN_DIR}/nvram' '$VM_CONF_DIR/nvram'"
+fi
+
diff --git a/core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/log_config_summary.inc b/core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/log_config_summary.inc
new file mode 100644
index 00000000..a33a8bc6
--- /dev/null
+++ b/core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/log_config_summary.inc
@@ -0,0 +1,59 @@
+##################################################
+# Include: Print vm config summary into log file #
+##################################################
+
+log_config_summary() {
+ # write all results to logfile
+ # log disksetup
+ writelog "Directories:"
+ writelog "\tConfig dir:\t\t${VM_CONF_DIR}"
+ writelog "\tConfig file:\t\t${VM_RUN_FILE}"
+ writelog "\tRedo dir:\t\t${VM_REDO_DIR}"
+ writelog "\tVM home:\t\t${VM_HOME}"
+ writelog "\tDrag n' drop log:\t${VM_HOME}/dndlogs"
+ writelog "\t/tmp info:\t\t$(grep "/tmp " /proc/mounts) $(df -h | grep " /tmp$" | awk '{print $2}')"
+
+ # hw setup
+ writelog "Hardware:"
+ writelog "\tvCPUs:\t\t\t${CPU_CORES}"
+ writelog "\tVM RAM:\t\t\t${VM_MEM} MB"
+ writelog "\tMAC:\t\t\t${VM_MAC_ADDR}"
+ if [ -n "${network_card}" ]; then
+ writelog "\tNet Adaptor:\t\t${network_card}"
+ fi
+
+ writelog "\tCD-ROM 1:\t\t${CDROM0}"
+ writelog "\tCD-ROM 2:\t\t${CDROM1}"
+ writelog "\tFloppy A:\t\t${FLOPPY0}"
+ # echo nur wenn HOST_MEM_REMAINING gesetzt
+ if isset HOST_MEM_REMAINING; then
+ writelog "\tRemaining host RAM:\t${HOST_MEM_REMAINING} MB"
+ fi
+
+ # image
+ writelog "Disk image:"
+ writelog "\tDisk file:\t\t${VM_DISKFILE_RO}"
+ if isset VM_DISKFILE_RW; then
+ writelog "\tDisk mode:\t\twritable"
+ writelog "\tRW-Layer:\t\t${VM_DISKFILE_RW}"
+ else
+ writelog "\tDisk mode:\t\tread-only"
+ fi
+ writelog "\tHardware version:\t${VM_HW_VERSION}"
+ writelog "\tGuest OS:\t\t${VM_OS_TYPE}"
+
+ # misc
+ writelog "Misc:"
+ writelog "\tDisplayname:\t\t${VM_DISPLAYNAME}"
+ if [ "${cap3d}" = "TRUE" -a "${enable3d}" = "TRUE" ]; then
+ writelog "\t3D Graphics:\tenabled"
+ fi
+ if [ "${HGFS_DISABLED}" = "FALSE" ]; then
+ writelog "\tShared folders:\t\tdisabled"
+ else
+ writelog "\tShared folders:\t\tenabled."
+ fi
+ # empty line at end
+ writelog ""
+}
+call_post_source log_config_summary
diff --git a/core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/parse_vmx.inc b/core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/parse_vmx.inc
new file mode 100644
index 00000000..daa77455
--- /dev/null
+++ b/core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/parse_vmx.inc
@@ -0,0 +1,22 @@
+######################################################################
+# Include: Parsing the non-legacy delivered vmxfile ${TMPCONFIG} #
+######################################################################
+## Functions
+parse_vmx() {
+ writelog "Parsing virtual machine description file..."
+ local -i HW_VERSION=$(grep -i -m1 '^virtualHW.version *= *' "${TMPCONFIG}" | awk -F '=' '{print $2}' | sed -r 's/[^0-9]//g')
+ if notempty HW_VERSION; then
+ declare -rg VM_HW_VERSION="${HW_VERSION}"
+ return 0
+ fi
+ return 1
+}
+
+## MAIN ##
+if notempty TMPCONFIG; then
+ call_post_source parse_vmx
+else
+ writelog "Path to VMX file is not set or empty! Aborting..."
+ EXIT_TYPE="internal" EXIT_REASON="Konnte Pfad zur VMX-Datei nicht finden!" cleanexit 1
+fi
+
diff --git a/core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/write_final_vmx.inc b/core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/write_final_vmx.inc
new file mode 100644
index 00000000..5ab1d6e9
--- /dev/null
+++ b/core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/write_final_vmx.inc
@@ -0,0 +1,227 @@
+################################################
+# Include: Create final VMX configuration 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.
+replace_placeholders() {
+ 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%#'"$VM_REDO_DIR"'#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.
+setup_ethernet() {
+ echo 'ethernet0.addressType = "static"' >> "${TMPCONFIG}"
+ echo 'ethernet0.address = "'"${VM_MAC_ADDR}"'"' >> "${TMPCONFIG}"
+}
+
+# DVD, CDROM
+setup_optical_drives() {
+ # XXX: For now it's safe to assume ide channel 1 is free, as we support only one HDD.
+ # 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
+}
+
+setup_floppies() {
+ local SLX_FLOPPY
+ if isset SLX_FLOPPY_IMG; then
+ SLX_FLOPPY="TRUE"
+ else
+ SLX_FLOPPY="FALSE"
+ fi
+
+ # Floppies:
+ cat >> "${TMPCONFIG}" <<-HEREEND
+ floppy0.present = "$FLOPPY0"
+ floppy0.startConnected = "FALSE"
+ floppy0.autodetect = "TRUE"
+ floppy0.fileName = "auto detect"
+ floppy1.present = "$SLX_FLOPPY"
+ floppy1.startConnected = "TRUE"
+ floppy1.fileType = "file"
+ floppy1.fileName = "$SLX_FLOPPY_IMG"
+ HEREEND
+}
+
+# CPU and RAM
+setup_vcpu_ram() {
+ #writelog "numvcpus = ${CPU_CORES} - maxvcpus=${HOST_CORE_COUNT}"
+ cat >> "${TMPCONFIG}" <<-HEREEND
+ numvcpus = "$CPU_CORES"
+ cpuid.coresPerSocket = "$VM_CORES_PER_SOCKET"
+ maxvcpus = "$HOST_CORE_COUNT"
+ memsize = "${VM_MEM}"
+ MemAllowAutoScaleDown = "FALSE"
+ MemTrimRate = "-1"
+ HEREEND
+}
+
+setup_usb() {
+ # 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 # TODO better handling of exam mode...
+ # Exam mode: Default to no USB
+ sed -i '/^usb\./Id' "${TMPCONFIG}"
+ echo 'usb.present = "FALSE"' >> "${TMPCONFIG}"
+ else
+ echo 'usb.present = "TRUE"' >> "${TMPCONFIG}"
+ 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}"
+
+ # 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}"
+}
+
+setup_shared_folders() {
+ cat >> "${TMPCONFIG}" <<-HEREEND
+ sharedFolder.option = "alwaysEnabled"
+ sharedFolder0.present = "$SHARED_FOLDERS"
+ sharedFolder0.enabled = "$SHARED_FOLDERS"
+ sharedFolder0.expiration = "never"
+ sharedFolder0.guestName = "$homesharename"
+ sharedFolder0.hostPath = "$homesharepath"
+ sharedFolder0.readAccess = "TRUE"
+ sharedFolder0.writeAccess = "TRUE"
+ sharedFolder1.present = "$SHARED_FOLDERS"
+ sharedFolder1.enabled = "$SHARED_FOLDERS"
+ 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
+}
+
+setup_isolation() {
+ # Settings for isolation tools (drag & drop, copy & paste, etc...)
+ 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.
+
+setup_graphics() {
+ # Graphics, GPU: 3D will be enabled (even if vmware doesn't support the chip) if we whitelisted it.
+ if isset 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}"
+}
+
+finalize_hardware() {
+ # Apply $maxhardwareversion to final VMX
+ if notempty VM_HW_VERSION && [ "$VM_HW_VERSION" -gt "$maxhardwareversion" ]; then
+ writelog "Hardware version capped to $maxhardwareversion (was $VM_HW_VERSION)"
+ sed -i 's/^virtualHW\.version.*$/virtualHW.version = "'$maxhardwareversion'"/I' "${TMPCONFIG}"
+ VM_HW_VERSION="$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" \
+ && [ "$VM_HW_VERSION" -ge "9" ]; then
+ . "/run/hwinfo"
+ [ "${HW_KVM}" = "ENABLED" ] && echo 'vhv.enable = "TRUE"' >> "${TMPCONFIG}"
+ fi
+
+ # Disable space check warnings
+ sed -i '/^mainMem.freeSpaceCheck/Id' "${TMPCONFIG}"
+ echo 'mainMem.freeSpaceCheck = "FALSE"' >> "${TMPCONFIG}"
+
+ # TODO: Need a way to check if supported by hardware before enabling!
+ #grep -qi '^vpmc\.enable' "${TMPCONFIG}" || echo 'vpmc.enable = "TRUE"' >> "${TMPCONFIG}"
+}
+
+
+## MAIN ##
+write_final_vmx() {
+ replace_placeholders
+ setup_ethernet
+ setup_optical_drives
+ setup_floppies
+ setup_vcpu_ram
+ setup_usb
+ [ "$HGFS_DISABLED" = "FALSE" ] && setup_shared_folders
+ setup_isolation
+ setup_graphics
+ finalize_hardware
+
+ # At last: Let's copy it to $VM_CONF_DIR/run-vmware.conf
+ if cp -p "${TMPCONFIG}" "${VM_RUN_FILE}"; then
+ writelog "Copied '${TMPCONFIG}' to '${VM_RUN_FILE}'"
+ else
+ writelog "Could not copy TMPDIR/IMGUUID -${TMPCONFIG}- to VM_RUN_FILE ${VM_RUN_FILE}!"
+ # cleanexit 1 # that seems not needed!
+ fi
+}
+call_post_source write_final_vmx
+
+
diff --git a/core/modules/vmware/data/opt/openslx/vmchooser/vmware/nvram b/core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/nvram
index 85125f1e..85125f1e 100644
--- a/core/modules/vmware/data/opt/openslx/vmchooser/vmware/nvram
+++ b/core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/nvram
Binary files differ
diff --git a/core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/run-virt.include b/core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/run-virt.include
new file mode 100644
index 00000000..9d45becf
--- /dev/null
+++ b/core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/run-virt.include
@@ -0,0 +1,50 @@
+# -----------------------------------------------------------------------------
+# Copyright (c) 2009..2017 - RZ Uni Freiburg
+# Copyright (c) 2009..2017 - 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 vmchooser-run_virt
+################################################################################
+
+# BASH_SOURCE[0] contains the file being sourced, namely this one
+declare -rg VMWARE_PLUGIN_DIR="$(dirname "${BASH_SOURCE[0]}")"
+declare -rg VMWARE_INCLUDE_DIR="${VMWARE_PLUGIN_DIR}/includes"
+
+# TODO make this part of the metadata coming from the server
+# Define which features the VMware plugin supports
+declare -rg PLUGIN_FEATURES="firewall printer usb slxfloppy sound"
+
+run_plugin() {
+ # declaration of default functions and variables for vmware
+ $(safesource --exit "${VMWARE_INCLUDE_DIR}/init_core.inc")
+
+ # get information from downloaded vmx
+ $(safesource "${VMWARE_INCLUDE_DIR}/parse_vmx.inc")
+
+ # determine limitations wrt RAM and CPU count of VM
+ $(safesource "${VMWARE_INCLUDE_DIR}/determine_hardware_limitations.inc")
+
+ # create preferences file ${HOME}/.vmware/preferences
+ $(safesource "${VMWARE_INCLUDE_DIR}/create_vmhome_preferences_file.inc")
+
+ # parse the given vmx file
+ $(safesource "${VMWARE_INCLUDE_DIR}/write_final_vmx.inc")
+
+ # print summary - needs writelog() from vmchooser-run_virt
+ $(safesource "${VMWARE_INCLUDE_DIR}/log_config_summary.inc")
+
+ # For debugging
+ cp "$VM_RUN_FILE" "/tmp/vmware-last-config"
+
+ # HACK: using the modified version of the wrapper script
+ declare -rg VIRTCMD="/opt/openslx/bin/vmplayer"
+ declare -rg VIRTCMDOPTS="${VM_START_OPTIONS} ${VM_RUN_FILE}"
+}
diff --git a/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_static_directory_structure.inc b/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_static_directory_structure.inc
deleted file mode 100644
index 96363de3..00000000
--- a/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_static_directory_structure.inc
+++ /dev/null
@@ -1,23 +0,0 @@
-###############################
-# Include: Write config files #
-###############################
-
-writelog "Redo directory: ${redodir}"
-writelog "Config directory: ${confdir}"
-writelog "Config file: ${conffile}"
-writelog "vmhome/dndlogs: ${vmhome}/dndlogs"
-
-# 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
-
-# link to conffile if confdir != redodir
-[ "$confdir" != "$redodir" ] && ln -s "$conffile" "$redodir/run-vmware.conf" >/dev/null 2>&1
-
-# 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/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_vmware_config_file.inc b/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_vmware_config_file.inc
deleted file mode 100644
index 5d33ce16..00000000
--- a/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_vmware_config_file.inc
+++ /dev/null
@@ -1,186 +0,0 @@
-########################################
-# Include: Create vmware startup files #
-########################################
-
-writelog "Creating vmware configuration file: $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)
- vmostype="winvista-64"
- MAXMEM="16000"
- MAXCORES="2"
- ;;
- windows7-64)
- vmostype="windows7-64"
- MAXMEM="32000"
- MAXCORES="4"
- ;;
- windows8-64)
- vmostype="windows8-64"
- MAXMEM="32000"
- MAXCORES="8"
- ;;
- windows9-64)
- vmostype="windows9-64"
- MAXMEM="64000"
- MAXCORES="8"
- ;;
- winvista)
- vmostype="winvista"
- MAXMEM="8000"
- MAXCORES="2"
- ;;
- windows7)
- vmostype="windows7"
- MAXMEM="8000"
- MAXCORES="4"
- ;;
- windows8)
- vmostype="windows8"
- MAXMEM="8000"
- MAXCORES="4"
- ;;
- windows9)
- vmostype="windows9"
- 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 - 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"
- # 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" ]; then
- ENABLE_SHARE='sharedFolder.option = "alwaysEnabled"'
-else
- ENABLE_SHARE=''
-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
-
diff --git a/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_vmware_config_file_legacy.inc b/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_vmware_config_file_legacy.inc
deleted file mode 100644
index 1d6b2185..00000000
--- a/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_vmware_config_file_legacy.inc
+++ /dev/null
@@ -1,312 +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" ]; then
- ENABLE_SHARE='sharedFolder.option = "alwaysEnabled"'
- else
- ENABLE_SHARE=''
- fi
-
- [ "$mem" -ge "$MAXMEM" ] && mem="$MAXMEM"
- [ "$hwver" -lt "7" -a "$mem" -gt "3500" ] && mem="3500"
-
- cap3d="WHAT IS THIS VAR USED FOR?" # helper var for loging output
-
-
- 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"
- floppy1.clientDevice = "FALSE"
- floppy1.readonly = "TRUE"
-
- # 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 = "FALSE"
- floppy0.autodetect = "TRUE"
- floppy0.fileName = "auto detect"
-
- # we need floppy b: for the client configuration
- floppy1.present = "$floppy1"
- floppy1.startConnected = "TRUE"
- floppy1.fileType = "file"
- floppy1.fileName = "$floppy1name"
-
- # 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 = "FALSE"
- 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/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/determine_hardware_limitations.inc b/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/determine_hardware_limitations.inc
deleted file mode 100644
index 11ea2e3a..00000000
--- a/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/determine_hardware_limitations.inc
+++ /dev/null
@@ -1,185 +0,0 @@
-########################################
-# Include: Determine hw limitations depending on hwver and guest os #
-########################################
-
-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 "$VM_OS_TYPE" in
- win31*|windows31*)
- VM_OS_TYPE="win31"
- shfolders="FALSE"
- sound="sb16"
- MAXMEM="32"
- MAXCORES="1"
- ;;
- winnt*|windowsnt*)
- VM_OS_TYPE="winnt"
- shfolders="FALSE"
- sound="sb16"
- MAXMEM="1000"
- MAXCORES="2"
- ;;
- win95*|windows95*)
- VM_OS_TYPE="win95"
- shfolders="FALSE"
- MAXMEM="96"
- MAXCORES="1"
- ;;
- win98*|windows98*)
- VM_OS_TYPE="win98"
- MAXMEM="256"
- MAXCORES="1"
- ;;
- winme*|windowsme*)
- VM_OS_TYPE="winme"
- MAXMEM="384"
- MAXCORES="1"
- ;;
- win2000|windows2000|win2000pro*)
- VM_OS_TYPE="win2000pro"
- MAXMEM="4000"
- MAXCORES="2"
- ;;
- win2000srv*|windows2000srv*|win2000serv*|windows2000serv*)
- VM_OS_TYPE="win2000serv"
- shfolders="FALSE"
- MAXMEM="4000"
- MAXCORES="4"
- ;;
- win2000adv*|windows2000adv*|win2000dat*|windows2000dat*)
- VM_OS_TYPE="win2000advserv"
- shfolders="FALSE"
- MAXMEM="8000"
- MAXCORES="8"
- ;;
- winnet*64|win*2003*64|windowsnet*64)
- VM_OS_TYPE="winnetstandard-64"
- MAXMEM="8000"
- MAXCORES="8"
- ;;
- winnet*|win*2003*|windowsnet*)
- VM_OS_TYPE="winnetstandard"
- MAXMEM="4000"
- MAXCORES="8"
- ;;
- winxphome*|windowsxphome*)
- VM_OS_TYPE="winxphome"
- MAXMEM="4000"
- MAXCORES="2"
- ;;
- winxp*64|windowsxp*64)
- VM_OS_TYPE="winxppro-64"
- MAXMEM="8000"
- MAXCORES="8"
- ;;
- winxp*|windowsxp*)
- VM_OS_TYPE="winxppro"
- MAXMEM="4000"
- MAXCORES="4"
- ;;
- winvista-64)
- VM_OS_TYPE="winvista-64"
- MAXMEM="16000"
- MAXCORES="4"
- ;;
- windows7-64)
- VM_OS_TYPE="windows7-64"
- MAXMEM="32000"
- MAXCORES="8"
- ;;
- windows8-64)
- VM_OS_TYPE="windows8-64"
- MAXMEM="32000"
- MAXCORES="8"
- ;;
- windows9-64)
- VM_OS_TYPE="windows9-64"
- MAXMEM="64000"
- MAXCORES="8"
- ;;
- winvista)
- VM_OS_TYPE="winvista"
- MAXMEM="8000"
- MAXCORES="2"
- ;;
- windows7)
- VM_OS_TYPE="windows7"
- MAXMEM="8000"
- MAXCORES="4"
- ;;
- windows8)
- VM_OS_TYPE="windows8"
- MAXMEM="8000"
- MAXCORES="4"
- ;;
- windows9)
- VM_OS_TYPE="windows9"
- MAXMEM="8000"
- MAXCORES="4"
- ;;
- win*64)
- MAXMEM="16000"
- MAXCORES="4"
- ;;
- win*)
- MAXMEM="8000"
- MAXCORES="1"
- ;;
- dos|msdos*|ms-dos*)
- VM_OS_TYPE="dos"
- shfolders="FALSE"
- MAXMEM="128"
- MAXCORES="1"
- ;;
- macos*64)
- VM_OS_TYPE="freebsd-64"
- MAXMEM="4000"
- MAXCORES="2"
- ;;
- macos*)
- VM_OS_TYPE="freebsd"
- MAXMEM="4000"
- MAXCORES="1"
- ;;
- beos*)
- 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)
- VM_OS_TYPE="other-64"
- # shfolders="FALSE"
- MAXMEM="123456"
- MAXCORES="4"
- ;;
- *)
- VM_OS_TYPE="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
- HGFS_DISABLED="FALSE"
-else
- HGFS_DISABLED="TRUE"
-fi
-
-[ "$mem" -ge "$MAXMEM" ] && mem="$MAXMEM"
-[ "$HWVER" -lt "7" -a "$mem" -gt "3500" ] && mem="3500"
-
diff --git a/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/log_config_summary.inc b/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/log_config_summary.inc
deleted file mode 100644
index 41986b2a..00000000
--- a/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/log_config_summary.inc
+++ /dev/null
@@ -1,60 +0,0 @@
-##################################################
-# 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/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/logging.inc b/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/logging.inc
deleted file mode 100644
index dc01434d..00000000
--- a/core/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\t00:50:56:$macaddrsuffix" # TODO: Make var at top for this, it's hard coded twice
- 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 [ "${ENABLE_SHARE}" = '' ]; then
- writelog "\tNo shared folders enabled."
- else
- writelog "\Shared folders enabled ($ENABLE_SHARE)"
- 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/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/parse_vmx.inc b/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/parse_vmx.inc
deleted file mode 100644
index dec80e1d..00000000
--- a/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/parse_vmx.inc
+++ /dev/null
@@ -1,8 +0,0 @@
-######################################################################
-# Include: Parsing the non-legacy delivered vmxfile ${TMPCONFIG} #
-######################################################################
-
-writelog "Parsing virtual machine description file..."
-
-HWVER=$(grep -i -m1 '^virtualHW.version *= *' "${TMPCONFIG}" | awk -F '=' '{print $2}' | sed -r 's/[^0-9]//g')
-
diff --git a/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/set_hardware_legacy.inc b/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/set_hardware_legacy.inc
deleted file mode 100644
index 22718839..00000000
--- a/core/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/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/set_vmware_include_variables.inc b/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/set_vmware_include_variables.inc
deleted file mode 100644
index da820bc6..00000000
--- a/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/set_vmware_include_variables.inc
+++ /dev/null
@@ -1,25 +0,0 @@
-#####################################################################
-# Include: Declaration of vmware run-virt-include default variables #
-#####################################################################
-
-set_vmware_include_variables() {
- # temporary disk space for logs, etc...
- redodir="/tmp/virt/vmware/${USER}.$$"
-
- # dir for configs and vmem file
- confdir="/tmp/virt/vmware/${USER}.$$"
-
- # configfile
- conffile="${confdir}/run-vmware.conf"
-
- # users vmware config folder
- [ -z "${HOME}" ] && HOME=$(getent passwd "$(whoami)" | awk -F ':' '{print $6}')
- vmhome="${HOME}/.vmware"
-
- # get several version infos for vmware/player
- source /opt/openslx/vmchooser/vmware/vmware.conf
-
- # VMware start options
- # "-X": start in fullscreen
- vmopt="-X"
-}
diff --git a/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/write_config_files.inc b/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/write_config_files.inc
deleted file mode 100644
index 555688bf..00000000
--- a/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/write_config_files.inc
+++ /dev/null
@@ -1,29 +0,0 @@
-###############################
-# Include: Write config files #
-###############################
-
-writelog "Redo directory: ${redodir}"
-writelog "Config directory: ${confdir}"
-writelog "Config file: ${conffile}"
-writelog "vmhome/dndlogs: ${vmhome}/dndlogs"
-
-# 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.inc"
-
-# link to conffile if confdir != redodir
-[ "$confdir" != "$redodir" ] && ln -s "$conffile" "$redodir/run-vmware.conf" >/dev/null 2>&1
-
-# 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/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/write_config_files_legacy.inc b/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/write_config_files_legacy.inc
deleted file mode 100644
index 52a341ba..00000000
--- a/core/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/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/write_final_vmx.inc b/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/write_final_vmx.inc
deleted file mode 100644
index f1395369..00000000
--- a/core/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/write_final_vmx.inc
+++ /dev/null
@@ -1,211 +0,0 @@
-
-# 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 port
-if [ -n "$serial_0" ]; then
- cat >> "${TMPCONFIG}" <<-HEREEND
- serial0.present = "TRUE"
- serial0.startConnected = "TRUE"
- serial0.fileType = "device"
- serial0.fileName = "$serial_0"
- serial0.tryNoRxLoss = "FALSE"
- serial0.autodetect = "FALSE"
- HEREEND
-fi
-
-# Parallel port
-if [ -n "$parallel_0" ]; then
- cat >> "${TMPCONFIG}" <<-HEREEND
- parallel0.present = "TRUE"
- parallel0.startConnected = "TRUE"
- parallel0.fileType = "device"
- parallel0.fileName = "$parallel_0"
- parallel0.bidirectional = "TRUE"
- parallel0.autodetect = "FALSE"
- HEREEND
-fi
-
-# 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/core/modules/vmware/data/opt/openslx/vmchooser/vmware/run-virt.include b/core/modules/vmware/data/opt/openslx/vmchooser/vmware/run-virt.include
deleted file mode 100644
index f66bc9b8..00000000
--- a/core/modules/vmware/data/opt/openslx/vmchooser/vmware/run-virt.include
+++ /dev/null
@@ -1,60 +0,0 @@
-# -----------------------------------------------------------------------------
-# 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 vmchooser-run_virt
-################################################################################
-
-################################################################################
-### configuration writer functions
-### This needs bash, not dash or ash! (indented HEREDOC)
-################################################################################
-
-VMWAREINCLUDEDIR=/opt/openslx/vmchooser/vmware/includes
-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
-# General global openslx config
-source /opt/openslx/config
-
-# TODO: Where to put global helper functions that could be used in several units below?
-vmw_cap_hw_version() {
- [ -z "$1" ] && writelog "cap_hw_version called without parameter!" && return 1
- [ "$1" -lt "$maxhardwareversion" ] && maxhardwareversion="$1"
-}
-
-# get information from downloaded vmx
-source "${VMWAREINCLUDEDIR}/parse_vmx.inc"
-
-# determine limitations wrt RAM and CPU count of VM
-source "${VMWAREINCLUDEDIR}/determine_hardware_limitations.inc"
-
-# create file and directory structure for vmware setup
-source "${VMWAREINCLUDEDIR}/create_static_directory_structure.inc"
-
-# 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"
-
-# using the modified version of the wrapper script
-VIRTCMD="/opt/openslx/bin/vmplayer"
-VIRTCMDOPTS="${vmopt} ${conffile}"
-
diff --git a/core/modules/vmware/module.build b/core/modules/vmware/module.build
index f321b084..f5009fea 100644
--- a/core/modules/vmware/module.build
+++ b/core/modules/vmware/module.build
@@ -98,11 +98,9 @@ build() {
unlink "${MODULE_BUILD_DIR}/$VMWARE_BUNDLE_FILE"
# write vmware.conf config file to be later sourced by vmware/run-virt.include.
- # This file was formerly stored in data/opt/openslx/vmchooser/vmware/vmware.conf.
+ mkdir -p "${MODULE_BUILD_DIR}/opt/openslx/vmchooser/plugins/vmware/" || perror "Could not mkdir "${MODULE_BUILD_DIR}/opt/openslx/vmchooser/plugins/vmware/"."
- mkdir -p "${MODULE_BUILD_DIR}/opt/openslx/vmchooser/vmware/" || perror "could not mkdir "${MODULE_BUILD_DIR}/opt/openslx/vmchooser/vmware/"."
-
- cat > "${MODULE_BUILD_DIR}/opt/openslx/vmchooser/vmware/vmware.conf" <<-EOF
+ cat > "${MODULE_BUILD_DIR}/opt/openslx/vmchooser/plugins/vmware/vmware.conf" <<-EOF
# configuration file written by vmware/module.build
vmnet0=true
vmnet1=192.168.101.1/24
diff --git a/core/modules/vmware/module.conf b/core/modules/vmware/module.conf
index 02770c34..50fc0d3d 100644
--- a/core/modules/vmware/module.conf
+++ b/core/modules/vmware/module.conf
@@ -18,7 +18,7 @@ REQUIRED_DIRECTORIES="
REQUIRED_FILES="
/usr/lib/vmware/config
/usr/bin/vmware-usbarbitrator
- /opt/openslx/vmchooser/vmware/vmware.conf
+ /opt/openslx/vmchooser/plugins/vmware/vmware.conf
"
REQUIRED_BINARIES="
vmnet-netifup