199767f8919635c4928607450d9e0abb932109ceToomas Soome\ Menu.rc
199767f8919635c4928607450d9e0abb932109ceToomas Soome\
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ Load required Forth modules
199767f8919635c4928607450d9e0abb932109ceToomas Soomeinclude /boot/forth/version.4th
199767f8919635c4928607450d9e0abb932109ceToomas Soomeinclude /boot/forth/brand.4th
199767f8919635c4928607450d9e0abb932109ceToomas Soomeinclude /boot/forth/menu.4th
199767f8919635c4928607450d9e0abb932109ceToomas Soomeinclude /boot/forth/menu-commands.4th
199767f8919635c4928607450d9e0abb932109ceToomas Soomeinclude /boot/forth/shortcuts.4th
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ Screen prep
199767f8919635c4928607450d9e0abb932109ceToomas Soomeclear \ clear the screen (see `screen.4th')
199767f8919635c4928607450d9e0abb932109ceToomas Soomeprint_version \ print version string (bottom-right; see `version.4th')
199767f8919635c4928607450d9e0abb932109ceToomas Soomedraw-beastie \ draw freebsd mascot (on right; see `beastie.4th')
199767f8919635c4928607450d9e0abb932109ceToomas Soomedraw-brand \ draw the FreeBSD title (top-left; see `brand.4th')
199767f8919635c4928607450d9e0abb932109ceToomas Soomemenu-init \ initialize the menu area (see `menu.4th')
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ Initialize main menu constructs (see `menu.4th')
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ NOTE: To use `non-ansi' variants, add `loader_color=0' to loader.conf(5)
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ NOTE: ANSI variants can use `^' in place of literal `Esc' (ASCII 27)
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome\
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ MAIN MENU
199767f8919635c4928607450d9e0abb932109ceToomas Soome\
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset menuset_name1="main"
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset mainmenu_init[1]="init_boot"
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soomes" smartos" getenv? [if]
199767f8919635c4928607450d9e0abb932109ceToomas Soome set mainmenu_caption[1]="Boot SmartOS [Enter]"
199767f8919635c4928607450d9e0abb932109ceToomas Soome set maintoggled_text[1]="R[e]covery (root/root) [Enter]"
199767f8919635c4928607450d9e0abb932109ceToomas Soome set mainansi_caption[1]="^[1mB^[moot SmartOS ^[1m[Enter]^[m"
199767f8919635c4928607450d9e0abb932109ceToomas Soome set maintoggled_ansi[1]="R^[1me^[mcovery (root/root) ^[1m[Enter]^[m"
199767f8919635c4928607450d9e0abb932109ceToomas Soome[else]
199767f8919635c4928607450d9e0abb932109ceToomas Soome set mainmenu_caption[1]="Boot Multi User [Enter]"
199767f8919635c4928607450d9e0abb932109ceToomas Soome set maintoggled_text[1]="Boot [S]ingle User [Enter]"
199767f8919635c4928607450d9e0abb932109ceToomas Soome set mainansi_caption[1]="^[1mB^[moot Multi User ^[1m[Enter]^[m"
199767f8919635c4928607450d9e0abb932109ceToomas Soome set maintoggled_ansi[1]="Boot ^[1mS^[mingle User ^[1m[Enter]^[m"
199767f8919635c4928607450d9e0abb932109ceToomas Soome[then]
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset mainmenu_command[1]="boot"
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ keycode set by init_boot
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset mainmenu_init[2]="init_altboot"
199767f8919635c4928607450d9e0abb932109ceToomas Soomes" smartos" getenv? [if]
199767f8919635c4928607450d9e0abb932109ceToomas Soome set mainmenu_caption[2]="[R]ecovery (root/root)"
199767f8919635c4928607450d9e0abb932109ceToomas Soome set maintoggled_text[2]="[B]oot SmartOS"
199767f8919635c4928607450d9e0abb932109ceToomas Soome set mainansi_caption[2]="^[1mR^[mecovery (root/root)"
199767f8919635c4928607450d9e0abb932109ceToomas Soome set maintoggled_ansi[2]="^[1mB^[oot SmartOS"
199767f8919635c4928607450d9e0abb932109ceToomas Soome[else]
199767f8919635c4928607450d9e0abb932109ceToomas Soome set mainmenu_caption[2]="Boot [S]ingle User"
199767f8919635c4928607450d9e0abb932109ceToomas Soome set maintoggled_text[2]="Boot [M]ulti User"
199767f8919635c4928607450d9e0abb932109ceToomas Soome set mainansi_caption[2]="Boot ^[1mS^[mingle User"
199767f8919635c4928607450d9e0abb932109ceToomas Soome set maintoggled_ansi[2]="Boot ^[1mM^[multi User"
199767f8919635c4928607450d9e0abb932109ceToomas Soome[then]
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset mainmenu_command[2]="altboot"
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ keycode set by init_altboot
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset mainmenu_caption[3]="[Esc]ape to loader prompt"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset mainmenu_command[3]="goto_prompt"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset mainmenu_keycode[3]=27
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset mainansi_caption[3]="^[1mEsc^[mape to loader prompt"
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ Enable built-in "Reboot" trailing menuitem
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ NOTE: appears before menu_options if configured
199767f8919635c4928607450d9e0abb932109ceToomas Soome\
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset mainmenu_reboot
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ Enable "Options:" separator. When set to a numerical value (1-8), a visual
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ separator is inserted before that menuitem number.
199767f8919635c4928607450d9e0abb932109ceToomas Soome\
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset mainmenu_options=5
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ illumos does not have multiple kernels
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ set mainmenu_kernel=5
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ set mainmenu_command[5]="cycle_kernel"
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ set mainmenu_keycode[5]=107
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset mainmenu_caption[5]="Configure Boot [O]ptions..."
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset mainmenu_command[5]="2 goto_menu"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset mainmenu_keycode[5]=111
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset mainansi_caption[5]="Configure Boot ^[1mO^[mptions..."
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ Boot Environments are (supported) only on ZFS
199767f8919635c4928607450d9e0abb932109ceToomas Soomes" currdev" getenv drop 4 s" zfs:" compare 0= be-pages and [if]
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset mainmenu_caption[6]="Select Boot [E]nvironment..."
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset mainmenu_command[6]="3 goto_menu"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset mainmenu_keycode[6]=101
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset mainansi_caption[6]="Select Boot ^[1mE^[mnvironment..."
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome s" chain_disk" getenv? [if]
199767f8919635c4928607450d9e0abb932109ceToomas Soome set mainmenu_caption[7]="Chain[L]load ${chain_disk}"
199767f8919635c4928607450d9e0abb932109ceToomas Soome set mainmenu_command[7]="chain ${chain_disk}"
199767f8919635c4928607450d9e0abb932109ceToomas Soome set mainmenu_keycode[7]=108
199767f8919635c4928607450d9e0abb932109ceToomas Soome set mainansi_caption[7]="Chain^[1mL^[moad ${chain_disk}"
199767f8919635c4928607450d9e0abb932109ceToomas Soome [then]
199767f8919635c4928607450d9e0abb932109ceToomas Soome[else]
199767f8919635c4928607450d9e0abb932109ceToomas Soome s" chain_disk" getenv? [if]
199767f8919635c4928607450d9e0abb932109ceToomas Soome set mainmenu_caption[6]="Chain[L]load ${chain_disk}"
199767f8919635c4928607450d9e0abb932109ceToomas Soome set mainmenu_command[6]="chain ${chain_disk}"
199767f8919635c4928607450d9e0abb932109ceToomas Soome set mainmenu_keycode[6]=108
199767f8919635c4928607450d9e0abb932109ceToomas Soome set mainansi_caption[6]="Chain^[1mL^[moad ${chain_disk}"
199767f8919635c4928607450d9e0abb932109ceToomas Soome [then]
199767f8919635c4928607450d9e0abb932109ceToomas Soome[then]
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome\
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ BOOT OPTIONS MENU
199767f8919635c4928607450d9e0abb932109ceToomas Soome\
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset menuset_name2="options"
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_caption[1]="Back to Main Menu [Backspace]"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_command[1]="1 goto_menu"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_keycode[1]=8
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsansi_caption[1]="Back to Main Menu ^[1m[Backspace]^[m"
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ set optionsmenu_caption[2]="Load System [D]efaults"
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ set optionsmenu_command[2]="set_default_boot_options"
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ set optionsmenu_keycode[2]=100
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ set optionsansi_caption[2]="Load System ^[1mD^[mefaults"
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_options=2
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_optionstext="Boot Options:"
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_osconsole=2
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_command[2]="cycle_osconsole"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_keycode[2]=99
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_acpi=3
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_command[3]="cycle_acpi"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_keycode[3]=97
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_init[4]="init_singleuser"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_caption[4]="[S]ingle User. Off"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionstoggled_text[4]="[S]ingle User. On"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_command[4]="toggle_singleuser"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_keycode[4]=115
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsansi_caption[4]="^[1mS^[mingle User. ^[34;1mOff^[m"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionstoggled_ansi[4]="^[1mS^[mingle User. ^[32;7mOn^[m"
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_init[5]="init_verbose"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_caption[5]="[V]erbose..... off"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionstoggled_text[5]="[V]erbose..... On"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_command[5]="toggle_verbose"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_keycode[5]=118
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsansi_caption[5]="^[1mV^[merbose..... ^[34;1mOff^[m"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionstoggled_ansi[5]="^[1mV^[merbose..... ^[32;7mOn^[m"
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_init[6]="init_reconfigure"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_caption[6]="[R]econfigure. Off"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionstoggled_text[6]="[R]econfigure. On"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_command[6]="toggle_reconfigure"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_keycode[6]=114
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsansi_caption[6]="^[1mR^[meconfigure. ^[34;1mOff^[m"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionstoggled_ansi[6]="^[1mR^[meconfigure. ^[32;7mOn^[m"
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_init[7]="init_kmdb"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_caption[7]="k[M]db........ Off"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionstoggled_text[7]="k[M]db........ On"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_command[7]="toggle_kmdb"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_keycode[7]=109
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsansi_caption[7]="k^[1mm^[mdb........ ^[34;1mOff^[m"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionstoggled_ansi[7]="k^[1mm^[mdb........ ^[32;7mOn^[m"
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_init[8]="init_debug"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_caption[8]="[D]ebug....... Off"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionstoggled_text[8]="[D]ebug....... On"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_command[8]="toggle_debug"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsmenu_keycode[8]=100
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionsansi_caption[8]="^[1mD^[mebug....... ^[34;1mOff^[m"
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset optionstoggled_ansi[8]="^[1mD^[mebug....... ^[32;7mOn^[m"
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome\
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ BOOT ENVIRONMENT MENU
199767f8919635c4928607450d9e0abb932109ceToomas Soome\
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ the BE list is read from pool/boot/menu.lst, the list in file
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ is ordered from oldest to most recent.
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ the BE menu will list entries from most recent to oldest,
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ so the first page in menu is last page in menu.lst
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soomes" currdev" getenv drop 4 s" zfs:" compare 0= be-pages and [if]
199767f8919635c4928607450d9e0abb932109ceToomas Soome set zfs_be_currpage=1
199767f8919635c4928607450d9e0abb932109ceToomas Soome be-set-page \ set page data
199767f8919635c4928607450d9e0abb932109ceToomas Soome set menuset_name3="bootenv"
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome set bootenvmenu_command[1]="be_draw_screen 1 goto_menu"
199767f8919635c4928607450d9e0abb932109ceToomas Soome set bootenvmenu_keycode[1]=8
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome set bootenvmenu_keycode[2]=8
199767f8919635c4928607450d9e0abb932109ceToomas Soome set bootenvmenu_command[2]="be_draw_screen 1 goto_menu"
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome set bemenu_current="Active: "
199767f8919635c4928607450d9e0abb932109ceToomas Soome set beansi_current="^[1m${bemenu_current}^[m"
199767f8919635c4928607450d9e0abb932109ceToomas Soome set bemenu_bootfs="bootfs: "
199767f8919635c4928607450d9e0abb932109ceToomas Soome set beansi_bootfs="^[1m${bemenu_bootfs}^[m"
199767f8919635c4928607450d9e0abb932109ceToomas Soome set bemenu_page="[P]age: "
199767f8919635c4928607450d9e0abb932109ceToomas Soome set beansi_page="^[1mP^[mage: "
199767f8919635c4928607450d9e0abb932109ceToomas Soome set bemenu_pageof=" of "
199767f8919635c4928607450d9e0abb932109ceToomas Soome set beansi_pageof="${bemenu_pageof}"
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome set bootenvmenu_init="init_bootenv"
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome set bootenvmenu_keycode[3]=112
199767f8919635c4928607450d9e0abb932109ceToomas Soome set bootenvmenu_command[3]="set_be_page"
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome set bootenvmenu_options=4
199767f8919635c4928607450d9e0abb932109ceToomas Soome set bootenvmenu_optionstext="Boot Environments:"
199767f8919635c4928607450d9e0abb932109ceToomas Soome[then]
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ Enable automatic booting (add ``autoboot_delay=N'' to loader.conf(5) to
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ customize the timeout; default is 10-seconds)
199767f8919635c4928607450d9e0abb932109ceToomas Soome\
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset menu_timeout_command="boot"
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ Include optional elements defined in a local file
199767f8919635c4928607450d9e0abb932109ceToomas Soome\
199767f8919635c4928607450d9e0abb932109ceToomas Soometry-include /boot/menu.rc.local
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome\ Display the main menu (see `menu.4th')
199767f8919635c4928607450d9e0abb932109ceToomas Soomeset menuset_initial=1
199767f8919635c4928607450d9e0abb932109ceToomas Soomemenuset-loadinitial
199767f8919635c4928607450d9e0abb932109ceToomas Soomemenu-display