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

Alan Sparks asparks at doublesparks.net
Wed Sep 23 12:15:47 PDT 2015


On 9/23/2015 12:14 AM, Ady via Syslinux wrote:

> About your customers' setup...
> Are they using official binaries downloaded from kernel.org?

Yes.   Stock versions, no local modifications.

> Which exact version of Syslinux are they using?

I've tried versions 3.86, 4.07, 6.01, 6.03.
We can only generally use 4.07 or less because of the described ipxe
compatibility issues, 6.0x will not load ldlinux.c32.

> Is the menu.c32 file from the same exact version (and build) as the 
> bootloder file?

In all cases, yes.

> 
> What happens if they try to get to the Syslinux boot prompt, instead of 
> immediately loading menu.c32? Does it hang too?

For the specific case where the hang is observed - It is required at
least for the pxelinux.cfg downloaded to contain a "serial 0" directive
to get the console working at all.   However - if no menu.c32 load
directive (default or UI) is present, no menu config, it boots to the
boot: prompt, no hang.

Again, it's the menu.c32 load in this case, if that is there, it will
output one visible character of the text (ANSI) menu (the top corner)
then freeze.

> 
> Could you post their configuration file?

Below.

> 
> Are they also using ipxe and chainloading?

The menu.c32 hang problem occurs whether using TFTP of pxelinux.0, or
with ipxe.   Occurs on 4.07 and 3.86.
The ipxe chainloading is the distinct other problem, I asked of
originally - e.g., ipxe chainloading of pxelinux.0 6.x fails
consistently failing to load ldlinux.c32.

Again, the correct version of ldlinux.c32 is present alongside pxelinux.0.
> 
> Is the behavior (menu.c32 showing one character only and then hanging) 
> replicated by others? Is it happening under other environments / setups 
> / VMs?
> 

Replicated by others in my organization.   Why they're complaining to me :-)

> Is this behavior happening in real hardware?

The ipxe issues, yes, as described in previous posts.   On hardware
supporting ipxe, and KVM VMs with ipxe bootrom support.
The menu.c32 peripheral issue only happens on KVM VMs with graphics=none
(e.g., no graphics console configured, only text console).
> 
> Is the BIOS fully updated?
> 

Yes.

> Have you/they read the "Common Problems" wiki page in the official 
> Syslinux wiki?
> 

Of course.   Found nothing applicable.
> 
> Regarding your tests with 6.03, I would have additional questions 
> (exact location of ldlinux.c32; matching version and build of all 
> files, not just the bootloader; packet capture; ipxe latest version / 
> latest commit from upstream, version of gcc and nasm, if you are 
> building anything from Syslinux or from ipxe; updated HP firmware; not 
> using ipxe; path syntax and TFTP/HTTP protocols in use in your config 
> paths...), but I will leave those for Gene to decide what to ask for.

I think I've tried to cover that here and in previous posts.   Stock
code; stuff in right place, works for TFTP.  If there's some sort of
debugging I can enable on the booting side, please tell me.  I can tell
by logs that in the iPXE case, no requests are sent to the Web server
for the ldlinux.c32 load.


======= ipxe script =======

# set up pxelinux boot:
# 210: root URL where pxelinux will get files
set 210:string http://{{site}}/tftpboot/bios.603/
# 209: the URL of the pxelinux.cfg
set 209:string
http://{{site}}/ipxe/menu.cfg?uuid=${uuid}&mac=${netX/mac}&serial=${serial}
set filename ${210:string}pxelinux.0
chain ${filename} ||


======== menu ==========
# Default local boot file (for %s)
SERIAL 0 115200 0
default menu.c32
prompt 0
timeout 100
ONTIMEOUT bootlocal

MENU TITLE Blacksmith PXE Menu
label bootlocal
  menu label ^Local Disk
  menu default
  localboot 0








More information about the Syslinux mailing list