#!/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="${PTXDIST_PLATFORMDIR}/sysroot-host/bin/qemu-system-arm" if [ ! -e "${QEMU_EXEC}" ]; then echo "error: enable and install 'host-qemu' first" exit 1 fi # 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=versatilepb # # '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} \ -no-reboot \ -net nic,vlan=1 \ ${QEMU_NET} \ -redir tcp:${TELNET_EXTERNAL_PORT}:${PLATFORM_IP}:${TELNET_INTERNAL_PORT} \ -kernel ${PTXDIST_PLATFORMDIR}/images/linuximage \ -hda ${PTXDIST_PLATFORMDIR}/images/hd.img \ -watchdog i6300esb -watchdog-action poweroff \ -append "root=/dev/sda1 rootfs=ext2 rw console=ttyAMA0,115200"