Scot Doyle
2015-Feb-06 15:58 UTC
[syslinux] regression: relocatable kernels on a chromebook
On Fri, 6 Feb 2015, Ady wrote:> ... > But if we are talking about Chromebooks with SeaBIOS, are we talking > about booting kernels in CSM mode? Or in UEFI mode? > > Other than Chromebooks with (stock) SeaBIOS, is this new reported > behavior also seen under other cases / hardware / firmware / kernels > (versions)?Hi Ady, With a clone of the git repo on kernel.org I run make spotless bios; make bios ./bios/extlinux/extlinux -i {target mounted partition} The extlinux partition contains both kernels, ldlinux.sys, ldlinux.c32 and extlinux.conf, which is PROMPT 1 LABEL 1 LINUX {relocatable vmlinuz} APPEND root={target partition} LABEL 2 LINUX {nonrelocatable vmlinuz} APPEND root={target partition} I've heard that the SeaBIOS on these machines may report an incorrect amount of memory, requiring (at least older versions of) syslinux to use/pass "mem=1500m" or some such on the APPEND line for some linux iso installers. As shown above, this does not affect the regression test, but that's not to say any incorrect report from the SeaBIOS is not involved. Also, I don't know if other hardware is affected. Thanks, Scot
> On Fri, 6 Feb 2015, Ady wrote: > > ... > > But if we are talking about Chromebooks with SeaBIOS, are we talking > > about booting kernels in CSM mode? Or in UEFI mode? > > > > Other than Chromebooks with (stock) SeaBIOS, is this new reported > > behavior also seen under other cases / hardware / firmware / kernels > > (versions)? > > Hi Ady, > > With a clone of the git repo on kernel.org I run > make spotless bios; make bios > ./bios/extlinux/extlinux -i {target mounted partition} > > The extlinux partition contains both kernels, ldlinux.sys, ldlinux.c32 and > extlinux.conf, which is > PROMPT 1 > LABEL 1 > LINUX {relocatable vmlinuz} > APPEND root={target partition} > LABEL 2 > LINUX {nonrelocatable vmlinuz} > APPEND root={target partition} > > I've heard that the SeaBIOS on these machines may report an incorrect > amount of memory, requiring (at least older versions of) syslinux to > use/pass "mem=1500m" or some such on the APPEND line for some linux iso > installers. As shown above, this does not affect the regression test, but > that's not to say any incorrect report from the SeaBIOS is not involved. > Also, I don't know if other hardware is affected. > > Thanks, > ScotSo we are talking about CSM then. Is this behavior replicable with the official upstream binaries already included in the official archives located in kernel.org? I mean, not from git and not issuing any 'make', just using the binaries already included in the official upstream archives version 6.03, "as-is". 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. 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? If this were to be the case, then, again, Syslinux would need to (re-)implement "fallback" methods for {non,}relocatable kernels (whether booting them in UEFI or in CSM/BIOS mode). This, of course, is up to Peter (hpa) and contributors. Patches are welcome :). Could you please test / confirm this situation? 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-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.