[106] | 1 | There are two menu systems included with SYSLINUX, the advanced menu |
---|
| 2 | system, and the simple menu system. |
---|
| 3 | |
---|
| 4 | |
---|
| 5 | +++ THE ADVANCED MENU SYSTEM +++ |
---|
| 6 | |
---|
| 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. |
---|
| 12 | |
---|
| 13 | The advanced menu system doesn't support serial console at this time. |
---|
| 14 | |
---|
| 15 | See menu/README for more information. |
---|
| 16 | |
---|
| 17 | |
---|
| 18 | +++ THE SIMPLE MENU SYSTEM +++ |
---|
| 19 | |
---|
| 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. |
---|
| 24 | |
---|
| 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: |
---|
| 30 | |
---|
| 31 | DEFAULT menu.c32 |
---|
| 32 | PROMPT 0 |
---|
| 33 | |
---|
| 34 | |
---|
| 35 | There are a few menu additions to the command line, all starting with |
---|
| 36 | the keywords MENU or TEXT; like the rest of the SYSLINUX config file |
---|
| 37 | language, it is case insensitive: |
---|
| 38 | |
---|
| 39 | MENU TITLE title |
---|
| 40 | |
---|
| 41 | Give the menu a title. The title is presented at the top of |
---|
| 42 | the menu. |
---|
| 43 | |
---|
| 44 | MENU HIDDEN |
---|
| 45 | |
---|
| 46 | Do not display the actual menu unless the user presses a key. |
---|
| 47 | All that is displayed is a timeout message. |
---|
| 48 | |
---|
| 49 | MENU LABEL label |
---|
| 50 | |
---|
| 51 | (Only valid after a LABEL statement.) |
---|
| 52 | Changes the label displayed for a specific entry. This allows |
---|
| 53 | you to have a label that isn't suitable for the command line, |
---|
| 54 | for example: |
---|
| 55 | |
---|
| 56 | # Soft Cap Linux |
---|
| 57 | LABEL softcap |
---|
| 58 | MENU LABEL Soft Cap ^Linux 9.6.36 |
---|
| 59 | KERNEL softcap-9.6.36.bzi |
---|
| 60 | APPEND whatever |
---|
| 61 | |
---|
| 62 | # A very dense operating system |
---|
| 63 | LABEL brick |
---|
| 64 | MENU LABEL ^Windows CE/ME/NT |
---|
| 65 | KERNEL chain.c32 |
---|
| 66 | APPEND hd0 2 |
---|
| 67 | |
---|
| 68 | The ^ symbol in a MENU LABEL statement defines a hotkey. |
---|
| 69 | The hotkey will be highlighted in the menu and will move the |
---|
| 70 | menu cursor immediately to that entry. |
---|
| 71 | |
---|
| 72 | Reusing hotkeys is disallowed, subsequent entries will not be |
---|
| 73 | highlighted, and will not work. |
---|
| 74 | |
---|
| 75 | Keep in mind that the LABELs, not MENU LABELs, must be unique, |
---|
| 76 | or odd things will happen to the command-line. |
---|
| 77 | |
---|
| 78 | |
---|
| 79 | MENU HIDE |
---|
| 80 | |
---|
| 81 | (Only valid after a LABEL statement.) |
---|
| 82 | Suppresses a particular LABEL entry from the menu. |
---|
| 83 | |
---|
| 84 | |
---|
| 85 | MENU DEFAULT |
---|
| 86 | |
---|
| 87 | (Only valid after a LABEL statement.) |
---|
| 88 | Indicates that this entry should be the default. If no |
---|
| 89 | default is specified, use the first one. |
---|
| 90 | |
---|
| 91 | |
---|
| 92 | TEXT HELP |
---|
| 93 | Help text ... |
---|
| 94 | ... which can span multiple lines |
---|
| 95 | ENDTEXT |
---|
| 96 | |
---|
| 97 | (Only valid after a LABEL statement.) |
---|
| 98 | Specifies a help text that should be displayed when a particular |
---|
| 99 | selection is highlighted. |
---|
| 100 | |
---|
| 101 | |
---|
| 102 | MENU PASSWD passwd |
---|
| 103 | |
---|
| 104 | (Only valid after a LABEL statement.) |
---|
| 105 | |
---|
| 106 | Sets a password on this menu entry. "passwd" can be either a |
---|
| 107 | cleartext password, a SHA-1 encrypted password (starting with |
---|
| 108 | $4$), or and MD5 encrypted password (starting with $1$). |
---|
| 109 | |
---|
| 110 | Use the included Perl scripts "sha1pass" or "md5pass" to |
---|
| 111 | encrypt passwords. MD5 passwords are compatible with most |
---|
| 112 | Unix password file utilities; SHA-1 passwords are probably |
---|
| 113 | unique to SYSLINUX. Obviously, if you don't encrypt your |
---|
| 114 | passwords they will not be very secure at all. |
---|
| 115 | |
---|
| 116 | If you are using passwords, you want to make sure you also use |
---|
| 117 | the settings "NOESCAPE 1", "PROMPT 0", and either set |
---|
| 118 | "ALLOWOPTIONS 0" or use a master password (see below.) |
---|
| 119 | |
---|
| 120 | If passwd is an empty string, this menu entry can only be |
---|
| 121 | unlocked with the master password. |
---|
| 122 | |
---|
| 123 | |
---|
| 124 | MENU MASTER PASSWD passwd |
---|
| 125 | |
---|
| 126 | Sets a master password. This password can be used to boot any |
---|
| 127 | menu entry, and is required for the [Tab] and [Esc] keys to |
---|
| 128 | work. |
---|
| 129 | |
---|
| 130 | |
---|
| 131 | MENU BACKGROUND background |
---|
| 132 | |
---|
| 133 | For vesamenu.c32, sets the background image. The background |
---|
| 134 | can either be a color (see MENU COLOR) or the name of an image |
---|
| 135 | file, which should be 640x480 pixels and either in PNG or JPEG |
---|
| 136 | format. |
---|
| 137 | |
---|
| 138 | |
---|
| 139 | INCLUDE filename |
---|
| 140 | MENU INCLUDE filename |
---|
| 141 | |
---|
| 142 | Include the contents of the configuration file filename at |
---|
| 143 | this point. |
---|
| 144 | |
---|
| 145 | In the case of MENU INCLUDE, the included data is only seen by |
---|
| 146 | the menu system; the core syslinux code does not parse this |
---|
| 147 | command, so any labels defined in it are unavailable. |
---|
| 148 | |
---|
| 149 | |
---|
| 150 | MENU AUTOBOOT message |
---|
| 151 | |
---|
| 152 | Replaces the message "Automatic boot in # second{,s}...". The |
---|
| 153 | symbol # is replaced with the number of seconds remaining. |
---|
| 154 | The syntax "{singular,[dual,]plural}" can be used to conjugate |
---|
| 155 | appropriately. |
---|
| 156 | |
---|
| 157 | |
---|
| 158 | MENU TABMSG message |
---|
| 159 | |
---|
| 160 | Replaces the message "Press [Tab] to edit options". |
---|
| 161 | |
---|
| 162 | |
---|
| 163 | MENU NOTABMSG message |
---|
| 164 | |
---|
| 165 | Takes the place of the TABMSG message if option editing is |
---|
| 166 | disabled. Defaults to blank. |
---|
| 167 | |
---|
| 168 | |
---|
| 169 | MENU PASSPROMPT message |
---|
| 170 | |
---|
| 171 | Replaces the message "Password required". |
---|
| 172 | |
---|
| 173 | |
---|
| 174 | MENU COLOR element ansi foreground background shadow |
---|
| 175 | |
---|
| 176 | Sets the color of element "element" to the specified color |
---|
| 177 | sequence: |
---|
| 178 | |
---|
| 179 | screen Rest of the screen |
---|
| 180 | border Border area |
---|
| 181 | title Title bar |
---|
| 182 | unsel Unselected menu item |
---|
| 183 | hotkey Unselected hotkey |
---|
| 184 | sel Selection bar |
---|
| 185 | hotsel Selected hotkey |
---|
| 186 | scrollbar Scroll bar |
---|
| 187 | tabmsg Press [Tab] message |
---|
| 188 | cmdmark Command line marker |
---|
| 189 | cmdline Command line |
---|
| 190 | pwdborder Password box border |
---|
| 191 | pwdheader Password box header |
---|
| 192 | pwdentry Password box contents |
---|
| 193 | timeout_msg Timeout message |
---|
| 194 | timeout Timeout counter |
---|
| 195 | help Help text |
---|
| 196 | msgXX Message (F-key) file attribute XX |
---|
| 197 | |
---|
| 198 | ... where XX is two hexadecimal digits (the "plain text" is 07). |
---|
| 199 | |
---|
| 200 | "ansi" is a sequence of semicolon-separated ECMA-48 Set |
---|
| 201 | Graphics Rendition (<ESC>[m) sequences: |
---|
| 202 | |
---|
| 203 | 0 reset all attributes to their defaults |
---|
| 204 | 1 set bold |
---|
| 205 | 4 set underscore (simulated with color on a color display) |
---|
| 206 | 5 set blink |
---|
| 207 | 7 set reverse video |
---|
| 208 | 22 set normal intensity |
---|
| 209 | 24 underline off |
---|
| 210 | 25 blink off |
---|
| 211 | 27 reverse video off |
---|
| 212 | 30 set black foreground |
---|
| 213 | 31 set red foreground |
---|
| 214 | 32 set green foreground |
---|
| 215 | 33 set brown foreground |
---|
| 216 | 34 set blue foreground |
---|
| 217 | 35 set magenta foreground |
---|
| 218 | 36 set cyan foreground |
---|
| 219 | 37 set white foreground |
---|
| 220 | 38 set underscore on, set default foreground color |
---|
| 221 | 39 set underscore off, set default foreground color |
---|
| 222 | 40 set black background |
---|
| 223 | 41 set red background |
---|
| 224 | 42 set green background |
---|
| 225 | 43 set brown background |
---|
| 226 | 44 set blue background |
---|
| 227 | 45 set magenta background |
---|
| 228 | 46 set cyan background |
---|
| 229 | 47 set white background |
---|
| 230 | 49 set default background color |
---|
| 231 | |
---|
| 232 | These are used (a) in text mode, and (b) on the serial |
---|
| 233 | console. |
---|
| 234 | |
---|
| 235 | "foreground" and "background" are color codes in #AARRGGBB |
---|
| 236 | notation, where AA RR GG BB are hexadecimal digits for alpha |
---|
| 237 | (opacity), red, green and blue, respectively. #00000000 |
---|
| 238 | represents fully transparent, and #ffffffff represents opaque |
---|
| 239 | white. |
---|
| 240 | |
---|
| 241 | "shadow" controls the handling of the graphical console text |
---|
| 242 | shadow. Permitted values are "none" (no shadowing), "std" or |
---|
| 243 | "standard" (standard shadowing - foreground pixels are |
---|
| 244 | raised), "all" (both background and foreground raised), and |
---|
| 245 | "rev" or "reverse" (background pixels are raised.) |
---|
| 246 | |
---|
| 247 | If any field is set to "*" or omitted (at the end of the line) |
---|
| 248 | then that field is left unchanged. |
---|
| 249 | |
---|
| 250 | |
---|
| 251 | The current defaults are: |
---|
| 252 | |
---|
| 253 | menu color screen 37;40 #80ffffff #00000000 std |
---|
| 254 | menu color border 30;44 #40000000 #00000000 std |
---|
| 255 | menu color title 1;36;44 #c00090f0 #00000000 std |
---|
| 256 | menu color unsel 37;44 #90ffffff #00000000 std |
---|
| 257 | menu color hotkey 1;37;44 #ffffffff #00000000 std |
---|
| 258 | menu color sel 7;37;40 #e0000000 #20ff8000 all |
---|
| 259 | menu color hotsel 1;7;37;40 #e0400000 #20ff8000 all |
---|
| 260 | menu color scrollbar 30;44 #40000000 #00000000 std |
---|
| 261 | menu color tabmsg 31;40 #90ffff00 #00000000 std |
---|
| 262 | menu color cmdmark 1;36;40 #c000ffff #00000000 std |
---|
| 263 | menu color cmdline 37;40 #c0ffffff #00000000 std |
---|
| 264 | menu color pwdborder 30;47 #80ffffff #20ffffff std |
---|
| 265 | menu color pwdheader 31;47 #80ff8080 #20ffffff std |
---|
| 266 | menu color pwdentry 30;47 #80ffffff #20ffffff std |
---|
| 267 | menu color timeout_msg 37;40 #80ffffff #00000000 std |
---|
| 268 | menu color timeout 1;37;40 #c0ffffff #00000000 std |
---|
| 269 | menu color help 37;40 #c0ffffff #00000000 std |
---|
| 270 | menu color msg07 37;40 #90ffffff #00000000 std |
---|
| 271 | |
---|
| 272 | |
---|
| 273 | MENU MSGCOLOR fg_filter bg_filter shadow |
---|
| 274 | |
---|
| 275 | Sets *all* the msgXX colors to a color scheme derived from the |
---|
| 276 | fg_filter and bg_filter values. Background color zero is |
---|
| 277 | always treated as transparent. The default corresponds to: |
---|
| 278 | |
---|
| 279 | menu msgcolor #90ffffff #80ffffff std |
---|
| 280 | |
---|
| 281 | This directive should come before any directive that |
---|
| 282 | customizes individual msgXX colors. |
---|
| 283 | |
---|
| 284 | |
---|
| 285 | MENU WIDTH 80 |
---|
| 286 | MENU MARGIN 10 |
---|
| 287 | MENU PASSWORDMARGIN 3 |
---|
| 288 | MENU ROWS 12 |
---|
| 289 | MENU TABMSGROW 18 |
---|
| 290 | MENU CMDLINEROW 18 |
---|
| 291 | MENU ENDROW -1 |
---|
| 292 | MENU PASSWORDROW 11 |
---|
| 293 | MENU TIMEOUTROW 20 |
---|
| 294 | MENU HELPMSGROW 22 |
---|
| 295 | MENU HELPMSGENDROW -1 |
---|
| 296 | MENU HIDDENROW -2 |
---|
| 297 | MENU HSHIFT 0 |
---|
| 298 | MENU VSHIFT 0 |
---|
| 299 | |
---|
| 300 | These options control the layout of the menu on the screen. |
---|
| 301 | The values above are the defaults. |
---|
| 302 | |
---|
| 303 | A negative value is relative to the calculated length of the |
---|
| 304 | screen (25 for text mode, 28 for VESA graphics mode.) |
---|
| 305 | |
---|
| 306 | |
---|
| 307 | F1 textfile background |
---|
| 308 | ... |
---|
| 309 | F12 textfile background |
---|
| 310 | |
---|
| 311 | Displays full-screen help (also available at the command line.) |
---|
| 312 | The same control code sequences as in the command line |
---|
| 313 | interface are supported, although some are ignored. |
---|
| 314 | |
---|
| 315 | Additionally, a second argument allows a different background |
---|
| 316 | image (see MENU BACKGROUND for supported formats) to be displayed. |
---|
| 317 | |
---|
| 318 | |
---|
| 319 | The menu system honours the TIMEOUT command; if TIMEOUT is specified |
---|
| 320 | it will execute the ONTIMEOUT command if one exists, otherwise it will |
---|
| 321 | pick the default menu option. |
---|
| 322 | |
---|
| 323 | Normally, the user can press [Tab] to edit the menu entry, and [Esc] |
---|
| 324 | to return to the SYSLINUX command line. However, if the configuration |
---|
| 325 | file specifies ALLOWOPTIONS 0, these keys will be disabled, and if |
---|
| 326 | MENU MASTER PASSWD is set, they require the master password. |
---|
| 327 | |
---|
| 328 | The simple menu system supports serial console, using the normal |
---|
| 329 | SERIAL directive. However, it can be quite slow over a slow serial |
---|
| 330 | link; you probably want to set your baudrate to 38400 or higher if |
---|
| 331 | possible. It requires a Linux/VT220/ANSI-compatible terminal on the |
---|
| 332 | other end. |
---|
| 333 | |
---|
| 334 | |
---|
| 335 | +++ USING AN ALTERNATE CONFIGURATION FILE +++ |
---|
| 336 | |
---|
| 337 | |
---|
| 338 | It is also possible to load a secondary configuration file, to get to |
---|
| 339 | another menu. To do that, invoke menu.c32 with the name of the |
---|
| 340 | secondary configuration file. |
---|
| 341 | |
---|
| 342 | LABEL othermenu |
---|
| 343 | MENU LABEL Another Menu |
---|
| 344 | KERNEL menu.c32 |
---|
| 345 | APPEND othermenu.conf |
---|
| 346 | |
---|
| 347 | If you specify more than one file, they will all be read, in the order |
---|
| 348 | specified. The dummy filename ~ (tilde) is replaced with the filename |
---|
| 349 | of the main configuration file. |
---|
| 350 | |
---|
| 351 | # The file graphics.conf contains common color and layout commands for |
---|
| 352 | # all menus. |
---|
| 353 | LABEL othermenu |
---|
| 354 | MENU LABEL Another Menu |
---|
| 355 | KERNEL vesamenu.c32 |
---|
| 356 | APPEND graphics.conf othermenu.conf |
---|
| 357 | |
---|
| 358 | # Return to the main menu |
---|
| 359 | LABEL mainmenu |
---|
| 360 | MENU LABEL Return to Main Menu |
---|
| 361 | KERNEL vesamenu.c32 |
---|
| 362 | APPEND graphics.conf ~ |
---|
| 363 | |
---|
| 364 | See also the MENU INCLUDE directive above. |
---|