[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