Excellent point. I had the impression that they had some ABI stability, but seems not.
@gmc
Using pxelinux.0 and menu.c32 from the same syslinux source works.
exactly. it works for me also. be aware about source for menu.c32
from boot/isolinux:
-r--r--r-- 1 tc staff 61440 Jan 19 21:28 menu.c32
from usr/local/share/syslinux
-rw-r--r-- 1 tc staff 56036 Apr 21 2012 menu.c32
http://www.syslinux.org/wiki/index.php/Common_Problems"Modules, especially COM32 modules (.c32 files), should ideally come from the same package as the core binaries (isolinux.bin, ldlinux.sys, pxelinux.0...) that you're using. Syslinux v4+ is strictly incompatible with older COM32 modules"
"When updating the Syslinux core binaries, it is highly advised that you also update all modules at the same time"
"Incorrect syntax in configuration files is another common error. If you aren't getting the menu or results you expect double check the syntax in your configuration file(s) is correct"
==
for example, my PXE from qmenu is like this qPXE-TC64.sh:
# Qemu TFTP (10.0.2.2) with root at tftp=./
export QEMU_AUDIO_DRV=oss
sudo modprobe -v kvm-intel
qemu-system-x86_64 -enable-kvm -machine q35 -m 256M -smp 2 -cpu core2duo\
-vga vmware -soundhw hda -usbdevice mouse -serial none -parallel none\
-net nic,vlan=0,model=virtio -net user,vlan=0,
tftp=./,bootfile=./pxelinux.0\ -drive file=disk-dummy-1G.qcow,if=virtio,media=disk\
and the ./pxelinux.cfg/01-52-54-00-12-34-56 is ("default" renamed as "01-52-54-00-12-34-56", for speed)
DEFAULT TC64
UI menu.c32PROMPT 0
TIMEOUT 50
MENU TITLE Qemu Master menu
LABEL TC64
MENU LABEL TinyCore64 PXE
TEXT HELP
Starts TC64
ENDTEXT
LINUX tc-boot/myvmlinuz64
INITRD tc-boot/mycore64.gz
INITRD tc-boot/myX64.gz
APPEND tftplist=10.0.2.2:/tce/onboot.lst blacklist=pcspkr
MENU SEPARATOR
LABEL com32_hdt
MENU LABEL HDT(com32) Menu mode
TEXT HELP
Starts hdt.c32 using the MENU mode
ENDTEXT
COM32 hdt.c32
APPEND modules_alias=ids/modules.alias.gz pciids=ids/pci.ids.gz