diff options
Diffstat (limited to 'src/os-plugins/plugins/vmware/files')
-rw-r--r-- | src/os-plugins/plugins/vmware/files/README | 12 | ||||
-rw-r--r-- | src/os-plugins/plugins/vmware/files/install-vmpl.sh | 284 | ||||
-rw-r--r-- | src/os-plugins/plugins/vmware/files/nvram | bin | 0 -> 8664 bytes | |||
-rw-r--r-- | src/os-plugins/plugins/vmware/files/run-virt.include | 448 |
4 files changed, 744 insertions, 0 deletions
diff --git a/src/os-plugins/plugins/vmware/files/README b/src/os-plugins/plugins/vmware/files/README new file mode 100644 index 00000000..ae8bf1e7 --- /dev/null +++ b/src/os-plugins/plugins/vmware/files/README @@ -0,0 +1,12 @@ +Files +- nvram (version from VMware5) + This nvram supports a second Floppy drive. Helpfull if you want to + get some data from linux to your Windows VirtualMachine (like + Scanner-IP or Userinformation) +- run-virt.include + The main include script for the vmchooser plugin run-virt.sh vir- + tualization environments start script. All vmware related stuff like + the creation of the configuration file is handled within this script. +- install-vmpl.sh + Install script, can handle different vmware version installations + diff --git a/src/os-plugins/plugins/vmware/files/install-vmpl.sh b/src/os-plugins/plugins/vmware/files/install-vmpl.sh new file mode 100644 index 00000000..e0795b30 --- /dev/null +++ b/src/os-plugins/plugins/vmware/files/install-vmpl.sh @@ -0,0 +1,284 @@ +#!/bin/sh + +cd /opt/openslx/plugin-repo/vmware/ + +### Check if player are still installed +if [ -d ${1}/vmroot/ ]; then + echo " * $1 seems to be installed. There shouldn't be a need for a new installation." + echo " If you want to reinstall $1 press \"y\" else we will exit" + read + if [ "${REPLY}" != "y" ]; then + echo " * $1 is already installed. Nothing to do." + exit + fi + echo " * $1 will be reinstalled" +fi + + +### Now define values +if [ "$1" = "vmpl1.0" ]; then + vmplversion="vmpl1.0" + tgzfile=$(ls packages/VMware-player-1.0.*|sort|tail -n 1) +elif [ "$1" = "vmpl2.0" ]; then + vmplversion="vmpl2.0" + tgzfile=$(ls packages/VMware-player-2.0.*|sort|tail -n 1) +elif [ "$1" = "vmpl2.5" ]; then + vmplversion="vmpl2.5" + tgzfile=$(ls packages/VMware-Player-2.5.*.bundle|sort|tail -n 1) +else + echo "Attribute of install-vmpl.sh isn't valid!" + echo "This shouldn't happen! Fix vmware.pm!" + exit 1; +fi + + +### Main installation part +if [ "${vmplversion}" != "vmpl2.5" ]; then + # tgz Installation of vmpl1.0 and vmpl2.0 + cd ${vmplversion} + + echo " * Unpacking vmplayer ${vmplversion}" + tar xfz ../${tgzfile} + # TODO: errorcheck if tgz wasnt downloaded properly. + # ask on mailinglist if theres a way how to handle it + # in preInstallation() "exit 1" is enough. Perhaps it will work + # here, too. Try first, and then document it in the wiki + + # reduce some errors + echo " * deleting old files if available" + rm -rf vmroot + + echo " * copying files..." + mkdir vmroot + mkdir -p vmroot/modules + mkdir -p vmroot/lib + mv vmware-player-distrib/lib vmroot/lib/vmware + mv vmware-player-distrib/bin vmroot/ + if [ "${vmplversion}" != "vmpl1.0" ]; then + mv vmware-player-distrib/sbin vmroot/ + fi + mv vmware-player-distrib/doc vmroot/ + rm -rf vmware-player-distrib/ + rm -rf vmroot/lib/vmware/modules/binary + + echo " * fixing file permission" + chmod 04755 vmroot/lib/vmware/bin/vmware-vmx + + # I don't want to understand what vmware is doing, but without this + # step we need to have LD_LIBRARY_PATH with 53 entrys. welcome to + # library hell + echo " * fixing librarys..." + cd vmroot/lib/vmware/lib + mkdir test + mv lib* test + mv test/lib*/* . + rm -rf test + cd ../../../.. + + echo " * fixing gdk and pango config files" + sed -i \ + "s,/build/mts/.*/vmui/../libdir/libconf,/opt/openslx/plugin-repo/vmware/${vmplversion}/vmroot/lib/vmware/libconf," \ + vmroot/lib/vmware/libconf/etc/gtk-2.0/gdk-pixbuf.loaders + sed -i \ + "s,/build/mts/.*/vmui/../libdir/libconf,/opt/openslx/plugin-repo/vmware/${vmplversion}/vmroot/lib/vmware/libconf," \ + vmroot/lib/vmware/libconf/etc/gtk-2.0/gtk.immodules + sed -i \ + "s,/build/mts/.*/vmui/../libdir/libconf,/opt/openslx/plugin-repo/vmware/${vmplversion}/vmroot/lib/vmware/libconf," \ + vmroot/lib/vmware/libconf/etc/pango/pango.modules + sed -i \ + "s,/build/mts/.*/vmui/../libdir/libconf,/opt/openslx/plugin-repo/vmware/${vmplversion}/vmroot/lib/vmware/libconf," \ + vmroot/lib/vmware/libconf/etc/pango/pangorc + sed -i \ + "s,/etc/pango/pango/,/etc/pango/," \ + vmroot/lib/vmware/libconf/etc/pango/pangorc + + echo " * creating /etc/vmware" + rm -rf /etc/vmware + mkdir -p /etc/vmware + + echo " * unpacking kernel modules" + cd vmroot/lib/vmware/modules/source + tar xf vmnet.tar + tar xf vmmon.tar + if [ "${vmplversion}" != "vmpl1.0" ]; then + tar xf vmblock.tar + fi + + echo " * building vmblock module" + if [ "${vmplversion}" != "vmpl1.0" ]; then + cd vmblock-only/ + sed -i "s%^VM_UNAME = .*%VM_UNAME = $(find /boot/vmlinuz* -maxdepth 0|sed 's,/boot/vmlinuz-,,g'|sort|tail -n 1)%" Makefile + make -s + mv vmblock.ko vmblock.o ../../../../../modules + cd .. + fi + + echo " * building vmmon module" + cd vmmon-only + sed -i "s%^VM_UNAME = .*%VM_UNAME = $(find /boot/vmlinuz* -maxdepth 0|sed 's,/boot/vmlinuz-,,g'|sort|tail -n 1)%" Makefile + make -s + mv vmmon.ko vmmon.o ../../../../../modules + cd .. + + echo " * building vmnet module" + cd vmnet-only + sed -i "s%^VM_UNAME = .*%VM_UNAME = $(find /boot/vmlinuz* -maxdepth 0|sed 's,/boot/vmlinuz-,,g'|sort|tail -n 1)%" Makefile + make -s + mv vmnet.ko vmnet.o ../../../../../modules + cd ../../../../../.. + + echo " * setting up EULA" + mv vmroot/doc/EULA vmroot/lib/vmware/share/EULA.txt + + echo " * finishing installation" + + +else + # bundle Installation of vmpl2.5 + # note: the rpm just include the stupid .bundle file... + cd ${vmplversion} + + echo " * Manipulating and extracting vmplayer ${vmplversion} package. this may take a while" + + # fool non-root user extraction... just for testing + sed -i 's/ exit 1/ echo 1/' ../${tgzfile} + # don't use deinstallation stuff and checks of /etc... + # and don't modify file size, else it wont work! + sed -i 's/ migrate_networks/ echo te_networks/' ../${tgzfile} + sed -i 's/ uninstall_legacy/ echo tall_legacy/' ../${tgzfile} + sed -i 's/ uninstall_rpm/ echo tall_rpm/' ../${tgzfile} + sed -i 's/ uninstall_bundle/ echo tall_bundle/' ../${tgzfile} + # this won't work as root on our clients... I hope it don't break + # anything on our clients in stage1 + sh ../${tgzfile} -x temp + # TODO: errorcheck if rpm wasnt downloaded properly. + # ask on mailinglist if theres a way how to handle it + # in preInstallation() "exit 1" is enough. Perhaps it will work + # here, too. Try first, and then document it in the wiki + + # reduce some errors + echo " * deleting old files if available" + rm -rf vmroot + + echo " * copying files..." + mkdir -p vmroot + mkdir -p vmroot/lib + mkdir -p vmroot/modules + + mv temp/vmware-player/lib vmroot/lib/vmware + mv temp/vmware-player/sbin vmroot/ + # the following shouldn't be needed, just to have it 1:1 self-created + # copy of /usr/lib/vmware + # Todo: clean it out when everything is running + mv temp/vmware-installer vmroot/lib/vmware/installer + rm -rf vmroot/lib/vmware/installer/.installer + rm -rf vmroot/lib/vmware/installer/bootstrap + mkdir -p vmroot/lib/vmware/setup + mv temp/vmware-player-setup/vmware-config vmroot/lib/vmware/setup + mv temp/vmware-player/doc vmroot/ + mv temp/vmware-player/bin vmroot/ + + ## + ## left files/dirs + ## + # temp/vmware-player/files/index.theme ... hopefully not needed, + # temp/vmware-player/share => /usr/share ... icons + # temp/vmware-player/etc/... => /etc + # temp/vmware-player/build => unknown... not found... + + + # etc/vmware/ + # bootstrap => Path definitions. confusing due of version 1.0 + # which looks like the instller version + # perhaps just for installer... hopefully + # config => path definition, networking, different configurations + # database => sqlite3 db. includes all files mapped to component + # hopefully just used by installer and some path config + # networking => networking config... has options which are in + # dhcpd.conf, hopefully not needed + # vmnet(1|8) => we know it from v1/v2 + + echo " * fixing file permission" + chmod 755 vmroot/lib/vmware/bin/* + chmod 04755 vmroot/lib/vmware/bin/vmware-vmx + chmod 04755 vmroot/lib/vmware/bin/vmware-vmx-debug + chmod 04755 vmroot/lib/vmware/bin/vmware-vmx-stats + chmod 755 vmroot/bin/* + chmod 755 vmroot/lib/vmware/lib/wrapper-gtk24.sh + + # I don't want to understand what vmware is doing, but without this + # step we need to have LD_LIBRARY_PATH with 53 entrys. welcome to + # library hell + # if this fact is still valid for 2.5 is unclear, but lets do it + echo " * fixing librarys..." + cd vmroot/lib/vmware/lib + mkdir test + mv lib* test + mv test/lib*/* . + rm -rf test + cd ../../../.. + + echo " * fixing gdk and pango config files" + sed -i \ + "s,@@LIBCONF_DIR@@,/opt/openslx/plugin-repo/vmware/${vmplversion}/vmroot/lib/vmware/libconf," \ + vmroot/lib/vmware/libconf/etc/gtk-2.0/gdk-pixbuf.loaders + sed -i \ + "s,@@LIBCONF_DIR@@,/opt/openslx/plugin-repo/vmware/${vmplversion}/vmroot/lib/vmware/libconf," \ + vmroot/lib/vmware/libconf/etc/gtk-2.0/gtk.immodules + sed -i \ + "s,@@LIBCONF_DIR@@,/opt/openslx/plugin-repo/vmware/${vmplversion}/vmroot/lib/vmware/libconf," \ + vmroot/lib/vmware/libconf/etc/pango/pango.modules + sed -i \ + "s,@@LIBCONF_DIR@@,/opt/openslx/plugin-repo/vmware/${vmplversion}/vmroot/lib/vmware/libconf," \ + vmroot/lib/vmware/libconf/etc/pango/pangorc + sed -i \ + "s,/etc/pango/pango/,/etc/pango/," \ + vmroot/lib/vmware/libconf/etc/pango/pangorc + + echo " * creating /etc/vmware" + rm -rf /etc/vmware + mkdir -p /etc/vmware + + echo " * unpacking kernel modules" + cd vmroot/lib/vmware/modules/source + tar xf vmnet.tar + tar xf vmmon.tar + tar xf vmblock.tar + #tar xf vmci.tar # just for 2 or more VMs => not needed + #tar xf vmppuser.tar # we don't need it + tar xf vsock.tar + + echo " * building vmblock module" + cd vmblock-only/ + sed -i "s%^VM_UNAME = .*%VM_UNAME = $(find /boot/vmlinuz* -maxdepth 0|sed 's,/boot/vmlinuz-,,g'|sort|tail -n 1)%" Makefile + make -s + mv vmblock.ko vmblock.o ../../../../../modules + cd .. + + echo " * building vmmon module" + cd vmmon-only + sed -i "s%^VM_UNAME = .*%VM_UNAME = $(find /boot/vmlinuz* -maxdepth 0|sed 's,/boot/vmlinuz-,,g'|sort|tail -n 1)%" Makefile + make -s + mv vmmon.ko vmmon.o ../../../../../modules + cd .. + + echo " * building vmnet module" + cd vmnet-only + sed -i "s%^VM_UNAME = .*%VM_UNAME = $(find /boot/vmlinuz* -maxdepth 0|sed 's,/boot/vmlinuz-,,g'|sort|tail -n 1)%" Makefile + make -s + mv vmnet.ko vmnet.o ../../../../../modules + cd .. + + echo " * building vmsock module" + cd vsock-only + sed -i "s%^VM_UNAME = .*%VM_UNAME = $(find /boot/vmlinuz* -maxdepth 0|sed 's,/boot/vmlinuz-,,g'|sort|tail -n 1)%" Makefile + make -s + mv vsock.ko vsock.o ../../../../../modules + cd ../../../../../.. + + echo " * setting up EULA" + mv vmroot/doc/EULA vmroot/lib/vmware/share/EULA.txt + + echo " * finishing installation" + +fi diff --git a/src/os-plugins/plugins/vmware/files/nvram b/src/os-plugins/plugins/vmware/files/nvram Binary files differnew file mode 100644 index 00000000..85125f1e --- /dev/null +++ b/src/os-plugins/plugins/vmware/files/nvram diff --git a/src/os-plugins/plugins/vmware/files/run-virt.include b/src/os-plugins/plugins/vmware/files/run-virt.include new file mode 100644 index 00000000..2010dc4b --- /dev/null +++ b/src/os-plugins/plugins/vmware/files/run-virt.include @@ -0,0 +1,448 @@ +# run-virt.include +# ----------------------------------------------------------------------------- +# Copyright (c) 2009..2010 - RZ Uni Freiburg +# Copyright (c) 2009..2010 - 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} + +case "$vmversion" in + *) + svga_autodetect="TRUE" + numvcpus="1" + shared_folder="FALSE" + echo ".encoding = \"UTF-8\" +# version specific stuff - all versions +config.version = \"8\"" >>${conffile} + ;; +esac +case "$vmversion" in + 2.*|3.*|6.*|7.*) + shared_folder="TRUE" + echo " +# version specific stuff - ver. 2.*|3.*|6.*|7.* +sharedFolder.option = \"alwaysEnabled\"" >>${conffile} + ;; +esac +case "$vmversion" in + 2.5|3.*|6.5|7.*) + if [ "${cpu_cores}" -ge "2" 2>/dev/null ]; then + numvcpus="2" + 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.*|7.*) + numvcpus="${cpu_cores}" + # svga_autodetect="FALSE" # if defined manual, see below + echo " +# version specific stuff - ver. 3.*|7.* +cpuid.coresPerSocket = \"${cpu_cores}\" +maxvcpus = \"4\" +# svga.numDisplays = "2" +# svga.maxWidth = "2560" +# svga.maxHeight = "2048" +# svga.vramSize = "134217728" +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\" + +# svga +svga.autodetect = \"${svga_autodetect}\" + +# usb +usb.present = \"TRUE\" +usb.generic.autoconnect = \"TRUE\" + +# shared folders +sharedFolder0.present = \"TRUE\" +sharedFolder0.enabled = \"${shared_folder}\" +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 +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 +} + + +# declaration of default variables +################################################################################ + +# VM-ID static (0D), remove if changed to 00 +VM_ID="0D" +# temporary disk space for logs, etc... +redodir=/tmp/vmware/${USER} +# dir for configs and vmem file +confdir=${redodir} +# configfile +conffile="${confdir}/run-vmware.conf" +# diskfile +diskfile=${vmpath} +# users vmware config folder +vmhome="${HOME}/.vmware" + +# get several version infos for vmware/player +. ${OPENSLX_DEFAULT_CONFDIR}/plugins/vmware/vmware.conf +vmbuild=$buildversion +vmversion=$version + +# VMware start options +# "-X": start in fullscreen +vmopt="-X" + + +# hardware checks +################################################################################ + +# use different network card +if [ -n "${network_card}" ]; then + network_virtualDev='ethernet0.virtualDev = "e1000"' +else + network_virtualDev='# using default virtualDev for ethernet0' +fi + +case "$enable3d" in + *true*|*TRUE*|*yes*|*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} >/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... +for i in /opt/openslx/plugin-repo/vmware/*; do + cp ${i}/nvram ${confdir}/nvram 2>/dev/null +done + + +# logging and stdout +################################################################################ + +# log script information +writelog "# File created by $0 (VMversion ${vmversion})\n# on $(date)\n" +writelog "Starting with non-persistent mode ...\n" + +# check memory range +if [ "${mem}" -lt "256" ] || [ "${hostmem}" -lt "256" ]; then + writelog "\tMemory out of range: ${mem} MB (guest) / ${hostmem} MB (host)!" + writelog "\tMin. 256 MB for host and guest!" + exit 1 +fi + +# 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 +################################################################################ + +# using the modified version of the wrapper script +VIRTCMD="${OPENSLX_DEFAULT_BINDIR}/vmplayer" +VIRTCMDOPTS="${vmopt} ${conffile}" |