summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xscripts/runqemu71
1 files changed, 25 insertions, 46 deletions
diff --git a/scripts/runqemu b/scripts/runqemu
index dfa7f4bc2d..231b1bf517 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -46,6 +46,11 @@ if [ "x$1" = "x" ]; then
46 usage 46 usage
47fi 47fi
48 48
49error() {
50 echo "Error: "$*
51 usage
52}
53
49MACHINE=${MACHINE:=""} 54MACHINE=${MACHINE:=""}
50KERNEL="" 55KERNEL=""
51FSTYPE="" 56FSTYPE=""
@@ -65,12 +70,8 @@ process_filename() {
65 case /$EXT/ in 70 case /$EXT/ in
66 /bin/) 71 /bin/)
67 # A file ending in .bin is a kernel 72 # A file ending in .bin is a kernel
68 if [ -z "$KERNEL" ]; then 73 [ -z "$KERNEL" ] && KERNEL=$filename || \
69 KERNEL=$filename 74 error "conflicting KERNEL args [$KERNEL] and [$filename]"
70 else
71 echo "Error: conflicting KERNEL args [$KERNEL] and [$filename]"
72 usage
73 fi
74 ;; 75 ;;
75 /ext[234]/|/jffs2/|/btrfs/) 76 /ext[234]/|/jffs2/|/btrfs/)
76 # A file ending in a supportted fs type is a rootfs image 77 # A file ending in a supportted fs type is a rootfs image
@@ -78,13 +79,11 @@ process_filename() {
78 FSTYPE=$EXT 79 FSTYPE=$EXT
79 ROOTFS=$filename 80 ROOTFS=$filename
80 else 81 else
81 echo "Error: conflicting FSTYPE types [$FSTYPE] and [$EXT]" 82 error "conflicting FSTYPE types [$FSTYPE] and [$EXT]"
82 usage
83 fi 83 fi
84 ;; 84 ;;
85 *) 85 *)
86 echo "Error: unknown file arg [$filename]" 86 error "unknown file arg [$filename]"
87 usage
88 ;; 87 ;;
89 esac 88 esac
90} 89}
@@ -97,20 +96,12 @@ while [ $i -le $# ]; do
97 arg=${!i} 96 arg=${!i}
98 case $arg in 97 case $arg in
99 "qemux86" | "qemux86-64" | "qemuarm" | "qemumips" | "qemuppc") 98 "qemux86" | "qemux86-64" | "qemuarm" | "qemumips" | "qemuppc")
100 if [ -z "$MACHINE" ]; then 99 [ -z "$MACHINE" ] && MACHINE=$arg || \
101 MACHINE=$arg 100 error "conflicting MACHINE types [$MACHINE] and [$arg]"
102 else
103 echo "Error: conflicting MACHINE types [$MACHINE] and [$arg]"
104 usage
105 fi
106 ;; 101 ;;
107 "ext2" | "ext3" | "jffs2" | "nfs" | "btrfs") 102 "ext2" | "ext3" | "jffs2" | "nfs" | "btrfs")
108 if [ -z "$FSTYPE" -o "$FSTYPE" = "$arg" ]; then 103 [ -z "$FSTYPE" -o "$FSTYPE" = "$arg" ] && FSTYPE=$arg || \
109 FSTYPE=$arg 104 error "conflicting FSTYPE types [$FSTYPE] and [$arg]"
110 else
111 echo "Error: conflicting FSTYPE types [$FSTYPE] and [$arg]"
112 usage
113 fi
114 ;; 105 ;;
115 *-image*) 106 *-image*)
116 if [ -z "$ROOTFS" ]; then 107 if [ -z "$ROOTFS" ]; then
@@ -127,8 +118,7 @@ while [ $i -le $# ]; do
127 LAZY_ROOTFS="true" 118 LAZY_ROOTFS="true"
128 fi 119 fi
129 else 120 else
130 echo "Error: conflicting ROOTFS args [$ROOTFS] and [$arg]" 121 error "conflicting ROOTFS args [$ROOTFS] and [$arg]"
131 usage
132 fi 122 fi
133 ;; 123 ;;
134 "nographic") 124 "nographic")
@@ -146,10 +136,8 @@ while [ $i -le $# ]; do
146 # to use simplified options instead 136 # to use simplified options instead
147 serial_option=`expr "$SCRIPT_QEMU_EXTRA_OPT" : '.*\(-serial\)'` 137 serial_option=`expr "$SCRIPT_QEMU_EXTRA_OPT" : '.*\(-serial\)'`
148 kvm_option=`expr "$SCRIPT_QEMU_EXTRA_OPT" : '.*\(-enable-kvm\)'` 138 kvm_option=`expr "$SCRIPT_QEMU_EXTRA_OPT" : '.*\(-enable-kvm\)'`
149 if [ ! -z "$serial_option" -o ! -z "$kvm_option" ]; then 139 [ ! -z "$serial_option" -o ! -z "$kvm_option" ] && \
150 echo "Error: Please use simplified serial or kvm options instead" 140 error "Please use simplified serial or kvm options instead"
151 usage
152 fi
153 ;; 141 ;;
154 "bootparams="*) 142 "bootparams="*)
155 SCRIPT_KERNEL_OPT="$SCRIPT_KERNEL_OPT ${arg##bootparams=}" 143 SCRIPT_KERNEL_OPT="$SCRIPT_KERNEL_OPT ${arg##bootparams=}"
@@ -172,21 +160,18 @@ while [ $i -le $# ]; do
172 if [ -z "$FSTYPE" -o "$FSTYPE" = "nfs" ]; then 160 if [ -z "$FSTYPE" -o "$FSTYPE" = "nfs" ]; then
173 FSTYPE=nfs 161 FSTYPE=nfs
174 else 162 else
175 echo "Error: conflicting FSTYPE types [$arg] and nfs" 163 error "conflicting FSTYPE types [$arg] and nfs"
176 usage
177 fi 164 fi
178 165
179 if [ -z "$ROOTFS" ]; then 166 if [ -z "$ROOTFS" ]; then
180 ROOTFS=$arg 167 ROOTFS=$arg
181 else 168 else
182 echo "Error: conflicting ROOTFS args [$ROOTFS] and [$arg]" 169 error "conflicting ROOTFS args [$ROOTFS] and [$arg]"
183 usage
184 fi 170 fi
185 elif [ -f "$arg" ]; then 171 elif [ -f "$arg" ]; then
186 process_filename $arg 172 process_filename $arg
187 else 173 else
188 echo "Error: unable to classify arg [$arg]" 174 error "unable to classify arg [$arg]"
189 usage
190 fi 175 fi
191 ;; 176 ;;
192 esac 177 esac
@@ -229,19 +214,16 @@ fi
229 214
230# Report errors for missing combinations of options 215# Report errors for missing combinations of options
231if [ -z "$MACHINE" -a -z "$KERNEL" ]; then 216if [ -z "$MACHINE" -a -z "$KERNEL" ]; then
232 echo "Error: you must specify at least a MACHINE or KERNEL argument" 217 error "you must specify at least a MACHINE or KERNEL argument"
233 usage
234fi 218fi
235if [ "$FSTYPE" = "nfs" -a -z "$ROOTFS" ]; then 219if [ "$FSTYPE" = "nfs" -a -z "$ROOTFS" ]; then
236 echo "Error: NFS booting without an explicit ROOTFS path is not yet supported" 220 error "NFS booting without an explicit ROOTFS path is not yet supported"
237 usage
238fi 221fi
239 222
240if [ -z "$MACHINE" ]; then 223if [ -z "$MACHINE" ]; then
241 MACHINE=`basename $KERNEL | sed 's/.*-\(qemux86-64\|qemux86\|qemuarm\|qemumips\|qemuppc\).*/\1/'` 224 MACHINE=`basename $KERNEL | sed 's/.*-\(qemux86-64\|qemux86\|qemuarm\|qemumips\|qemuppc\).*/\1/'`
242 if [ -z "$MACHINE" ]; then 225 if [ -z "$MACHINE" ]; then
243 echo "Error: Unable to set MACHINE from kernel filename [$KERNEL]" 226 error "Unable to set MACHINE from kernel filename [$KERNEL]"
244 usage
245 fi 227 fi
246 echo "Set MACHINE to [$MACHINE] based on kernel [$KERNEL]" 228 echo "Set MACHINE to [$MACHINE] based on kernel [$KERNEL]"
247fi 229fi
@@ -349,8 +331,7 @@ if [ -z "$KERNEL" ]; then
349 KERNEL=$OE_TMPDIR/deploy/images/$kernel_file 331 KERNEL=$OE_TMPDIR/deploy/images/$kernel_file
350 332
351 if [ -z "$KERNEL" ]; then 333 if [ -z "$KERNEL" ]; then
352 echo "Error: Unable to determine default kernel for MACHINE [$MACHINE]" 334 error "Unable to determine default kernel for MACHINE [$MACHINE]"
353 usage
354 fi 335 fi
355fi 336fi
356# KERNEL is now set for all cases 337# KERNEL is now set for all cases
@@ -359,8 +340,7 @@ if [ -z "$FSTYPE" ]; then
359 eval FSTYPE=\$${machine2}_DEFAULT_FSTYPE 340 eval FSTYPE=\$${machine2}_DEFAULT_FSTYPE
360 341
361 if [ -z "$FSTYPE" ]; then 342 if [ -z "$FSTYPE" ]; then
362 echo "Error: Unable to determine default fstype for MACHINE [$MACHINE]" 343 error "Unable to determine default fstype for MACHINE [$MACHINE]"
363 usage
364 fi 344 fi
365fi 345fi
366 346
@@ -381,8 +361,7 @@ if [ -z "$ROOTFS" ]; then
381 findimage $T $MACHINE $FSTYPE 361 findimage $T $MACHINE $FSTYPE
382 362
383 if [ -z "$ROOTFS" ]; then 363 if [ -z "$ROOTFS" ]; then
384 echo "Error: Unable to determine default rootfs for MACHINE [$MACHINE]" 364 error "Unable to determine default rootfs for MACHINE [$MACHINE]"
385 usage
386 fi 365 fi
387fi 366fi
388# ROOTFS is now set for all cases 367# ROOTFS is now set for all cases