| There are two menu systems included with Syslinux, the advanced menu |
| system, and the simple menu system. |
| |
| |
| +++ THE ADVANCED MENU SYSTEM +++ |
| |
| The advanced menu system, written by Murali Krishnan Ganapathy, is |
| located in the menu/ subdirectly. It allows the user to create |
| hierarchial submenus, dynamic options, checkboxes, and just about |
| anything you want. It requires that the menu is compiled from a |
| simple C file, see menu/simple.c and menu/complex.c for examples. |
| |
| The advanced menu system doesn't support serial console at this time. |
| |
| See menu/README for more information. |
| |
| |
| +++ THE SIMPLE MENU SYSTEM +++ |
| |
| The simple menu system is a single module located at |
| com32/menu/vesamenu.c32 (graphical) or com32/menu/menu.c32 (text |
| mode only). It uses the same configuration file as the regular |
| Syslinux command line, and displays all the LABEL statements. |
| |
| To use the menu system, simply make sure [vesa]menu.c32 is in the |
| appropriate location for your boot medium (the same directory as the |
| configuration file for SYSLINUX, EXTLINUX and ISOLINUX, and the same |
| directory as pxelinux.0 for PXELINUX), and put the following options |
| in your configuration file: |
| |
| UI menu.c32 |
| |
| |
| There are a few menu additions to the configuration file, all starting |
| with the keywords MENU or TEXT; like the rest of the Syslinux config |
| file language, it is case insensitive: |
| |
| |
| MENU TITLE title |
| |
| Give the menu a title. The title is presented at the top of |
| the menu. |
| |
| |
| MENU HIDDEN |
| |
| Do not display the actual menu unless the user presses a key. |
| All that is displayed is a timeout message. |
| |
| |
| MENU HIDDENKEY key[,key...] command... |
| |
| If they key used to interrupt MENU HIDDEN is <key>, then |
| execute the specified command instead of displaying the menu. |
| |
| Currently, the following key names are recognized: |
| |
| Backspace, Tab, Enter, Esc, Space, F1..F12, Up, Down, Left, |
| Right, PgUp, PgDn, Home, End, Insert, Delete |
| |
| ... in addition to all single characters plus the syntax ^X |
| for Ctrl-X. Note that single characters are treated as case |
| sensitive, so a different command can be bound to "A" than |
| "a". One can bind the same command to multiple keys by giving |
| a comma-separated list of keys: |
| |
| menu hiddenkey A,a key_a_command |
| |
| |
| MENU CLEAR |
| |
| Clear the screen when exiting the menu, instead of leaving the |
| menu displayed. For vesamenu, this means the graphical |
| background is still displayed without the menu itself for as |
| long as the screen remains in graphics mode. |
| |
| |
| MENU SHIFTKEY |
| |
| Exit the menu system immediately unless either the Shift or Alt |
| key is pressed, or Caps Lock or Scroll Lock is set. |
| |
| |
| MENU SEPARATOR |
| |
| Insert an empty line in the menu. |
| |
| |
| MENU LABEL label |
| |
| (Only valid after a LABEL statement.) |
| Changes the label displayed for a specific entry. This allows |
| you to have a label that isn't suitable for the command line, |
| for example: |
| |
| # Soft Cap Linux |
| LABEL softcap |
| MENU LABEL Soft Cap ^Linux 9.6.36 |
| KERNEL softcap-9.6.36.bzi |
| APPEND whatever |
| |
| # A very dense operating system |
| LABEL brick |
| MENU LABEL ^Windows CE/ME/NT |
| KERNEL chain.c32 |
| APPEND hd0 2 |
| |
| The ^ symbol in a MENU LABEL statement defines a hotkey. |
| The hotkey will be highlighted in the menu and will move the |
| menu cursor immediately to that entry. |
| |
| Reusing hotkeys is disallowed, subsequent entries will not be |
| highlighted, and will not work. |
| |
| Keep in mind that the LABELs, not MENU LABELs, must be unique, |
| or odd things will happen to the command-line. |
| |
| |
| MENU INDENT count |
| |
| (Only valid after a LABEL statement.) |
| Will add "count" spaces in front of the displayed menu entry. |
| |
| |
| MENU DISABLE |
| |
| (Only valid after a LABEL statement.) |
| Makes the entry unselectable. This allows you to make a |
| section in your menu with different options below it. |
| for example: |
| |
| # Entries for network boots |
| LABEL - |
| MENU LABEL Network: |
| MENU DISABLE |
| |
| # Soft Cap Linux |
| LABEL softcap |
| MENU LABEL Soft Cap ^Linux 9.6.36 |
| MENU INDENT 1 |
| KERNEL softcap-9.6.36.bzi |
| APPEND whatever |
| |
| # Dos 6.22 |
| LABEL dos |
| MENU LABEL ^Dos 6.22 |
| MENU INDENT 1 |
| KERNEL memdisk |
| APPEND initrd=dos622.imz |
| |
| # Separator |
| MENU SEPARATOR |
| |
| # Entries for local boots |
| LABEL - |
| MENU LABEL Local: |
| MENU DISABLE |
| |
| # Windows 2000 |
| LABEL w2k |
| MENU LABEL ^Windows 2000 |
| MENU INDENT 1 |
| KERNEL chain.c32 |
| APPEND hd0 1 |
| |
| # Windows XP |
| LABEL xp |
| MENU LABEL Windows ^XP |
| MENU INDENT 1 |
| KERNEL chain.c32 |
| APPEND hd0 2 |
| |
| MENU HIDE |
| |
| (Only valid after a LABEL statement.) |
| Suppresses a particular LABEL entry from the menu. |
| |
| |
| MENU DEFAULT |
| |
| (Only valid after a LABEL statement.) |
| |
| Indicates that this entry should be the default for this |
| particular submenu. See also the DEFAULT directive below. |
| |
| |
| TEXT HELP |
| Help text ... |
| ... which can span multiple lines |
| ENDTEXT |
| |
| (Only valid after a LABEL statement.) |
| |
| Specifies a help text that should be displayed when a particular |
| selection is highlighted. |
| |
| |
| MENU PASSWD passwd |
| |
| (Only valid after a LABEL statement.) |
| |
| Sets a password on this menu entry. "passwd" can be either a |
| cleartext password or a password encrypted with one of the |
| following algorithms: |
| |
| MD5 (Signature: $1$) |
| SHA-1 (Signature: $4$) |
| SHA-2-256 (Signature: $5$) |
| SHA-2-512 (Signature: $6$) |
| |
| Use the included Perl scripts "sha1pass" or "md5pass" to |
| encrypt passwords. MD5 passwords are compatible with most |
| Unix password file utilities; SHA-1 passwords are probably |
| unique to Syslinux; SHA-2 passwords are compatible with very |
| recent Linux distributions. Obviously, if you don't encrypt |
| your passwords they will not be very secure at all. |
| |
| If you are using passwords, you want to make sure you also use |
| the settings "NOESCAPE 1", "PROMPT 0", and either set |
| "ALLOWOPTIONS 0" or use a master password (see below.) |
| |
| If passwd is an empty string, this menu entry can only be |
| unlocked with the master password. |
| |
| |
| MENU MASTER PASSWD passwd |
| |
| Sets a master password. This password can be used to boot any |
| menu entry, and is required for the [Tab] and [Esc] keys to |
| work. |
| |
| |
| MENU RESOLUTION height width |
| |
| Requests a specific screen resolution when in graphics mode. |
| The default is "640 480" corresponding to a resolution of |
| 640x480 pixels, which all VGA-compatible monitors should be |
| able to display. |
| |
| If the selected resolution is unavailable, the text mode menu |
| is displayed instead. |
| |
| |
| MENU BACKGROUND background |
| |
| For vesamenu.c32, sets the background image. The background |
| can either be a color (see MENU COLOR) or the name of an image |
| file, which should be the size of the screen (normally 640x480 |
| pixels, but see MENU RESOLUTION) and either in PNG, JPEG or |
| LSS16 format. |
| |
| |
| MENU BEGIN [tagname] |
| MENU END |
| |
| Begin/end a submenu. The entries between MENU BEGIN and MENU |
| END form a submenu, which is marked with a > mark on the right |
| hand of the screen. Submenus inherit the properties of their |
| parent menus, but can override them, and can thus have their |
| own backgrounds, master passwords, titles, timeouts, messages |
| and so forth. |
| |
| |
| MENU GOTO tagname |
| |
| (Only valid after a LABEL statement.) |
| |
| This label will transfer to the named submenu instead of |
| booting anything. To transfer to the top-level menu, specify |
| "menu goto .top". |
| |
| |
| MENU EXIT [tagname] |
| |
| (Only valid after a label statement inside MENU BEGIN ... |
| MENU END) |
| |
| Exit to the next higher menu, or, if tagname is specified, to |
| the named menu. |
| |
| |
| MENU QUIT |
| |
| (Only valid after a LABEL statement.) |
| |
| This label quits the menu system. |
| |
| WARNING: if MENU MASTER PASSWD or ALLOWOPTIONS 0 is set, this |
| will still allow exiting to the CLI; however, a separate MENU |
| PASSWD can of course be set for this label. |
| |
| |
| MENU START |
| |
| (Only valid inside MENU BEGIN ... MENU END) |
| |
| Indicates that the menu system should start at the menu being |
| defined instead of at the top-level menu. See also the |
| DEFAULT directive below. |
| |
| |
| DEFAULT label |
| |
| Set the global default. If "label" points into a submenu, |
| that menu becomes the start menu; in other words, this |
| directive has the same effect as both MENU DEFAULT and MENU |
| START. |
| |
| For backwards compatibility with earlier versions of Syslinux, |
| this directive is ignored unless the configuration file also |
| contains a UI directive. |
| |
| Note: the CLI accepts options after the label, or even a |
| non-label. The menu system does not support that. |
| |
| |
| MENU SAVE |
| MENU NOSAVE |
| |
| Remember the last entry selected and make that the default for |
| the next boot. A password-protected menu entry is *not* |
| saved. This requires the ADV data storage mechanism, which is |
| currently only implemented for EXTLINUX, although the other |
| Syslinux derivatives will accept the command (and ignore it.) |
| |
| NOTE: MENU SAVE stores the LABEL tag of the selected entry; |
| this mechanism therefore relies on LABEL tags being unique. |
| On the other hand, it handles changes in the configuration |
| file gracefully. |
| |
| NOTE: In software RAID-1 setups MENU SAVE only stores the |
| default label on the actual boot disk. This may lead to |
| inconsistent reads from the array, or unexpectedly change the |
| default label after array resynchronization or disk failure. |
| |
| The MENU SAVE information can be fully cleared with |
| "extlinux --reset-adv <bootdir>". |
| |
| A MENU SAVE or MENU NOSAVE at the top of a (sub)menu affects |
| all entries underneath that (sub)menu except those that in |
| turn have MENU SAVE or MENU NOSAVE declared. This can be used |
| to only save certain entires when selected. |
| |
| |
| INCLUDE filename [tagname] |
| MENU INCLUDE filename [tagname] |
| |
| Include the contents of the configuration file filename at |
| this point. |
| |
| In the case of MENU INCLUDE, the included data is only seen by |
| the menu system; the core syslinux code does not parse this |
| command, so any labels defined in it are unavailable. |
| |
| If a tagname is included, the whole file is considered to have |
| been bracketed with a MENU BEGIN tagname ... MENU END pair, |
| and will therefore show up as a submenu. |
| |
| |
| MENU AUTOBOOT message |
| |
| Replaces the message "Automatic boot in # second{,s}...". The |
| symbol # is replaced with the number of seconds remaining. |
| The syntax "{singular,[dual,]plural}" can be used to conjugate |
| appropriately. |
| |
| |
| MENU TABMSG message |
| |
| Replaces the message "Press [Tab] to edit options". |
| |
| |
| MENU NOTABMSG message |
| |
| Takes the place of the TABMSG message if option editing is |
| disabled. Defaults to blank. |
| |
| |
| MENU PASSPROMPT message |
| |
| Replaces the message "Password required". |
| |
| |
| MENU COLOR element ansi foreground background shadow |
| |
| Sets the color of element "element" to the specified color |
| sequence: |
| |
| screen Rest of the screen |
| border Border area |
| title Title bar |
| unsel Unselected menu item |
| hotkey Unselected hotkey |
| sel Selection bar |
| hotsel Selected hotkey |
| disabled Disabled menu item |
| scrollbar Scroll bar |
| tabmsg Press [Tab] message |
| cmdmark Command line marker |
| cmdline Command line |
| pwdborder Password box border |
| pwdheader Password box header |
| pwdentry Password box contents |
| timeout_msg Timeout message |
| timeout Timeout counter |
| help Help text |
| msgXX Message (F-key) file attribute XX |
| |
| ... where XX is two hexadecimal digits (the "plain text" is 07). |
| |
| "ansi" is a sequence of semicolon-separated ECMA-48 Set |
| Graphics Rendition (<ESC>[m) sequences: |
| |
| 0 reset all attributes to their defaults |
| 1 set bold |
| 4 set underscore (simulated with color on a color display) |
| 5 set blink |
| 7 set reverse video |
| 22 set normal intensity |
| 24 underline off |
| 25 blink off |
| 27 reverse video off |
| 30 set black foreground |
| 31 set red foreground |
| 32 set green foreground |
| 33 set brown foreground |
| 34 set blue foreground |
| 35 set magenta foreground |
| 36 set cyan foreground |
| 37 set white foreground |
| 38 set underscore on, set default foreground color |
| 39 set underscore off, set default foreground color |
| 40 set black background |
| 41 set red background |
| 42 set green background |
| 43 set brown background |
| 44 set blue background |
| 45 set magenta background |
| 46 set cyan background |
| 47 set white background |
| 49 set default background color |
| |
| These are used (a) in text mode, and (b) on the serial |
| console. |
| |
| "foreground" and "background" are color codes in #AARRGGBB |
| notation, where AA RR GG BB are hexadecimal digits for alpha |
| (opacity), red, green and blue, respectively. #00000000 |
| represents fully transparent, and #ffffffff represents opaque |
| white. |
| |
| "shadow" controls the handling of the graphical console text |
| shadow. Permitted values are "none" (no shadowing), "std" or |
| "standard" (standard shadowing - foreground pixels are |
| raised), "all" (both background and foreground raised), and |
| "rev" or "reverse" (background pixels are raised.) |
| |
| If any field is set to "*" or omitted (at the end of the line) |
| then that field is left unchanged. |
| |
| |
| The current defaults are: |
| |
| menu color screen 37;40 #80ffffff #00000000 std |
| menu color border 30;44 #40000000 #00000000 std |
| menu color title 1;36;44 #c00090f0 #00000000 std |
| menu color unsel 37;44 #90ffffff #00000000 std |
| menu color hotkey 1;37;44 #ffffffff #00000000 std |
| menu color sel 7;37;40 #e0000000 #20ff8000 all |
| menu color hotsel 1;7;37;40 #e0400000 #20ff8000 all |
| menu color disabled 1;30;44 #60cccccc #00000000 std |
| menu color scrollbar 30;44 #40000000 #00000000 std |
| menu color tabmsg 31;40 #90ffff00 #00000000 std |
| menu color cmdmark 1;36;40 #c000ffff #00000000 std |
| menu color cmdline 37;40 #c0ffffff #00000000 std |
| menu color pwdborder 30;47 #80ffffff #20ffffff std |
| menu color pwdheader 31;47 #80ff8080 #20ffffff std |
| menu color pwdentry 30;47 #80ffffff #20ffffff std |
| menu color timeout_msg 37;40 #80ffffff #00000000 std |
| menu color timeout 1;37;40 #c0ffffff #00000000 std |
| menu color help 37;40 #c0ffffff #00000000 std |
| menu color msg07 37;40 #90ffffff #00000000 std |
| |
| |
| MENU MSGCOLOR fg_filter bg_filter shadow |
| |
| Sets *all* the msgXX colors to a color scheme derived from the |
| fg_filter and bg_filter values. Background color zero is |
| always treated as transparent. The default corresponds to: |
| |
| menu msgcolor #90ffffff #80ffffff std |
| |
| This directive should come before any directive that |
| customizes individual msgXX colors. |
| |
| |
| MENU WIDTH 80 |
| MENU MARGIN 10 |
| MENU PASSWORDMARGIN 3 |
| MENU ROWS 12 |
| MENU TABMSGROW 18 |
| MENU CMDLINEROW 18 |
| MENU ENDROW -1 |
| MENU PASSWORDROW 11 |
| MENU TIMEOUTROW 20 |
| MENU HELPMSGROW 22 |
| MENU HELPMSGENDROW -1 |
| MENU HIDDENROW -2 |
| MENU HSHIFT 0 |
| MENU VSHIFT 0 |
| |
| These options control the layout of the menu on the screen. |
| The values above are the defaults. |
| |
| A negative value is relative to the calculated length of the |
| screen (25 for text mode, 28 for VESA graphics mode.) |
| |
| |
| F1 textfile [background] |
| ... |
| F12 textfile [background] |
| |
| Displays full-screen help (also available at the command line.) |
| The same control code sequences as in the command line |
| interface are supported, although some are ignored. |
| |
| Additionally, a optional second argument allows a different |
| background image (see MENU BACKGROUND for supported formats) |
| to be displayed. |
| |
| |
| MENU HELP textfile [background] |
| |
| Creates a menu entry which, when selected, displays |
| full-screen help in the same way as the F-key help. |
| |
| |
| The menu system honours the TIMEOUT command; if TIMEOUT is specified |
| it will execute the ONTIMEOUT command if one exists, otherwise it will |
| pick the default menu option. WARNING: the timeout action will bypass |
| password protection even if one is set for the specified or default |
| entry! |
| |
| Normally, the user can press [Tab] to edit the menu entry, and [Esc] |
| to return to the Syslinux command line. However, if the configuration |
| file specifies ALLOWOPTIONS 0, these keys will be disabled, and if |
| MENU MASTER PASSWD is set, they require the master password. |
| |
| The simple menu system supports serial console, using the normal |
| SERIAL directive. However, it can be quite slow over a slow serial |
| link; you probably want to set your baudrate to 38400 or higher if |
| possible. It requires a Linux/VT220/ANSI-compatible terminal on the |
| other end. |
| |
| |
| +++ USING AN ALTERNATE CONFIGURATION FILE +++ |
| |
| |
| It is also possible to load a secondary configuration file, to get to |
| another menu. To do that, invoke menu.c32 with the name of the |
| secondary configuration file. |
| |
| LABEL othermenu |
| MENU LABEL Another Menu |
| KERNEL menu.c32 |
| APPEND othermenu.conf |
| |
| If you specify more than one file, they will all be read, in the order |
| specified. The dummy filename ~ (tilde) is replaced with the filename |
| of the main configuration file. |
| |
| # The file graphics.conf contains common color and layout commands for |
| # all menus. |
| LABEL othermenu |
| MENU LABEL Another Menu |
| KERNEL vesamenu.c32 |
| APPEND graphics.conf othermenu.conf |
| |
| # Return to the main menu |
| LABEL mainmenu |
| MENU LABEL Return to Main Menu |
| KERNEL vesamenu.c32 |
| APPEND graphics.conf ~ |
| |
| See also the MENU INCLUDE directive above. |