Alan Sparks
2015-Sep-22 17:42 UTC
[syslinux] Chaining to pxelinux.0 6.0.3 from iPXE - ldlinux.c32
On 9/22/2015 4:33 AM, Gene Cumm wrote:> > https://sites.google.com/site/genecsyslinux/sl604p0g15-bios.tgz?attredirects=0&d=1 > https://sites.google.com/site/genecsyslinux/sl604p0g15-x64.tgz?attredirects=0&d=1 >Tried these new binaries this morning. No change, still will not attempt to load ldlinux.c32. As a context, what I'm really trying to do is get a newer version of menu.c32 that doesn't hang in some of my customers' contexts - they're creating KVM/QEMU instances with no graphics, just text console, and for them menu.c32 is printing exactly the first character of the text menu, then hanging. The menu.c32 in 6.0.3 doesn't seem to cause that... But upgrading the pxelinux binaries - I forgot to mention, am running the official binaries - will not attempt to load ldlinux.c32. On my ipxe script, I set the 210 and 209 options (see below) as works for 4.x and 3.x, I see the Web server log the hit for pxelinux.0, but never for ldlinux.c32. I did try lpxelinux.0 - this does work (with an odd delay) for the KVM/QEMU instance - but hangs on my hardware test of an HP SL390 with a Mellanox 10G NIC (older pxelinux.0 versions do work on that). Any advice on any other debugging, strategies? Or how I can just fix the older menu.c32 to work around the above issue and forget the 6.x upgrade? -Alan ===============# set up pxelinux boot: # 209: the URL of the pxelinux.cfg set 209:string http://{{site}}/ipxe/menu.cfg?uuid=${uuid}&mac=${netX/mac}&serial=${serial} # 210: root URL where pxelinux will get files set 210:string http://{{site}}/tftpboot/bios.604/ set filename ${210:string}pxelinux.0 chain ${filename} || #kernel ${210:string}/pxelinux.0 #boot
Alan Sparks
2015-Sep-22 22:50 UTC
[syslinux] Chaining to pxelinux.0 6.0.3 from iPXE - ldlinux.c32
On 9/22/2015 11:42 AM, Alan Sparks via Syslinux wrote:> > Any advice on any other debugging, strategies? Or how I can just fix > the older menu.c32 to work around the above issue and forget the 6.x > upgrade? > -AlanSeemingly, from Googling, I see references all the way back to 6.0.1, in 2013, where chaining pxelinux.0 from ipxe just no longer works, seemingly this issue. Wow...
Gene Cumm
2015-Sep-22 23:51 UTC
[syslinux] Chaining to pxelinux.0 6.0.3 from iPXE - ldlinux.c32
On Tue, Sep 22, 2015 at 1:42 PM, Alan Sparks <asparks at doublesparks.net> wrote:> On 9/22/2015 4:33 AM, Gene Cumm wrote: >> >> https://sites.google.com/site/genecsyslinux/sl604p0g15-bios.tgz?attredirects=0&d=1 >> https://sites.google.com/site/genecsyslinux/sl604p0g15-x64.tgz?attredirects=0&d=1 >> > > Tried these new binaries this morning. No change, still will not > attempt to load ldlinux.c32.Sounds specific to the hardware, how you loaded iPXE or the version you're on.> As a context, what I'm really trying to do is get a newer version of > menu.c32 that doesn't hang in some of my customers' contexts - they're > creating KVM/QEMU instances with no graphics, just text console, and for > them menu.c32 is printing exactly the first character of the text menu, > then hanging. The menu.c32 in 6.0.3 doesn't seem to cause that...That's a good thing that the newer version of menu.c32 seems to work better.> But upgrading the pxelinux binaries - I forgot to mention, am running > the official binaries - will not attempt to load ldlinux.c32. On my > ipxe script, I set the 210 and 209 options (see below) as works for 4.x > and 3.x, I see the Web server log the hit for pxelinux.0, but never for > ldlinux.c32. > > I did try lpxelinux.0 - this does work (with an odd delay) for the > KVM/QEMU instance - but hangs on my hardware test of an HP SL390 with a > Mellanox 10G NIC (older pxelinux.0 versions do work on that).Quiet unfortunate. I'm presuming you tried the lpxelinux.0 test binary?> Any advice on any other debugging, strategies? Or how I can just fix > the older menu.c32 to work around the above issue and forget the 6.x > upgrade? > -Alan > > ===============> # set up pxelinux boot: > # 209: the URL of the pxelinux.cfg > set 209:string > http://{{site}}/ipxe/menu.cfg?uuid=${uuid}&mac=${netX/mac}&serial=${serial} > # 210: root URL where pxelinux will get files > set 210:string http://{{site}}/tftpboot/bios.604/ > set filename ${210:string}pxelinux.0 > chain ${filename} || > #kernel ${210:string}/pxelinux.0 > > #bootThat should just work. -- -Gene
Alan Sparks
2015-Sep-23 00:21 UTC
[syslinux] Chaining to pxelinux.0 6.0.3 from iPXE - ldlinux.c32
On 9/22/2015 5:51 PM, Gene Cumm wrote:> On Tue, Sep 22, 2015 at 1:42 PM, Alan Sparks <asparks at doublesparks.net> wrote: >> On 9/22/2015 4:33 AM, Gene Cumm wrote: >> Tried these new binaries this morning. No change, still will not >> attempt to load ldlinux.c32. > > Sounds specific to the hardware, how you loaded iPXE or the version you're on. >That is on a KVM/QEMU instance (with Ubuntu-distributed kvm-ipxe bootroms), as well as a separate piece of hardware (iPXE Mellanox). Using both's native iPXE bootroms.>> I did try lpxelinux.0 - this does work (with an odd delay) for the >> KVM/QEMU instance - but hangs on my hardware test of an HP SL390 with a >> Mellanox 10G NIC (older pxelinux.0 versions do work on that). > > Quiet unfortunate. I'm presuming you tried the lpxelinux.0 test binary?Yes. And doesn't behave for me any different/better than the lpxelinux including in official 6.0.3...>> ===============>> # set up pxelinux boot: >> # 209: the URL of the pxelinux.cfg >> set 209:string >> http://{{site}}/ipxe/menu.cfg?uuid=${uuid}&mac=${netX/mac}&serial=${serial} >> # 210: root URL where pxelinux will get files >> set 210:string http://{{site}}/tftpboot/bios.604/ >> set filename ${210:string}pxelinux.0 >> chain ${filename} || >> #kernel ${210:string}/pxelinux.0 >> >> #boot > > That should just work. >I wish. It just doesn't try, and I'm lost how to debug it. Looking through the ipxe forums, I see reports back to 2013 that it no longer works... nothing since with any solutions.
> As a context, what I'm really trying to do is get a newer version of > menu.c32 that doesn't hang in some of my customers' contexts - they're > creating KVM/QEMU instances with no graphics, just text console, and for > them menu.c32 is printing exactly the first character of the text menu, > then hanging. The menu.c32 in 6.0.3 doesn't seem to cause that... >About your customers' setup... Are they using official binaries downloaded from kernel.org? Which exact version of Syslinux are they using? Is the menu.c32 file from the same exact version (and build) as the bootloder file? What happens if they try to get to the Syslinux boot prompt, instead of immediately loading menu.c32? Does it hang too? Could you post their configuration file? Are they also using ipxe and chainloading? Is the behavior (menu.c32 showing one character only and then hanging) replicated by others? Is it happening under other environments / setups / VMs? Is this behavior happening in real hardware? Is the BIOS fully updated? Have you/they read the "Common Problems" wiki page in the official Syslinux wiki? 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. Regards, Ady.> _______________________________________________ > Syslinux mailing list > Submissions to Syslinux at zytor.com > Unsubscribe or set options at: > http://www.zytor.com/mailman/listinfo/syslinux >
Ferenc Wagner
2015-Sep-23 07:21 UTC
[syslinux] Chaining to pxelinux.0 6.0.3 from iPXE - ldlinux.c32
Alan Sparks via Syslinux <syslinux at zytor.com> writes:> As a context, what I'm really trying to do is get a newer version of > menu.c32 that doesn't hang in some of my customers' contexts - they're > creating KVM/QEMU instances with no graphics, just text console, and for > them menu.c32 is printing exactly the first character of the text menu, > then hanging. The menu.c32 in 6.0.3 doesn't seem to cause that...As a workaround for older versions, try adding CONSOLE 0 to the top of the configuration, just after the SERIAL directive. -- Regards, Feri.
Alan Sparks
2015-Sep-23 18:48 UTC
[syslinux] Chaining to pxelinux.0 6.0.3 from iPXE - ldlinux.c32
On 9/23/2015 1:21 AM, Ferenc Wagner wrote:> Alan Sparks via Syslinux <syslinux at zytor.com> writes:> As a workaround for older versions, try adding CONSOLE 0 to the top of > the configuration, just after the SERIAL directive. >Well, yeah I suppose... but so much for displaying the menu, that disables the menu for other users. We currently have no way to know whether the user booting against our tool has a graphics console config or not, so doing this screws those with, say, VNC, over.
Alan Sparks
2015-Sep-23 19:15 UTC
[syslinux] Chaining to pxelinux.0 6.0.3 from iPXE - ldlinux.c32
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
Reasonably Related Threads
- Chaining to pxelinux.0 6.0.3 from iPXE - ldlinux.c32
- Chaining to pxelinux.0 6.0.3 from iPXE - ldlinux.c32
- Chaining to pxelinux.0 6.0.3 from iPXE - ldlinux.c32
- Chaining to pxelinux.0 6.0.3 from iPXE - ldlinux.c32
- Chaining to pxelinux.0 6.0.3 from iPXE - ldlinux.c32