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