Package: ovmf
Version: 2020.08-1
Severity: important
X-Debbugs-Cc: c...@debian.org
Control: block 973522 by -1

Dear Maintainer,

ovmf works fine with qemu-system-x86_64 with KVM,
but it does not work with qemu-system-i386 with or without KVM.
The upstream README
https://github.com/tianocore/edk2/blob/master/OvmfPkg/README
says it works with qemu-system-i386.

I am seeing if autopkgtest-virt-qemu works with UEFI booting.
The following is a precedure to reproduce this symptom.
The QEMU package version is
qemu-system-x86 1:5.1+dfsg-4+b1

(1) Prepair QEMU i386 UEFI autopkg testbed according to
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=973522

(2) With the attached small modification to autopkgtest-virt-qemu
for disabling KVM (as the upstream README suggests),


root@bullseye-gnome:~# autopkgtest -u debci -B bash -- qemu --show-boot --debug 
--efi -q qemu-system-i386 /var/lib/debci/qemu/sid-i386.img 
autopkgtest [09:04:15]: starting date: 2020-11-02
autopkgtest [09:04:15]: version 5.15
autopkgtest [09:04:15]: host bullseye-gnome; command line: /usr/bin/autopkgtest 
-u debci -B bash -- qemu --show-boot --debug --efi -q qemu-system-i386 
/var/lib/debci/qemu/sid-i386.img
autopkgtest-virt-qemu: DBG: executing open
autopkgtest-virt-qemu: DBG: execute-timeout: qemu-img info --output=json 
/var/lib/debci/qemu/sid-i386.img
autopkgtest-virt-qemu: DBG: Creating temporary overlay image in 
/tmp/autopkgtest-qemu.xlub05tu/overlay.img
autopkgtest-virt-qemu: DBG: execute-timeout: qemu-img create -f qcow2 -F qcow2 
-b /var/lib/debci/qemu/sid-i386.img /tmp/autopkgtest-qemu.xlub05tu/overlay.img
autopkgtest-virt-qemu: DBG: find_free_port: trying 10022
autopkgtest-virt-qemu: DBG: find_free_port: 10022 is free
autopkgtest-virt-qemu: DBG: Forwarding local port 10022 to VM ssh port 22
autopkgtest-virt-qemu: DBG: ['qemu-system-i386', '-m', '1024', '-smp', '1', 
'-nographic', '-net', 'nic,model=virtio', '-net', 
'user,hostfwd=tcp:127.0.0.1:10022-:22', '-object', 
'rng-random,filename=/dev/urandom,id=rng0', '-device', 
'virtio-rng-pci,rng=rng0,id=rng-device0', '-monitor', 
'unix:/tmp/autopkgtest-qemu.xlub05tu/monitor,server,nowait', '-serial', 
'unix:/tmp/autopkgtest-qemu.xlub05tu/ttyS0,server,nowait', '-serial', 
'unix:/tmp/autopkgtest-qemu.xlub05tu/ttyS1,server,nowait', '-virtfs', 
'local,id=autopkgtest,path=/tmp/autopkgtest-qemu.xlub05tu/shared,security_model=none,mount_tag=autopkgtest',
 '-drive', 
'file=/tmp/autopkgtest-qemu.xlub05tu/overlay.img,cache=unsafe,if=virtio,index=0,format=qcow2',
 '-drive', 'if=pflash,format=raw,read-only,file=/usr/share/OVMF/OVMF_CODE.fd', 
'-drive', 'if=pflash,format=raw,file=/tmp/autopkgtest-qemu.xlub05tu/efivars.fd']
autopkgtest-virt-qemu: DBG: expect: " login: "
qemu-system-i386: terminating on signal 15 from pid 1806 (/usr/bin/python3)
autopkgtest-virt-qemu: DBG: cleanup...
<VirtSubproc>: failure: timed out waiting for "login prompt on ttyS0"
autopkgtest [09:05:15]: ERROR: testbed failure: cannot send to testbed: [Errno 
32] Broken pipe

The testbed does not boot!
On the other hand, amd64 testbed works fine with KVM and UEFI as below:

