[syslinux] Plop Boot Manager quit working with 5.10

Ady ady-sf at hotmail.com
Sun Jun 30 11:51:44 PDT 2013


> On Sat, Jun 29, 2013 at 3:04 PM, Ady <ady-sf at hotmail.com> wrote:
> 
> > If with "ancient kernel" you are referring to the memtest(86|86+)
> > issue, I don't see the same *exact* problem / behavior.
> 
> My cuent understanding is as follows: HPA is using the label "ancient
> kernel" for any kernel that has a hard-coded load address and that
> linux.c32 and all 5.xx+ (they're actually the same code) are less
> likely to be able to succeed in loading these kernels due to how the
> core/linux.c32 responds to the memory map passed to it by the BIOS(INT
> 15h E820h).
> 
> Let's say the kernel must be loaded to 0x100000 but the core sees that
> the memory at that address is reserved (and not by itself).  At this
> point, the core/linux.c32 refuses to execute it for safety reasons.
> 
> My guess at the PXE-smasher is that the BIOS doesn't properly report
> the memory that the PXE stack uses and the core/linux.c32 loads on top
> of this used memory, corrupting the environment.
> 
> Ady, hope this helps.
> 
> --
> -Gene
> _______________________________________________

I understand the "hard-coded memory address" concept. I am just 
trying to help by describing different behaviors that might point to 
different or alternative workarounds / solutions.

Regarding linux.c32, it is not "exactly" the same code as 5.xx+. 
Certainly not from the point of view of the simple user, seeing that 
the behavior is different.

Part of the behavior I described is also related to linux.c32 as of 
4.06, and although it might attempt to behave as 5.xx, we all know 
there are several months and commits in between.

Even within Syslinux 5.xx+, linux.c32 behaves differently than when 
using the LINUX directive. As example, see the 2 different behaviors 
I described before in this same email thread, regarding PLoP manager 
kernel when booted from Syslinux 5.11-pre3 and from 6.01-pre5 
respectively (not just the error message itself - which might be 
understandable - but also when started from menu.c32: one error 
message is immediately overwritten by the automatically reloaded 
menu, while the other is displayed and it ends in CLI).

So, by providing those different behaviors and the specific error 
messages, I am hoping there could be a chance of some workaround / 
solution. Otherwise, either:
A_ Those "hard-coded memory address" kernels won't be usable; or,
B_ Users and/or distros needing / wanting those kernels won't update 
Syslinux; or,
C_ Some form of chain-loading from Syslinux 5+ to prior versions or 
to other boot loaders will be necessary, just to be able to execute 
those ""hard-coded memory address" kernels.

BTW, to add to the behaviors I described before, I also tried 
ifplop.c32 (BIOS) from ISOLINUX 6.01-pre5 in Vbox 4.2.14, and it 
behaves in a third (or fourth) way:

_ from CLI, it's the same as "LINUX plop":
"Booting kernel failed: Invalid argument";
_ from menu.c32, the same error message is shown, but then it gets to 
CLI. As a remainder, "LINUX plop" from menu.c32 immediately 
overwrites the error message, going back to display the menu.

Hopefully, all these descriptions are helpful so to find some 
workaround / solution, at least for some of those "ancient kernels" 
(which are still useful and very popular).

Best Regards,
Ady.



More information about the Syslinux mailing list