[syslinux] EFI: HP + syslinux = crash [ brown paper bag update ]

Oscar Roozen
2015-08-07T14:03:13Z

>> Unfortunately I can't test anymore until Friday. Maybe gnu-efi got
>> updated?  I seem to remember seeing a shell script pulling in the
>> newest version during compilation...
>
> It's version locked to a certain commit ID.

Okay, so that's good. No worries there.

=== preamble ==
In this mail I talk about two different commits. To identify them
furhter, they are:

|  commit 8702009fc7a6689432d17d4ea05d9c878452c57a
|  Author: Gene Cumm <gene.cumm at gmail.com>
|  Date:   Sun Jul 19 08:09:10 2015 -0400

This is the "latest and greatest" from the (offical?) git repository
on
git://repo.or.cz/syslinux.git.

|  commit e466d2498604c8eea055a8e98284d65311073b39
|  Author: Patrick Masotta <masottaus at yahoo.com>
|  Date:   Sat Aug 1 07:40:16 2015 -0400

This is (unoffical?) repository on git://github.com/geneC/syslinux.git
to which I was referred by Gene in this mail:

   http://www.syslinux.org/archives/2015-August/023893.html

This commit solves the multinic bug that affected my test machine.

=== end ==
I made some progress on the crashing issue. You all were right, they are
not related.

After the fix for multinic, vesalinux was the culprit. I probably messed
up by mixing various versions of *.c32 modules, but right now commit
e466d24 only crashes if I use vesamenu.c32 AND use a PNG for a
background. If I comment out the PNG, the system boots fine. (ie. it
really loads and runs the intended vmlinuz and initrd).

Now, there was this mystery why commit 8702009 crashed like it did the
whole week and now doesn't crash anymore after I added some debugging
code. Well, removing this debugging code did not make the crashes come
back. It still did the same: it could not load ldlinux.e64 and it
gracefully exited back to the firmware while reporting "Failed to load
ldlinux.e64".  (The firmware then immediately clears the screen, so a
human being without a capturing tool can't read it, but that's another
story)

So.. something else must be the problem. Did I change something else in
between?  Absolutely! I commented out this line in dhcpd.conf:

  option pxelinux.pathprefix
"http://10.X.255.254:8080/tftpboot/efi64/";

Put it back in => *crash*

Making the path very short ("http://x/") => *crash*

But when I leave out the http part => graceful exit.

Attached is a patch that works against both commits so you can see where
the extra debugging output comes from. I also attach this debugging
output from ILO4 leading up to the crash.

The good news is that e466d24 is not affected by this. It will nicely
load ldlinux.e64 and *.c32 over http using this prefix.

So.. my conclusion for now:

8702009 crashed because of some http pathprefix bug
8702009 contains the multinic bug so wouldn't work anyway
e466d24 solves the mutlinic bug AND the http pathprefix bug
e466d24 kept crashing on me because I mixed up libraries from 8702009
e466d24 still has an issue with png's in vesalinux causing crashes

Is it time to update the official repository yet? ;-)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ipmi-crash.log
Type: text/x-log
Size: 3962 bytes
Desc: not available
URL:
<http://www.zytor.com/pipermail/syslinux/attachments/20150807/1e5d55d6/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: my-debug-pathes.diff
Type: text/x-patch
Size: 9190 bytes
Desc: not available
URL:
<http://www.zytor.com/pipermail/syslinux/attachments/20150807/1e5d55d6/attachment-0001.bin>