Difference between revisions of "Ifcpu.c32"

From Syslinux Wiki
Jump to: navigation, search
(Wiki formatting.)
m (Minor misc. changes.)
 
Line 1: Line 1:
 
[[Category:Comboot]]
 
[[Category:Comboot]]
 +
[[Category:Examples]]
 
[[Category:Modules]]
 
[[Category:Modules]]
'''ifcpu.c32''' is a comboot module for Syslinux that checks some CPU flags and
+
'''ifcpu.c32''' is a comboot module for Syslinux that checks some CPU flags  
loads the appropriate label in a Syslinux configuration file.
+
and loads the appropriate label in a Syslinux configuration file.
  
 
This module is available in Syslinux 3.84 or later.  
 
This module is available in Syslinux 3.84 or later.  
Line 8: Line 9:
  
 
== Requirements ==
 
== Requirements ==
 
 
* working Syslinux environment
 
* working Syslinux environment
 
* two booting entries (labels)
 
* two booting entries (labels)
Line 20: Line 20:
 
When <tt>ifcpu.c32</tt> is used with no additional parameters, the usage help is printed.
 
When <tt>ifcpu.c32</tt> is used with no additional parameters, the usage help is printed.
  
If the <tt>''cpu_features''</tt> match the current host, then <tt>''first_label''</tt> is loaded,  
+
If the <tt>''cpu_features''</tt> match the current host,  
 +
then <tt>''first_label''</tt> is loaded,  
 
else let's boot <tt>''second_label''</tt>.
 
else let's boot <tt>''second_label''</tt>.
  
Line 26: Line 27:
  
 
== Options ==
 
== Options ==
 
 
; debug
 
; debug
 
: display some debugging messages
 
: display some debugging messages
Line 33: Line 33:
  
 
== CPU Features ==
 
== CPU Features ==
 
 
; 64
 
; 64
 
: CPU has to be x86_64 compatible
 
: CPU has to be x86_64 compatible
Line 50: Line 49:
  
 
== Example ==
 
== Example ==
 
 
{|
 
{|
 
|
 
|
 
<pre>
 
<pre>
label test
+
LABEL test
  com32 ifcpu.c32
+
  COM32 ifcpu.c32
  append 64 hvm multicore -- boot_entry_1 -- boot_entry_2
+
  APPEND 64 hvm multicore -- boot_entry_1 -- boot_entry_2
label boot_entry_1
+
LABEL boot_entry_1
  kernel vmlinuz_64
+
  KERNEL vmlinuz_64
  append ...
+
  APPEND ...
label boot_entry_2
+
LABEL boot_entry_2
  kernel vmlinuz
+
  KERNEL vmlinuz
  append ...
+
  APPEND ...
 
</pre>
 
</pre>
 
|}
 
|}
  
 
== See Also ==
 
== See Also ==
 
+
* [[Ifcpu64.c32]]: Detection of 64bits capable CPUs
* [[Ifcpu64.c32]] - Detection of 64bits capable CPUs
+

Latest revision as of 05:52, 15 June 2019

ifcpu.c32 is a comboot module for Syslinux that checks some CPU flags and loads the appropriate label in a Syslinux configuration file.

This module is available in Syslinux 3.84 or later. Some options were added in later versions.

Requirements

  • working Syslinux environment
  • two booting entries (labels)

Syntax

ifcpu.c32 <options> <cpu_features> -- first_label -- second_label

When ifcpu.c32 is used with no additional parameters, the usage help is printed.

If the cpu_features match the current host, then first_label is loaded, else let's boot second_label.

The use of "--" is required!

Options

debug
display some debugging messages
dry-run
just do the detection, don't boot

CPU Features

64
CPU has to be x86_64 compatible
hvm
Processor must have hardware virtualization (hvm or svm)
hypervisor
Processor is running under an hypervisor
multicore
Processor must be multi-core
pae
Processor features Physical Address Extension (PAE)
smp
System has to be SMP

If you want to match several cpu features, just separate them with a single space.

Example

LABEL test
 COM32 ifcpu.c32
 APPEND 64 hvm multicore -- boot_entry_1 -- boot_entry_2
LABEL boot_entry_1
 KERNEL vmlinuz_64
 APPEND ...
LABEL boot_entry_2
 KERNEL vmlinuz
 APPEND ...

See Also