# run-virt.include # ----------------------------------------------------------------------------- # Copyright (c) 2011 - RZ Uni Freiburg # Copyright (c) 2011 - OpenSLX GmbH # # This program/file 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 feedback to feedback@openslx.org # # General information about OpenSLX can be found at http://openslx.org # ----------------------------------------------------------------------------- # run-virt.include # - Include script for running the various emulators via a common frontend # script via the common run-virt.sh of the vmchooser ################################################################################ ################################################################################ ### Include general configuration ################################################################################ if [ -f ${OPENSLX_DEFAULT_CONFDIR}/plugins/${self}/${self}.conf ]; then . ${OPENSLX_DEFAULT_CONFDIR}/plugins/${self}/${self}.conf else writelog "Problems reading config file of ${self} plugin" # TODO: exit wenn conf wichtig #exit 1 fi ################################################################################ ### Declaration of default variables ################################################################################ PLUGINCONF="${PLUGINCONFROOT}/${self}" PLUGINDIR=${OPENSLX_DEFAULT_DIR}/plugin-repo/${self} # create TMPDIR for all users mkdir -m 1777 /tmp/${self} 2>/dev/null # TMPDIR TMPDIR="/tmp/${self}/${USER}" # define dirs and files which can be removed after exit, be carefull! RMDIRS="${TMPDIR}" rm -rf ${RMDIRS} 2>/dev/null mkdir -m 1777 -p ${TMPDIR} 2>/dev/null # vmpath is the path to the emulator/original system image diskfile=${vmpath} # emulator is the information provided via xml file emulator=$(grep -o 'virtualmachine param=.*"' ${xmlfile} \ | sed -e "s/&.*;/; /g" | awk -F '"' '{print $2}') rombios=$(grep -o 'rombios param=.*"' ${xmlfile} \ | sed -e "s/&.*;/; /g" | awk -F '"' '{print $2}') displayname=$(echo ${displayname} | sed -e "s, ,-,g") VIRTCMD="${emulator}" case "${emulator}" in dosbox*|Dosbox*) tar -xpzf ${diskfile} -C "${TMPDIR}" emudir=$(ls ${TMPDIR}) [ $(echo ${emudir}|wc|awk '{print $2}') -eq 1 ] && \ { mv ${TMPDIR}/${emudir}/* ${TMPDIR}; rmdir ${TMPDIR}/${emudir}; } echo "# empty" > ${TMPDIR}/dosbox.conf VIRTCMDOPTS="${emulator#*dosbox}" VIRTCMDOPTS="${VIRTCMDOPTS} -conf ${TMPDIR}/dosbox.conf -fullscreen" # the directory mount has to be first VIRTCMD="dosbox -c \"mount c ${TMPDIR}\"" ;; SheepShaver*|sheepshaver*) if [ "x${rombios}" != "x" ] ; then rom="--rom ${imgpath}/${rombios}" else echo "problem" fi rm ~/.sheepshaver* cp ${diskfile} ${TMPDIR} # add cdrom if detected --cdrom /dev/srN # --screen win/1024/768 / dga/${xres}/${yres} # if duplicated options the last one wins - user defined options should over- # rule system options set here USERCMDOPTS="$(echo "${emulator}" | tr "A-Z" "a-z")" USERCMDOPTS="${USERCMDOPTS#*sheepshaver}" VIRTCMDOPTS="${VIRTCMDOPTS} ${rom} --ramsize 128800000 --extfs ${HOME}" VIRTCMDOPTS="${VIRTCMDOPTS} --ignoresegv true --ignoreillegal true --gfxaccel true" VIRTCMDOPTS="${VIRTCMDOPTS} --disk ${TMPDIR}/${imgname} ${USERCMDOPTS}" VIRTCMD="SheepShaver" ;; basilisk*|Basilisk*) if [ "x${rombios}" != "x" ] ; then rom="--rom ${imgpath}/${rombios}" else echo "problem" fi rm ~/.basilisk* cp ${diskfile} ${TMPDIR} # check ordering of duplicated options (user defined options should over- # rule system options set here USERCMDOPTS="$(echo "${emulator}" | tr "A-Z" "a-z")" USERCMDOPTS="${USERCMDOPTS#*basiliskii}" VIRTCMDOPTS="${VIRTCMDOPTS} ${rom} --ramsize 16800000 --extfs ${HOME}" VIRTCMDOPTS="${VIRTCMDOPTS} --ignoresegv true --disk ${TMPDIR}/${imgname}" VIRTCMDOPTS="${VIRTCMDOPTS} ${USERCMDOPTS}" VIRTCMD="BasiliskII" ;; hatari*|Hatari*) if [ "x${rombios}" != "x" ] ; then rom="--tos ${imgpath}/${rombios}" else echo "problem" fi USERCMDOPTS="$(echo "${emulator}" | tr "A-Z" "a-z")" USERCMDOPTS="${USERCMDOPTS#*hatari}" VIRTCMDOPTS="${VIRTCMDOPTS} ${rom} --memsize 14 --confirm-quite false" VIRTCMDOPTS="${VIRTCMDOPTS} -d ${HOME} ${USERCMDOPTS}" VIRTCMD="hatari" ;; *mess*) [ "x${rombios}" != "x" ] && rom="${imgpath}/${rombios}" VIRTCMDOPTS="${VIRTCMDOPTS} ${rom}" ;; *uae*) [ "x${rombios}" != "x" ] && rom="-s kickstart_rom_file=${imgpath}/${rombios}" VIRTCMDOPTS="${VIRTCMDOPTS} ${rom}" VIRTCMDOPTS="${VIRTCMDOPTS} -s floppy0=${diskfile}" ;; *qemu*) # disable kvm for a range of older operating systems case "${vmostype}" in beos*) VIRTCMDOPTS="${VIRTCMDOPTS} -no-kvm -m 256" ;; win3*|win*3*|Win*3*) VIRTCMDOPTS="${VIRTCMDOPTS} -no-kvm -m 32" ;; win95*|Win*95) VIRTCMDOPTS="${VIRTCMDOPTS} -no-kvm -m 96" ;; win*) VIRTCMDOPTS="${VIRTCMDOPTS} -no-kvm -m 256" ;; esac [ "x${rombios}" != "x" ] && rom="-bios ${imgpath}/${rombios}" VIRTCMDOPTS="${VIRTCMDOPTS} ${rom} -name \"${displayname}\" -snapshot ${diskfile}" ;; esac writelog "Directories:" writelog "\tTMPDIR:\t\t\t$TMPDIR" writelog "Diskimage:" writelog "\tDisk type:\t\t$imgtype" writelog "\tDisk file:\t\t$diskfile" ################################################################################ ### Emulator definitions ################################################################################ writelog "Virtual Hardware:" writelog "\tGuest RAM:\t\t${mem} MB" # echo nur wenn memhost gesetzt [ -n "${memhost}" ] && writelog "\tHost RAM:\t\t${memhost} MB" writelog "\tMAC address:\t\t$macaddr" writelog "\tNetwork card:\t\t${network_card}" writelog "\tNetwork kind:\t\t${network_kind}" #writelog "\tCD-ROM1:\t${cdrom0}" #writelog "\tCD-ROM2:\t${cdrom1}" #writelog "\tFloppy_A:\t${floppy0}" #writelog "\tFloppy_B:\t${floppy1}" #writelog "\tShared Folders 'home':\t/home/${USER}" ################################################################################ ### finally set env for run-virt.sh ################################################################################