On Fri, 28 Mar 2025 16:28:02 +0300 Michael Tokarev <m...@tls.msk.ru> wrote: > Package: ipxe-qemu > Version: 1.21.1+git20250317.42a29d56+dfsg-1 > Severity: important > X-Debbugs-Cc: pkg-qemu-de...@lists.alioth.debian.org > > Hi! > > Thank you for providing sane EFI PXE ROMs - this is much > appreciated. > > Unfortunatly, there's something wrong with these ROMs: > they fail to boot entirely in EFI mode. > > qemu-system-x86_64 -netdev user,id=n \ > -device virtio-net-pci,netdev=n,romfile=deb12.rom \ > -boot n -bios /usr/share/qemu/OVMF.fd -nographic > > where deb12.rom is a copy of /usr/lib/ipxe/qemu/efi-virtio.rom. > This works fine and boots into ipxe rom. However, when the > romfile is replaced with deb13.rom (/usr/share/qemu/efi-virtio.rom > from ipxe-qemu in trixie), it just drops into EFI shell, without > trying to boot from the ipxe device.
Which version of OVMF.fd is used here? And can you please also verify if the ipxe rom loads by using entering the firmware configuration utility and selecting ``Device Manager" -> ``Network Device List" -> ``MAC: xxxx" -> ``iPXExxxxxx" If iPXE shows up in the menu, then the problem is the missing of randomness, `-device virtio-rng-pci` should be added to the qemu command-line and everything should be okay. > > The same happens with e1000 device as well (with the proper > ROMs for this device). > > Can you take a look please? The EFI ROMs are tested during the CI process using the following command: qemu-system-x86_64 -cpu kvm64 -machine pc -bios OVMF.fd \ -smp cpus=1,cores=1,sockets=1 -m 1G \ -chardev stdio,mux=on,id=char0 \ -nographic -monitor none -serial chardev:char0 \ -device virtio-rng-pci \ -netdev user,id=net0 \ -device <nic-model>,netdev=net0,id=net0,romfile="fw_file",bootindex=1 > > Why do we need ipxe EFI ROMs, while EDK2 has built-in PXE ROMs > for some devices? The thing is that ipxe ROMs has more features > than EDK2 ROMs, in particular, they support some scripting which > is used in some environments. Currently, such scripting is > obviously broken in trixie. It seems that you are expecting the iPXE stack in the ROMs, i.e. to be able to execute iPXE scripts, which is not actually intended usage. The ROMs for EFI boot only provides the firmware with the driver of the virtual NIC from iPXE, without the iPXE stack. The upper PXE stack is from the firmware. So if everything works as intended, you are expected to see ``>>Start PXE over IPv4." instead of ``iPXE initialising devices..." > EDK2 PXE has another issue as well, - it requires some source > of randomness. So it works with -cpu host, or -device virtio-rng, > but does not load without. > > Thanks, > > /mjt > >