#!/bin/bash QEMU="/home/paul/cvs/qemu/build/master/i386-softmmu/qemu" #QEMU="/home/paul/cvs/qemu/x86_64-softmmu/qemu-system-x86_64" #QEMU="qemu" # new (nic,model=pcnet) #TUNOPT="-net nic,macaddr=52:54:00:a2:e4:56 -net tap,script=/root/tun-up" TUNSCRIPT=/root/tun-up if [ $# -lt 1 -o ! -f "$1" ] ; then echo "Require argument to a definition file"; exit 1; fi RUNBASE="/var/run/`basename ${1}`" LOCKF="${RUNBASE}.pid" VNCF="${RUNBASE}.vnc" if [ -f "$LOCKF" ] ; then echo "lockfile, ${LOCKF}, exists - exiting"; exit 1; fi . "$1" shift # defaults RAM=${RAM:=64} LISTEN=${LISTEN:=127.0.0.1} NICE=${NICE:=10} VLAN=${VLAN:=0} KEYMAP=${KEYMAP:=en-gb} KERNELKQEMU=${KERNELKQEMU:+-kernel-kqemu} if [ -z "${VNC}" ] ; then if [ -n "${VNCDEV}" ] ; then echo "VNC is not set - ignoring VNCDEV!" fi # must be set.. MONITOR=${MONITOR:?"Port for Qemu Monitor telnet interface required"} SERIAL=${SERIAL:?"Port for telnet <-> serial interface required"} MONITOR="-monitor telnet:${LISTEN}:${MONITOR},server,nowait" SERIAL="-serial telnet:${LISTEN}:${SERIAL},server,nowait" NOGRAPHIC="-nographic" VNC="" else if [ -n "$MONITOR" -o -n "$SERIAL" ] ; then echo "VNC is set, ignoring MONITOR and SERIAL!" fi VNC="-vnc ${VNCDEV:-unix:${VNCF}} -usbdevice tablet" VNC="${VNC} -k ${KEYMAP}" NOGRAPHICS="" MONITOR="" SERIAL="" fi ${NICE:+nice -n ${NICE}} ${QEMU} -m "$RAM" ${HDA:+-hda ${HDA}} \ $NOGRAPHIC \ ${MACADDR:+-net nic,macaddr=${MACADDR} -net tap,script=${TUNSCRIPT}} \ $MONITOR $SERIAL $VNC \ ${CPUS:+-smp ${CPUS}} \ ${KERNELKQEMU} \ -daemonize -pidfile "$LOCKF" $@