[PATCH] start-qemu.sh: Remove BOOT_FILES variable and call qemu directly in secure,swupdate and normal path


Srinuvasan A
 

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 | 23 ++++++++++++++---------
1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/start-qemu.sh b/start-qemu.sh
index a7e0588..d19cd98 100755
--- a/start-qemu.sh
+++ b/start-qemu.sh
@@ -121,22 +121,27 @@ 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} \
+ -m 1G -serial mon:stdio -netdev user,id=net \
+ -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_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} \
+ -m 1G -serial mon:stdio -netdev user,id=net \
+ -drive file=${IMAGE_PREFIX}.wic.img,discard=unmap,if=none,id=disk,format=raw \
+ -bios OVMF.fd ${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} \
+ -m 1G -serial mon:stdio -netdev user,id=net \
+ -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_EXTRA_ARGS} "$@"
fi
-${QEMU_PATH}${QEMU} \
- -m 1G -serial mon:stdio -netdev user,id=net \
- ${BOOT_FILES} ${QEMU_EXTRA_ARGS} "$@"
--
2.25.1

Join {cip-dev@lists.cip-project.org to automatically receive all group messages.