[OE-core] [PATCH][fido] runqemu: add support to boot arm64 qemu target from NFS

Joshua Lock joshua.lock at collabora.co.uk
Tue Jun 16 07:07:50 UTC 2015


On 15/06/15 17:56, Jagadeesh Krishnanjanappa wrote:
> Ping.


Is this change intended for fido or master? Usually fixes like this 
would go into master first and then be backported to the stable branch.

Regards,

Joshua

> Regards,
> Jagadeesh
>
> On Tue, Jun 9, 2015 at 10:18 AM, Jagadeesh Krishnanjanappa
> <jkrishnanjanappa at mvista.com <mailto:jkrishnanjanappa at mvista.com>> wrote:
>
>     The other changes include,
>     runqemu - fix MACHINE type being detected as qemuarm when qemuarm64
>     kernel
>                image name is given.
>
>     runqemu-internal - Added console=ttyAMA0,115200 as one of the boot
>     parameters
>                         for qemuarm, in order to print bootlog messages
>     on the
>                         console.
>
>                       - Use "-nographic" option only if "serial" option
>     is not
>                         specified. Otherwise we get below error when
>                         'runqemu <kernel_image> <rootfs_image> serial'
>     is executed,
>
>     (snip)
>     QEMU 2.2.0 monitor - type 'help' for more information
>     (qemu) qemu-system-aarch64: -serial stdio: cannot use stdio by
>     multiple character devices
>     -- CUT --
>
>     qemuarm64 NFS booting has been tested successfully on Ubuntu 14.04 host.
>
>     Signed-off-by: Jagadeesh Krishnanjanappa
>     <jkrishnanjanappa at mvista.com <mailto:jkrishnanjanappa at mvista.com>>
>     ---
>       scripts/runqemu          |  4 ++--
>       scripts/runqemu-internal | 20 +++++++++++++++-----
>       2 files changed, 17 insertions(+), 7 deletions(-)
>
>     diff --git a/scripts/runqemu b/scripts/runqemu
>     index 84ece4d..09c507d 100755
>     --- a/scripts/runqemu
>     +++ b/scripts/runqemu
>     @@ -232,13 +232,13 @@ fi
>
>       if [ -z "$MACHINE" ]; then
>           if [ "x$FSTYPE" = "xvmdk" ]; then
>     -        MACHINE=`basename $VM | sed -n
>     's/.*\(qemux86-64\|qemux86\|qemuarm\|qemumips64\|qemumips\|qemuppc\|qemush4\).*/\1/p'`
>     +        MACHINE=`basename $VM | sed -n
>     's/.*\(qemux86-64\|qemux86\|qemuarm64\|qemuarm\|qemumips64\|qemumips\|qemuppc\|qemush4\).*/\1/p'`
>               if [ -z "$MACHINE" ]; then
>                   error "Unable to set MACHINE from vmdk filename [$VM]"
>               fi
>               echo "Set MACHINE to [$MACHINE] based on vmdk [$VM]"
>           else
>     -        MACHINE=`basename $KERNEL | sed -n
>     's/.*\(qemux86-64\|qemux86\|qemuarm\|qemumips64\|qemumips\|qemuppc\|qemush4\).*/\1/p'`
>     +        MACHINE=`basename $KERNEL | sed -n
>     's/.*\(qemux86-64\|qemux86\|qemuarm64\|qemuarm\|qemumips64\|qemumips\|qemuppc\|qemush4\).*/\1/p'`
>               if [ -z "$MACHINE" ]; then
>                   error "Unable to set MACHINE from kernel filename
>     [$KERNEL]"
>               fi
>     diff --git a/scripts/runqemu-internal b/scripts/runqemu-internal
>     index 2db5566..e346c64 100755
>     --- a/scripts/runqemu-internal
>     +++ b/scripts/runqemu-internal
>     @@ -275,9 +275,6 @@ else
>
>               KERNCMDLINE="mem=$QEMU_MEMORY"
>               QEMU_UI_OPTIONS="-show-cursor -usb -usbdevice wacom-tablet"
>     -        if [ $MACHINE = 'qemuarm64' ]; then
>     -            QEMU_UI_OPTIONS="-nographic"
>     -        fi
>
>               NFS_INSTANCE=`echo $TAP | sed 's/tap//'`
>               export NFS_INSTANCE
>     @@ -368,7 +365,7 @@ if [ "$MACHINE" = "qemuarm" -o "$MACHINE" =
>     "qemuarmv6" -o "$MACHINE" = "qemuarm
>                   cleanup
>                   return 1
>               fi
>     -        KERNCMDLINE="root=/dev/nfs
>     nfsroot=$NFS_SERVER:$NFS_DIR,$UNFS_OPTS rw $KERNEL_NETWORK_CMD
>     mem=$QEMU_MEMORY"
>     +        KERNCMDLINE="root=/dev/nfs
>     nfsroot=$NFS_SERVER:$NFS_DIR,$UNFS_OPTS rw console=ttyAMA0,115200
>     $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY"
>               QEMUOPTIONS="$QEMU_NETWORK_CMD -M ${MACHINE_SUBTYPE}
>     --no-reboot $QEMU_UI_OPTIONS"
>           fi
>           if [ "$MACHINE" = "qemuarmv6" ]; then
>     @@ -383,12 +380,25 @@ if [ "$MACHINE" = "qemuarm64" ]; then
>           QEMU=qemu-system-aarch64
>
>           export QEMU_AUDIO_DRV="none"
>     -    QEMU_UI_OPTIONS="$QEMU_UI_OPTIONS"
>     +    if [ "x$SERIALSTDIO" = "x" ] ; then
>     +        QEMU_UI_OPTIONS="-nographic"
>     +    else
>     +        QEMU_UI_OPTIONS=""
>     +    fi
>           if [ "${FSTYPE:0:3}" = "ext" -o "$FSTYPE" = "btrfs" ]; then
>               KERNCMDLINE="root=/dev/vda rw console=ttyAMA0,38400
>     mem=$QEMU_MEMORY highres=off $KERNEL_NETWORK_CMD"
>               # qemu-system-aarch64 only support '-machine virt -cpu
>     cortex-a57' for now
>               QEMUOPTIONS="$QEMU_NETWORK_CMD -machine virt -cpu
>     cortex-a57 $ROOTFS_OPTIONS $QEMU_UI_OPTIONS"
>           fi
>     +    if [ "$FSTYPE" = "nfs" ]; then
>     +        if [ "$NFS_SERVER" = "192.168.7.1" -a ! -d "$NFS_DIR" ]; then
>     +            echo "Error: NFS mount point $ROOTFS doesn't exist"
>     +            cleanup
>     +            return 1
>     +        fi
>     +        KERNCMDLINE="root=/dev/nfs
>     nfsroot=$NFS_SERVER:$NFS_DIR,$UNFS_OPTS rw console=ttyAMA0,38400
>     mem=$QEMU_MEMORY highres=off $KERNEL_NETWORK_CMD"
>     +        QEMUOPTIONS="$QEMU_NETWORK_CMD -machine virt -cpu
>     cortex-a57 $QEMU_UI_OPTIONS"
>     +    fi
>       fi
>
>
>     --
>     1.8.2.3
>
>
>
>




More information about the Openembedded-core mailing list