[syslinux] syslinux 6.03 does not boot some kernels

Ady ady-sf at hotmail.com
Sun Dec 7 09:19:02 PST 2014


> >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.


More information about the Syslinux mailing list