Files
lk/scripts/do-qemuarm
2015-09-20 12:13:07 -07:00

65 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
function HELP {
echo "help:"
echo "-b a virtio block device"
echo "-n a virtio network device"
echo "-t a virtio tap network device"
echo "-6 64bit arm"
echo "-h for help"
echo "all arguments after -- are passed to qemu directly"
exit 1
}
DO_NET=0
DO_NET_TAP=0
DO_BLOCK=0
DO_64BIT=0
SUDO=""
while getopts bhnt6 FLAG; do
case $FLAG in
b) DO_BLOCK=1;;
n) DO_NET=1;;
t) DO_NET_TAP=1;;
6) DO_64BIT=1;;
h) HELP;;
\?)
echo unrecognized option
HELP
esac
done
shift $((OPTIND-1))
if [ $DO_64BIT == 1 ]; then
QEMU="qemu-system-aarch64 -machine virt -cpu cortex-a53"
PROJECT="qemu-virt-a53-test"
else
QEMU="qemu-system-arm -machine virt -cpu cortex-a15"
PROJECT="qemu-virt-a15-test"
fi
ARGS=" -m 512 -kernel build-${PROJECT}/lk.elf -nographic"
BLOCK_ARGS=" -drive if=none,file=blk.bin,id=blk,format=raw -device virtio-blk-device,drive=blk"
NET_ARGS=" -netdev user,id=vmnic,hostname=qemu -device virtio-net-device,netdev=vmnic"
NET_TAP_ARGS=" -netdev tap,id=vmnic -device virtio-net-device,netdev=vmnic"
echo DO_BLOCK = $DO_BLOCK
echo DO_NET = $DO_NET
if [ $DO_BLOCK == 1 ]; then
ARGS+=$BLOCK_ARGS
fi
if [ $DO_NET == 1 ]; then
ARGS+=$NET_ARGS
fi
if [ $DO_NET_TAP == 1 ]; then
ARGS+=$NET_TAP_ARGS
SUDO="sudo "
fi
make $PROJECT -j4 &&
echo $SUDO $QEMU $ARGS $@ &&
$SUDO $QEMU $ARGS $@