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