[syslinux] [PATCH] Correct chain.c32 v. 6.04-pre1 for Reactos
Ady Ady
ady-sf at hotmail.com
Thu Feb 23 11:22:35 PST 2017
> On Mon, Feb 20, 2017 at 2:17 PM, Ady Ady via Syslinux
> <syslinux at zytor.com> wrote:
> > Correct the "seg=" value(s) corresponding to the "reactos=" option
> > for chain.c32.
> >
> > The correct segment parameter should be "seg=0x0F80",
> > instead of the incorrect / failing ones "seg=0:0x8000:0x8100".
> >
> > References:
> > https://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/notes.txt?revision=73859&view=markup&pathrev=73859#l24
> >
> > https://git.reactos.org/?p=reactos.git;a=blob;f=reactos/boot/freeldr/notes.txt;hb=HEAD
> >
> > https://git.reactos.org/?p=reactos.git&a=search&h=HEAD&st=grep&s=FREELDR_BASE
> >
> > https://git.reactos.org/?p=reactos.git;a=blob;f=reactos/boot/freeldr/freeldr/include/arch/pc/x86common.h;h=c747d145cb3b35f68caab5291dc65dcdca21f17d;hb=HEAD#l17
> >
> > https://git.reactos.org/?p=reactos.git;a=blob;f=reactos/boot/freeldr/freeldr/include/arch/pc/x86common.h;hb=HEAD
> >
> > At the time of writing this patch, the up-to-date bootsectors referring to
> > the above 'define' ("FREELDR_BASE") have a filename extension ending with ".S".
> >
> > There is also "multiboot.S", FWIW.
> >
> > Regards,
> > Ady.
>
> It's a bit more complex. At the time of writing, the data was perfect.
>
> https://git.reactos.org/?p=reactos.git;a=blob;f=reactos/boot/freeldr/freeldr/include/arch/pc/x86common.h;hb=28e58e6d01892c1f2f0e1d323745e6463cb9e6c9
> dated 2011-06-14
>
> https://git.reactos.org/?p=reactos.git;a=blob;f=reactos/boot/freeldr/freeldr/include/arch/pc/x86common.h;hb=1dabbdfa6bbe244cd74bc912b94e514b85d63bbe
>
> https://git.reactos.org/?p=reactos.git;a=blob;f=reactos/boot/freeldr/freeldr/include/arch/pc/x86common.h;hb=0eb6daaf66127de803d36d45a4eea29d30a7ca36
> dated 2011-06-18 finalized the shuffle.
>
Regarding the patch for chain.c32 (which is what it matters here now),
I don't see complexity, nor the need to "extra" emphasize the change in
the Syslinux changelog (see the end of this email).
Regarding prior versions of chain.c32, the "reactos=file" option never
worked, as the assumed values for the corresponding "seg=" option were
never _effectively_ correct (independently of what Reactos' source code
seemingly said circa 2010-2011). In part, this can be seen in the
(prior) source code itself (see "options.c" for the "chain" module),
which mentions a conflicting information regarding adequate "seg="
values.
The effect is that, for prior Syslinux versions, the "reactos=file"
option for chain.c32 should be considered invalid (or non-existent). It
is only unfortunate that the "reactos=file" option was publicly
announced years ago without having a more clear and stable information
from the part of Reactos (and relevant testing), but that's history
now.
The incorrect behavior of the "reactos=file" option (generated by
inadequate segment values) has been reported in the past, several times
by diverse channels. This patch corrects the "seg=" values for Reactos.
The correct "seg=" values for the "reactos=file" option have been
confirmed by developers of Reactos and also successfully tested using
VMs. In the same way(s), the prior (incorrect) "seg=" values have been
also confirmed to fail.
Please keep in mind that this patch corrects the usage of the
"reactos=file" option for SYSLINUX, but it is not enough for PXELINUX,
as Reactos needs "keeppxe" (also reported to The Syslinux Project
several times by diverse channels), and the latter is not working since
Syslinux 5.00 till today. Perhaps the patch for "keeppxe" sent by Adam
Goldman during 2016June (
http://www.syslinux.org/archives/2016-June/025216.html "Fix recognition
of keeppxe option") might solve that matter (I wouldn't know).
(snip)
>
> This should have been put in place years ago by the looks but it's
> going to need a big glaring warning in the release notes.
>
> --
> -Gene
Of course, if my patch is applied to chain.c32, then it should (and
will) be part of the next Syslinux changelog, and I already have the
item added in my local copy, for a future "NEWS" patch. As soon as I
have confirmation of the Syslinux commit, I will also correct the
Syslinux wiki for chain.c32 and the changelog wiki page.
If the "keeppxe" problem gets to be solved too (to be proven by tests
from different users) in the Syslinux official code, I'll also add it
to the relevant places.
Thank you and Best Regards,
Ady.
More information about the Syslinux
mailing list