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

Jagadeesh Krishnanjanappa jkrishnanjanappa at mvista.com
Mon Jun 15 16:56:40 UTC 2015


Ping.

Regards,
Jagadeesh

On Tue, Jun 9, 2015 at 10:18 AM, Jagadeesh Krishnanjanappa <
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>
> ---
>  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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20150615/2c88e72c/attachment-0002.html>


More information about the Openembedded-core mailing list