diff options
Diffstat (limited to 'os-plugins/plugins/qemukvm/files')
| -rw-r--r-- | os-plugins/plugins/qemukvm/files/ifdown (renamed from os-plugins/plugins/qemukvm/files/qemu-ifdown) | 0 | ||||
| -rw-r--r-- | os-plugins/plugins/qemukvm/files/ifup (renamed from os-plugins/plugins/qemukvm/files/qemu-ifup) | 27 | ||||
| -rw-r--r-- | os-plugins/plugins/qemukvm/files/run-virt.include | 50 |
3 files changed, 41 insertions, 36 deletions
diff --git a/os-plugins/plugins/qemukvm/files/qemu-ifdown b/os-plugins/plugins/qemukvm/files/ifdown index 8c52d76f..8c52d76f 100644 --- a/os-plugins/plugins/qemukvm/files/qemu-ifdown +++ b/os-plugins/plugins/qemukvm/files/ifdown diff --git a/os-plugins/plugins/qemukvm/files/qemu-ifup b/os-plugins/plugins/qemukvm/files/ifup index 1f1e0cc6..ed4a277d 100644 --- a/os-plugins/plugins/qemukvm/files/qemu-ifup +++ b/os-plugins/plugins/qemukvm/files/ifup @@ -9,14 +9,14 @@ # # General information about OpenSLX can be found at http://openslx.org/ # ----------------------------------------------------------------------------- -# qemu-ifup +# ifup # - Script used for network setup of qemukvm in stage4 # ----------------------------------------------------------------------------- . /etc/opt/openslx/openslx.conf PLUGINCONFDIR=${OPENSLX_DEFAULT_CONFDIR}/plugins/qemukvm -PLUGINDIR=${OPENSLX_DEFAULT_PLUGINDIRDIR}/qemukvm +QKTMPDIR=/tmp/qemukvm/$USER/$$ # Use the udhcpcd as DHCP server and brctl as provided by default in OpenSLX # environments via uclibc-wrapper. @@ -31,33 +31,32 @@ case "$1" in ;; tap1) # Configuring DHCP on host tap1 interface and enable IP masquerading - [ -d /tmp/qemu-$USER ] || mkdir -p /tmp/qemu-$USER + [ -d ${QKTMPDIR} ] || mkdir -p ${QKTMPDIR} # cut the last .NNN/MM from nataddress sed -e "s,NWIF,tap1,;s,/misc/,/qemu/," \ - -e "s,CNETWORK,${nataddress%.*},;s,PIDFILE,/tmp/qemu-$USER/udhcpd.pid," \ - -e "s,LEASEFILE,/tmp/qemu-$USER/udhcpd.leases," \ - ${PLUGINDIR}/udhcpd.conf \ - >/tmp/qemu-$USER/udhcpd.conf - touch /tmp/qemu-$USER/udhcpd.leases + -e "s,CNETWORK,${nataddress%.*},;s,PIDFILE,${QKTMPDIR}/udhcpd.pid," \ + -e "s,LEASEFILE,${QKTMPDIR}/udhcpd.leases," \ + ${OPENSLX_DEFAULT_CONFDIR}/udhcpd.conf \ + >${QKTMPDIR}/udhcpd.conf + touch ${QKTMPDIR}/udhcpd.leases # ip link set tap1 up # ip addr add 192.168.101.254/24 dev tap1 sudo /opt/openslx/uclib-rootfs/usr/sbin/udhcpd \ - -S /tmp/qemu-$USER/udhcpd.conf + -S ${QKTMPDIR}/udhcpd.conf # iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE ;; tap2) # Configuring DHCP on host tap2 interface - [ -d /tmp/qemu-$USER ] || mkdir -p /tmp/qemu-$USER + [ -d ${QKTMPDIR} ] || mkdir -p /tmp/qemu-$USER sed "s,NWIF,tap2,;s,/misc/,/qemu/,;s,USER,$USER,;s,CNETWORK,$hoaddress," \ - /etc/opt/openslx/udhcpd.conf >/tmp/qemu-$USER/udhcpd.conf - touch /tmp/qemu-$USER/udhcpd.leases + ${OPENSLX_DEFAULT_CONFDIR}/udhcpd.conf >${QKTMPDIR}/udhcpd.conf + touch ${QKTMPDIR}/udhcpd.leases # ip link set tap2 up # ip addr add 192.168.101.254/24 dev tap2 sudo /opt/openslx/uclib-rootfs/usr/sbin/udhcpd \ - -S /tmp/qemu-$USER/udhcpd.conf + -S ${QKTMPDIR}/udhcpd.conf ;; esac # Produce a clean exit status exit 0 - diff --git a/os-plugins/plugins/qemukvm/files/run-virt.include b/os-plugins/plugins/qemukvm/files/run-virt.include index 0cec83da..bdf9666f 100644 --- a/os-plugins/plugins/qemukvm/files/run-virt.include +++ b/os-plugins/plugins/qemukvm/files/run-virt.include @@ -31,7 +31,8 @@ fi ### Declaration of default variables ################################################################################ -PLUGINCONFVIRTUALBOX="${PLUGINCONFROOT}/${self}" +PLUGINCONFQK="${PLUGINCONFROOT}/${self}" +PLUGINDIRQK=${OPENSLX_DEFAULT_DIR}/plugin-repo/${self} # create TMPDIR for all users mkdir -m 1777 /tmp/${self} 2>/dev/null # TMPDIR @@ -51,11 +52,12 @@ else exit 1 fi -# display name +# display name, remove blanks because of cmdline problems +displayname=$(echo ${displayname} | sed -e "s, ,-,g") VIRTCMDOPTS="${VIRTCMDOPTS} -name ${displayname}" writelog "Directories:" -writelog "\tTMPDIR:\t\t$QKTMPDIR" +writelog "\tTMPDIR:\t\t\t$QKTMPDIR" writelog "Diskimage:" writelog "\tDisk type:\t\t$imgtype" writelog "\tDisk file:\t\t$diskfile" @@ -112,16 +114,21 @@ VIRTCMDOPTS="${VIRTCMDOPTS} -m ${mem}" network_card=${network_card:=pcnet} VIRTCMDOPTS="${VIRTCMDOPTS} -net nic,model=${network_card}" +# define net kind and apply script +qemu_ifscripts="script=${PLUGINDIRQK}/ifup,downscript=${PLUGINDIRQK}/ifdown" case "${network_kind}" in bridge*) - VIRTCMDOPTS="${VIRTCMDOPTS} -net tap,ifname=tap0" + VIRTCMDOPTS="${VIRTCMDOPTS} -net tap,ifname=tap0,${qemu_ifscripts}" + ;; + NAT|nat) + VIRTCMDOPTS="${VIRTCMDOPTS} -net tap,ifname=tap1,${qemu_ifscripts}" ;; hostonly|host-only) - VIRTCMDOPTS="${VIRTCMDOPTS} -net tap,ifname=tap2" + VIRTCMDOPTS="${VIRTCMDOPTS} -net tap,ifname=tap2,${qemu_ifscripts}" ;; *) - network_kind="NAT" - VIRTCMDOPTS="${VIRTCMDOPTS} -net tap,ifname=tap1" + network_kind="user" + VIRTCMDOPTS="${VIRTCMDOPTS} -net user" ;; esac @@ -226,40 +233,39 @@ writelog "\tNetwork kind:\t\t${network_kind}" #-show-cursor show cursor # check for kvm modules -# TODO: check for /dev/kvm if [ -n "${kvm}" ]; then - if lsmod |Ęgrep ${kvm}; then + if [ -e /dev/kvm ]; then for tool in kvm qemu-kvm; do VIRTCMD=$(which ${tool} 2>/dev/null) [ -n "$VIRTCMD" ] && break done else - writelog "KVM available but no modules loaded, maybe compiled into kernel?" VIRTCMD=$(which qemu 2>/dev/null) + writelog "KVM available but /dev/kvm not found!" + writelog "Trying fallback to QEMU emulation." fi fi -# set the variables appropriately -#for tool in kvm qemu-kvm qemu; do -# VIRTCMD=$(which ${tool} 2>/dev/null) -# [ -n "$VIRTCMD" ] && break -#done - if [ -z "${VIRTCMD}" ]; then - writelog "No QEMU/KVM found." + writelog "No QEMU/KVM found, exiting!" rm -rf ${RMDIRS} exit 1 -elif [ "${VIRTCMD}" = "qemu" ]; then - writelog "No KVM fouund. Starting slow QEMU emulation" - VIRTCMD="qemu" +elif [ "${VIRTCMD##*/}" = "qemu" ]; then + writelog "No user space KVM found. Using slow QEMU emulation" + writelog "User space emulation:\t\t${VIRTCMD}" else + writelog "User space virtualization:\t${VIRTCMD}" VIRTCMD="sudo $VIRTCMD" fi +# TODO: boot als var, -boot n, tftp... +VIRTCMDOPTS="${VIRTCMDOPTS} -boot c" + # set headless mode +# define first, you do not want VIRTCMDOPTS from graphical start VIRTCMDHL="$VIRTCMD" -VIRTCMDOPTSHL="${VIRTCMDOPTS} -boot c -alt-grab -nographic" +VIRTCMDOPTSHL="${VIRTCMDOPTS} -alt-grab -nographic -snapshot ${diskfile}" # graphical start VIRTCMD="$VIRTCMD" -VIRTCMDOPTS="${VIRTCMDOPTS} -boot c -alt-grab -full-screen ${diskfile}" +VIRTCMDOPTS="${VIRTCMDOPTS} -alt-grab -full-screen -snapshot ${diskfile}" |
