summaryrefslogtreecommitdiffstats
path: root/remote/modules/vmplayer/data/etc
diff options
context:
space:
mode:
authorMichael Neves2013-05-13 16:37:47 +0200
committerMichael Neves2013-05-13 16:37:47 +0200
commit6fc7b7535e6a25eceed66a8c8e10220b2480a913 (patch)
treec5e421ed4637467641176f2325ac72fe23118aa8 /remote/modules/vmplayer/data/etc
parentvmchooser executes run-virt.sh after choice of vm, needs virtualization.conf ... (diff)
downloadtm-scripts-6fc7b7535e6a25eceed66a8c8e10220b2480a913.tar.gz
tm-scripts-6fc7b7535e6a25eceed66a8c8e10220b2480a913.tar.xz
tm-scripts-6fc7b7535e6a25eceed66a8c8e10220b2480a913.zip
vmplayer initialization scripts
Diffstat (limited to 'remote/modules/vmplayer/data/etc')
-rw-r--r--remote/modules/vmplayer/data/etc/openslx/vmware/nvrambin0 -> 8664 bytes
-rw-r--r--remote/modules/vmplayer/data/etc/openslx/vmware/run-virt.include530
-rwxr-xr-xremote/modules/vmplayer/data/etc/openslx/vmware/vmware-env125
-rw-r--r--remote/modules/vmplayer/data/etc/openslx/vmware/vmware.conf8
-rw-r--r--remote/modules/vmplayer/data/etc/systemd/system/vmware.service8
5 files changed, 671 insertions, 0 deletions
diff --git a/remote/modules/vmplayer/data/etc/openslx/vmware/nvram b/remote/modules/vmplayer/data/etc/openslx/vmware/nvram
new file mode 100644
index 00000000..85125f1e
--- /dev/null
+++ b/remote/modules/vmplayer/data/etc/openslx/vmware/nvram
Binary files differ
diff --git a/remote/modules/vmplayer/data/etc/openslx/vmware/run-virt.include b/remote/modules/vmplayer/data/etc/openslx/vmware/run-virt.include
new file mode 100644
index 00000000..65db53da
--- /dev/null
+++ b/remote/modules/vmplayer/data/etc/openslx/vmware/run-virt.include
@@ -0,0 +1,530 @@
+# run-virt.include
+# -----------------------------------------------------------------------------
+# Copyright (c) 2009..2012 - RZ Uni Freiburg
+# Copyright (c) 2009..2013 - OpenSLX GmbH
+#
+# This program is free software distributed under the GPL version 2.
+# See http://openslx.org/COPYING
+#
+# If you have any feedback please consult http://openslx.org/feedback and
+# send your suggestions, praise, or complaints to feedback@openslx.org
+#
+# General information about OpenSLX can be found at http://openslx.org/
+# -----------------------------------------------------------------------------
+# run-virt.include
+# - component for vmware/player of the vmchooser plugin run-virt.sh
+################################################################################
+
+# configuration writer functions
+################################################################################
+
+runvmwareconfheader ()
+{
+echo "# This configuration file was generated by $0" >${conffile}
+
+# check for the ostype
+case "${vmostype}" in
+ win31*)
+ mem="32"
+ cpu_cores="1"
+ sound="sb16"
+ shfolders="FALSE"
+ ;;
+ win95*)
+ mem="92"
+ cpu_cores="1"
+ shfolders="FALSE"
+ ;;
+ win98*|winme*)
+ mem="256"
+ cpu_cores="1"
+ shfolders="FALSE"
+ ;;
+ winxp*|windowsxp*)
+ shfolders="TRUE"
+ ;;
+ winvista*|windowsvista*)
+ shfolders="TRUE"
+ ;;
+ windows7*)
+ shfolders="TRUE"
+ ;;
+ windows8*)
+ shfolders="TRUE"
+ ;;
+ linux*|*ubuntu*|*suse*|debian*|*sci*)
+ vmostype="linux"
+ shfolders="TRUE"
+ ;;
+ macos*)
+ cpu_cores="1"
+ vmostype="other"
+ shfolders="FALSE"
+ ;;
+ beos*)
+ cpu_cores="1"
+ vmostype="other"
+ shfolders="FALSE"
+ ;;
+ *)
+ vmostype="other"
+ shfolders="FALSE"
+ ;;
+esac
+case "$vmversion" in
+ *)
+ svga_autodetect="TRUE"
+ numvcpus="1"
+ echo ".encoding = \"UTF-8\"
+# version specific stuff - all versions
+config.version = \"8\"" >>${conffile}
+ ;;
+esac
+case "$vmversion" in
+ 2.*|3.*|4.*|5.*|6.*|7.*|8.*|9.*)
+ [ ${shfolders} == FALSE ] || echo "
+# version specific stuff - ver. 2.*|3.*|6.*|7.*|8.*|9.*
+sharedFolder.option = \"alwaysEnabled\"" >>${conffile}
+ ;;
+esac
+case "$vmversion" in
+ 2.5|3.*|4.*|5.*|6.5|7.*|8.*|9.*)
+ if [ "${cpu_cores}" -ge "2" 2>/dev/null ]; then
+ numvcpus="2"
+ fi
+ if [ "${mem}" -ge "8000" 2>/dev/null ]; then
+ mem=8000
+ fi
+ cap3d="TRUE" # helper var for loging output
+ echo "
+# version specific stuff - ver. 2.5|3.*|6.5|7.*
+ehci.present = \"TRUE\"
+mks.enable3d = \"${enable3d}\"" >>${conffile}
+ ;;
+esac
+case "$vmversion" in
+ 3.*|4.*|7.*|8.*|9.*)
+ numvcpus="${cpu_cores}"
+ if [ "${cpu_cores}" -ge "4" 2>/dev/null ]; then
+ numvcpus="4"
+ fi
+ # svga_autodetect="FALSE" # if defined manual, see below
+ echo "
+# version specific stuff - ver. 3.*|7.*
+cpuid.coresPerSocket = \"${cpu_cores}\"
+maxvcpus = \"4\"
+monitor.virtual_mmu = \"automatic\"
+monitor.virtual_exec = \"automatic\"
+floppy1.clientDevice = \"FALSE\"
+floppy1.readonly = \"TRUE\"" >>${conffile}
+ ;;
+esac
+
+echo "
+# id
+virtualHW.version = \"${hwver}\"
+displayName = \"${displayname}\"
+guestOS = \"${vmostype}\"
+
+# CPU/MEM
+numvcpus = \"${numvcpus}\"
+memsize = \"${mem}\"
+MemAllowAutoScaleDown = \"FALSE\"
+MemTrimRate = \"-1\"
+
+# ide-disks
+ide0:0.present = \"${ide}\"
+ide0:0.fileName = \"${diskfile}\"
+ide0:0.mode = \"independent-nonpersistent\"
+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 = \"${diskfile}\"
+scsi0.virtualDev = \"${hddrv}\"
+scsi0:0.mode = \"independent-nonpersistent\"
+
+# floppies
+floppy0.present = \"${floppy0}\"
+floppy0.startConnected = \"FALSE\"
+floppy0.autodetect = \"TRUE\"
+floppy0.fileName = \"auto detect\"
+# we need floppy b: for our windows 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 = \"${network_kind}\"
+#ethernet1.connectionType = \"custom\"
+#ethernet1.vnet = \"/dev/vmnet2\"
+ethernet0.address = \"00:50:56:${VM_ID}:${machostpart}\"
+ethernet0.wakeOnPcktRcv = \"FALSE\"
+
+# sound
+sound.present = \"TRUE\"
+sound.fileName = \"-1\"
+sound.autodetect = \"TRUE\"
+sound.virtualdev = \"${sound}\"
+
+# svga
+svga.autodetect = \"${svga_autodetect}\"
+
+# 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"
+
+# shared folders
+sharedFolder0.present = \"${shfolders}\"
+sharedFolder0.enabled = \"${shfolders}\"
+sharedFolder0.expiration = \"never\"
+sharedFolder0.guestName = \"${sharename}\"
+sharedFolder0.hostPath = \"${sharepath}\"
+sharedFolder0.readAccess = \"TRUE\"
+sharedFolder0.writeAccess = \"TRUE\"
+sharedFolder.maxNum = \"1\"
+
+# 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}" >>${conffile}
+
+# set the appropriate permissions for the vmware config file
+chmod u+rwx ${conffile} >/dev/null 2>&1
+}
+
+preferencesheader ()
+{
+echo ".encoding = \"UTF-8\"
+# This configuration file was generated by $0
+
+# updates/tips
+webUpdate.enabled = \"FALSE\"
+pref.downloadPermission = \"deny\"
+pref.vmplayer.downloadPermission = \"deny\"
+pref.vmplayer.webUpdateOnStartup = \"FALSE\"
+pref.tip.startup = \"FALSE\"
+hints.hideAll = \"TRUE\"
+hint.vmui.showAllUSBDevs = \"FALSE\"
+
+# configs
+prefvmx.defaultVMPath = \"${vmhome}\"
+prefvmx.mru.config = \"${conffile}:\"
+
+# hot keys
+pref.hotkey.control = \"true\"
+pref.hotkey.alt = \"true\"
+pref.hotkey.shift = \"true\"
+pref.hotkey.gui = \"true\"
+gui.restricted = \"true\"
+
+# fullscreen/mouse/keyboard
+pref.fullscreen.toolbarPixels = \"0\"
+pref.vmplayer.fullscreen.autohide = \"TRUE\"
+pref.grabOnMouseClick = \"TRUE\"
+pref.grabOnKeyPress = \"FALSE\"
+pref.motionGrab = \"TRUE\"
+pref.motionUngrab = \"TRUE\"
+pref.hideCursorOnUngrab = \"TRUE\"
+pref.autoFit = \"TRUE\"
+pref.autoFitFullScreen = \"fitGuestToHost\"
+pref.vmplayer.exit.vmAction = \"poweroff\"
+pref.vmplayer.confirmOnExit = \"TRUE\"
+
+# shared folders
+pref.enableAllSharedFolders = \"TRUE\"
+
+# eula" >${vmhome}/preferences
+
+# different eula parameters from Workstation 9+/ Player 5+
+case "$vmversion" in
+ 3.*|4.*|7.*|8.*)
+ echo "
+pref.eula.size = \"2\"
+pref.eula.0.appName = \"VMware Player\"
+pref.eula.0.buildNumber = \"${vmbuild}\"
+pref.eula.1.appName = \"VMware Workstation\"
+pref.eula.1.buildNumber = \"${vmbuild}\"" >>${vmhome}/preferences
+ ;;
+ 5.*|9.*)
+ # code
+ echo "
+pref.eula.count = \"2\"
+pref.eula0.product = \"VMware Player\"
+pref.eula0.build = \"${vmbuild}\"
+pref.eula1.product = \"VMware Workstation\"
+pref.eula1.build = \"${vmbuild}\"" >>${vmhome}/preferences
+ ;;
+esac
+
+}
+
+
+# declaration of default variables
+################################################################################
+
+# VM-ID static (0D), remove if changed to 00
+VM_ID="0D"
+# should be dynamic
+if [ "x$(which bc)" != "x" ]; then
+ VM_ID=$(echo "obase=16; $$" | bc)
+ VM_ID=$(expr substr $VM_ID $(expr ${#VM_ID} - 1) 2)
+fi
+# temporary disk space for logs, etc...
+redodir=/tmp/vmware/${USER}.$$
+# dir for configs and vmem file
+confdir=/tmp/vmware/${USER}.$$
+# configfile
+conffile="${confdir}/run-vmware.conf"
+# diskfile
+diskfile=${vmpath}
+# users vmware config folder
+vmhome="${HOME}/.vmware"
+
+# get several version infos for vmware/player
+. /etc/openslx/vmware/vmware.conf
+vmbuild=$buildversion
+vmversion=$version
+
+# VMware start options
+# "-X": start in fullscreen
+vmopt="-X"
+
+
+# hardware checks
+################################################################################
+
+# use different network card (default e1000, vlance, vmxnet)
+if [ -n "${network_card}" ]; then
+ network_virtualDev="ethernet0.virtualDev = \"${network_card}\""
+else
+ network_virtualDev='# using default virtualDev for ethernet0'
+fi
+
+# set standard sound card, overwrite depending on OS (options sb16, es1371, hdaudio)
+sound="es1371"
+
+# check for 3D configuration setting
+case "${enable3d}" in
+ *true*|*yes*)
+ enable3d="TRUE"
+ ;;
+ *)
+ enable3d="FALSE"
+ ;;
+esac
+
+# serial/parallel port defined (e.g. "ttyS0, lp0" or "autodetect")
+case "$serial" in
+ tty*)
+ serialdev="serial0.filename = \"/dev/${serial}\""
+ serial="TRUE"
+ ;;
+ auto*)
+ serialdev="serial0.autodetect = \"TRUE\""
+ serial="TRUE"
+ ;;
+ *)
+ serialdev="# no serial port configured"
+ serial="FALSE"
+ ;;
+esac
+case "$parallel" in
+ lp*|parport*)
+ paraldev="parallel0.filename = \"/dev/${parallel}\""
+ paralbidi="TRUE"
+ parallel="TRUE"
+ ;;
+ auto*)
+ paraldev="parallel0.autodetect = \"TRUE\""
+ paralbidi="TRUE"
+ parallel="TRUE"
+ ;;
+ *)
+ paraldev="# no parallel port configured"
+ paralbidi="FALSE"
+ parallel="FALSE"
+ ;;
+esac
+
+# adjust memory available for vmware guests
+#if [ -n "${forcemem}" ]; then
+# mem="${forcemem}"
+#else
+# case "$vmversion" in
+# 2.*|6.*)
+# permem=30
+# ;;
+# 3.*|7.*)
+# permem=25
+# ;;
+# esac
+# if [ "${totalmem}" -ge "2500" ]; then
+# permem=40
+# fi
+# # check if /tmp is on harddisk
+# if grep -qe "/dev/.* /tmp " /proc/mounts ; then
+# permem=60
+# id44="1"
+# # Hack, if more than 2,5G RAM use 40% of Ram and write vmem into Ram as well
+# # (40% vmware | 40% confdir(vmem...) | 20% host
+# # VMplayer 2+ issue
+# if [ "${totalmem}" -ge "2500" ]; then
+# permem=40
+# confdir=/dev/shm/vmware/$USER
+# conffile=${confdir}/run-vmware.conf
+# mkdir -p /dev/shm/vmware/$USER
+# fi
+# fi
+# mem=$(expr ${totalmem} / 100 \* ${permem} / 4 \* 4)
+# if [ "${id44}" = "1" ]; then
+# hostmem=$(expr ${totalmem} - ${mem})
+# else
+# hostmem=$(expr ${totalmem} - ${mem} - ${mem})
+# fi
+#fi
+
+# check if ide/scsi and hwver of image
+# read only the first 30 lines to be shure
+imghead=$(head -30 ${diskfile})
+hddrv=$(echo "${imghead}" | grep -m1 -ia "ddb.adapterType" |\
+ awk -F '"' '{print $2}')
+hwver=$(echo "${imghead}" | grep -m1 -ia "ddb.virtualHWVersion" |\
+ awk -F '"' '{print $2}')
+case "${hddrv}" in
+ ide)
+ ide="TRUE"
+ scsi="FALSE"
+ ;;
+ lsilogic|buslogic)
+ ide="FALSE"
+ scsi="TRUE"
+ ;;
+esac
+
+# write configuration files
+################################################################################
+
+# 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
+preferencesheader
+
+# create VMware startup file
+runvmwareconfheader
+# link to conffile if confdir != redodir
+ln -s ${conffile} ${redodir}/run-vmware.conf >/dev/null 2>&1
+
+# sync is needed to ensure that data is really written to virtual disk
+sync
+
+# own nvram. We need it for floppy drive b, default nvram has just drive a
+# TODO: optimize, currently kinda inefficient, too much copys, but we
+# don't know which one is installed...
+cp /etc/openslx/vmware/nvram ${confdir}/nvram 2>/dev/null
+
+
+# logging and stdout
+################################################################################
+
+# log script information
+writelog "# File created by $0 (VMversion ${vmversion})\n# on $(date)\n"
+writelog "Starting with non-persistent mode ...\n"
+
+# write all results to logfile
+# log disksetup
+writelog "Directories:"
+writelog "\tConfdir:\t${confdir}"
+writelog "\tConffile:\t${conffile}"
+writelog "\tRedodir:\t${redodir}"
+writelog "\tVMhome:\t\t${vmhome}"
+writelog "\t/tmp info: \
+ $(grep "/tmp " /proc/mounts) $(df -h | grep " /tmp$" | awk '{print $2}')"
+# hw setup
+writelog "Hardware:"
+writelog "\tMAC:\t\t00:50:56:${VM_ID}:${machostpart}"
+if [ -n "${network_card}" ]; then
+ writelog "\tNet Adaptor:\t${network_card}"
+fi
+writelog "\tMem:\t\t${mem} MB"
+# echo nur wenn hostmem gesetzt
+[ -n "${hostmem}" ] && writelog "\tHostmem:\t${hostmem} MB"
+writelog "\tMax. res.:\t${xres}x${yres}"
+writelog "\tCD-ROM1:\t${cdrom0}"
+writelog "\tCD-ROM2:\t${cdrom1}"
+writelog "\tFloppy_A:\t${floppy0}"
+if [ "${serial}" = "TRUE" ]; then
+ writelog "\tSerial Port:\t${serialdev}"
+fi
+if [ "${parallel}" = "TRUE" ]; then
+ writelog "\tParallel Port:\t${paraldev}"
+fi
+# image
+writelog "Diskimage:"
+writelog "\tDiskfile:\t${diskfile}"
+writelog "\tDisktype:\t${hddrv}"
+writelog "\tHWVersion:\t${hwver}"
+writelog "\tVMostype:\t${vmostype}"
+# misc
+writelog "Misc:"
+writelog "\tDisplayname:\t${displayname}"
+if [ "${cap3d}" = "TRUE" -a "${enable3d}" = "TRUE" ]; then
+ writelog "\t3D Graphics:\tenabled"
+fi
+# empty line at end
+writelog ""
+
+
+# finally set env for run-virt.sh
+################################################################################
+
+# configure and start samba service to provide user's home directory
+if [ -f /usr/sbin/smbd ] ; then
+ sudo /opt/openslx/bin/sed -i /etc/vmware/smb.conf -e "s,USER,$USER,"
+ sudo /usr/sbin/nmbd -s /etc/vmware/smb.conf
+ sudo /usr/sbin/smbd -s /etc/vmware/smb.conf
+fi
+
+# using the modified version of the wrapper script
+VIRTCMD="/opt/openslx/bin/vmplayer"
+VIRTCMDOPTS="${vmopt} ${conffile}"
+RMDIRS="${redodir} ${conffile}"
diff --git a/remote/modules/vmplayer/data/etc/openslx/vmware/vmware-env b/remote/modules/vmplayer/data/etc/openslx/vmware/vmware-env
new file mode 100755
index 00000000..f4901070
--- /dev/null
+++ b/remote/modules/vmplayer/data/etc/openslx/vmware/vmware-env
@@ -0,0 +1,125 @@
+#!/bin/sh
+# Copyright (c) 2009 - OpenSLX GmbH
+#
+# This program is free software distributed under the GPL version 2.
+# See http://openslx.org/COPYING
+#
+# If you have any feedback please consult http://openslx.org/feedback and
+# send your suggestions, praise, or complaints to feedback@openslx.org
+#
+# General information about OpenSLX can be found at http://openslx.org/
+# -----------------------------------------------------------------------------
+# §filename§
+# - §desc§
+# §generated§
+# -----------------------------------------------------------------------------
+
+#functions: helper functions
+tempdir () {
+# Create a special tempfs directory
+mkdir -m 1777 -p /tmp/vmware
+# Don't mount special tempfs, when using local harddrive for /tmp
+[ ! -n "$(cat /proc/mounts |grep ' /tmp '|grep '/dev/sd')" ] \
+ && mount -t tmpfs -o size=180%,mode=1777 tmpfs /tmp/vmware
+}
+
+load_modules () {
+# VMplayer common stuff
+insmod /lib/modules/vmware/vmmon.ko || return 1
+insmod /lib/modules/vmware/vmnet.ko || return 1
+# VMplayer 3.X specific stuff
+insmod /lib/modules/vmware/vmci.ko
+insmod /lib/modules/vmware/vmblock.ko
+insmod /lib/modules/vmware/vsock.ko
+
+}
+
+unload_modules () {
+rmmod vmnet vmmonvsock vmci vmblock 2>/dev/null
+}
+
+vmnetif () {
+# let point the path directly to the directory where the binary lives
+location="/usr/bin"
+if [ -n "$vmnet0" ] ; then
+ # the path might be directly point to the plugin dir
+ $location/vmnet-bridge -d /var/run/vmnet-bridge-0.pid -n 0
+fi
+if [ -n "$vmnet1" ] ; then
+ $location/vmnet-netifup -d /var/run/vmnet-netifup-vmnet1.pid \
+ /dev/vmnet1 vmnet1
+ ip addr add $vmnet1 dev vmnet1
+ ip link set vmnet1 up
+ if [ -n "$vmnet1nat" ] ; then
+ echo "1" >/proc/sys/net/ipv4/conf/vmnet1/forwarding 2>/dev/null
+ echo "1" >/proc/sys/net/ipv4/conf/br0/forwarding 2>/dev/null
+ fi
+ /opt/openslx/rootfs/usr/sbin/udhcpd \
+ -S /etc/vmware/udhcpd/udhcpd-vmnet1.conf
+fi
+if [ -n "$vmnet8" ] ; then
+ $location/vmnet-netifup -d /var/run/vmnet-netifup-vmnet8.pid \
+ /dev/vmnet8 vmnet8
+ ip addr add $vmnet8 dev vmnet8
+ ip link set vmnet8 up
+ echo "1" >/proc/sys/net/ipv4/conf/vmnet8/forwarding 2>/dev/null
+ echo "1" >/proc/sys/net/ipv4/conf/br0/forwarding 2>/dev/null
+# TODO: iptables in stage32?
+# iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE
+ # /etc/vmware/vmnet-natd-8.mac simply contains a mac like 00:50:56:F1:30:50
+ $location/vmnet-natd -d /var/run/vmnet-natd-8.pid \
+ -m /etc/vmware/vmnet-natd-8.mac -c /etc/vmware/nat.conf 2>/dev/null # or logfile
+ /opt/openslx/usr/sbin/udhcpd \
+ -S /etc/vmware/udhcpd/udhcpd-vmnet8.conf
+fi
+
+}
+
+vmblock () {
+# let point the path directly to the directory where the binary lives
+ /usr/bin/vmware-usbarbitrator
+
+}
+
+
+case "$1" in
+ start)
+ #start: defines start function for initscript
+ # load the configuration file
+ . /etc/openslx/vmware/vmware.conf
+ # hack to access the first serial/parallel port
+ chmod a+rw /dev/ttyS0
+ chmod a+rw /dev/parport0
+ tempdir
+ load_modules
+ vmnetif
+ vmblock
+
+ ;;
+ stop)
+ #stop: defines stop function for initscript
+ killall vmnet-netifup vmnet-natd vmnet-bridge vmware vmplayer \
+ vmware-tray vmnet-dhcpd 2>/dev/null
+ # might take a while until all services are shut down
+ sleep 1
+ umount -l /tmp/vmware 2>/dev/null
+ unload_modules
+
+ ;;
+ restart)
+ #restart: defines restart function for initscript
+ $0 stop && $0 start
+ ;;
+ status)
+ #status: defines status function for initscript
+ vmstatus
+ ;;
+ *)
+ #usage: defines usage function for initscript
+ ## print out usage
+ echo "Usage: $0 {start, stop, restart, status}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/remote/modules/vmplayer/data/etc/openslx/vmware/vmware.conf b/remote/modules/vmplayer/data/etc/openslx/vmware/vmware.conf
new file mode 100644
index 00000000..a67adc18
--- /dev/null
+++ b/remote/modules/vmplayer/data/etc/openslx/vmware/vmware.conf
@@ -0,0 +1,8 @@
+# configuration file for vmware background services written in stage3 setup
+vmnet0=true
+vmnet1=192.168.101.1/24
+vmnet1nat=true
+vmnet8=192.168.102.1/24
+# stage1 variables produced during plugin install
+version="5.0"
+buildversion="1031769"
diff --git a/remote/modules/vmplayer/data/etc/systemd/system/vmware.service b/remote/modules/vmplayer/data/etc/systemd/system/vmware.service
new file mode 100644
index 00000000..067b15a0
--- /dev/null
+++ b/remote/modules/vmplayer/data/etc/systemd/system/vmware.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Sets up the vmware environment
+Wants=graphical.target
+
+[Service]
+Type=simple
+ExecStart=/etc/openslx/vmware/vmware-env start
+ExecStop=/etc/openslx/vmware/vmware-env stop