[syslinux] ifcpu64.c32 not working properly when used in a menu include file

John Newman jnnewman at peer1.com
Tue Sep 4 07:39:18 PDT 2012


The following is a pxelinux problem, specifically to do with
including config files with the menu include directive and the
ifcpu64.c32 com module.

I have a working ifcpu64.c32 setup that jumps to the label rescue64
in the case of a 64-bit CPU. The label "rescue64" defines a 64-bit
kernel and a 64-bit initrd.img. The setup jumps to a label named
"rescue32" in the case of a 32-bit CPU, which is also a label, this
time defining a 32-bit vmlinuz and a 32-bit initrd.img/userland.

It looks more or less like the following:

# rescue_dev
LABEL rescue
  IPAPPEND 2
  MENU LABEL ^rescue (Auto-detect CPU type)
  KERNEL ifcpu64.c32
  APPEND rescue64 -- rescue32
  TEXT HELP
     Load appropriate image
  ENDTEXT
LABEL rescue64
  MENU HIDE
  IPAPPEND 2
  KERNEL images/vmlinuz64
  APPEND initrd=images/initrd64.img init=/linuxrc root=/dev/ram0 rw
devfs=nomount console=ttyS0,115200 console=tty0 ksipaddr=kickstart
LABEL rescue32
  MENU HIDE
  IPAPPEND 2
  KERNEL images/vmlinuz32
  APPEND initrd=images/initrd32.img init=/linuxrc root=/dev/ram0 rw
devfs=nomount console=ttyS0,115200 console=tty0 ksipaddr=kickstart


This all works perfectly when the code above is directly
in the pxe target file that is being used. However, when I use the
"MENU INCLUDE" directive in a file that defines some more
options to suck this bit in, the label parsing/jumping by ifcpu64.c32
stops working properly. When I select the "rescue (Auto-detect CPU
type)" option from the menu, instead of jumping to the label
rescue64, it tries to shove first the literal file rescue64 at me,
then when that isn't found it looks for rescue64.cbt, rescue64.0,
rescue64.com, rescue64.c32 and maybe a few others. Basically,
it is ignoring the rescue64 label and trying to directly spit
a rescue64 file out at me. I can see this from the tftpd logs.

Has anyone else seen similar behaviour? Any tips or ideas?

Greatly appreciated,
John

-- 
John Newman
Product Engineering - Peer1 Hosting



More information about the Syslinux mailing list