diff options
Diffstat (limited to 'run')
-rwxr-xr-x | run | 86 |
1 files changed, 86 insertions, 0 deletions
@@ -0,0 +1,86 @@ +#!/bin/bash +# +# For some information about how to work with qemu for ARM, please +# refer: http://fedoraproject.org/wiki/Architectures/ARM/HowToQemu + + +platformconfig=selected_platformconfig +# fallback to platformconfig in the same dir as this script +if [ ! -e "$platformconfig" ]; then + platformconfig=$(dirname $0)/platformconfig +fi + +# +# we need information about the platform +# +if [ ! -e "$platformconfig" ]; then + echo "error: selected_platformconfig does not exist" + echo " please use 'ptxdist platform ...' or 'ptxdist --platformconfig=...'" + exit 1 +fi + +source $platformconfig + +if [ -n "${PTXCONF_PLATFORM}" ]; then + PTXDIST_PLATFORMDIR="./platform-${PTXCONF_PLATFORM}" +else + PTXDIST_PLATFORMDIR="." +fi + +if [ ! -e "${PTXDIST_PLATFORMDIR}/images/linuximage" ]; then + echo "error: run 'ptxdist go' first" + exit 1 +fi + +if [ ! -e "${PTXDIST_PLATFORMDIR}/images/hd.img" ]; then + echo "error: run 'ptxdist images' first" + exit 1 +fi + +# the emulator to run +QEMU_EXEC=qemu-system-${PTXCONF_ARCH_STRING} + +# disable this, if you want to have some graphics output +QEMU_NOGRAPHIC=-nographic + +# Machine to emulate: The default kernel is prepared to run on "versatile pb" +QEMU_MACHINE=vexpress-a9 + +# +# 'user mode' network related settings +# +PLATFORM_IP="10.0.2.7" + +# the port a 'telned' would connect to (in the emulated sysem) +TELNET_INTERNAL_PORT=23 +# port QEMU opens at the host side to give access to the ${TELNET_INTERNAL_PORT} +TELNET_EXTERNAL_PORT=4444 + +if [ -z "${VDE_SOCKET}" ]; then + for dir in $(ls -d /var/run/vde2/*.ctl 2>/dev/null); do + if [ -r "${dir}" ]; then + VDE_SOCKET="${dir}" + fi + done +fi +if [ -n "${VDE_SOCKET}" ]; then + if ${QEMU_EXEC} --help | grep -q -- '-net vde'; then + QEMU_NET="-net vde,vlan=1,sock=${VDE_SOCKET}" + fi +fi +if [ -z "${QEMU_NET}" ]; then + QEMU_NET="-net user,vlan=1" +fi + +# do the job +${QEMU_EXEC} ${QEMU_NOGRAPHIC} \ + -M ${QEMU_MACHINE} \ + -m 1024 \ + -no-reboot \ + -net nic,vlan=1 \ + ${QEMU_NET} \ + -redir tcp:${TELNET_EXTERNAL_PORT}:${PLATFORM_IP}:${TELNET_INTERNAL_PORT} \ + -kernel ${PTXDIST_PLATFORMDIR}/images/linuximage \ + -sd ${PTXDIST_PLATFORMDIR}/images/hd.img \ + -smp 2 \ + -append "root=/dev/mmcblk0p1 ro mem=1024M console=ttyAMA0,38400n8 rootwait" |