Hi Christian, thanks again for paying attention!

>The question is: if upstream states that i386 is supported, what can we
>do to enable this functionality in this particular package?

Building IA32-capable OVMF is REALLY EASY in 2020.

$ mkdir ovmf-ia32
$ cd ovmf-ia32
$ git clone https://github.com/tianocore/edk2.git
$ cd edk2
$ git submodule update --init
$ ./OvmfPkg/build.sh --enable-flash -a IA32
$ cp Build/OvmfIa32/DEBUG_GCC5/FV/OVMF_* /tmp

The above procedure builds *IA32-only* OVMF_CODE.fd and OVMF_VARS.fd.
I think Debian ovmf package has x86-64-only OVMF,
and one can probably build IA32+x86-64 OVMF by 
"build.sh --enable-flash -a IA32 -a X64" (I have not checked this).

I have verified my own OVMF as follows:
(The modified autopkgtest-virt-qemu loads OVMF from /tmp)

#  autopkgtest -u debci -B bash -- qemu --debug --efi --show-boot -q 
qemu-system-i386 /var/lib/debci/qemu/sid-i386.img 
autopkgtest [22:25:23]: starting date: 2020-11-02
autopkgtest [22:25:23]: version 5.15
autopkgtest [22:25:23]: host bullseye-gnome; command line: /usr/bin/autopkgtest 
-u debci -B bash -- qemu --debug --efi --show-boot -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.typ9z_04/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.typ9z_04/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.typ9z_04/monitor,server,nowait', '-serial', 
'unix:/tmp/autopkgtest-qemu.typ9z_04/ttyS0,server,nowait', '-serial', 
'unix:/tmp/autopkgtest-qemu.typ9z_04/ttyS1,server,nowait', '-virtfs', 
'local,id=autopkgtest,path=/tmp/autopkgtest-qemu.typ9z_04/shared,security_model=none,mount_tag=autopkgtest',
 '-drive', 
'file=/tmp/autopkgtest-qemu.typ9z_04/overlay.img,cache=unsafe,if=virtio,index=0,format=qcow2',
 '-drive', 'if=pflash,format=raw,read-only,file=/tmp/OVMF_CODE.fd', '-drive', 
'if=pflash,format=raw,file=/tmp/autopkgtest-qemu.typ9z_04/efivars.fd', 
'-enable-kvm']
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-686 ...
Loading initial ramdisk ...
[    0.000000] Linux version 5.9.0-1-686 (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)
[    0.000000] x86/fpu: x87 FPU will use FXSAVE
[    0.000000] BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009ffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x0000000000805fff] usable
[    0.000000] BIOS-e820: [mem 0x0000000000806000-0x0000000000807fff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x0000000000808000-0x000000000080ffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000000810000-0x00000000008fffff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x0000000000900000-0x000000003fb79fff] usable
[    0.000000] BIOS-e820: [mem 0x000000003fb7a000-0x000000003fc79fff] reserved
[    0.000000] BIOS-e820: [mem 0x000000003fc7a000-0x000000003fd79fff] type 20
[    0.000000] BIOS-e820: [mem 0x000000003fd7a000-0x000000003fdf9fff] reserved
[    0.000000] BIOS-e820: [mem 0x000000003fdfa000-0x000000003fe09fff] ACPI data
[    0.000000] BIOS-e820: [mem 0x000000003fe0a000-0x000000003fe89fff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x000000003fe8a000-0x000000003fef3fff] usable
[    0.000000] BIOS-e820: [mem 0x000000003fef4000-0x000000003ff77fff] reserved
[    0.000000] BIOS-e820: [mem 0x000000003ff78000-0x000000003fffffff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000ffc00000-0x00000000ffffffff] reserved
[    0.000000] Notice: NX (Execute Disable) protection missing in CPU!
[    0.000000] efi: EFI v2.70 by EDK II
[    0.000000] efi: SMBIOS=0x3fbb9000 ACPI=0x3fe09000 ACPI 2.0=0x3fe09014 
MEMATTR=0x3f0e9010 
[    0.000000] secureboot: Secure boot could not be determined (mode 0)
[    0.000000] SMBIOS 2.8 present.
[    0.000000] DMI: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 0.0.0 
02/06/2015
[    0.000000] Hypervisor detected: KVM
[    0.000000] kvm-clock: Using msrs 4b564d01 and 4b564d00
[    0.000000] kvm-clock: cpu 0, msr eba2001, primary cpu clock
[    0.000000] kvm-clock: using sched offset of 1541514088 cycles

>Looking at #842683, others have attempted to build the 32-bit versions
>and encountered build failures. However, that information is now 2 years
>old -- perhaps upstream has changed in the meantime such that a build is
>now possible.

It is really easy now!!!!

>If the Maintainers are willing to entertain building a package with i386
>support, please count me in as a test volunteer.

I wonder if there is a good reason NOT building IA32 OVMF...
I have no idea about that...

Best regards, Ryutaroh

Reply via email to