summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Garman <scott.a.garman@intel.com>2011-09-09 02:59:27 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-09-09 18:41:55 +0100
commit094453f443ed592d814dfb4182a0a02f0a2552e4 (patch)
treef12f3dd45bc2d94cd539f9ae26aa230c1bf31886
parent72252799e8c51a633a231a2cd1fe797b7faae713 (diff)
downloadopenembedded-core-094453f443ed592d814dfb4182a0a02f0a2552e4.tar.gz
openembedded-core-094453f443ed592d814dfb4182a0a02f0a2552e4.tar.bz2
openembedded-core-094453f443ed592d814dfb4182a0a02f0a2552e4.zip
runqemu: improve auto-detection of rootfs filenames
This refactors the way rootfs filenames are auto-detected when you run the runqemu script without an explicit rootfs filename argument. It allows the script to use rootfs files generated by hob, and when there are mutliple rootfs files to choose from, it will pick the most recently created one. Fixes [YOCTO #1437]. Signed-off-by: Scott Garman <scott.a.garman@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-xscripts/runqemu35
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]"