[syslinux] XP: encouraging, but not good, results.
Regid Ichira
regid23 at nt1.in
Mon Sep 16 18:11:05 PDT 2013
On Sun, Sep 15, 2013 at 11:14:05PM +0300, Ady wrote:
>
> > On Sun, Sep 15, 2013 at 04:31:09PM +0300, Ady wrote:
> > >
> > > > Platform: MS XP
> > > >
> > > > 1. cfg file:
> > > > prompt 1
> > > > timeout 150
> > > > display /downloadedPrograms/syslinux/syslinux.cfg
> > > >
> > > > default xp
> > > > label xp
> > > > com32 chain.c32
> > > > append hd0 1 ntldr=/ntldr
> > > > label de
> > > > com32 chain.c32
> > > > append hd0 2
> > > > label memtest
> > > > linux memtest86+.bin
> > > > label hello
> > > > com32 hello.c32
> > > >
> > > > 2. Installed by
> > > > From xp cmd prompt:
> > > > c:\downloadedPrograms\syslinux\syslinux.exe --active \
> > > > --directory /downloadedPrograms/syslinux/ --force \
> > > > --install --mbr c:
> > > > The line, and the contniuation slashes, are for clarity. In reality
> > > > it was on a single line.
> > > >
> > > > 3. Result:
> > > > Got a boot: prompt after displaying the cfg file. But:
> > > >
> > > > boot: xp
> > > > Failed to load COM32 file chain.c32
> > > > boot: memtest
> > > > Loading memtest86+.bin... ok
> > > > Booting kernel failed: Bad file number
> > > > boot: hello
> > > > Hello, world, from 0x001FA200! malloc return 0x001fb660
> > >
> > > I'd like to suggest a simple change that should ease the situation:
> > > change the location of SYSLINUX to
> > > c:\syslinux\
> > >
> > > instead of having "c:\downloadedPrograms\syslinux\".
> > >
> > > This suggestion means that:
> > > 1_ all the files related to Syslinux (e.g. the cfg file, the c32
> > > modules...) should be located under "c:\syslinux\" (.c32 files should
> > > always match the same version of Syslinux being installed, and don't
> > > forget to use the lib*.c32 files.) - this should be your first step;
> > >
> > > 2_ all relevant absolute paths (like the one used in your "display"
> > > directive in your cfg) shall be edited accordingly (or,
> > > alternatively, use relative paths);
> > >
> > > 3_ The new suggested installation command would/should be:
> > > c:\syslinux\syslinux.exe --force --mbr --active ///
> > > --directory /syslinux --install c:
> > >
> > > That's all one command. The "///" slashes are for clarity only.
> > >
> > > The command shall be executed with administrator permissions.
> > >
> > > Additionally, there is a chance that the specific version of Syslinux
> > > has some regression bug, so I would suggest trying with the latest
> > > official testing binaries. For Syslinux 6.xx, the official binaries
> > > are under respective directories ("/bios/", "/efi32/", "/efi64").
> > >
> >
> >
> > I am using 6.01 now.
> > I tried with a c:\syslinux directory, instead of the longer path I
> > tried before. It is worse then before. After the syslinux copyright
> > line, the disk activity led shines steadily. But noting comes on the
> > screen. And nothing else happens. Eventually I rebooted the machine.
> > That experience happend several times, after I tried absolute and
> > relative paths for the display command.
> > I think your instructions tried to be most accurate. Not leave
> > something to chance. I was trying to follow that in my tests. I
> > can't tell why for me, a dedicated c:\syslinux directory was behaving
> > worse then my former, longer path, syslinux directory.
>
> I could think of some potential reasons for such fail. For example,
> it is possible that version 6.01 has some bug regarding the DISPLAY
> directive (I have not tested this recently). Or perhaps some issue
> with chain.c32 and ntldr in Syslinux 6.01 (I have not tested this
> either).
>
> Instead of trying (guessing) endless potential possibilities, I would
> suggest for you to use Syslinux 4.07 (with its corresponding c32
> files from the same version 4.07), with the same path and generic
> instructions I posted before.
>
> Additionally, for testing purposes, I would suggest changing your
> DEFAULT directive to:
> DEFAULT hello
>
> With such default, you would at least know whether:
> 1_ the SYSLINUX boot loader works;
> 2_ after 15 seconds (according to your TIMEOUT directive), the simple
> hello.c32 module succeeds.
>
> After the hello world message is shown and you are back in the boot
> prompt, you could manually enter "xp" in the Syslinux prompt. If your
> XP boots, then change back the DEFAULT directive. If, instead, XP
> doesn't boot, then you would know that the problem is related to the
> "xp" entry in the cfg file (or to ntldr itself), but you would also
> know that SYSLINUX itself boots. In other words, you would be able to
> narrow down the problem.
>
* 4.07 is slow. slow. slow. amazingly slow.
After the syslinux copyright line, which came immediately, Nothing
seem to happen. Disk activity light shines in full power, but I was
sitting there, blering at the screen. I almost gave up. Then, after
a long long time, the display command was obeyed. After a delay,
which is probably due to the timeout command, it seems there is a
cursor right at the beginning of the line after the boot: prompt.
Which might be expected, bacause there is a default command. Again
I am sitting, blerring at the screen. The whole thing is amazingly
alow. Eventually, the Hello world? comes. To my surprise, without
a from address, and without a malloc address that is different from
the from address. After the hello world greeting, the boot: prompt
is back. I think that was immediatelly after the greeting. Manually
entering xp got XP to boot. I think that that, too, was reasonably
fast.
4.07 doesn't have, and I guess there is no need to, libcom32.c32
libutil.c32 and friends. I used the following syslinux.cfg:
prompt 1
timeout 150
display /syslinux/syslinux.cfg
default hello
label xp
com32 chain.c32
append hd0 1 ntldr=/ntl
label de
com32 chain.c32
append hd0 2
label memtest
linux memtest86+.bin
label hello
com32 hello.c32
* 6.01 is slow. amazingly slow. Approximately 5 mintues half way.
Assuming I was too hastey to reboot in my previous test of 6.01, I
tried 6.01 again. With a c:\syslinux directory. This time I have
tried to measure against the wall clock. Syslinux copyright line is
instantenious. In contrast, it took approximately 5 mintues to get
the display command output. In contrast to 4.07, hello.c32 output
did have a malloc address issue. And it took it a while to load.
memtest was able to run. Here, too, it took its time to load. I was
able to boot into xp. Once again, syslinux took its time loading it.
Up to now, syslinux working directory was c:\syslinux. I tried
once more with a working directory of c:\downloadedPrograms\syslinux.
With that working directory, the output from the display command came
after 2 minutes. But there was a failure to load the *.c32 binaries.
More information about the Syslinux
mailing list