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
> 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 >
Alan Sparks
2015-Sep-23 20:28 UTC
[syslinux] Chaining to pxelinux.0 6.0.3 from iPXE - ldlinux.c32
On 9/23/2015 2:08 PM, Ady via Syslinux wrote:> Even if it still hangs with this test, does it hang exactly as before > (i.e. shows only one character and hangs immediately)?It happens with one entry, or two entries, or three. The configuration works otherwise perfectly on any other environment. If I simplify to the the following, it still hangs after outputting the one visible character: SERIAL 0 default menu.c32 label bootlocal localboot 0 label discovery kernel util/vmlinuz append boot=live netboot=http fetch=http://10.22.165.41/iso/util.iso ip=dhcp initrd=::util/initrd.img 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...
Ferenc Wagner
2015-Sep-24 09:40 UTC
[syslinux] Chaining to pxelinux.0 6.0.3 from iPXE - ldlinux.c32
Ady via Syslinux <syslinux at zytor.com> writes:> 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.While it may be, it isn't strictly necessary, see http://www.syslinux.org/archives/2009-March/012116.html for a reversed issue with the same symptom. -- Feri.
Maybe Matching 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