Scot Doyle
2015-Feb-07 01:52 UTC
[syslinux] regression: relocatable kernels on a chromebook
On Fri, 6 Feb 2015, Ady wrote: ...> Testing with public popular kernels that are known to work (so to > compare the behavior) might be useful too, but I don't know of any > particular kernels to suggest for such tests.Right, I've confirmed boot failure using CONFIG_RELOCATABLE with unmodified Linux 3.12.24, 3.13, 3.15, 3.18, and 3.19-rc7 kernels.> I know that for EFISTUB, the kernel config should include: > > CONFIG_RELOCATABLE=y > CONFIG_EFI=y > CONFIG_EFI_STUB=y > CONFIG_FB_EFI=y > CONFIG_FRAMEBUFFER_CONSOLE=y > > For UEFI ia32 firmware, it should be possible (in theory, and if I > understand correctly) to use 32 bit Syslinux to load a 64 bit kernel, > as long as the latter has CONFIG_EFI_MIXED enabled. > > We have seen reports of failure to boot relocatable kernels when they > are not built using also (some of) the other config settings. > > Even when we are now talking about booting in CSM mode, perhaps the > relocatable kernel needs all these config settings so to be bootable by > current Syslinux 6.03? >How about these five config combinations given that CONFIG_FB_EFI requires CONFIG_EFI and CONFIG_EFI_STUB requires CONFIG_EFI and CONFIG_RELOCATABLE? 1. linux 3.19-rc7 with CONFIG_RELOCATABLE=y CONFIG_EFI=y CONFIG_EFI_STUB=y CONFIG_FB_EFI=y CONFIG_FRAMEBUFFER_CONSOLE=y 2. linux 3.19-rc7 with CONFIG_RELOCATABLE=y CONFIG_EFI=y # CONFIG_EFI_STUB is not set CONFIG_FB_EFI=y CONFIG_FRAMEBUFFER_CONSOLE=y 3. linux 3.19-rc7 with CONFIG_RELOCATABLE=y # CONFIG_EFI is not set CONFIG_FRAMEBUFFER_CONSOLE=y 4. linux 3.19-rc7 with # CONFIG_RELOCATABLE is not set CONFIG_EFI=y # CONFIG_EFI_STUB is not set CONFIG_FB_EFI=y CONFIG_FRAMEBUFFER_CONSOLE=y 5. linux 3.19-rc7 with # CONFIG_RELOCATABLE is not set # CONFIG_EFI is not set CONFIG_FRAMEBUFFER_CONSOLE=y Using the 32-bit extlinux pre-built package from kernel.org, only 4 and 5 boot, while the others reboot as previously described. Using the patched extlinux, all five boot.
> On Fri, 6 Feb 2015, Ady wrote: > ... > > Testing with public popular kernels that are known to work (so to > > compare the behavior) might be useful too, but I don't know of any > > particular kernels to suggest for such tests. > > Right, I've confirmed boot failure using CONFIG_RELOCATABLE with > unmodified Linux 3.12.24, 3.13, 3.15, 3.18, and 3.19-rc7 kernels. > > > I know that for EFISTUB, the kernel config should include: > > > > CONFIG_RELOCATABLE=y > > CONFIG_EFI=y > > CONFIG_EFI_STUB=y > > CONFIG_FB_EFI=y > > CONFIG_FRAMEBUFFER_CONSOLE=y > > > > For UEFI ia32 firmware, it should be possible (in theory, and if I > > understand correctly) to use 32 bit Syslinux to load a 64 bit kernel, > > as long as the latter has CONFIG_EFI_MIXED enabled. > > > > We have seen reports of failure to boot relocatable kernels when they > > are not built using also (some of) the other config settings. > > > > Even when we are now talking about booting in CSM mode, perhaps the > > relocatable kernel needs all these config settings so to be bootable by > > current Syslinux 6.03? > > > > How about these five config combinations given that CONFIG_FB_EFI > requires CONFIG_EFI and CONFIG_EFI_STUB requires CONFIG_EFI and > CONFIG_RELOCATABLE? > > 1. linux 3.19-rc7 with > CONFIG_RELOCATABLE=y > CONFIG_EFI=y > CONFIG_EFI_STUB=y > CONFIG_FB_EFI=y > CONFIG_FRAMEBUFFER_CONSOLE=y > > 2. linux 3.19-rc7 with > CONFIG_RELOCATABLE=y > CONFIG_EFI=y > # CONFIG_EFI_STUB is not set > CONFIG_FB_EFI=y > CONFIG_FRAMEBUFFER_CONSOLE=y > > 3. linux 3.19-rc7 with > CONFIG_RELOCATABLE=y > # CONFIG_EFI is not set > CONFIG_FRAMEBUFFER_CONSOLE=y > > 4. linux 3.19-rc7 with > # CONFIG_RELOCATABLE is not set > CONFIG_EFI=y > # CONFIG_EFI_STUB is not set > CONFIG_FB_EFI=y > CONFIG_FRAMEBUFFER_CONSOLE=y > > 5. linux 3.19-rc7 with > # CONFIG_RELOCATABLE is not set > # CONFIG_EFI is not set > CONFIG_FRAMEBUFFER_CONSOLE=y > > Using the 32-bit extlinux pre-built package from kernel.org, only 4 and 5 > boot, while the others reboot as previously described. Using the patched > extlinux, all five boot.Thank you for this meaningful report. Ideally, I would suggest performing a similar test (at least with the same kernel built with all the above "config_*=y" settings) with official pre-built Syslinux versions 4.07 and 3.86 (remembering that all Syslinux-related files, including c32 modules, if being used, shall match the same version of the bootloader). Whether with additional tests or not, there are enough reports (not only this one) indicating that indeed Syslinux 6.03 is failing to boot some Linux kernels; whether because of the lack of some "fallback(s)" boot method(s) or because some bug(s). Comments from knowledgeable developers would be welcome. TIA, Ady.> > _______________________________________________ > Syslinux mailing list > Submissions to Syslinux at zytor.com > Unsubscribe or set options at: > http://www.zytor.com/mailman/listinfo/syslinux >
Scot Doyle
2015-Feb-08 03:44 UTC
[syslinux] regression: relocatable kernels on a chromebook
On Sat, 7 Feb 2015, Ady via Syslinux wrote:> Thank you for this meaningful report. Ideally, I would suggest > performing a similar test (at least with the same kernel built with all > the above "config_*=y" settings) with official pre-built Syslinux > versions 4.07 and 3.86 (remembering that all Syslinux-related files, > including c32 modules, if being used, shall match the same version of > the bootloader).You're welcome :-) I'll post a patch to fix this problem as a follow-up to my other patch. I've confirmed 4.07 and 5.10 are unaffected both by running the pre-built versions from kernel.org and by inspecting their code. Pre-built 6.01 is unaffected, while 6.02 and 6.03 are.