remove (some) dependencies on open fd's - give up using tee - make sure that runtest...
[tests.git] / system / template-qemu / qemu-start-node
1 #!/bin/bash
2
3 # cd in this command's directory
4 COMMAND=$(basename $0)
5 cd $(dirname $0)
6
7 ########## globals
8 RAM=1024
9 DISK_SIZE=10G
10 HDA=hdd-cow2-${DISK_SIZE}.img
11 QEMU_CREATE_IMAGE="qemu-img create -f qcow2 $HDA ${DISK_SIZE}"
12
13 SCRIPT=qemu-ifup
14 TAP="tap,script=$SCRIPT"
15
16 ########## from the test environment
17 # expected vars are MACADDR, NODE_ISO, HOSTNAME, IP and TARGET_ARCH
18 CONFIG=qemu.conf
19 [ -f "$CONFIG" ] || { echo "Config file for qemu $CONFIG not found in $(pwd)" ; exit 1 ; }
20 . $CONFIG
21
22 # the launcher, depending on local/target archs
23 # make sure to check qemu-kill-node for consistency
24 archs="$(uname -i)+$TARGET_ARCH"
25 case $archs in
26     i386+i386)          QEMU=qemu;;
27     i386+x86_64)        QEMU=qemu-system-x86_64;;
28     x86_64+i386)        QEMU=qemu;;
29     x86_64+x86_64)      QEMU=qemu-system-x86_64;;
30 esac
31
32 echo "Running $COMMAND in $(pwd)"
33 echo "Starting at $(date)"
34
35 #Creating new HDA if needed only
36 #using qcow2 disk image format which is essential to support VM snapshots
37 if [ -f $HDA ] ; then
38     echo "Using existing $HDA"
39 else
40     echo -n "Creating hard disk image (${DISK_SIZE}) as $HDA .. "
41     img=$($QEMU_CREATE_IMAGE)
42     if [ -z "$img" ];then
43         echo "Failed"
44         exit 1
45     fi
46     echo "Done"
47 fi
48
49 rm -f qemu.pid
50
51 #Command for running the Qemu Emulator
52 ARGS="-boot d  -net nic,macaddr=${MACADDR} -net $TAP, -cdrom ${NODE_ISO} -hda ${HDA} -m ${RAM} -nographic -pidfile qemu.pid"
53 echo "Running $QEMU $ARGS < /dev/null"
54 exec $QEMU $ARGS < /dev/null