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