syslinux/txt/syslinux.cfg.txt
<<
>>
Prefs
   1= syslinux.cfg(5) =
   2:doctype: manpage
   3:revdate: 2012-10-28
   4:author: H. Peter Anvin
   5:author-email: hpa@zytor.com
   6:editor1: Gene Cumm
   7:editor1-email: gene.cumm@gmail.com
   8:editor1-revlast: 2012-10-28
   9:nbsp8: &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
  10:nbsp32: {nbsp8}{nbsp8}{nbsp8}{nbsp8}
  11:data-uri:
  12
  13== NAME ==
  14syslinux.cfg - *Syslinux* configuration file
  15
  16
  17== DESCRIPTION ==
  18Configuration for the boot behavior and user experience of *Syslinux*
  19boot loaders, the format of display files and the boot prompt behavior.
  20
  21Blank lines are ignored.
  22
  23Note that the configuration file is not completely decoded.  Syntax
  24different from the one described above may still work correctly in this
  25version of *Syslinux*, but may break in a future one.
  26
  27
  28== LOCATION/NAME ==
  29*SYSLINUX* (before 4.00) used the configuration filename of
  30syslinux.cfg.  *EXTLINUX* (merged into *SYSLINUX* as of 4.00) used the
  31filename extlinux.conf.  Both default to searching for the config file
  32in the installed directory (containing ldlinux.sys/extlinux.sys).  As of
  334.00, *SYSLINUX* will search for extlinux.conf then syslinux.cfg in each
  34directory before falling back to the next directory.
  35
  36As of 3.35, *SYSLINUX* also searches /boot/syslinux, /syslinux and /.
  37
  38*ISOLINUX* (before 4.02) used the configuration filename of
  39isolinux.cfg, searching  /boot/isolinux (starting 2.00), then /isolinux
  40and /.  As of 4.02, *ISOLINUX* will search for isolinux.cfg then
  41syslinux.cfg in /boot/isolinux before searching for the same files in
  42/isolinux, /boot/syslinux, /syslinux, and /.
  43
  44
  45== GLOBAL DIRECTIVES - MAIN ==
  46*#* comment::
  47A line comment.  As of version 3.10, the space between the *#* and the
  48comment is no longer required.
  49
  50*MENU* any string::
  51(3.00+) A directive for the simple menu system, treated as a comment
  52outside the menu.  See menu.txt.
  53
  54*INCLUDE* 'filename'::
  55Inserts the contents of another file at this point in the configuration
  56file. Files can currently be nested up to 16 levels deep, but it is not
  57guaranteed that more than 8 levels will be supported in the future.
  58
  59*DEFAULT* 'kernel' 'options...'::
  60Sets the default command line (which often references a LABEL).  If
  61*Syslinux* boots automatically, it will act just as if the entries after
  62*DEFAULT* had been typed in at the 'boot:' prompt.  Multiple uses will
  63result in an override.
  64+
  65If no configuration file is present, or no *DEFAULT* or *UI* entry is
  66present in the config file, an error message is displayed and the
  67'boot:' prompt is shown (3.85+).
  68
  69*UI* 'module' 'options...'::
  70Selects a specific user interface 'module' (typically menu.c32 or
  71vesamenu.c32).  The command-line interface treats this as a directive
  72that overrides the *DEFAULT* directive to load this module instead at
  73startup, for an empty command line and at timeout and *PROMPT* directive
  74to not prompt (but these directives may have effects on other
  75configuration parsers).  Multiple uses will result in an override.
  76
  77*LABEL* 'mylabel'::
  78Begin a new *LABEL* clause.  If 'mylabel' is entered as the kernel to
  79boot, *Syslinux* should instead boot "image" (specified by a directive
  80from *KERNEL-LIKE DIRECTIVES*) with any specified *DUAL-PURPOSE
  81DIRECTIVES* being used instead of the global instance.
  82+
  83'mylabel' must be unique.  Currently the first instance is used but may
  84result in an error or undesired behavior.  'mylabel' ends at the first
  85character that is not a non-white-space printable character and should
  86be restricted to non-white-space typeable characters.  Prior to version
  873.32, this would transformed to a DOS compatible format of 8.3 with a
  88restricted character set.  A *LABEL* clause must contain exactly 1 of
  89the *KERNEL-LIKE DIRECTIVES* and may contain 1 each of the *LABEL-ONLY
  90DIRECTIVES* or *DUAL-PURPOSE DIRECTIVES*.
  91+
  92Within a *LABEL*, using multiple *KERNEL-LIKE DIRECTIVES* or reuse of
  93*LABEL-ONLY DIRECTIVES* or *DUAL-PURPOSE DIRECTIVES* will result in an
  94override.  Otherwise, multiple instances of the same directive will
  95result in the last being effective.
  96
  97
  98== DUAL-PURPOSE DIRECTIVES ==
  99Use of any of the *DUAL-PURPOSE DIRECTIVES* as *GLOBAL DIRECTIVES* is
 100discouraged if there will be any non-Linux images loaded as *ALL* images
 101will get these, including those manually entered at the 'boot:' prompt.
 102
 103*APPEND* 'options...'::
 104Add one or more options to the kernel command line.  These are added
 105both for automatic and manual boots.  The options are added at the very
 106beginning of the kernel command line, usually permitting explicitly
 107entered kernel options to override them.  This is the equivalent of the
 108LILO "append" option.
 109+
 110Use of the parameter 'initrd=' supports multiple filenames separated by
 111commas (ie 'initrd=initrd_file1,initrd_file2') within a single instance.
 112This is mostly useful for initramfs, which can be composed of multiple
 113separate cpio or cpio.gz archives.
 114+
 115Note: all initrd files except the last one are zero-padded to a 4K page
 116boundary.  This should not affect initramfs.
 117+
 118Note: Only the last effective 'initrd=' parameter is used for loading
 119initrd files.
 120
 121*APPEND* -::
 122Append nothing.  *APPEND* with a single hyphen as argument in a *LABEL*
 123section can be used to override a global *APPEND*.
 124
 125//[FIXME: Shorten subdefinitions]
 126*SYSAPPEND* 'bitmask'::
 127*IPAPPEND* 'bitmask'::
 128(*SYSAPPEND*: 5.10+; *IPAPPEND*: *PXELINUX* only)
 129The *SYSAPPEND* option was introduced in *Syslinux* 5.10; it is an
 130enhancement of a previous option *IPAPPEND* which was only available on
 131*PXELINUX*.  'bitmask' is interpreted as decimal format unless prefixed
 132with "0x" for hexadecimal or "0" (zero) for octal.  The 'bitmask' is an
 133OR (sum) of the following integer options:
 134
 135ifndef::doctype-manpage[[horizontal]]
 136*1*::: An option of the following format should be generated, based on
 137the input from the DHCP/BOOTP or PXE boot server and added to the kernel
 138command line(see note below; empty for non-PXELINUX variants):
 139+
 140----
 141ip=<client-ip>:<boot-server-ip>:<gw-ip>:<netmask>
 142----
 143+
 144NOTE:  The use of option 1 is no substitute for running a DHCP client in
 145the booted system and should instead only be used to seed the client for
 146a request.  Without regular renewals, the lease acquired by the PXE BIOS
 147will expire, making the IP address available for reuse by the DHCP
 148server.
 149+
 150*2*::: An option of the following format should be generated, in
 151dash-separated hexadecimal with leading hardware type (same as for the
 152configuration file; see pxelinux.txt.) and added to the kernel command
 153line, allowing an initrd program to determine from which interface the
 154system booted(empty for non-PXELINUX variants):
 155+
 156----
 157BOOTIF=<hardware-address-of-boot-interface>
 158----
 159+
 160*4*::: An option of the following format should be generated, in lower
 161case hexadecimal in the format normally used for UUIDs (same as for the
 162configuration file; see pxelinux.txt.) and added to the kernel command
 163line:
 164+
 165----
 166SYSUUID=<system uuid>
 167----
 168+
 169*8*::: (5.10+) indicate the CPU family and certain particularly
 170significant CPU feature bits:
 171+
 172----
 173CPU=<family><features>
 174----
 175+
 176The <family> is a single digit from 3 (i386) to 6 (i686 or higher.)  The
 177following CPU features are currently reported; additional flags may be
 178added in the future:
 179+
 180....
 181P       Physical Address Extension (PAE)
 182V       Intel Virtualization Technology (VT/VMX)
 183T       Intel Trusted Exection Technology (TXT/SMX)
 184X       Execution Disable (XD/NX)
 185L       Long Mode (x86-64)
 186S       AMD SMX virtualization
 187....
 188+
 189*DMI*::: (5.10+) The following strings are derived from DMI/SMBIOS
 190information if available:
 191+
 192        Bit     String          Significance
 193        -------------------------------------------------------------
 194        0x00010 SYSVENDOR=      System vendor name
 195        0x00020 SYSPRODUCT=     System product name
 196        0x00040 SYSVERSION=     System version
 197        0x00080 SYSSERIAL=      System serial number
 198        0x00100 SYSSKU=         System SKU
 199        0x00200 SYSFAMILY=      System family
 200        0x00400 MBVENDOR=       Motherboard vendor name
 201        0x00800 MBVERSION=      Motherboard version
 202        0x01000 MBSERIAL=       Motherboard serial number
 203        0x02000 MBASSET=        Motherboard asset tag
 204        0x04000 BIOSVENDOR=     BIOS vendor name
 205        0x08000 BIOSVERSION=    BIOS version
 206        0x10000 SYSFF=          System form factor
 207+
 208If these strings contain white-space characters, they are replaced with
 209underscores (_).
 210+
 211The system form factor value is a number defined in the SMBIOS
 212specification, available at http://www.dmtf.org/.  As of version 2.7.1
 213of the specification, the following values are defined:
 214+
 215          1     Other
 216          2     Unknown
 217          3     Desktop
 218          4     Low profile desktop
 219          5     Pizza box
 220          6     Mini tower
 221          7     Tower
 222          8     Portble
 223          9     Laptop
 224         10     Notebook
 225         11     Handheld
 226         12     Docking station
 227         13     All-in-one
 228         14     Subnotebook
 229         15     Space-saving
 230         16     Lunch box
 231         17     Main server chassis
 232         18     Expansion chassis
 233         19     Subchassis
 234         20     Bus expansion chassis
 235         21     Peripheral chassis
 236         22     RAID chassis
 237         23     Rack mount chasss
 238         24     Sealed-case PC
 239         25     Multi-system chassis
 240         26     Compact PCI
 241         27     Advanced TCI
 242         28     Blade
 243         29     Blade enclosure
 244
 245
 246
 247== KERNEL-LIKE DIRECTIVES ==
 248// Alpha sort after KERNEL and LINUX
 249*KERNEL* 'image'::
 250Load a kernel-like file 'image' with automatic filetype detection based
 251on file extension, listed under the non-auto-detecting directives,
 252defaulting to *LINUX*.
 253
 254//[FIXME: Should "'image' as " be removed entirely or added to all? 
 255*LINUX* is used as an example]
 256*LINUX* 'image'::
 257Load 'image' as a Linux-like kernel. MEMDISK is an example of a
 258non-Linux kernel loaded in a Linux-like fashion.
 259
 260*BOOT* 'image'::
 261(*ISOLINUX* only: .bin; *SYSLINUX* only: .bs) Load a boot sector.  .bin
 262is a "CD boot sector" and .bs is a regular disk boot sector.
 263
 264*BSS* 'image'::
 265(*SYSLINUX* only: .bss) Load a BSS image, a .bs image with the DOS
 266superblock patched in.
 267
 268*COMBOOT* 'image'::
 269(.com, .cbt; Removed as of 5.00) Load a *Syslinux* COMBOOT image.  .com
 270images may also be runnable from DOS while .cbt images are not.  See
 271also *comboot.txt*
 272
 273*COM32* 'image'::
 274(.c32) Load a *Syslinux* COM32 (32-bit *COMBOOT*) image.  See also
 275*comboot.txt*
 276
 277*CONFIG* 'image'::
 278Load a new configuration file.  The configuration file is read, the
 279working directory is changed (if specified via an *APPEND*), then the
 280configuration file is parsed.
 281
 282*FDIMAGE* 'image'::
 283(Removed as of 4.05, added 1.65; *ISOLINUX* only: .img) Load a disk
 284image.
 285
 286*LOCALBOOT* 'type'::
 287(*PXELINUX* 1.53+; *ISOLINUX* ??3.10+; *SYSLINUX* 3.70+)Attempt a
 288different local boot method.  The special value -1 causes the boot
 289loader to report failure to the BIOS, which, on recent BIOSes, should
 290mean that the next boot device in the boot sequence should be activated.
 291 Values other than those documented may produce undesired results.
 292+
 293On *PXELINUX*, 'type' 0 means perform a normal boot.  'type' 4 will
 294perform a local boot with the Universal Network Driver Interface (UNDI)
 295driver still resident in memory.  Finally, 'type' 5 will perform a local
 296boot with the entire PXE stack, including the UNDI driver, still
 297resident in memory. All other values are undefined.  If you don't know
 298what the UNDI or PXE stacks are, don't worry -- you don't want them,
 299just specify 0.
 300+
 301On *ISOLINUX*/*SYSLINUX*, the 'type' specifies the local drive number to
 302boot from; 0x00 is the primary floppy drive and 0x80 is the primary hard
 303drive.
 304
 305*PXE* 'image'::
 306(*PXELINUX* only: .0) Load a PXE NBP (Network Boot Program) image.  The
 307PXE protocol does not provide any means for specifiying or using a
 308command line or initrd.
 309
 310
 311== LABEL-ONLY DIRECTIVES ==
 312*INITRD* 'initrd_file'::
 313(3.71+) An initrd can be specified in a separate statement (INITRD)
 314instead of as part of the *APPEND* statement; this functionally appends
 315"initrd=initrd_file" to the kernel command line.  Like 'initrd=', this
 316also supports multiple comma separated file names (see *APPEND*).
 317
 318
 319== GLOBAL DIRECTIVES - SECONDARY ==
 320These are global directives that are of lesser importance, often
 321affecting the user experience and not the boot process.
 322
 323*ALLOWOPTIONS* 'flag_val'::
 324If 'flag_val' is 0, the user is not allowed to specify any arguments on
 325the kernel command line.  The only options recognized are those
 326specified in an *APPEND*) statement.  The default is 1.
 327
 328*IMPLICIT* 'flag_val'::
 329If 'flag_val' is 0, do not load a kernel image unless it has been
 330explicitly named in a *LABEL* statement.  The default is 1.
 331
 332*TIMEOUT* 'timeout'::
 333Indicates how long to wait at the 'boot:' prompt until booting
 334automatically, in units of 1/10 s.  The timeout is cancelled as soon as
 335the user types anything on the keyboard, the assumption being that the
 336user will complete the command line already begun.  The timer is reset
 337to 0 upon return from an unsuccessful attempt to boot or from a module. 
 338A timeout of zero (the default) will disable the timeout completely.
 339
 340*TOTALTIMEOUT* 'timeout'::
 341Indicates how long to wait until booting automatically, in units of
 3421/10 s.  This timeout is *not* cancelled by user input, and can thus be
 343used to deal with serial port glitches or "the user walked away" type
 344situations.  A timeout of zero (the default) will disable the timeout
 345completely.
 346+
 347Both *TIMEOUT* and *TOTALTIMEOUT* can be used together, for example:
 348+
 349----
 350# Wait 5 seconds unless the user types something, but
 351# always boot after 15 minutes.
 352TIMEOUT 50
 353TOTALTIMEOUT 9000
 354----
 355
 356// FIXME: be consistent
 357*ONTIMEOUT* 'kernel options...'::
 358Sets the command line invoked on a timeout (which often references a
 359LABEL).  If not specified, 'UI' (if used) or 'DEFAULT is used.
 360
 361*ONERROR* 'kernel options...'::
 362If a kernel image is not found (either due to it not existing, or
 363because *IMPLICIT* is set), run the specified command.  The faulty
 364command line is appended to the specified options, so if the *ONERROR*
 365directive reads as:
 366+
 367----
 368ONERROR xyzzy plugh
 369----
 370+
 371and the command line as entered by the user is:
 372+
 373----
 374foo bar baz
 375----
 376+
 377*Syslinux* will execute the following as if entered by the user:
 378+
 379----
 380xyzzy plugh foo bar baz
 381----
 382
 383*SERIAL* 'port [baudrate [flowcontrol]]'::
 384Enables a serial port to act as the console.  'port' is a number (0 =
 385/dev/ttyS0 = COM1, etc.) or an I/O port address (e.g. 0x3F8); if
 386'baudrate' is omitted, the baud rate defaults to 9600 bps.  The serial
 387parameters are hardcoded to be 8 bits, no parity, 1 stop bit.
 388+
 389'flowcontrol' is a combination of the following bits:
 390+
 391....
 3920x001 - Assert DTR
 3930x002 - Assert RTS
 3940x008 - Enable interrupts
 3950x010 - Wait for CTS assertion
 3960x020 - Wait for DSR assertion
 3970x040 - Wait for RI assertion
 3980x080 - Wait for DCD assertion
 3990x100 - Ignore input unless CTS asserted
 4000x200 - Ignore input unless DSR asserted
 4010x400 - Ignore input unless RI asserted
 4020x800 - Ignore input unless DCD asserted
 403....
 404+
 405All other bits are reserved.
 406+
 407Typical values are:
 408+
 409....
 410    0 - No flow control (default)
 4110x303 - Null modem cable detect
 4120x013 - RTS/CTS flow control
 4130x813 - RTS/CTS flow control, modem input
 4140x023 - DTR/DSR flow control
 4150x083 - DTR/DCD flow control
 416....
 417+
 418For the *SERIAL* directive to be guaranteed to work properly, it should
 419be the first directive in the configuration file.
 420+
 421NOTE: 'port' values from 0 to 3 means the first four serial ports
 422detected by the BIOS.  They may or may not correspond to the legacy port
 423values 0x3F8, 0x2F8, 0x3E8, 0x2E8.
 424+
 425Enabling interrupts (setting the 0x008 bit) may give better
 426responsiveness without setting the *NOHALT* option, but could
 427potentially cause problems with buggy BIOSes.
 428+
 429This option is "sticky" and is not automatically reset when loading a
 430new configuration file with the CONFIG command.
 431
 432*NOHALT* 'flag_val'::
 433If 'flag_val' is 1, don't halt the processor while idle. Halting the
 434processor while idle significantly reduces the power consumption, but
 435can cause poor responsiveness to the serial console, especially when
 436using scripts to drive the serial console, as opposed to human
 437interaction.
 438
 439*CONSOLE* 'flag_val'::
 440If 'flag_val' is 0, disable output to the normal video console. If
 441'flag_val' is 1, enable output to the video console (this is the
 442default.)
 443+
 444Some BIOSes try to forward this to the serial console and sometimes make
 445a total mess thereof, so this option lets you disable the video console
 446on these systems.
 447
 448*FONT* 'filename'::
 449Load a font in .psf format before displaying any output (except the
 450copyright line, which is output as ldlinux.sys itself is loaded.) 
 451*Syslinux* only loads the font onto the video card; if the .psf file
 452contains a Unicode table it is ignored.  This only works on EGA and VGA
 453cards; hopefully it should do nothing on others.
 454
 455*KBDMAP* 'keymap'::
 456Install a simple keyboard map.  The keyboard remapper used is *very*
 457simplistic (it simply remaps the keycodes received from the BIOS, which
 458means that only the key combinations relevant in the default layout --
 459usually U.S. English -- can be mapped) but should at least help people
 460with AZERTY keyboard layout and the locations of = and , (two special
 461characters used heavily on the Linux kernel command line.)
 462+
 463The included program keytab-lilo.pl from the LILO distribution can be
 464used to create such keymaps.  The file keytab-lilo.txt contains the
 465documentation for this program.
 466
 467*DISPLAY* 'filename'::
 468Displays the indicated file on the screen at boot time (before the boot:
 469prompt, if displayed).  Please see the section below on *DISPLAY* files.
 470+
 471NOTE: If the file is missing, this option is simply ignored.
 472
 473*SAY* 'message'::
 474Prints the message on the screen.
 475
 476*PROMPT* 'flag_val'::
 477If 'flag_val' is 0, display the boot: prompt only if the Shift or Alt
 478key is pressed, or Caps Lock or Scroll lock is set (this is the
 479default).  If 'flag_val' is 1, always display the boot: prompt.
 480
 481*NOESCAPE* 'flag_val'::
 482If 'flag_val' is set to 1, ignore the Shift/Alt/Caps Lock/Scroll Lock
 483escapes.  Use this (together with PROMPT 0) to force the default boot
 484alternative.
 485
 486*NOCOMPLETE* 'flag_val'::
 487If 'flag_val' is set to 1, the Tab key does not display labels at the
 488boot: prompt.
 489
 490//   ...etc...
 491*F1* 'filename'::
 492*F2* 'filename'::
 493*F3* 'filename'::
 494*F4* 'filename'::
 495*F5* 'filename'::
 496*F6* 'filename'::
 497*F7* 'filename'::
 498*F8* 'filename'::
 499*F9* 'filename'::
 500*F10* 'filename'::
 501*F11* 'filename'::
 502*F12* 'filename'::
 503Displays the indicated file on the screen when a function key is pressed
 504at the boot: prompt.  This can be used to implement pre-boot online help
 505(presumably for the kernel command line options.)  Please see the
 506section below on DISPLAY files.
 507+
 508When using the serial console, press <Ctrl-F><digit> to get to the help
 509screens, e.g. <Ctrl-F><2> to get to the F2 screen. For F10-F12, hit
 510<Ctrl-F><A>, <Ctrl-F>B, <Ctrl-F>C.  For compatibility with earlier
 511versions, F10 can also be entered as <Ctrl-F>0.
 512
 513*PATH* 'path'::
 514(5.00+) Specify a space-separated (' '; 5.00-5.10 was a colon ':') list
 515of directories to search when attempting to load modules. This directive
 516is useful for specifying the directories containing the lib*.c32 library
 517files as other modules may be dependent on these files, but may not
 518reside in the same directory.  Multiple instances will append additional
 519paths.
 520
 521*SENDCOOKIES* 'bitmask'::
 522(*PXELINUX* 5.10+) When downloading files over http, the SYSAPPEND
 523strings are prepended with _Syslinux_ and sent to the server as cookies.
 524The cookies are URL-encoded; whitespace is *not* replaced with
 525underscores.
 526+
 527This command limits the cookies send; 0 means no cookies.  The default
 528is -1, meaning send all cookies.
 529+
 530This option is "sticky" and is not automatically reset when loading a
 531new configuration file with the CONFIG command.
 532
 533
 534== DISPLAY FILE FORMAT ==
 535DISPLAY and function-key help files are text files in either DOS or UNIX
 536format (with or without <CR>).  In addition, the following special codes
 537are interpreted:
 538
 539//[FIXME]: #1 doesn't break; #2 as-is; #3 broken but not on right; #4
 540identical to #3
 541// horizontal extends the line's label, reducing the definition
 542// tab or space to shift explanation ?  align beginning or end?
 543
 544// ifndef::doctype-manpage[[horizontal]]
 545*<FF>*:: {nbsp32}                               = <Ctrl-L> = ASCII 12 +
 546Clear the screen, home the cursor.  Note that the screen is filled with
 547the current display color.
 548
 549*<FF>*::
 550= <Ctrl-L> = ASCII 12; Clear the screen, home the cursor.  Note that the
 551screen is filled with the current display color.
 552
 553*<FF>*::                                      <FF> = <Ctrl-L> = ASCII 12
 554+
 555Clear the screen, home the cursor.  Note that the screen is filled with
 556the current display color.
 557
 558*<FF>*::
 559<FF> = <Ctrl-L> = ASCII 12 +
 560Clear the screen, home the cursor.  Note that the screen is filled with
 561the current display color.
 562
 563*<SI>*'<bg><fg>'::                            <SI> = <Ctrl-O> = ASCII 15
 564+
 565Set the display colors to the specified background and foreground
 566colors, where <bg> and <fg> are the 2 hex digits representing 1 byte,
 567corresponding to the standard PC display attributes:
 568+
 569        0 = black               8 = dark grey
 570        1 = dark blue           9 = bright blue
 571        2 = dark green          a = bright green
 572        3 = dark cyan           b = bright cyan
 573        4 = dark red            c = bright red
 574        5 = dark purple         d = bright purple
 575        6 = brown               e = yellow
 576        7 = light grey          f = white
 577+
 578Picking a bright color (8-f) for the background results in the
 579corresponding dark color (0-7), with the foreground flashing.
 580+
 581Colors are not visible over the serial console.
 582
 583*<CAN>*'filename<newline>'::                 <CAN> = <Ctrl-X> = ASCII 24
 584+
 585If a VGA display is present, enter graphics mode and display the graphic
 586included in the specified file.  The file format is an ad hoc format
 587called LSS16; the included Perl program "ppmtolss16" can be used to
 588produce these images.  This Perl program also includes the file format
 589specification.
 590+
 591The image is displayed in 640x480 16-color mode.  Once in graphics mode,
 592the display attributes (set by <SI> code sequences) work slightly
 593differently: the background color is ignored, and the foreground colors
 594are the 16 colors specified in the image file.  For that reason,
 595ppmtolss16 allows you to specify that certain colors should be assigned
 596to specific color indicies.
 597+
 598Color indicies 0 and 7, in particular, should be chosen with care: 0 is
 599the background color, and 7 is the color used for the text printed by
 600*Syslinux* itself.
 601
 602*<EM>*::                                <EM> = <Ctrl-Y> = ASCII 25 +
 603If we are currently in graphics mode, return to text mode.
 604
 605*<DLE>*..*<ETB>*::                      <Ctrl-P>..<Ctrl-W> = ASCII 16-23
 606+
 607These codes can be used to select which modes to print a certain part of
 608the message file in.  Each of these control characters select a specific
 609set of modes (text screen, graphics screen, serial port) for which the
 610output is actually displayed:
 611+
 612        Character                       Text    Graph   Serial
 613        ------------------------------------------------------
 614        <DLE> = <Ctrl-P> = ASCII 16     No      No      No
 615        <DC1> = <Ctrl-Q> = ASCII 17     Yes     No      No
 616        <DC2> = <Ctrl-R> = ASCII 18     No      Yes     No
 617        <DC3> = <Ctrl-S> = ASCII 19     Yes     Yes     No
 618        <DC4> = <Ctrl-T> = ASCII 20     No      No      Yes
 619        <NAK> = <Ctrl-U> = ASCII 21     Yes     No      Yes
 620        <SYN> = <Ctrl-V> = ASCII 22     No      Yes     Yes
 621        <ETB> = <Ctrl-W> = ASCII 23     Yes     Yes     Yes
 622+
 623For example, the following will actually print out which mode the
 624console is in:
 625+
 626        <DC1>Text mode<DC2>Graphics mode<DC4>Serial port<ETB>
 627
 628*<SUB>*::                                   <SUB> = <Ctrl-Z> = ASCII 26
 629+
 630End of file (DOS convention).
 631
 632*<BEL>*::                               <BEL> = <Ctrl-G> = ASCII 7 +
 633Beep the speaker.
 634
 635
 636== BOOT LOADER IDS USED ==
 637The Linux boot protocol supports a "boot loader ID", a single byte where
 638the upper nybble specifies a boot loader family (3 = *Syslinux*) and the
 639lower nybble is version or, in the case of *Syslinux*, media:
 640
 641        0x31 (49) = SYSLINUX
 642        0x32 (50) = PXELINUX
 643        0x33 (51) = ISOLINUX
 644        0x34 (52) = EXTLINUX
 645
 646In recent versions of Linux, this ID is available as
 647/proc/sys/kernel/bootloader_type.
 648
 649
 650== NOVICE PROTECTION ==
 651*Syslinux* will attempt to detect booting on a machine with too little
 652memory, which means the Linux boot sequence cannot complete.  If so, a
 653message is displayed and the boot sequence aborted.  Holding down the
 654Ctrl key while booting disables this feature.
 655
 656Any file that *Syslinux* uses can be marked hidden, system or readonly
 657if so is convenient; *Syslinux* ignores all file attributes.  The
 658*SYSLINUX* installer automatically sets the readonly/hidden/system
 659attributes on LDLINUX.SYS.
 660
 661== EXAMPLE ==
 662Here are some sample config files:
 663----
 664# SERIAL 0 115200
 665DEFAULT linux
 666PROMPT 1
 667TIMEOUT 600
 668
 669LABEL linux
 670  LINUX vmlinuz
 671  APPEND initrd=initrd1.gz,initrd2.gz
 672
 673LABEL m
 674  COM32 menu.c32
 675----
 676In this example, serial port use is disabled but can be enabled by
 677uncommenting the first line and utilize serial port 0 at 115200 bps.  If
 678'linux' is typed on the command line, the kernel-like file 'vmlinuz' is
 679executed as a Linux kernel, initrd files initrd1.gz and initrd2.gz are
 680loaded as initial ramdisk files (like cpio.gz files for initramfs).  If
 681'm' is typed on the command line, the COM32 module 'menu.c32' is
 682executed to launch a menu system.
 683
 684
 685
 686== KNOWN BUGS ==
 687include::com-bug.txt[]
 688
 689
 690== BUG REPORTS ==
 691include::com-rpt.txt[]
 692
 693
 694== AUTHOR ==
 695This AsciiDoc derived document is a modified version of the original
 696*SYSLINUX* documentation by {author} <{author-email}>.  The conversion
 697to an AsciiDoc was made by {editor1} <{editor1-email}>
 698