On Sun, Mar 20, 2022 at 8:42 AM Martin-Éric Racine <martin-eric.rac...@iki.fi> wrote: > > On Sat, Mar 19, 2022 at 1:59 AM Bernhard Übelacker > <bernha...@mailbox.org> wrote: > > I tried to reproduce the issue with the help of a qemu VM. > > > > That way I found /usr/lib/ipxe/ipxe.lkrn working with specifying > > a pentium2 CPU, but hangs with a pentium. > > > > Similarly I found the version 1.0.0+git-20150424.a25a16d-1 > > does not show this issue, but all newer than this. > > > > And found in [1] a hint that building without > > TIVOLI_VMM_WORKAROUND gives a Debian package that works too. > > And indeed, attaching a debugger to the VM shows it hanging > > always executing an fxsave and iret instruction, PF flag set, > > while TIVOLI_VMM_WORKAROUND would also enable a fxsave instruction. > > > > Therefore at least either using the older package version > > or rebuilding locally with above modification > > might serve as a workaround. > > > > @Martin-Éric: Maybe you can confirm this, > > otherwise my findings might be unrelated. > > @Bernhard: Thanks for the heads up. > > I first tried downgrading to earlier versions found at > <https://deb.debian.org/debian/pool/main/i/ipxe/>. > > 1.0.0+git-20190125.36a4c85-1: Fails to launch as above. > 1.0.0+git-20161027.b991c67-1: Fails to launch as above. > 1.0.0+git-20141004.86285d1-1: Immediately shows me the PXE menu. > > $ find . -name general.h > ./debian/config/general.h > ./src/config/vbox/general.h > ./src/config/general.h > ./src/config/qemu/general.h > ./src/config/cloud/general.h > > $ rgrep TIVOLI_VMM_WORKAROUND > src/config/general.h:#define TIVOLI_VMM_WORKAROUND /* Work > around the Tivoli VMM's garbling of SSE > src/config/qemu/general.h:#undef TIVOLI_VMM_WORKAROUND > src/arch/x86/transitions/librm.S:#ifdef TIVOLI_VMM_WORKAROUND > src/arch/x86/transitions/librm.S:#ifdef TIVOLI_VMM_WORKAROUND > src/arch/x86/transitions/librm.S:#ifdef TIVOLI_VMM_WORKAROUND > > I assume that you meant in <src/config/general.h>? Where and how did > you disable that?
What I did: ********************* diff -Nru ipxe-1.0.0+git-20190125.36a4c85/debian/changelog ipxe-1.0.0+git-20190125.36a4c85/debian/changelog --- ipxe-1.0.0+git-20190125.36a4c85/debian/changelog 2021-02-07 19:25:50.000000000 +0200 +++ ipxe-1.0.0+git-20190125.36a4c85/debian/changelog 2022-03-20 08:44:01.000000000 +0200 @@ -1,3 +1,10 @@ +ipxe (1.0.0+git-20190125.36a4c85-5.2) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * #undef TIVOLI_VMM_WORKAROUND + + -- Martin-Éric Racine <martin-eric.rac...@iki.fi> Sun, 20 Mar 2022 08:44:01 +0200 + ipxe (1.0.0+git-20190125.36a4c85-5.1) unstable; urgency=medium * Non-maintainer upload. diff -Nru ipxe-1.0.0+git-20190125.36a4c85/debian/config/general.h ipxe-1.0.0+git-20190125.36a4c85/debian/config/general.h --- ipxe-1.0.0+git-20190125.36a4c85/debian/config/general.h 2020-02-25 22:45:06.000000000 +0200 +++ ipxe-1.0.0+git-20190125.36a4c85/debian/config/general.h 2022-03-20 08:43:54.000000000 +0200 @@ -3,3 +3,5 @@ #define NET_PROTO_IPV6 #define DOWNLOAD_PROTO_NFS + +#undef TIVOLI_VMM_WORKAROUND ********************* The resulting binary immediately shows me the PXE menu. Meanwhile, iPXE itself is bugged. It clears the screen before displaying the PXE menu, and it only displays the first 2 options, for some reason all the way at the bottom of the screen. When I tap on DOWN-ARROW to show more menu options, it starts repeating the last menu option. The same issue can be seen on <1.0.0+git-20141004.86285d1-1>, so that's probably an upstream issue. When booting using the BIOS' build-in PXE support or via GRUB with a self-built gPXE binary, the whole menu is displayed as expected. Martin-Éric