[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