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 Insert an empty line in the menu.
58 (Only valid after a LABEL statement.)
59 Changes the label displayed for a specific entry. This allows
60 you to have a label that isn't suitable for the command line,
65 MENU LABEL Soft Cap ^Linux 9.6.36
66 KERNEL softcap-9.6.36.bzi
69 # A very dense operating system
71 MENU LABEL ^Windows CE/ME/NT
75 The ^ symbol in a MENU LABEL statement defines a hotkey.
76 The hotkey will be highlighted in the menu and will move the
77 menu cursor immediately to that entry.
79 Reusing hotkeys is disallowed, subsequent entries will not be
80 highlighted, and will not work.
82 Keep in mind that the LABELs, not MENU LABELs, must be unique,
83 or odd things will happen to the command-line.
88 (Only valid after a LABEL statement.)
89 Will add "count" spaces in front of the displayed menu entry.
94 (Only valid after a LABEL statement.)
95 Makes the entry unselectable. This allows you to make a
96 section in your menu with different options below it.
99 # Entries for network boots
106 MENU LABEL Soft Cap ^Linux 9.6.36
108 KERNEL softcap-9.6.36.bzi
116 APPEND initrd=dos622.imz
121 # Entries for local boots
128 MENU LABEL ^Windows 2000
135 MENU LABEL Windows ^XP
142 (Only valid after a LABEL statement.)
143 Suppresses a particular LABEL entry from the menu.
148 (Only valid after a LABEL statement.)
150 Indicates that this entry should be the default for this
151 particular submenu. See also the DEFAULT directive below.
156 ... which can span multiple lines
159 (Only valid after a LABEL statement.)
161 Specifies a help text that should be displayed when a particular
162 selection is highlighted.
167 (Only valid after a LABEL statement.)
169 Sets a password on this menu entry. "passwd" can be either a
170 cleartext password or a password encrypted with one of the
171 following algorithms:
174 SHA-1 (Signature: $4$)
175 SHA-2-256 (Signature: $5$)
176 SHA-2-512: (Signature: $6$)
178 Use the included Perl scripts "sha1pass" or "md5pass" to
179 encrypt passwords. MD5 passwords are compatible with most
180 Unix password file utilities; SHA-1 passwords are probably
181 unique to Syslinux; SHA-2 passwords are compatible with very
182 recent Linux distributions. Obviously, if you don't encrypt
183 your passwords they will not be very secure at all.
185 If you are using passwords, you want to make sure you also use
186 the settings "NOESCAPE 1", "PROMPT 0", and either set
187 "ALLOWOPTIONS 0" or use a master password (see below.)
189 If passwd is an empty string, this menu entry can only be
190 unlocked with the master password.
193 MENU MASTER PASSWD passwd
195 Sets a master password. This password can be used to boot any
196 menu entry, and is required for the [Tab] and [Esc] keys to
200 MENU BACKGROUND background
202 For vesamenu.c32, sets the background image. The background
203 can either be a color (see MENU COLOR) or the name of an image
204 file, which should be 640x480 pixels and either in PNG or JPEG
211 Begin/end a submenu. The entries between MENU BEGIN and MENU
212 END form a submenu, which is marked with a > mark on the right
213 hand of the screen. Submenus inherit the properties of their
214 parent menus, but can override them, and can thus have their
215 own backgrounds, master passwords, titles, timeouts, messages
221 (Only valid after a LABEL statement.)
223 This label will transfer to the named submenu instead of
224 booting anything. To transfer to the top-level menu, specify
230 (Only valid after a label statement inside MENU BEGIN ...
233 Exit to the next higher menu, or, if tagname is specified, to
239 (Only valid after a LABEL statement.)
241 This label quits the menu system.
243 WARNING: if MENU MASTER PASSWD or ALLOWOPTIONS 0 is set, this
244 will still allow exiting to the CLI; however, a separate MENU
245 PASSWD can of course be set for this label.
250 (Only valid inside MENU BEGIN ... MENU END)
252 Indicates that the menu system should start at the menu being
253 defined instead of at the top-level menu. See also the
254 DEFAULT directive below.
259 Set the global default. If "label" points into a submenu,
260 that menu becomes the start menu; in other words, this
261 directive has the same effect as both MENU DEFAULT and MENU
264 For backwards compatibility with earlier versions of Syslinux,
265 this directive is ignored unless the configuration file also
266 contains a UI directive.
268 Note: the CLI accepts options after the label, or even a
269 non-label. The menu system does not support that.
272 INCLUDE filename [tagname]
273 MENU INCLUDE filename [tagname]
275 Include the contents of the configuration file filename at
278 In the case of MENU INCLUDE, the included data is only seen by
279 the menu system; the core syslinux code does not parse this
280 command, so any labels defined in it are unavailable.
282 If a tagname is included, the whole file is considered to have
283 been bracketed with a MENU BEGIN tagname ... MENU END pair,
284 and will therefore show up as a submenu.
287 MENU AUTOBOOT message
289 Replaces the message "Automatic boot in # second{,s}...". The
290 symbol # is replaced with the number of seconds remaining.
291 The syntax "{singular,[dual,]plural}" can be used to conjugate
297 Replaces the message "Press [Tab] to edit options".
300 MENU NOTABMSG message
302 Takes the place of the TABMSG message if option editing is
303 disabled. Defaults to blank.
306 MENU PASSPROMPT message
308 Replaces the message "Password required".
311 MENU COLOR element ansi foreground background shadow
313 Sets the color of element "element" to the specified color
316 screen Rest of the screen
319 unsel Unselected menu item
320 hotkey Unselected hotkey
322 hotsel Selected hotkey
323 disabled Disabled menu item
325 tabmsg Press [Tab] message
326 cmdmark Command line marker
328 pwdborder Password box border
329 pwdheader Password box header
330 pwdentry Password box contents
331 timeout_msg Timeout message
332 timeout Timeout counter
334 msgXX Message (F-key) file attribute XX
336 ... where XX is two hexadecimal digits (the "plain text" is 07).
338 "ansi" is a sequence of semicolon-separated ECMA-48 Set
339 Graphics Rendition (<ESC>[m) sequences:
341 0 reset all attributes to their defaults
343 4 set underscore (simulated with color on a color display)
346 22 set normal intensity
350 30 set black foreground
351 31 set red foreground
352 32 set green foreground
353 33 set brown foreground
354 34 set blue foreground
355 35 set magenta foreground
356 36 set cyan foreground
357 37 set white foreground
358 38 set underscore on, set default foreground color
359 39 set underscore off, set default foreground color
360 40 set black background
361 41 set red background
362 42 set green background
363 43 set brown background
364 44 set blue background
365 45 set magenta background
366 46 set cyan background
367 47 set white background
368 49 set default background color
370 These are used (a) in text mode, and (b) on the serial
373 "foreground" and "background" are color codes in #AARRGGBB
374 notation, where AA RR GG BB are hexadecimal digits for alpha
375 (opacity), red, green and blue, respectively. #00000000
376 represents fully transparent, and #ffffffff represents opaque
379 "shadow" controls the handling of the graphical console text
380 shadow. Permitted values are "none" (no shadowing), "std" or
381 "standard" (standard shadowing - foreground pixels are
382 raised), "all" (both background and foreground raised), and
383 "rev" or "reverse" (background pixels are raised.)
385 If any field is set to "*" or omitted (at the end of the line)
386 then that field is left unchanged.
389 The current defaults are:
391 menu color screen 37;40 #80ffffff #00000000 std
392 menu color border 30;44 #40000000 #00000000 std
393 menu color title 1;36;44 #c00090f0 #00000000 std
394 menu color unsel 37;44 #90ffffff #00000000 std
395 menu color hotkey 1;37;44 #ffffffff #00000000 std
396 menu color sel 7;37;40 #e0000000 #20ff8000 all
397 menu color hotsel 1;7;37;40 #e0400000 #20ff8000 all
398 menu color disabled 1;30;44 #60cccccc #00000000 std
399 menu color scrollbar 30;44 #40000000 #00000000 std
400 menu color tabmsg 31;40 #90ffff00 #00000000 std
401 menu color cmdmark 1;36;40 #c000ffff #00000000 std
402 menu color cmdline 37;40 #c0ffffff #00000000 std
403 menu color pwdborder 30;47 #80ffffff #20ffffff std
404 menu color pwdheader 31;47 #80ff8080 #20ffffff std
405 menu color pwdentry 30;47 #80ffffff #20ffffff std
406 menu color timeout_msg 37;40 #80ffffff #00000000 std
407 menu color timeout 1;37;40 #c0ffffff #00000000 std
408 menu color help 37;40 #c0ffffff #00000000 std
409 menu color msg07 37;40 #90ffffff #00000000 std
412 MENU MSGCOLOR fg_filter bg_filter shadow
414 Sets *all* the msgXX colors to a color scheme derived from the
415 fg_filter and bg_filter values. Background color zero is
416 always treated as transparent. The default corresponds to:
418 menu msgcolor #90ffffff #80ffffff std
420 This directive should come before any directive that
421 customizes individual msgXX colors.
426 MENU PASSWORDMARGIN 3
434 MENU HELPMSGENDROW -1
439 These options control the layout of the menu on the screen.
440 The values above are the defaults.
442 A negative value is relative to the calculated length of the
443 screen (25 for text mode, 28 for VESA graphics mode.)
446 F1 textfile background
448 F12 textfile background
450 Displays full-screen help (also available at the command line.)
451 The same control code sequences as in the command line
452 interface are supported, although some are ignored.
454 Additionally, a second argument allows a different background
455 image (see MENU BACKGROUND for supported formats) to be displayed.
458 The menu system honours the TIMEOUT command; if TIMEOUT is specified
459 it will execute the ONTIMEOUT command if one exists, otherwise it will
460 pick the default menu option. WARNING: the timeout action will bypass
461 password protection even if one is set for the specified or default
464 Normally, the user can press [Tab] to edit the menu entry, and [Esc]
465 to return to the Syslinux command line. However, if the configuration
466 file specifies ALLOWOPTIONS 0, these keys will be disabled, and if
467 MENU MASTER PASSWD is set, they require the master password.
469 The simple menu system supports serial console, using the normal
470 SERIAL directive. However, it can be quite slow over a slow serial
471 link; you probably want to set your baudrate to 38400 or higher if
472 possible. It requires a Linux/VT220/ANSI-compatible terminal on the
476 +++ USING AN ALTERNATE CONFIGURATION FILE +++
479 It is also possible to load a secondary configuration file, to get to
480 another menu. To do that, invoke menu.c32 with the name of the
481 secondary configuration file.
484 MENU LABEL Another Menu
486 APPEND othermenu.conf
488 If you specify more than one file, they will all be read, in the order
489 specified. The dummy filename ~ (tilde) is replaced with the filename
490 of the main configuration file.
492 # The file graphics.conf contains common color and layout commands for
495 MENU LABEL Another Menu
497 APPEND graphics.conf othermenu.conf
499 # Return to the main menu
501 MENU LABEL Return to Main Menu
503 APPEND graphics.conf ~
505 See also the MENU INCLUDE directive above.