Hi Laszlo, On Wed, Jun 23, 2021 at 12:13 AM Laszlo Ersek <ler...@redhat.com> wrote:
> On 06/18/21 15:06, Bin Meng wrote: > > On Fri, Jun 18, 2021 at 7:46 PM Gerd Hoffmann <kra...@redhat.com> wrote: > > > >> On Fri, Jun 18, 2021 at 06:46:57PM +0800, Bin Meng wrote: > >>> Hi Laszlo, > >>> > >>> Using the QEMU shipped edk2 bios, for i386, it boots very quickly to > >>> the EFI shell. > >>> > >>> $ qemu-system-i386 -nographic -pflash edk2-i386-code.fd > > Ouch. Don't do this. If you use just one pflash chip, then a unified FD > file is expected in that chip, containing both varstore and firmware > executable. > > Upstream QEMU does not bundle / install unified FD files however. What it > provides are separate executables and varstore *templates*. > > If you don't want to create a permanent variable store file for your VM, > from the template called "edk2-i386-vars.fd", then the minimum command line > is something like this: > > qemu-system-i386 \ > -drive if=pflash,unit=0,format=raw,readonly=on,file=edk2-i386-code.fd \ > -drive if=pflash,unit=1,format=raw,snapshot=on,file=edk2-i386-vars.fd \ > > (Nowadays I should use the "blockdev" syntax instead of "-drive", but I've > not updated my scripts thus far ;)) > Thank you. I suggest we document this in the QEMU documentation [1] > >>> > >>> However with x86_64, it takes a very long time to boot to the EFI > >>> shell. It seems it got stuck in the PXE boot. Any ideas? > >> > >> One year ago ia32 efi netboot support was dropped (and you are the first > >> who noticed 😎 ). > > I certainly noticed: > > http://mid.mail-archive.com/e6078611-789f-027b-bea5-759e02b10eee@redhat.com > > > >> > > > > I guess not many people play with ia32 these days :) > > > > > >> > >> commit 9ed02fbb847277bef88dbe6a677cf3e5f39e5a38 > >> Author: Gerd Hoffmann <kra...@redhat.com> > >> Date: Wed Jul 22 12:24:35 2020 +0200 > >> > >> ipxe: drop ia32 efi roms > >> > >> UEFI on ia32 never really took off. Basically the BIOS -> UEFI > shift > >> came too late, x64 was widespread already, so vendors went from BIOS > >> straight to UEFI on x64. > >> > >> Signed-off-by: Gerd Hoffmann <kra...@redhat.com> > >> > >> > >>> I checked the boot manager, and it seems only 64-bit edk2 bios has > >>> built-in PXE boot while 32-bit does not. > >> > >> It isn't edk2 but the nic boot roms, but yes, lack of pxe support on > >> ia32 is the root cause. > >> > > > > Got it. > > > > > >>> Any idea to speed up this whole PXE boot thing? > >> > >> qemu -nic none ? > >> > > > > Yep this works. Thanks a lot! > > If you need neither NICs nor disks in your guest at all, then "-nic none" > is indeed the simplest solution. > If using NICs in the guest, then we have to adjust the order in the BIOS boot menu? [1] https://qemu.readthedocs.io/en/latest/system/target-i386.html Regards, Bin