Jim Cromie
2005-Feb-25 15:32 UTC
[syslinux] corner cases in 308-pre5, pxelinux.cfg/default, esp w simple menus
the following config-file triggers a couple of odd corner-cases in
3.08-pre5 ;
SERIAL 0 19200
CONSOLE 0
APPEND console=ttyS0,19200n81 root=/dev/hda1
IMPLICIT 0
#DEFAULT sk1
#DEFAULT menu.c32
DEFAULT sk1
PROMPT 0
MENU TITLE Simple Boot Menu
LABEL sk1
KERNEL vmlinuz-2.6.10-sk1
APPEND console=ttyS0,19200n81 root=/dev/nfs
nfsroot=192.168.42.1:/nfshost/foo
nfsaddrs=192.168.42.100:192.168.42.1:192.168.42.1:255.255.255.0:soekris:eth0
panic=5 initrd=initrd-2.6.10-sk1.img
1. as given above, it works fine.
2. if the DEFAULT is switched to menu.c32, then
a. I get a complaint about an illegal command in the file -
if remove the commented line(s), that complaint goes away.
CLIENT MAC ADDR: 00 00 24 C2 46 C8
CLIENT IP: 192.168.42.100 MASK: 255.255.255.0 DHCP IP: 192.168.42.1
6-c8-00-24-c2-4
PXELINUX 3.08 0x41effbca Copyright (C) 1994-2005 H. Peter Anvin
Unknown keyword in config file.
Unknown keyword in config file.
Could not find kernel image: menu.c32
a.1 If I change the # to '# ', the keyword error is fixed. (but no
cure for not-found prob)
I think this is too subtle to leave as-is.
If you give me a filename & line-number Id be happy to look
at fixing it
(tho I expect you could fix it more easily than holding
my hand as I try ;-)
b. boot fails to fetch menu.c32
No attempt to fetch is in tftp server log. ??? (even if I
correct the comment-induced config error)
suggesting that my (possibly erroneous) placement of menu.c32
is not responsible.
absence/presence of MENU TITLE is irrelevant.
Feb 25 15:06:10 harpo in.tftpd[10178]: tftp: client does not accept options
Feb 25 15:06:10 harpo in.tftpd[10179]: RRQ from 192.168.42.100 filename
pxelinux.0
Feb 25 15:06:17 harpo in.tftpd[10180]: RRQ from 192.168.42.100 filename
pxelinux.cfg/01-00-00-24-c2-46-c8
I have a few other corners in my setup, that may/maynot be relevant.
1. symlinkd default file, saves a few secs of boot-time. (same results
w/o it)
[root at harpo boot]# ll pxelinux.cfg/01-00-00-24-c2-46-c8
lrwxrwxrwx 1 root root 7 Dec 4 11:07 pxelinux.cfg/01-00-00-24-c2-46-c8
-> default
2. Ive got my tftpd set to use /boot, not /tftpboot (hey, Im lazy)
Also, on more positive note,
CONSOLE 0
works for me - it fixes this:
gg ffiillee..ii
gg ffiillee..ii
gg ffiillee..ii
uu..cc3322mmeenn
bboooott::
Ive also tried various other 3.08-pre*, and 3.07, earlier and somewhat
less methodically.
I hope this is clear and useful.
tia
jimc
H. Peter Anvin
2005-Feb-25 19:46 UTC
[syslinux] corner cases in 308-pre5, pxelinux.cfg/default, esp w simple menus
Jim Cromie wrote:> > the following config-file triggers a couple of odd corner-cases in > 3.08-pre5 ; > > SERIAL 0 19200 > CONSOLE 0 > > APPEND console=ttyS0,19200n81 root=/dev/hda1 > IMPLICIT 0 > > #DEFAULT sk1 > #DEFAULT menu.c32A syslinux comment is # followed by whitespace. #DEFAULT is not a valid comment; # DEFAULT is, however; see your a.1 note. The complaint, of course, is that it can't figure out what you meant with the unknown directive #DEFAULT.> a. I get a complaint about an illegal command in the file - > if remove the commented line(s), that complaint goes away. > > CLIENT MAC ADDR: 00 00 24 C2 46 C8 > CLIENT IP: 192.168.42.100 MASK: 255.255.255.0 DHCP IP: 192.168.42.1 > 6-c8-00-24-c2-4 > PXELINUX 3.08 0x41effbca Copyright (C) 1994-2005 H. Peter Anvin > Unknown keyword in config file. > Unknown keyword in config file. > Could not find kernel image: menu.c32The problem is that you have IMPLICIT 0, but menu.c32 is, actually, an implicit invocation. The workaround is to instead do this: IMPLICIT 0 DEFAULT menu LABEL menu KERNEL menu.c32 MENU HIDE It's ugly, I agree. I'll have to think about that. -hpa