root@bullseye-gnome:~# autopkgtest -u debci -B bash -- qemu --show-boot --debug 
--efi -q qemu-system-x86_64 /var/lib/debci/qemu/sid-amd64.img 
autopkgtest [09:09:15]: starting date: 2020-11-02
autopkgtest [09:09:15]: version 5.15
autopkgtest [09:09:15]: host bullseye-gnome; command line: /usr/bin/autopkgtest 
-u debci -B bash -- qemu --show-boot --debug --efi -q qemu-system-x86_64 
/var/lib/debci/qemu/sid-amd64.img
autopkgtest-virt-qemu: DBG: executing open
autopkgtest-virt-qemu: DBG: execute-timeout: qemu-img info --output=json 
/var/lib/debci/qemu/sid-amd64.img
autopkgtest-virt-qemu: DBG: Creating temporary overlay image in 
/tmp/autopkgtest-qemu.7bc7mend/overlay.img
autopkgtest-virt-qemu: DBG: execute-timeout: qemu-img create -f qcow2 -F qcow2 
-b /var/lib/debci/qemu/sid-amd64.img /tmp/autopkgtest-qemu.7bc7mend/overlay.img
autopkgtest-virt-qemu: DBG: find_free_port: trying 10022
autopkgtest-virt-qemu: DBG: find_free_port: 10022 is free
autopkgtest-virt-qemu: DBG: Forwarding local port 10022 to VM ssh port 22
autopkgtest-virt-qemu: DBG: ['qemu-system-x86_64', '-m', '1024', '-smp', '1', 
'-nographic', '-net', 'nic,model=virtio', '-net', 
'user,hostfwd=tcp:127.0.0.1:10022-:22', '-object', 
'rng-random,filename=/dev/urandom,id=rng0', '-device', 
'virtio-rng-pci,rng=rng0,id=rng-device0', '-monitor', 
'unix:/tmp/autopkgtest-qemu.7bc7mend/monitor,server,nowait', '-serial', 
'unix:/tmp/autopkgtest-qemu.7bc7mend/ttyS0,server,nowait', '-serial', 
'unix:/tmp/autopkgtest-qemu.7bc7mend/ttyS1,server,nowait', '-virtfs', 
'local,id=autopkgtest,path=/tmp/autopkgtest-qemu.7bc7mend/shared,security_model=none,mount_tag=autopkgtest',
 '-drive', 
'file=/tmp/autopkgtest-qemu.7bc7mend/overlay.img,cache=unsafe,if=virtio,index=0,format=qcow2',
 '-drive', 'if=pflash,format=raw,read-only,file=/usr/share/OVMF/OVMF_CODE.fd', 
'-drive', 'if=pflash,format=raw,file=/tmp/autopkgtest-qemu.7bc7mend/efivars.fd']
autopkgtest-virt-qemu: DBG: expect: " login: "
BdsDxe: failed to load Boot0001 "UEFI QEMU DVD-ROM QM00003 " from 
PciRoot(0x0)/Pci(0x1,0x1)/Ata(Secondary,Master,0x0): Not Found
BdsDxe: loading Boot0002 "UEFI Misc Device" from PciRoot(0x0)/Pci(0x6,0x0)
BdsDxe: starting Boot0002 "UEFI Misc Device" from PciRoot(0x0)/Pci(0x6,0x0)
Welcome to GRUB!

  Booting `Debian GNU/Linux'

Loading Linux 5.9.0-1-amd64 ...
Loading initial ramdisk ...
[    0.000000] Linux version 5.9.0-1-amd64 (debian-ker...@lists.debian.org) 
(gcc-10 (Debian 10.2.0-15) 10.2.0, GNU ld (GNU Binutils for Debian) 2.35.1) #1 
SMP Debian 5.9.1-1 (2020-10-17)


Best regards, Ryutaroh Matsumoto


-- System Information:
Debian Release: bullseye/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 5.8.0-1-amd64 (SMP w/12 CPU threads)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

-- no debconf information
--- usr/bin/autopkgtest-virt-qemu-orig  2020-11-01 20:25:24.039639429 +0900
+++ usr/bin/autopkgtest-virt-qemu       2020-11-02 08:58:53.034371157 +0900
@@ -612,7 +612,7 @@
         argv.append('-drive')
         argv.append('file=%s,if=virtio,index=%i,readonly' % (image, i + 1))
 
-    if os.path.exists('/dev/kvm'):
+    if os.path.exists('/dev/kvm') and not 'qemu-system-i386' in 
args.qemu_command and not args.efi:
         argv.append('-enable-kvm')
         # Enable nested KVM by default on x86_64
         if os.uname()[4] == 'x86_64' and args.qemu_command == qemu_cmd_default 
and \
@@ -623,6 +623,7 @@
     if args.qemu_options:
         argv.extend(args.qemu_options.split())
 
+    adtlog.debug(str(argv))
     p_qemu = subprocess.Popen(argv)
 
     try:

Reply via email to