Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
MENU.4TH(8)		  BSD System Manager's Manual		   MENU.4TH(8)

NAME
     menu.4th -- FreeBSD dynamic menu boot module

DESCRIPTION
     The file that goes	by the name of menu.4th	is a set of commands designed
     to	display	a dynamic menu system managed through a	system of carefully
     named environment variables.  The commands	of menu.4th by themselves are
     not enough	for most uses.	Please refer to	the examples below for the
     most common situations, and to loader(8) for additional commands.

     Before using any of the commands provided in menu.4th, it must be in-
     cluded through the	command:

	   include menu.4th

     This line is present in the default /boot/menu.rc file, so	it is not
     needed (and should	not be re-issued) in a normal setup.

     The commands provided by it are:

	   menu-init		  Draws	the menu bounding box and initializes
				  some internal	state variables.  This should
				  be called before any other menu-related
				  functions.
	   menu-display		  Displays the menu (configured	via the	below
				  documented environment variables) and	blocks
				  on keyboard input, awaiting user action.
	   menu-erase		  Clears the screen area within	the menu
				  bounding box.
	   menu-redraw		  Calls	menu-erase and then redraws the	menu.
	   menu-unset		  Unsets the environment variables associated
				  with individual menu items, clearing the way
				  for a	new menu.
	   menu-clear		  Calls	menu-unset and then menu-erase.

     The environment variables that effect its behavior	are:

	   loader_color
		     If	set to "NO" (case-insensitive) or "0", causes the menu
		     to	be displayed without color.  The default is to use
		     ANSI coloring whenever possible.  If serial boot is en-
		     abled, color is disabled by default.  Color features in-
		     clude the use of ANSI bold	for numbers appearing to the
		     left of menuitems and the use of special "ansi" variables
		     described below.

	   autoboot_delay
		     Number of seconds menu-display will wait before executing
		     menu_timeout_command (boot	by default) unless a key is
		     pressed.  If set to "NO" (case-insensitive) menu-display
		     will wait for user	input and never	execute
		     menu_timeout_command.  If set to "-1", menu-display will
		     boot immediately, preventing both interruption of the
		     autoboot process and escaping to the loader prompt.  De-
		     fault is "10".  See loader(8) for additional information.

	   menu_timeout_command
		     The command to be executed	after autoboot_delay seconds
		     if	a key is not pressed.  The default is boot.

	   loader_menu_frame
		     Sets the desired box style	to draw	around the boot	menu.
		     Possible values are: "single" (the	default), "double",
		     and "none".

	   loader_menu_timeout_x
		     Sets the desired column position of the timeout countdown
		     text.  Default is 4.

	   loader_menu_timeout_y
		     Sets the desired row position of the timeout countdown
		     text.  Default is 23.

	   loader_menu_title
		     The text to display above the menu.  Default is "Welcome
		     to	FreeBSD".

	   loader_menu_title_align
		     Default is	to align loader_menu_title centered above the
		     menu. This	can be set to "left" or	"right"	to instead
		     display the title left-or-right justified (respectively).

	   loader_menu_x
		     Sets the desired column position of the boot menu.	 De-
		     fault is 5.

	   loader_menu_y
		     Sets the desired row position of the boot menu.  Default
		     is	10.

	   menu_caption[x]
		     The text to be displayed for the numbered menuitem	"x".

	   menu_command[x]
		     The command to be executed	when the number	associated
		     with menuitem "x" is pressed.  See	the list of included
		     FICL words	below for some ideas.

	   menu_keycode[x]
		     An	optional decimal ASCII keycode to be associated	with
		     menuitem "x".  When pressed, will cause the execution of
		     menu_command[x].

	   ansi_caption[x]
		     If	loader_color is	set (enabled by	default), use this
		     caption for menuitem "x" instead of menu_caption[x].

	   toggled_text[x]
		     For menuitems where menu_command[x] is set	to
		     "toggle_menuitem" (or a derivative	thereof), the text
		     displayed will toggle between this	and menu_caption[x].

	   toggled_ansi[x]
		     Like toggled_text[x] except used when loader_color	is en-
		     abled (default).

	   menu_caption[x][y]
		     For menuitems where menu_command[x] is set	to
		     "cycle_menuitem" (or a derivative thereof), the text dis-
		     played will cycle between this and	other
		     menu_caption[x][y]	entries.

	   ansi_caption[x][y]
		     Like menu_caption[x][y] except used when loader_color is
		     enabled (default).

	   menu_acpi
		     When set to a number "x" associated with a	given menu-
		     item, that	menuitem will only appear when running on
		     i386-compatible hardware, hint.acpi.0.rsdp	is set (indi-
		     cating the	presence of hardware ACPI support as detected
		     by	loader(8)), and	hint.acpi.0.disabled is	not set.  On
		     non-i386 hardware,	menuitems configured after the
		     "menu_acpi" menuitem will use a lower number (to compen-
		     sate for the missing ACPI menuitem) but continue to func-
		     tion as expected.	On i386-compatible hardware lacking
		     ACPI support (as detected by loader(8)), subsequent menu-
		     items will	retain their associated	numbers.

	   hint.acpi.0.rsdp
		     Set automatically by loader(8) on i386-compatible hard-
		     ware when ACPI support is detected	at boot	time.  Effects
		     the display of the	"menu_acpi" menuitem (if configured).

	   hint.acpi.0.disabled
		     Effects the display of the	menu_acpi menuitem.  If	set,
		     the menuitem will display toggled_text[x]
		     (toggled_ansi[x] if loader_color is set), otherwise
		     menu_caption[x] (ansi_caption[x] if loader_color is set).

	   menu_options
		     When set to a number "x", a single	blank-line and an
		     "Options" header are inserted between menu_caption[x-1]
		     and menu_caption[x] (if configured).

	   menu_reboot
		     If	set, adds a built-in "Reboot" menuitem to the end of
		     the last configured menuitem.  If menu_options is config-
		     ured, the "Reboot"	menuitem will be inserted before the
		     "Options" separator.

     In	addition, it provides the following FICL words:

	   arch-i386? (-- BOOL)	  Returns true (-1) on i386 and	false (0) oth-
				  erwise.
	   acpipresent?	(-- BOOL)
				  Returns true (-1) if ACPI is present and
				  false	(0) otherwise.
	   acpienabled?	(-- BOOL)
				  Returns true (-1) if ACPI is enabled and
				  false	(0) otherwise.
	   toggle_menuitem (N -- N)
				  Toggles menuitem "N" between menu_caption[x]
				  and toggled_text[x] (where "N" represents
				  the ASCII decimal value for "x").
	   cycle_menuitem (N --	N)
				  Cycles menuitem "N" between
				  menu_caption[x][y] entries (where N repre-
				  sents	the ASCII decimal value	for x).

     For all values of "x" above, use any number between 1 through 9. Sorry,
     double-digits are not currently supported.

FILES
     /boot/loader      The loader(8).
     /boot/menu.4th    menu.4th	itself.
     /boot/loader.rc   loader(8) bootstrapping script.

EXAMPLES
     A simple boot menu:

	   include /boot/menu.4th
	   menu-init
	   set menu_caption[1]="Boot"
	   set menu_command[1]="boot"
	   set menu_options=2
	   set menu_caption[2]="Option:	NO"
	   set toggled_text[2]="Option:	YES"
	   set menu_command[2]="toggle_menuitem"
	   set menu_timeout_command="boot"
	   set menu_reboot
	   menu-display

SEE ALSO
     loader.conf(5), beastie.4th(8), loader(8),	loader.4th(8)

HISTORY
     The menu.4th set of commands first	appeared in FreeBSD 9.0.

AUTHORS
     The menu.4th set of commands was written by Devin Teske
     <dteske@FreeBSD.org>.

BSD				August 6, 2013				   BSD

NAME | DESCRIPTION | FILES | EXAMPLES | SEE ALSO | HISTORY | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=menu.4th&sektion=8&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help