From 03ef61ed189264a75adbaf32644a80568b410b9b Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 16 Mar 2011 20:20:24 -0700 Subject: scripts/poky-qemu-internal: Pass -m always on commandline There is a nasty bug in qemu 0.14.0 where it over writes device memory if the default sizes was not specified on commandline. It can be worked around by this patch. I also simplified the memory size calculation logic a bit so we append 'M' to QEMU_MEMORY at the very end instead of sed'ing it afterwards Signed-off-by: Khem Raj --- scripts/poky-qemu-internal | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) (limited to 'scripts') diff --git a/scripts/poky-qemu-internal b/scripts/poky-qemu-internal index 82ef26594..067c90908 100755 --- a/scripts/poky-qemu-internal +++ b/scripts/poky-qemu-internal @@ -40,40 +40,36 @@ 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 +else case "$MACHINE" in "qemux86") - QEMU_MEMORY="128M" + mem_size=128 ;; "qemux86-64") - QEMU_MEMORY="128M" + mem_size=128 ;; "qemuarm") - QEMU_MEMORY="128M" + mem_size=128 ;; "qemumips") - QEMU_MEMORY="128M" + mem_size=128 ;; "qemuppc") - QEMU_MEMORY="128M" + mem_size=128 ;; *) - QEMU_MEMORY="64M" + mem_size=64 ;; esac fi +# QEMU_MEMORY has 'M' appended to mem_size +QEMU_MEMORY="$mem_size"M + # Bug 433: qemuarm cannot use > 128 MB RAM if [ "$MACHINE" = "qemuarm" ]; then - RAM=`echo $QEMU_MEMORY | sed 's/M$//'` - if [[ -z "$RAM" || $RAM -gt 128 ]]; then + if [[ -z "$mem_size" || $mem_size -gt 128 ]]; then echo "WARNING: qemuarm does not support > 128M of RAM." echo "Changing QEMU_MEMORY to default of 128M." QEMU_MEMORY="128M" @@ -81,6 +77,12 @@ if [ "$MACHINE" = "qemuarm" ]; then fi fi +# We need to specify -m to overcome a bug in qemu 0.14.0 +# https://bugs.launchpad.net/ubuntu/+source/qemu-kvm/+bug/584480 + +if [ -z "$mem_set" ] ; then + SCRIPT_QEMU_EXTRA_OPT="$SCRIPT_QEMU_EXTRA_OPT -m $mem_size" +fi # This file is created when poky-gen-tapdevs creates a bank of tap # devices, indicating that the user should not bring up new ones using # sudo. -- cgit v1.2.3