diff options
| author | Scott Garman <scott.a.garman@intel.com> | 2010-11-12 16:31:13 -0800 |
|---|---|---|
| committer | Saul Wold <sgw@linux.intel.com> | 2010-11-14 21:08:28 -0800 |
| commit | a4a896165c47bf4983bcd789820227c0f49a7272 (patch) | |
| tree | ca35c264ca2f71152ec347638c21291d275390e7 | |
| parent | c01e2a68dd7b51e9d6f78e0c240575f89e082c40 (diff) | |
| download | poky-a4a896165c47bf4983bcd789820227c0f49a7272.tar.gz | |
poky-qemu: Fix issues when running Yocto 0.9 release images
This fixes two bugs with poky-qemu when it is run from a
standalone meta-toolchain setup.
[BUGFIX #535] and [BUGFIX #536]
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
| -rwxr-xr-x | scripts/poky-qemu | 64 |
1 files changed, 36 insertions, 28 deletions
diff --git a/scripts/poky-qemu b/scripts/poky-qemu index 9e604b5a10..bc312e0fb6 100755 --- a/scripts/poky-qemu +++ b/scripts/poky-qemu | |||
| @@ -51,6 +51,37 @@ SCRIPT_KERNEL_OPT="" | |||
| 51 | 51 | ||
| 52 | TMPDIR="" | 52 | TMPDIR="" |
| 53 | 53 | ||
| 54 | # Determine whether the file is a kernel or QEMU image, and set the | ||
| 55 | # appropriate variables | ||
| 56 | process_filename() { | ||
| 57 | filename=$1 | ||
| 58 | |||
| 59 | # Extract the filename extension | ||
| 60 | EXT=`echo $filename | awk -F . '{ print \$NF }'` | ||
| 61 | # A file ending in .bin is a kernel | ||
| 62 | if [ "x$EXT" = "xbin" ]; then | ||
| 63 | if [ -z "$KERNEL" ]; then | ||
| 64 | KERNEL=$filename | ||
| 65 | else | ||
| 66 | echo "Error: conflicting KERNEL args [$KERNEL] and [$filename]" | ||
| 67 | usage | ||
| 68 | fi | ||
| 69 | elif [[ "x$EXT" == "xext2" || "x$EXT" == "xext3" || | ||
| 70 | "x$EXT" == "xjffs2" ]]; then | ||
| 71 | # A file ending in a supportted fs type is a rootfs image | ||
| 72 | if [[ -z "$FSTYPE" || "$FSTYPE" == "$EXT" ]]; then | ||
| 73 | FSTYPE=$EXT | ||
| 74 | ROOTFS=$filename | ||
| 75 | else | ||
| 76 | echo "Error: conflicting FSTYPE types [$FSTYPE] and [$EXT]" | ||
| 77 | usage | ||
| 78 | fi | ||
| 79 | else | ||
| 80 | echo "Error: unknown file arg [$filename]" | ||
| 81 | usage | ||
| 82 | fi | ||
| 83 | } | ||
| 84 | |||
| 54 | # Parse command line args without requiring specific ordering. It's a | 85 | # Parse command line args without requiring specific ordering. It's a |
| 55 | # bit more complex, but offers a great user experience. | 86 | # bit more complex, but offers a great user experience. |
| 56 | i=1 | 87 | i=1 |
| @@ -66,7 +97,7 @@ while [ $i -le $# ]; do | |||
| 66 | fi | 97 | fi |
| 67 | ;; | 98 | ;; |
| 68 | "ext2" | "ext3" | "jffs2" | "nfs") | 99 | "ext2" | "ext3" | "jffs2" | "nfs") |
| 69 | if [ -z "$FSTYPE" ]; then | 100 | if [[ -z "$FSTYPE" || "$FSTYPE" == "$arg" ]]; then |
| 70 | FSTYPE=$arg | 101 | FSTYPE=$arg |
| 71 | else | 102 | else |
| 72 | echo "Error: conflicting FSTYPE types [$FSTYPE] and [$arg]" | 103 | echo "Error: conflicting FSTYPE types [$FSTYPE] and [$arg]" |
| @@ -75,8 +106,8 @@ while [ $i -le $# ]; do | |||
| 75 | ;; | 106 | ;; |
| 76 | *-image-*) | 107 | *-image-*) |
| 77 | if [ -z "$ROOTFS" ]; then | 108 | if [ -z "$ROOTFS" ]; then |
| 78 | if [ -e "$arg" ]; then | 109 | if [ -f "$arg" ]; then |
| 79 | ROOTFS=$arg | 110 | process_filename $arg |
| 80 | else | 111 | else |
| 81 | ROOTFS=$arg | 112 | ROOTFS=$arg |
| 82 | LAZY_ROOTFS="true" | 113 | LAZY_ROOTFS="true" |
| @@ -111,30 +142,7 @@ while [ $i -le $# ]; do | |||
| 111 | usage | 142 | usage |
| 112 | fi | 143 | fi |
| 113 | elif [ -f "$arg" ]; then | 144 | elif [ -f "$arg" ]; then |
| 114 | # Extract the filename extension | 145 | process_filename $arg |
| 115 | EXT=`echo $arg | awk -F . '{ print \$NF }'` | ||
| 116 | # A file ending in .bin is a kernel | ||
| 117 | if [ "x$EXT" = "xbin" ]; then | ||
| 118 | if [ -z "$KERNEL" ]; then | ||
| 119 | KERNEL=$arg | ||
| 120 | else | ||
| 121 | echo "Error: conflicting KERNEL args [$KERNEL] and [$arg]" | ||
| 122 | usage | ||
| 123 | fi | ||
| 124 | elif [[ "x$EXT" == "xext2" || "x$EXT" == "xext3" || | ||
| 125 | "x$EXT" == "xjffs2" ]]; then | ||
| 126 | # A file ending in a supportted fs type is a rootfs image | ||
| 127 | if [[ -z "$FSTYPE" || "$FSTYPE" == "$EXT" ]]; then | ||
| 128 | FSTYPE=$EXT | ||
| 129 | ROOTFS=$arg | ||
| 130 | else | ||
| 131 | echo "Error: conflicting FSTYPE types [$FSTYPE] and [$arg]" | ||
| 132 | usage | ||
| 133 | fi | ||
| 134 | else | ||
| 135 | echo "Error: unknown file arg [$arg]" | ||
| 136 | usage | ||
| 137 | fi | ||
| 138 | else | 146 | else |
| 139 | echo "Error: unable to classify arg [$arg]" | 147 | echo "Error: unable to classify arg [$arg]" |
| 140 | usage | 148 | usage |
| @@ -155,7 +163,7 @@ if [[ "$FSTYPE" == "nfs" && -z "$ROOTFS" ]]; then | |||
| 155 | fi | 163 | fi |
| 156 | 164 | ||
| 157 | if [ -z "$MACHINE" ]; then | 165 | if [ -z "$MACHINE" ]; then |
| 158 | MACHINE=`basename $KERNEL | sed -r -e 's#.*-([a-z]+[0-9\-]*)-?[0-9]*..*#\1#'` | 166 | MACHINE=`basename $KERNEL | sed 's/.*-\(qemux86-64\|qemux86\|qemuarm\|qemumips\|qemuppc\).*/\1/'` |
| 159 | if [ -z "$MACHINE" ]; then | 167 | if [ -z "$MACHINE" ]; then |
| 160 | echo "Error: Unable to set MACHINE from kernel filename [$KERNEL]" | 168 | echo "Error: Unable to set MACHINE from kernel filename [$KERNEL]" |
| 161 | usage | 169 | usage |
