diff options
-rwxr-xr-x | scripts/runqemu | 35 |
1 files changed, 15 insertions, 20 deletions
diff --git a/scripts/runqemu b/scripts/runqemu index 364fa1cb14..0f943b5fec 100755 --- a/scripts/runqemu +++ b/scripts/runqemu @@ -239,31 +239,24 @@ machine2=`echo $MACHINE | tr 'a-z' 'A-Z' | sed 's/-/_/'` # Defaults used when these vars need to be inferred QEMUX86_DEFAULT_KERNEL=bzImage-qemux86.bin QEMUX86_DEFAULT_FSTYPE=ext3 -QEMUX86_DEFAULT_ROOTFS="core-image-sato-sdk core-image-sato core-image-lsb core-image-basic core-image-minimal" QEMUX86_64_DEFAULT_KERNEL=bzImage-qemux86-64.bin QEMUX86_64_DEFAULT_FSTYPE=ext3 -QEMUX86_64_DEFAULT_ROOTFS="core-image-sato-sdk core-image-sato core-image-lsb core-image-basic core-image-minimal" QEMUARM_DEFAULT_KERNEL=zImage-qemuarm.bin QEMUARM_DEFAULT_FSTYPE=ext3 -QEMUARM_DEFAULT_ROOTFS="core-image-sato-sdk core-image-sato core-image-lsb core-image-basic core-image-minimal" QEMUMIPS_DEFAULT_KERNEL=vmlinux-qemumips.bin QEMUMIPS_DEFAULT_FSTYPE=ext3 -QEMUMIPS_DEFAULT_ROOTFS="core-image-sato-sdk core-image-sato core-image-lsb core-image-basic core-image-minimal" QEMUPPC_DEFAULT_KERNEL=zImage-qemuppc.bin QEMUPPC_DEFAULT_FSTYPE=ext3 -QEMUPPC_DEFAULT_ROOTFS="core-image-sato-sdk core-image-sato core-image-lsb core-image-basic core-image-minimal" AKITA_DEFAULT_KERNEL=zImage-akita.bin AKITA_DEFAULT_FSTYPE=jffs2 -AKITA_DEFAULT_ROOTFS="core-image-sato" SPITZ_DEFAULT_KERNEL=zImage-spitz.bin SPITZ_DEFAULT_FSTYPE=ext3 -SPITZ_DEFAULT_ROOTFS="core-image-sato" setup_tmpdir() { if [ -z "$TMPDIR" ]; then @@ -300,26 +293,28 @@ setup_sysroot() { fi } -# Locate a rootfs image based on defaults defined above +# Locate a rootfs image to boot which matches our expected +# machine and fstype. findimage() { where=$1 machine=$2 extension=$3 - names=$4 - for name in $names; do - fullname=$where/$name-$machine.$extension - if [ -e "$fullname" ]; then - ROOTFS=$fullname + # Sort rootfs candidates by modification time - the most + # recently created one is the one we most likely want to boot. + filenames=`ls -t $where/*core-image*$machine.$extension 2>/dev/null | xargs` + for name in $filenames; do + if [[ "$name" =~ core-image-sato-sdk || + "$name" =~ core-image-sato || + "$name" =~ core-image-lsb || + "$name" =~ core-image-basic || + "$name" =~ core-image-minimal ]]; then + ROOTFS=$name return - fi - done - - echo "Couldn't find image in $where. Attempted image names were:" - for name in $names; do - echo $name-$machine.$extension + fi done + echo "Couldn't find a $machine rootfs image in $where." exit 1 } @@ -376,7 +371,7 @@ if [ -z "$ROOTFS" ]; then setup_tmpdir T=$TMPDIR/deploy/images eval rootfs_list=\$${machine2}_DEFAULT_ROOTFS - findimage $T $MACHINE $FSTYPE "$rootfs_list" + findimage $T $MACHINE $FSTYPE if [ -z "$ROOTFS" ]; then echo "Error: Unable to determine default rootfs for MACHINE [$MACHINE]" |