From ae4f5c942ef0561335313d676ff8defc0f0bdbbc Mon Sep 17 00:00:00 2001 From: Liping Ke Date: Thu, 16 Dec 2010 01:45:30 +0800 Subject: Add extra parameters options for poky-qemu scripts In order to support qemu user's flexibility requirement, we add extra parameter options, user can add extra params such as "<-m 256>" in poky-qemu script command. Signed-off-by: Liping ke --- scripts/poky-qemu | 14 ++++++++++++++ scripts/poky-qemu-internal | 22 ++++++++++++++++++++-- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/scripts/poky-qemu b/scripts/poky-qemu index 04349879c5..313248ff49 100755 --- a/scripts/poky-qemu +++ b/scripts/poky-qemu @@ -29,11 +29,14 @@ usage() { echo " Additional QEMU command-line options can be passed with:" echo " nographic - disables video console" echo " serial - enables a serial console on /dev/ttyS0" + echo " kvm - enables kvm" + echo " \"\" - enables extra qemu options, excluding serial and kvm" echo "" echo "Examples:" echo " $MYNAME qemuarm" echo " $MYNAME qemux86-64 poky-image-sato ext3" echo " $MYNAME path/to/bzImage-qemux86.bin path/to/nfsrootdir/ serial" + echo " $MYNAME qemux86 \"<-m 256>\"" exit 1 } @@ -47,6 +50,7 @@ FSTYPE="" ROOTFS="" LAZY_ROOTFS="" SCRIPT_QEMU_OPT="" +SCRIPT_QEMU_EXTRA_OPT="" SCRIPT_KERNEL_OPT="" TMPDIR="" @@ -129,6 +133,16 @@ while [ $i -le $# ]; do KVM_ENABLED="yes" KVM_CAPABLE=`grep 'vmx\|smx' /proc/cpuinfo` ;; + \<*\>) + SCRIPT_QEMU_EXTRA_OPT=$arg + serial_option=`expr "$SCRIPT_QEMU_EXTRA_OPT" : '.*\(-serial\)'` + kvm_option=`expr "$SCRIPT_QEMU_EXTRA_OPT" : '.*\(-enable-kvm\)'` + echo "$kvm_option" + if [[ ! -z "$serial_option" || ! -z "$kvm_option" ]]; then + echo "Error: Please use serial or kvm params instead!" + usage + fi + ;; *) # A directory name is an nfs rootfs if [ -d "$arg" ]; then diff --git a/scripts/poky-qemu-internal b/scripts/poky-qemu-internal index ca2511a024..5e74169bdf 100755 --- a/scripts/poky-qemu-internal +++ b/scripts/poky-qemu-internal @@ -29,6 +29,23 @@ # ROOTFS - the disk image file to use # + +mem_size=-1 + +#Get rid of <> and get the contents of extra qemu running params +SCRIPT_QEMU_EXTRA_OPT=`echo $SCRIPT_QEMU_EXTRA_OPT | sed -e 's///'` +#if user set qemu memory, eg: -m 256 in qemu extra params, we need to do some +# validation check +mem_set=`expr "$SCRIPT_QEMU_EXTRA_OPT" : '.*\(-m[[:space:]] *[0-9]*\)'` +if [ ! -z "$mem_set" ] ; then +#Get memory setting size from user input + mem_size=`echo $mem_set | sed 's/-m[[:space:]] *//'` +fi + +if [ $mem_size -gt 0 ]; then + QEMU_MEMORY="$mem_size"M +fi + if [ -z "$QEMU_MEMORY" ]; then case "$MACHINE" in "qemux86") @@ -60,6 +77,7 @@ if [ "$MACHINE" = "qemuarm" ]; then echo "WARNING: qemuarm does not support > 128M of RAM." echo "*** Changing QEMU_MEMORY to default of 128M ***" QEMU_MEMORY="128M" + SCRIPT_QEMU_EXTRA_OPT=`echo $SCRIPT_QEMU_EXTRA_OPT | sed -e "s/$mem_set/-m 128/" ` fi fi @@ -427,8 +445,8 @@ fi echo "Running $QEMU..." # -no-reboot is a mandatory option - see bug #100 -echo $QEMUBIN -kernel $KERNEL $QEMUOPTIONS $SERIALOPTS -no-reboot $SCRIPT_QEMU_CMDLINE_OPT --append '"'$KERNCMDLINE $SCRIPT_KERNEL_OPT'"' -$QEMUBIN -kernel $KERNEL $QEMUOPTIONS $SERIALOPTS -no-reboot $SCRIPT_QEMU_OPT --append "$KERNCMDLINE $SCRIPT_KERNEL_OPT" || /bin/true +echo $QEMUBIN -kernel $KERNEL $QEMUOPTIONS $SERIALOPTS -no-reboot $SCRIPT_QEMU_OPT $SCRIPT_QEMU_EXTRA_OPT --append '"'$KERNCMDLINE $SCRIPT_KERNEL_OPT'"' +$QEMUBIN -kernel $KERNEL $QEMUOPTIONS $SERIALOPTS -no-reboot $SCRIPT_QEMU_OPT $SCRIPT_QEMU_EXTRA_OPT --append "$KERNCMDLINE $SCRIPT_KERNEL_OPT" || /bin/true cleanup -- cgit v1.2.3