Message ID | 20220304080349.4186067-1-Srinuvasan_A@mentor.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [v2] start-qemu.sh: Remove BOOT_FILES variable and call qemu directly in secure,swupdate and normal path | expand |
On 04.03.22 09:03, 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 > 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 | 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
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} "$@"