[syslinux] 5.01 whichsys.c32 / ifcpu64.c32 does not execute labels
Ady
ady-sf at hotmail.com
Fri Feb 1 19:46:43 PST 2013
> On 02/01/2013 08:52 PM, Ady wrote:
> >
> >> Hello
> >>
> >> I am working as developer of archiso (Arch Linux ISO creator). I am
> >> triying to get working with syslinux 5.01 (previously using 4.06).
> >>
> >> whichsys.c32 does not execute labels and does not throws any error, just
> >> a help message (the same thing happens with ifcpu64.c32 and ifcpu.c32)
> >>
> >> Example:
> >>
> >>
> >> boot: <<TAB>>
> >> select pxe sys
> >>
> >> boot: whichsys -iso- sys -pxe- pxe -sys- sys
> >> Usage: whichsys.c32 [-iso- command] [-pxe- command] [-sys- command]
> >> Examples: whichsys.c32 -iso- chain.c32 hd0 -sys- chain.c32 hd1 swap
> >> whichsys.c32 -iso- config iso.cfg -pxe- config pxe.cfg
> >> boot:
> >>
> >> The same things happens if anything command is passed as arguments, ie:
> >>
> >> boot: whichsys -sys- coco -iso- pepe
> >> Usage: whichsys.c32 [-iso- command] [-pxe- command] [-sys- command]
> >> Examples: whichsys.c32 -iso- chain.c32 hd0 -sys- chain.c32 hd1 swap
> >> whichsys.c32 -iso- config iso.cfg -pxe- config pxe.cfg
> >> boot:
> >>
> >> also if I try to execute a c32 file without extension, ie:
> >>
> >> boot: whichsys -iso- ls -sys- pwd
> >> Usage: whichsys.c32 [-iso- command] [-pxe- command] [-sys- command]
> >> Examples: whichsys.c32 -iso- chain.c32 hd0 -sys- chain.c32 hd1 swap
> >> whichsys.c32 -iso- config iso.cfg -pxe- config pxe.cfg
> >> boot:
> >>
> >> But if I pass with .c32, it works, but shows the helper message at end:
> >>
> >> boot: whichsys -iso- ls.c32 -sys- pwd.c32
> >> [dir] . [dir] i686 pkglist_i686.txt
> >> [dir] .. aitab
> >> [dir] boot checksum_i686.md5
> >> Usage: whichsys.c32 [-iso- command] [-pxe- command] [-sys- command]
> >> Examples: whichsys.c32 -iso- chain.c32 hd0 -sys- chain.c32 hd1 swap
> >> whichsys.c32 -iso- config iso.cfg -pxe- config pxe.cfg
> >> boot:
> >>
> >>
> >> I detected this, because it does not work from config file:
> >>
> >> ---
> >> DEFAULT select
> >>
> >> LABEL select
> >> COM32 boot/syslinux/whichsys.c32
> >> APPEND -pxe- pxe -sys- sys -iso- sys
> >>
> >> LABEL pxe
> >> CONFIG boot/syslinux/archiso_pxe_choose.cfg
> >>
> >> LABEL sys
> >> CONFIG boot/syslinux/archiso_sys_choose.cfg
> >> ---
> >>
> >> If more info/tests is needed please let me know.
> >>
> >
> > When you tried to use whichsys.c32, could you please provide:
>
> > A_ the path for your Current Working Directory?
>
> boot: pwd
> /arch/
>
>
> > B_ the path for the cfg file where you have the relevant whichsys.c32
> > boot entry?
>
> /arch/boot/syslinux/archiso.cfg
> /arch/boot/syslinux/whichsys.c32
>
> > C_ the path of the boot loader, and which one you used in your tests
> > (ldlinux.sys, isolinux.bin)?
>
> both modes: syslinux and isolinux
>
> * /arch/boot/syslinux/ldlinux.sys ( when installed on VFAT [extlinux -i
> /<MNT>/arch/boot/syslinux] )
>
> /arch/boot/syslinux/syslinux.cfg looks like this:
>
> ---
> DEFAULT loadconfig
>
> LABEL loadconfig
> CONFIG archiso.cfg
> APPEND ../../
> ---
>
> * /isolinux/isolinux.bin
>
> When booting in this mode directly using "El Torito" or via
> "hybrid-mbr-iso": there is a /isolinux/isolinux.cfg with contents:
>
> ---
> PATH /arch/boot/syslinux/
> DEFAULT loadconfig
>
> LABEL loadconfig
> CONFIG /arch/boot/syslinux/archiso.cfg
> APPEND /arch/
> ---
>
>
> > D_ the path where you have ldlinux.c32?
>
> /arch/boot/syslinux/ldlinux.c32
>
> > E_ the path where you have libcom32.c32?
>
> /arch/boot/syslinux/libcom32.c32
>
> >
> > Maybe with that additional info the issue can be replicated.
>
> You may want to ask, "why all these chains?" because in this way, with
> only one and the same directory structure and configuration files, we
> made posible without any change to boot via all three mode
> isolinux/syslinux/pxelinux and selecting if CPU supports 64-bit :)
>
>
> I made a cutted (just syslinux relevant files) hard disk img (qcow2) for
> qemu if you want (1.4MB) at:
> http://dl.dropbox.com/u/88891866/arch_.img.gz
>
I can replicate the initial report. To neutralize other possible
effects, I made a simple test for whichsys.c32, selecting labels,
with a "standard" structure booting ISOLINUX 4.06 and 5.01.
*** syslinux.cfg start ***
UI menu.c32
LABEL pwd1
COM32 pwd.c32
LABEL select
COM32 whichsys.c32
APPEND -pxe- pxe -sys- sys -iso- sys
LABEL ls1
COM32 ls.c32
LABEL pxe
COM32 hello.c32
LABEL sys
COM32 hello.c32
*** syslinux.cfg end ***
All the files are located in "/boot/syslinux/". Note that the PATH
directive was not used, but in this "standard" and simple structure,
I think it is not needed.
Testing with ISOLINUX 4.06, it indeed works as expected. Version 5.01
shows instead the help for whichsys.c32 as already described. Testing
whichsys.c32 v.5.01 with commands instead of labels works as
expected.
@Matt, Hpa and Gert,
Hmm, could this behavior be related to the way Syslinux 5.xx deals
with "default" file extensions?
PS (off-topic):
@Gerardo Exequiel Pozzi, BTW, you might want to reconsider using
"/arch/boot/syslinux/". By using "/boot/syslinux/" (without the
initial "/arch/") you might still be able to achieve your goal (same
cfg files for all variants), and you probably wouldn't need the
"/boot/isolinux/" path at all (and you might even not need the new
PATH directive, but that depends on other characteristics too). This
is independent of the report above. To be clear, I am not
recommending anything in particular; just mentioning a possible
alternative (and this is off-topic in this email thread).
Regards,
Ady.
More information about the Syslinux
mailing list