[syslinux] Chaining to pxelinux.0 6.0.3 from iPXE - ldlinux.c32

Gene Cumm gene.cumm at gmail.com
Thu Sep 24 03:33:25 PDT 2015


On Wed, Sep 23, 2015 at 5:43 PM, Alan Sparks via Syslinux
<syslinux at zytor.com> wrote:
> On 9/23/2015 3:32 PM, Ady via Syslinux wrote:
>>
>>> On 9/23/2015 2:08 PM, Ady via Syslinux wrote:

>>> All this works OK on the menu.c32 in 6.x.  I'm just stuck, since I can't
>>> upgrade because ipxe chainloading won't work in 6.x.  If I could resolve
>>> either way, I'm good.   It's looking like my only fallback position is
>>> go with 6.x and abandon ipxe support...

Although it means another round of testing, you could also consider
lpxelinux.0 which can support HTTP URLs on its own and probably
interacts differently with iPXE.  I am curious about a quantifiable
description of "an odd delay".

>> My guess would be that Gene and others (myself included) would be
>> interested in solving the ldlinux.c32 issue more than anything else
>> (next-server?, proxy?, setting off other nics?, ...).

Agreed.  It's a regression affecting critical functionality (loading
ldlinux.c32) of a core variant (pxelinux.0).

> I'd be completely thrilled to help debug, if you can advise what I can
> do to help.   Unfortunately been 30+ years since I read ASM code, so a
> little lost in there.

It's a LOT less ASM though there's still a bit of initial setup and
callbacks in ASM that mostly can't be avoided.

> Is there any possibility under ipxe that pxelinux unloads UNDI support
> prematurely, therefore shooting itself in the foot before it can try to
> load ldlinux.c32?   Almost what it looks like, it throws the error
> instantly, with no apparent attempt to hit the network.

Doubtful but mildly possible.  You're saying with iPXE loading
PXELINUX 6.00+ that it throws the error "Failed to load ldlinux.c32"
almost instantly and you've done a tap/mirror packet capture and saw 0
traffic?

>> Regarding some fallback method, you could use PROMPT 1, several SAY
>> lines, and/or a DISPLAY file, and moving the menu.c32 option from
>> DEFAULT to a LABEL. That would at least provide the option to avoid
>> loading menu.c32, and using labels from the CLI (together with TIMEOUT,
>> the ENTER key, F1-F12 keys, ONTIMEOUT...) for those having some issue
>> with menu.c32. The other users, not having problems with menu.c32,
>> would be able to load the menu as option, depending on the directives
>> and their own action (or by timer).

"DEFAULT menu.c32" is not a good habit.  DEFAULT should point to a
real label and you should use the UI directive to call menu.c32 at
start  ( "UI menu.c32" ), introduced in 3.74.

> Yeah... or abandon ipxe and use TFTP.  At least 6.0.3 works for that...
>
>> Regarding ipxe, I would suggest asking in its mailing list, instead of
>> assuming anything.
>
> I've referred to the iPXE mailing list... for quite some time, there has
> been a quandry there why chaining to pxelinux 6.x fails due to the
> ldlinux load fail.   No one there knows how to solve it, and has not
> been able to find a solution.

Now I have something I can reproduce.  Booting my same ipxe.iso to
perform an initial TFTP load shows what I saw already.  Attempting to
load a file via http results in an immediate error message with no
resulting traffic as far as I can see.

-- 
-Gene


More information about the Syslinux mailing list