Package: autopkgtest
Version: 5.28
Severity: normal
X-Debbugs-Cc: isaac@is.having.coffee

I want to pass additional kernel command line arguments to QEMU using the 
"-append" argument (the image is being booted with "-kernel" and "-initrd", so 
I cannot pass additional arguments using the bootloader), using the 
"--qemu-option" argument. E.g:

    autopkgtest bash -- qemu --qemu-options "-append 'root=/dev/vda 
init=/sbin/init plus additional parameters' -kernel /boot/vmlinuz -initrd 
/boot/initrd.img" --boot none image.img

This should result in the command line option "-append 'root=/dev/vda 
init=/sbin/init plus additional parameters'" being added to QEMU.

However, the value passed to "--qemu-option" is cut up into individual 
arguments using the Python function split() 
("qemu_options=args.qemu_options.split()" in autopkgtest-virt-qemu). This 
causes the quoted section to be ignored and split up into additional arguments 
(irrelevant output removed):

    autopkgtest-virt-qemu: DBG: full qemu command-line: ['qemu-system-aarch64', 
... '-append', "'root=/dev/vda", 'init=/sbin/init', 'plus', 'additional', 
"parameters'", '-kernel', '/boot/vmlinuz', '-initrd', '/boot/initrd.img']

Each individual element of the "-append" argument is interpreted as an 
individual argument which is then additionally passed to qemu-system, as 
opposed to just being a single argument.

The output should look more like this:

    autopkgtest-virt-qemu: DBG: full qemu command-line: ['qemu-system-aarch64', 
... '-append', 'root=/dev/vda init=/sbin/init plus additional parameters', 
'-kernel', '/boot/vmlinuz', '-initrd', '/boot/initrd.img']


-- System Information:
Debian Release: 12.10
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 6.12.12+bpo-amd64 (SMP w/28 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_WARN, TAINT_OOT_MODULE, 
TAINT_UNSIGNED_MODULE
Locale: LANG=en_NZ.UTF-8, LC_CTYPE=en_NZ.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages autopkgtest depends on:
ii  apt-utils       2.6.1
ii  libdpkg-perl    1.21.22
ii  procps          2:4.0.2-3
ii  python3         3.11.2-1+b1
ii  python3-debian  0.1.49

Versions of packages autopkgtest recommends:
ii  autodep8  0.28
ii  fakeroot  1.31-1.2

Versions of packages autopkgtest suggests:
ii  docker.io            20.10.24+dfsg1-1+deb12u1
pn  fakemachine          <none>
pn  lxc                  <none>
pn  lxd                  <none>
ii  ovmf                 2022.11-6+deb12u2
pn  ovmf-ia32            <none>
pn  podman               <none>
ii  python3-distro-info  1.5+deb12u1
ii  qemu-efi-aarch64     2022.11-6+deb12u2
ii  qemu-efi-arm         2022.11-6+deb12u2
ii  qemu-system          1:7.2+dfsg-7+deb12u12
ii  qemu-utils           1:7.2+dfsg-7+deb12u12
ii  schroot              1.6.13-3+b2
ii  util-linux           2.38.1-5+deb12u3
ii  vmdb2                0.27+really.0.26-1+deb12u1
ii  zerofree             1.1.1-1

-- no debconf information

Reply via email to