The simple menu system is a single module located at com32/modules/vesamenu.c32 (graphical) or com32/modules/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:
DEFAULT menu.c32
PROMPT 0
There are a few menu additions to the command line, all starting with the keywords MENU or TEXT ; like the rest of the SYSLINUX config file language, it is case insensitive:
MENU TITLE title
MENU HIDDEN
MENU SEPARATOR
MENU LABEL label
# 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
MENU INDENT count
MENU DISABLE
# 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
MENU DEFAULT
TEXT HELP
Help text ...
... which can span multiple lines
ENDTEXT
MENU PASSWD passwd
MENU MASTER PASSWD passwd
MENU BACKGROUND background
MENU BEGIN [tagname ]
MENU END
MENU GOTO tagname
MENU EXIT [tagname ]
MENU QUIT
MENU START
INCLUDE filename [tagname ]
MENU INCLUDE filename [tagname ]
MENU AUTOBOOT message
MENU TABMSG message
MENU NOTABMSG message
MENU PASSPROMPT message
MENU COLOR element ansi foreground background shadow
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
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
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
menu msgcolor #90ffffff #80ffffff std
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
F1 textfile background
...
F12 textfile background
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.
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.
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 ~