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

Reply via email to