ifcpu.c32 is a comboot module for Syslinux that checks some CPU flags and loads the appropriate label in a pxelinux.cfg file.
This is only available in Syslinux 3.84 or later.
- working Syslinux environment
- two booting entry
ifcpu.c32 <options> <cpu_features> -- first_label -- second_label
if the <cpu_features> match the current host, first_label is loaded, else let's boot second_label.
The use of -- is required!
- debug : display some debugging messages
- dry-run : just do the detection, don't boot
- 64 : CPU have to be x86_64 compatible
- hvm : Processor must have hardware virtualization (hvm or svm)
- multicore : Processor must be multi-core
- smp : System have to be SMP
if you want to match many cpu features, just separate them with a single space
Here is an example pxelinux.cfg file for booting
label test com32 ifcpu.c32 append 64 hvm multicore -- boot_entry_1 -- boot_entry_2 label boot_entry_1 kernel vmlinuz append ... label boot_entry_2 kernel vmlinuz_64 append ...