1 There are two menu systems included with Syslinux, the advanced menu
2 system, and the simple menu system.
5 +++ THE ADVANCED MENU SYSTEM +++
7 The advanced menu system, written by Murali Krishnan Ganapathy, is
8 located in the menu/ subdirectly. It allows the user to create
9 hierarchial submenus, dynamic options, checkboxes, and just about
10 anything you want. It requires that the menu is compiled from a
11 simple C file, see menu/simple.c and menu/complex.c for examples.
13 The advanced menu system doesn't support serial console at this time.
15 See menu/README for more information.
18 +++ THE SIMPLE MENU SYSTEM +++
20 The simple menu system is a single module located at
21 com32/modules/vesamenu.c32 (graphical) or com32/modules/menu.c32 (text
22 mode only). It uses the same configuration file as the regular
23 Syslinux command line, and displays all the LABEL statements.
25 To use the menu system, simply make sure [vesa]menu.c32 is in the
26 appropriate location for your boot medium (the same directory as the
27 configuration file for SYSLINUX, EXTLINUX and ISOLINUX, and the same
28 directory as pxelinux.0 for PXELINUX), and put the following options
29 in your configuration file:
34 There are a few menu additions to the configuration file, all starting
35 with the keywords MENU or TEXT; like the rest of the Syslinux config
36 file language, it is case insensitive:
41 Give the menu a title. The title is presented at the top of
47 Do not display the actual menu unless the user presses a key.
48 All that is displayed is a timeout message.
53 Exit the menu system immediately unless either the Shift or Alt
54 key is pressed, or Caps Lock or Scroll Lock is set.
59 Insert an empty line in the menu.
64 (Only valid after a LABEL statement.)
65 Changes the label displayed for a specific entry. This allows
66 you to have a label that isn't suitable for the command line,
71 MENU LABEL Soft Cap ^Linux 9.6.36
72 KERNEL softcap-9.6.36.bzi
75 # A very dense operating system
77 MENU LABEL ^Windows CE/ME/NT
81 The ^ symbol in a MENU LABEL statement defines a hotkey.
82 The hotkey will be highlighted in the menu and will move the
83 menu cursor immediately to that entry.
85 Reusing hotkeys is disallowed, subsequent entries will not be
86 highlighted, and will not work.
88 Keep in mind that the LABELs, not MENU LABELs, must be unique,
89 or odd things will happen to the command-line.
94 (Only valid after a LABEL statement.)
95 Will add "count" spaces in front of the displayed menu entry.
100 (Only valid after a LABEL statement.)
101 Makes the entry unselectable. This allows you to make a
102 section in your menu with different options below it.
105 # Entries for network boots
112 MENU LABEL Soft Cap ^Linux 9.6.36
114 KERNEL softcap-9.6.36.bzi
122 APPEND initrd=dos622.imz
127 # Entries for local boots
134 MENU LABEL ^Windows 2000
141 MENU LABEL Windows ^XP
148 (Only valid after a LABEL statement.)
149 Suppresses a particular LABEL entry from the menu.
154 (Only valid after a LABEL statement.)
156 Indicates that this entry should be the default for this
157 particular submenu. See also the DEFAULT directive below.
162 ... which can span multiple lines
165 (Only valid after a LABEL statement.)
167 Specifies a help text that should be displayed when a particular
168 selection is highlighted.
173 (Only valid after a LABEL statement.)
175 Sets a password on this menu entry. "passwd" can be either a
176 cleartext password or a password encrypted with one of the
177 following algorithms:
180 SHA-1 (Signature: $4$)
181 SHA-2-256 (Signature: $5$)
182 SHA-2-512 (Signature: $6$)
184 Use the included Perl scripts "sha1pass" or "md5pass" to
185 encrypt passwords. MD5 passwords are compatible with most
186 Unix password file utilities; SHA-1 passwords are probably
187 unique to Syslinux; SHA-2 passwords are compatible with very
188 recent Linux distributions. Obviously, if you don't encrypt
189 your passwords they will not be very secure at all.
191 If you are using passwords, you want to make sure you also use
192 the settings "NOESCAPE 1", "PROMPT 0", and either set
193 "ALLOWOPTIONS 0" or use a master password (see below.)
195 If passwd is an empty string, this menu entry can only be
196 unlocked with the master password.
199 MENU MASTER PASSWD passwd
201 Sets a master password. This password can be used to boot any
202 menu entry, and is required for the [Tab] and [Esc] keys to
206 MENU BACKGROUND background
208 For vesamenu.c32, sets the background image. The background
209 can either be a color (see MENU COLOR) or the name of an image
210 file, which should be 640x480 pixels and either in PNG or JPEG
217 Begin/end a submenu. The entries between MENU BEGIN and MENU
218 END form a submenu, which is marked with a > mark on the right
219 hand of the screen. Submenus inherit the properties of their
220 parent menus, but can override them, and can thus have their
221 own backgrounds, master passwords, titles, timeouts, messages
227 (Only valid after a LABEL statement.)
229 This label will transfer to the named submenu instead of
230 booting anything. To transfer to the top-level menu, specify
236 (Only valid after a label statement inside MENU BEGIN ...
239 Exit to the next higher menu, or, if tagname is specified, to
245 (Only valid after a LABEL statement.)
247 This label quits the menu system.
249 WARNING: if MENU MASTER PASSWD or ALLOWOPTIONS 0 is set, this
250 will still allow exiting to the CLI; however, a separate MENU
251 PASSWD can of course be set for this label.
256 (Only valid inside MENU BEGIN ... MENU END)
258 Indicates that the menu system should start at the menu being
259 defined instead of at the top-level menu. See also the
260 DEFAULT directive below.
265 Set the global default. If "label" points into a submenu,
266 that menu becomes the start menu; in other words, this
267 directive has the same effect as both MENU DEFAULT and MENU
270 For backwards compatibility with earlier versions of Syslinux,
271 this directive is ignored unless the configuration file also
272 contains a UI directive.
274 Note: the CLI accepts options after the label, or even a
275 non-label. The menu system does not support that.
281 Remember the last entry selected and make that the default for
282 the next boot. A password-protected menu entry is *not*
283 saved. This requires the ADV data storage mechanism, which is
284 currently only implemented for EXTLINUX, although the other
285 Syslinux derivatives will accept the command (and ignore it.)
287 NOTE: MENU SAVE stores the LABEL tag of the selected entry;
288 this mechanism therefore relies on LABEL tags being unique.
289 On the other hand, it handles changes in the configuration
292 The MENU SAVE information can be cleared with
293 "extlinux --reset-adv <bootdir>".
295 A MENU SAVE or MENU NOSAVE at the top of a (sub)menu affects
296 all entries underneath that (sub)menu except those that in
297 turn have MENU SAVE or MENU NOSAVE declared. This can be used
298 to only save certain entires when selected.
301 INCLUDE filename [tagname]
302 MENU INCLUDE filename [tagname]
304 Include the contents of the configuration file filename at
307 In the case of MENU INCLUDE, the included data is only seen by
308 the menu system; the core syslinux code does not parse this
309 command, so any labels defined in it are unavailable.
311 If a tagname is included, the whole file is considered to have
312 been bracketed with a MENU BEGIN tagname ... MENU END pair,
313 and will therefore show up as a submenu.
316 MENU AUTOBOOT message
318 Replaces the message "Automatic boot in # second{,s}...". The
319 symbol # is replaced with the number of seconds remaining.
320 The syntax "{singular,[dual,]plural}" can be used to conjugate
326 Replaces the message "Press [Tab] to edit options".
329 MENU NOTABMSG message
331 Takes the place of the TABMSG message if option editing is
332 disabled. Defaults to blank.
335 MENU PASSPROMPT message
337 Replaces the message "Password required".
340 MENU COLOR element ansi foreground background shadow
342 Sets the color of element "element" to the specified color
345 screen Rest of the screen
348 unsel Unselected menu item
349 hotkey Unselected hotkey
351 hotsel Selected hotkey
352 disabled Disabled menu item
354 tabmsg Press [Tab] message
355 cmdmark Command line marker
357 pwdborder Password box border
358 pwdheader Password box header
359 pwdentry Password box contents
360 timeout_msg Timeout message
361 timeout Timeout counter
363 msgXX Message (F-key) file attribute XX
365 ... where XX is two hexadecimal digits (the "plain text" is 07).
367 "ansi" is a sequence of semicolon-separated ECMA-48 Set
368 Graphics Rendition (<ESC>[m) sequences:
370 0 reset all attributes to their defaults
372 4 set underscore (simulated with color on a color display)
375 22 set normal intensity
379 30 set black foreground
380 31 set red foreground
381 32 set green foreground
382 33 set brown foreground
383 34 set blue foreground
384 35 set magenta foreground
385 36 set cyan foreground
386 37 set white foreground
387 38 set underscore on, set default foreground color
388 39 set underscore off, set default foreground color
389 40 set black background
390 41 set red background
391 42 set green background
392 43 set brown background
393 44 set blue background
394 45 set magenta background
395 46 set cyan background
396 47 set white background
397 49 set default background color
399 These are used (a) in text mode, and (b) on the serial
402 "foreground" and "background" are color codes in #AARRGGBB
403 notation, where AA RR GG BB are hexadecimal digits for alpha
404 (opacity), red, green and blue, respectively. #00000000
405 represents fully transparent, and #ffffffff represents opaque
408 "shadow" controls the handling of the graphical console text
409 shadow. Permitted values are "none" (no shadowing), "std" or
410 "standard" (standard shadowing - foreground pixels are
411 raised), "all" (both background and foreground raised), and
412 "rev" or "reverse" (background pixels are raised.)
414 If any field is set to "*" or omitted (at the end of the line)
415 then that field is left unchanged.
418 The current defaults are:
420 menu color screen 37;40 #80ffffff #00000000 std
421 menu color border 30;44 #40000000 #00000000 std
422 menu color title 1;36;44 #c00090f0 #00000000 std
423 menu color unsel 37;44 #90ffffff #00000000 std
424 menu color hotkey 1;37;44 #ffffffff #00000000 std
425 menu color sel 7;37;40 #e0000000 #20ff8000 all
426 menu color hotsel 1;7;37;40 #e0400000 #20ff8000 all
427 menu color disabled 1;30;44 #60cccccc #00000000 std
428 menu color scrollbar 30;44 #40000000 #00000000 std
429 menu color tabmsg 31;40 #90ffff00 #00000000 std
430 menu color cmdmark 1;36;40 #c000ffff #00000000 std
431 menu color cmdline 37;40 #c0ffffff #00000000 std
432 menu color pwdborder 30;47 #80ffffff #20ffffff std
433 menu color pwdheader 31;47 #80ff8080 #20ffffff std
434 menu color pwdentry 30;47 #80ffffff #20ffffff std
435 menu color timeout_msg 37;40 #80ffffff #00000000 std
436 menu color timeout 1;37;40 #c0ffffff #00000000 std
437 menu color help 37;40 #c0ffffff #00000000 std
438 menu color msg07 37;40 #90ffffff #00000000 std
441 MENU MSGCOLOR fg_filter bg_filter shadow
443 Sets *all* the msgXX colors to a color scheme derived from the
444 fg_filter and bg_filter values. Background color zero is
445 always treated as transparent. The default corresponds to:
447 menu msgcolor #90ffffff #80ffffff std
449 This directive should come before any directive that
450 customizes individual msgXX colors.
455 MENU PASSWORDMARGIN 3
463 MENU HELPMSGENDROW -1
468 These options control the layout of the menu on the screen.
469 The values above are the defaults.
471 A negative value is relative to the calculated length of the
472 screen (25 for text mode, 28 for VESA graphics mode.)
475 F1 textfile background
477 F12 textfile background
479 Displays full-screen help (also available at the command line.)
480 The same control code sequences as in the command line
481 interface are supported, although some are ignored.
483 Additionally, a second argument allows a different background
484 image (see MENU BACKGROUND for supported formats) to be displayed.
487 The menu system honours the TIMEOUT command; if TIMEOUT is specified
488 it will execute the ONTIMEOUT command if one exists, otherwise it will
489 pick the default menu option. WARNING: the timeout action will bypass
490 password protection even if one is set for the specified or default
493 Normally, the user can press [Tab] to edit the menu entry, and [Esc]
494 to return to the Syslinux command line. However, if the configuration
495 file specifies ALLOWOPTIONS 0, these keys will be disabled, and if
496 MENU MASTER PASSWD is set, they require the master password.
498 The simple menu system supports serial console, using the normal
499 SERIAL directive. However, it can be quite slow over a slow serial
500 link; you probably want to set your baudrate to 38400 or higher if
501 possible. It requires a Linux/VT220/ANSI-compatible terminal on the
505 +++ USING AN ALTERNATE CONFIGURATION FILE +++
508 It is also possible to load a secondary configuration file, to get to
509 another menu. To do that, invoke menu.c32 with the name of the
510 secondary configuration file.
513 MENU LABEL Another Menu
515 APPEND othermenu.conf
517 If you specify more than one file, they will all be read, in the order
518 specified. The dummy filename ~ (tilde) is replaced with the filename
519 of the main configuration file.
521 # The file graphics.conf contains common color and layout commands for
524 MENU LABEL Another Menu
526 APPEND graphics.conf othermenu.conf
528 # Return to the main menu
530 MENU LABEL Return to Main Menu
532 APPEND graphics.conf ~
534 See also the MENU INCLUDE directive above.