[syslinux] 5.00 c32 dependencies paths
Ady
ady-sf at hotmail.com
Sun Dec 9 08:39:51 PST 2012
> On Sat, Dec 8, 2012 at 2:15 PM, Ady <ady-sf at hotmail.com> wrote:
> >
> > So, for example, if you installed ldlinux.sys in a UFD, the installer
> > already copies ldlinux.sys and ldlinux.c32. If you want to use
> > menu.c32 too, then the UFD should contain (for this example):
> >
> > ./boot/syslinux/ldlinux.sys
> > ./boot/syslinux/ldlinux.c32
> > ./boot/syslinux/menu.c32
> > ./boot/syslinux/libutil_com.c32
> > ./boot/syslinux/syslinux.cfg
> >
> >
> Not working. Statically linked elf modules like cat.c32 work just fine from
> "boot:" prompt, but modules dynamically linked to lib&.c32 files do not
> work. They give "Failed to load" message. I think this is due to hardcoded
> lib*.c32 paths in other elf modules. I alo tried Syslinux 6.00-pre efi64
>
> /EFI/syslinux/syslinux.efi
> /EFI/syslinux/syslinux.cfg
> /EFI/syslinux/*.c32 (including lib*.c32)
>
I am giving an example for 5.00 with BIOS system, not for the 6.00
(U)EFI branch. So, it is indeed working as I wrote it, with the
_exact_ CWD I wrote, using the official binaries included in 5.00.
I would suggest starting with the official binaries, using expected
paths, and including all *.c32 files in the same initial installation
directory "/boot/syslinux/" from 5.00. Once you get that first step
working, then you may want to start playing with other paths, CONFIG
directive, PATH directive, relative paths,...
Now, if you want to test 6.00 pre-releases, that's great, but I would
tend to think that it would be easier to first understand what to
expect, before getting to "not working".
I have some cases not working as I expected in 5.00, but the basic
case I described above indeed works correctly for me.
> Syslinux reads syslinux.cfg so I guess the issue is not in detecting the
> CWD (since otherwise it wouldn't load ldlinux.c32 and syslinux.cfg . For
> some reason in the "boot:" prompt typing any LABEL defined in syslinux.cfg
> boots linux kernel just fine (even though linux.c32 depends on libcom32.c32"
>
Are you using linux.c32 from the command prompt? If it is failing
from the simple menu but working correctly from cli, then maybe
that's a bug related to [vesa]menu.c32, their dependencies and PATH,
where the cli is not affected, thus responding correctly.
>
> Both menu.c32 and vesamenu.c32 fail to load because of lib*.c32 error. I
> even added
>
> PATH /EFI/syslinux:/boot/syslinux:/syslinux
>
> as very first line of /EFI/syslinux/syslinux.cfg . Since this issue is
> originally from elflink branch, it should be fixed there and merged into
> firmware branch.
>
Again, i would suggest starting with "traditional" expected
well-known paths (not "/EFI/..."). The "/EFI/..." initial path might
be added to the 6.00 branch (or not, I wouldn't know), but AFAIK it
is not a "traditional" expected path for 5.00.
In theory, you could use CONFIG to change directories, but that is
not part of the well-known initial installation directories. FWIW,
one of my reports about 5.00 failing already involves the CONFIG
directive.
Regards,
Ady.
More information about the Syslinux
mailing list