[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