>Date: Sat, 6 Dec 2014 09:12:19 -0500 >From: Gene Cumm <gene.cumm at gmail.com> >To: Ady <ady-sf at hotmail.com> >Subject: Re: [syslinux] syslinux 6.03 does not boot some kernels > >On Fri, Dec 5, 2014 at 9:51 AM, Ady <ady-sf at hotmail.com> wrote: >> >> It sounds as if syslinux.efi 6.03 is only capable of booting a Linux >> kernel 3.3+ with an adequate config with EFISTUB. Considering that some >> relevant changes were introduced to the Linux kernel in its 3.3 branch, >> are these reported behaviors mean that prior kernels (such as the >> current stable Debian Wheezy with kernel 3.2) are not bootable in UEFI >> mode by Syslinux 6.03? >> >> Is Syslinux adding more conditions than really necessary so to boot >> Linux kernels in UEFI mode? >> >> If I understand correctly, a Linux kernel 3.2 might not be able to >> follow newer conventions, considering that such conventions / >> conditions were implemented / refined with kernel 3.3, not before. >> >> Following adequate standards, rules and common conventions is fine, but >> there should be some flexibility (or "fallback") for other cases, such >> as for kernel 3.2 (which is going to be alive in Debian Wheezy for at >> least a couple more years). >> >> So, can someone please clarify this situation? > >In an effort to get things started, I just wrote >http://www.syslinux.org/wiki/index.php/Common_Problems#Linux_EFI_kernels > >I understand the CONFIG_RELOCATABLE issue well enough to write about >it however Ady seems to have stumbled upon a real key for the >pre-Linux-3.3 kernels.If I'm understanding correctly, I think H. Peter Anvin on Tues Nov 18th, 10:24:15 PST 2014 explained this pre-Linux-3.3 kernel problem well. It was a discussion of grub2 booting the kernel in a "hostile" way -- not using the built-in kernel EFI bootloader. And thus, grub2 is able to boot earlier kernels, while syslinux follows the rules. And is not able to. H. Peter referenced https://www.kernel.org/doc/Documentation/efi-stub.txt for a fuller explanation. Great job writing up documentation, Gene. If H. Peter's explanation is congruent with Ady's Linux pre-3.3 kernel research, would you add a link to this fuller explanation? i.e., https://www.kernel.org/doc/Documentation/efi-stub.txt in the "Linux EFI pre-3.3" section? That fuller explanation really cemented it in my mind the strong rationale for following the rules. Spike
Johann Hartwig Hauschild
2014-Dec-07 16:35 UTC
[syslinux] syslinux 6.03 does not boot some kernels
Am 07.12.2014 schrieb Spike White:> >Date: Sat, 6 Dec 2014 09:12:19 -0500 > >From: Gene Cumm <gene.cumm at gmail.com> > > > >In an effort to get things started, I just wrote > >http://www.syslinux.org/wiki/index.php/Common_Problems#Linux_EFI_kernels > > > >I understand the CONFIG_RELOCATABLE issue well enough to write about > >it however Ady seems to have stumbled upon a real key for the > >pre-Linux-3.3 kernels. > > If I'm understanding correctly, I think H. Peter Anvin on Tues Nov 18th, > 10:24:15 PST 2014 explained this pre-Linux-3.3 kernel problem well. > > It was a discussion of grub2 booting the kernel in a "hostile" way -- not > using the built-in kernel EFI bootloader. And thus, grub2 is able to boot > earlier kernels, while syslinux follows the rules. And is not able to. > > H. Peter referenced https://www.kernel.org/doc/Documentation/efi-stub.txt > for a fuller explanation. > > Great job writing up documentation, Gene. If H. Peter's explanation is > congruent with Ady's Linux pre-3.3 kernel research, would you add a link to > this fuller explanation?I just had a look at the kernel-docs and the discussion here in november. This issue should not be happening if I build a pre-3.3-kernel with CONFIG_RELOCATABLE=y, CONFIG_EFI=y and CONFIG_EFI_STUB=y, right? -- Cheers, Hardy
> >Date: Sat, 6 Dec 2014 09:12:19 -0500 > >From: Gene Cumm <gene.cumm at gmail.com> > >To: Ady <ady-sf at hotmail.com> > >Subject: Re: [syslinux] syslinux 6.03 does not boot some kernels > > > >On Fri, Dec 5, 2014 at 9:51 AM, Ady <ady-sf at hotmail.com> wrote: > >> > >> It sounds as if syslinux.efi 6.03 is only capable of booting a Linux > >> kernel 3.3+ with an adequate config with EFISTUB. Considering that some > >> relevant changes were introduced to the Linux kernel in its 3.3 branch, > >> are these reported behaviors mean that prior kernels (such as the > >> current stable Debian Wheezy with kernel 3.2) are not bootable in UEFI > >> mode by Syslinux 6.03? > >> > >> Is Syslinux adding more conditions than really necessary so to boot > >> Linux kernels in UEFI mode? > >> > >> If I understand correctly, a Linux kernel 3.2 might not be able to > >> follow newer conventions, considering that such conventions / > >> conditions were implemented / refined with kernel 3.3, not before. > >> > >> Following adequate standards, rules and common conventions is fine, but > >> there should be some flexibility (or "fallback") for other cases, such > >> as for kernel 3.2 (which is going to be alive in Debian Wheezy for at > >> least a couple more years). > >> > >> So, can someone please clarify this situation? > > > >In an effort to get things started, I just wrote > >http://www.syslinux.org/wiki/index.php/Common_Problems#Linux_EFI_kernels > > > >I understand the CONFIG_RELOCATABLE issue well enough to write about > >it however Ady seems to have stumbled upon a real key for the > >pre-Linux-3.3 kernels. > > If I'm understanding correctly, I think H. Peter Anvin on Tues Nov 18th, > 10:24:15 PST 2014 explained this pre-Linux-3.3 kernel problem well. > > It was a discussion of grub2 booting the kernel in a "hostile" way -- not > using the built-in kernel EFI bootloader. And thus, grub2 is able to boot > earlier kernels, while syslinux follows the rules. And is not able to. > > H. Peter referenced https://www.kernel.org/doc/Documentation/efi-stub.txt > for a fuller explanation. > > Great job writing up documentation, Gene. If H. Peter's explanation is > congruent with Ady's Linux pre-3.3 kernel research, would you add a link to > this fuller explanation? > > i.e., > https://www.kernel.org/doc/Documentation/efi-stub.txt > > in the "Linux EFI pre-3.3" section? That fuller explanation really cemented > it in my mind the strong rationale for following the rules. > > Spike > _______________________________________________ > Syslinux mailing list > Submissions to Syslinux at zytor.com > Unsubscribe or set options at: > http://www.zytor.com/mailman/listinfo/syslinux >In short (for those tl;dr): Is there some possible (adequate) "fallback" method in Syslinux for Linux kernels in UEFI mode? I don't have the necessary knowledge to understand the reasons for each condition / convention / rule / standard regarding the Linux kernel. A simple user sees this situation as: "<some_other_bootloader> can boot my kernel / distro / OS, but Syslinux fails". Following standards / common conventions / rules is advisable, but IMHO you shouldn't request from a kernel 3.2 to follow conditions that were adjusted for kernel 3.3+. Is there some workaround to this situation? Moreover, if Syslinux 6.01 was/is capable of booting a Debian Wheezy stable kernel 3.2 (and perhaps a Slackware 14.1 stable too?) in UEFI systems, then what exactly is there in Syslinux 6.03 that cannot (eventually, as a fallback possibility) do the same as version 6.01? If this is a correction of some prior failure or inadequacy, then at least some kind of message / feedback / documentation should be provided for users. As it is currently presented, it sounds as a regression in Syslinux. If doing now what Syslinux 6.01 was doing before, is incorrect, then I would ask whether there is some possibility of some fallback method. Would such fallback be "hostile"? What does it mean? A potential crash? Insecurity? Other problems? Would this problem be dependent on hardware / firmware (version)? Is there some additional info that could be provided to users, instead of just wondering what could be wrong and wasting time with Syslinux in UEFI? Should users just "know": "using Linux kernels prior to version 3.3 in UEFI mode should be avoided"? BIOSes (firmware) are sometimes buggy, not doing what should be expected from them to do (following standards / rules / common conventions). When possible, Syslinux tries to workaround such cases, instead of saying to users "if the mainboard's manufacturer doesn't correct this situation, we don't care and you cannot use Syslinux with this BIOS". Isn't this situation with some kernels a similar one? I am not saying that Syslinux should not try to follow correct standards / rules / common conventions, and I admit that I don't really understand the consequences of being "hostile" in this context. The current bottom line seems to be: if you use a Linux kernel before 3.3, and if your kernel doesn't support EFISTUB, then Syslinux might or might not be able to boot it in a UEFI system; good luck. TIA, Ady.
On Sun, Dec 07, 2014 at 05:35:37PM +0100, Johann Hartwig Hauschild wrote:> > I just had a look at the kernel-docs and the discussion here in november. > This issue should not be happening if I build a pre-3.3-kernel with > CONFIG_RELOCATABLE=y, CONFIG_EFI=y and CONFIG_EFI_STUB=y, right?Those are allready at those values at http://www.alle-irre.de/~hardy/syslinux/linux-3.2.0-4-amd64/config-3.2.0-4-amd64 Groeten Geert Stappers -- Leven en laten leven
On 12/07/2014 09:19 AM, Ady wrote:> In short (for those tl;dr): Is there some possible (adequate) > "fallback" method in Syslinux for Linux kernels in UEFI mode?There is... and we certainly should enable it for non-stub kernels. -hpa