On 04.03.22 09:03, Srinuvasan A wrote: From: Srinuvasan A <srinuvasan_a@...>
Broke the normal boot part. Fixed them.
-append takes arguments inside double quotes(""). If we escape and pass the " along with the value the final command would form like what we would expect.
qemu-system-x86_64 .... -append " root=/dev/sda console=ttyS0"
But when the shell parses it, due to how whitespace splitting works for arguments passed via a variable, it parses the first quote(") as argument 1 and root=dev/sda as argument 2 and messing up the command. It should ideally treat the whole " root=/dev/sda console=ttyS0" as a single argument.
Hence Maintaining argument splitting is complex. A simpler one for here is to avoid BOOT_FILES and unrole the actual qemu call with its different kernels into the secure, swupdate and normal path.
Signed-off-by: Srinuvasan A <srinuvasan_a@...> --- start-qemu.sh | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-)
diff --git a/start-qemu.sh b/start-qemu.sh index a7e0588..4105d4e 100755 --- a/start-qemu.sh +++ b/start-qemu.sh @@ -114,6 +114,11 @@ fi shift 1 +QEMU_COMMON_OPTIONS=" \ + -m 1G \ + -serial mon:stdio \ + -netdev user,id=net" + if [ -n "${SECURE_BOOT}" ]; then ovmf_code=${OVMF_CODE:-./build/tmp/deploy/images/qemu-amd64/OVMF/OVMF_CODE_4M.secboot.fd} ovmf_vars=${OVMF_VARS:-./build/tmp/deploy/images/qemu-amd64/OVMF/OVMF_VARS_4M.snakeoil.fd} @@ -121,22 +126,24 @@ if [ -n "${SECURE_BOOT}" ]; then -global ICH9-LPC.disable_s3=1 \ -global isa-fdc.driveA= " - BOOT_FILES="-drive if=pflash,format=raw,unit=0,readonly=on,file=${ovmf_code} \ + ${QEMU_PATH}${QEMU} \ + -drive if=pflash,format=raw,unit=0,readonly=on,file=${ovmf_code} \ -drive if=pflash,format=raw,file=${ovmf_vars} \ - -drive file=${IMAGE_PREFIX}.wic.img,discard=unmap,if=none,id=disk,format=raw" + -drive file=${IMAGE_PREFIX}.wic.img,discard=unmap,if=none,id=disk,format=raw ${QEMU_COMMON_OPTIONS} ${QEMU_EXTRA_ARGS} "$@" + elif [ -n "${SWUPDATE_BOOT}" ]; then - BOOT_FILES="-drive file=${IMAGE_PREFIX}.wic.img,discard=unmap,if=none,id=disk,format=raw \ - -bios OVMF.fd " + ${QEMU_PATH}${QEMU} \ + -drive file=${IMAGE_PREFIX}.wic.img,discard=unmap,if=none,id=disk,format=raw \ + -bios OVMF.fd ${QEMU_COMMON_OPTIONS} ${QEMU_EXTRA_ARGS} "$@" + else IMAGE_FILE=$(ls ${IMAGE_PREFIX}.ext4.img) KERNEL_FILE=$(ls ${IMAGE_PREFIX}-vmlinu* | tail -1) INITRD_FILE=$(ls ${IMAGE_PREFIX}-initrd.img* | tail -1) - BOOT_FILES="-drive file=${IMAGE_FILE},discard=unmap,if=none,id=disk,format=raw \ + ${QEMU_PATH}${QEMU} \ + -drive file=${IMAGE_FILE},discard=unmap,if=none,id=disk,format=raw \ -kernel ${KERNEL_FILE} -append "${KERNEL_CMDLINE}" \ - -initrd ${INITRD_FILE}" + -initrd ${INITRD_FILE} ${QEMU_COMMON_OPTIONS} ${QEMU_EXTRA_ARGS} "$@" fi -${QEMU_PATH}${QEMU} \ - -m 1G -serial mon:stdio -netdev user,id=net \ - ${BOOT_FILES} ${QEMU_EXTRA_ARGS} "$@" Thanks, applied. Further cleanup on top will follow. Jan -- Siemens AG, Technology Competence Center Embedded Linux
|