Message ID | 20220303144517.4182918-1-Srinuvasan_A@mentor.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | start-qemu.sh: Remove BOOT_FILES variable and call qemu directly in secure,swupdate and normal path | expand |
On 03.03.22 15:45, Srinuvasan A wrote: > From: Srinuvasan A <srinuvasan_a@mentor.com> > > 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 "Hence maintaining..." > 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@mentor.com> > --- > 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} "$@" Functionally fine, but your indention is not consistent (mostly tabs, not not always). When you do a v2, you could use that chance and factor out the common arguments into a variable (-m 1G -serial mon:stdio -netdev user,id=net). Jan
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} "$@"