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

Ady ady-sf at hotmail.com
Wed Sep 23 13:08:27 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
> 
 
Since the menu.c32 issue is happening under KVN with more than one 
version of menu.c32 and there are no reports about other environments 
showing such behavior, all this would suggest that KVM is a factor in 
the mix.

I wonder whether you posted only one menu entry among several entries, 
or whether instead that's really all that is to post (or even perhaps 
there are additional directives affecting the behavior, such as DISPLAY 
files, F1-F12, SAY...).

FWIW, (vesa)menu.c32 is known to have special (sometimes unexpected) 
behaviors when there is only one entry. For testing, I would suggest 
adding some additional entries, even "dummy" ones.

For example:

# Default local boot file
SERIAL 0 115200 0
default menu.c32
prompt 0
timeout 100

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

label bootlocal2
  menu label Local Disk^2
  localboot 0

Notes:

_ For troubleshooting purposes, I am intentionally not using in the 
above example any variables from any script (whether from ipxe or any 
other). So no "%s", for example (for whatever reason it was there)

_ If any variables are needed in the config file, please avoid using 
them when troubleshooting any Syslinux component (menu.c32, or 
pxelinux.0, or ldlinux.c32, etc.). If needed, please build the config 
manually when troubleshooting menu.c32, without variables.

_ LABELs shall be unique, and there should be no space characters.

_ For the purpose of troubleshooting, I have intentionally deleted the 
"menu default" directive you posted before.

_ Considering that the troubleshooting steps in this case should be 
focused on menu.c32 (besides the additional and important issue with 
ldlinux.c32), I have intentionally deleted the ONTIMEOUT directive too.

I am aware that deleting directives sounds like irrelevant. My 
experience testing Syslinux says differently, generally speaking. I 
could even suggest additional deletions for these tests.

Would it be possible to perform a test, under these suggested 
conditions?

Even if it still hangs with this test, does it hang exactly as before 
(i.e. shows only one character and hangs immediately)?

Regards,
Ady.
 
> _______________________________________________
> Syslinux mailing list
> Submissions to Syslinux at zytor.com
> Unsubscribe or set options at:
> http://www.zytor.com/mailman/listinfo/syslinux
> 




More information about the Syslinux mailing list