1222417Sjulian\ Menu.rc 2222417Sjulian\ $FreeBSD$ 3222417Sjulian\ 4293294Sdteske\ You should not edit this file! Put any overrides in menu.rc.local 5293294Sdteske\ instead as this file can be replaced during system updates. 6293294Sdteske\ 7222417Sjulian\ Load required Forth modules 8222417Sjulianinclude /boot/version.4th 9222417Sjulianinclude /boot/brand.4th 10222417Sjulianinclude /boot/menu.4th 11222417Sjulianinclude /boot/menu-commands.4th 12222417Sjulianinclude /boot/shortcuts.4th 13222417Sjulian 14222417Sjulian\ Screen prep 15222417Sjulianclear \ clear the screen (see `screen.4th') 16222417Sjulianprint_version \ print version string (bottom-right; see `version.4th') 17222417Sjuliandraw-beastie \ draw freebsd mascot (on right; see `beastie.4th') 18222417Sjuliandraw-brand \ draw the FreeBSD title (top-left; see `brand.4th') 19222417Sjulianmenu-init \ initialize the menu area (see `menu.4th') 20222417Sjulian 21222417Sjulian\ Initialize main menu constructs (see `menu.4th') 22254105Sdteske\ NOTE: To use `non-ansi' variants, add `loader_color=0' to loader.conf(5) 23281843Sdteske\ NOTE: ANSI variants can use `^' in place of literal `Esc' (ASCII 27) 24222417Sjulian 25243660Sdteske\ 26243660Sdteske\ MAIN MENU 27243660Sdteske\ 28222417Sjulian 29243660Sdteskeset menuset_name1="main" 30222417Sjulian 31243660Sdteskeset mainmenu_init[1]="init_boot" 32243660Sdteskeset mainmenu_caption[1]="Boot Multi User [Enter]" 33243660Sdteskeset maintoggled_text[1]="Boot [S]ingle User [Enter]" 34243660Sdteskeset mainmenu_command[1]="boot" 35281843Sdteskeset mainansi_caption[1]="^[1mB^[moot Multi User ^[1m[Enter]^[m" 36281843Sdteskeset maintoggled_ansi[1]="Boot ^[1mS^[mingle User ^[1m[Enter]^[m" 37243660Sdteske\ keycode set by init_boot 38243660Sdteske 39243660Sdteskeset mainmenu_init[2]="init_altboot" 40243660Sdteskeset mainmenu_caption[2]="Boot [S]ingle User" 41243660Sdteskeset maintoggled_text[2]="Boot [M]ulti User" 42243660Sdteskeset mainmenu_command[2]="altboot" 43281843Sdteskeset mainansi_caption[2]="Boot ^[1mS^[mingle User" 44281843Sdteskeset maintoggled_ansi[2]="Boot ^[1mM^[multi User" 45243660Sdteske\ keycode set by init_altboot 46243660Sdteske 47243660Sdteskeset mainmenu_caption[3]="[Esc]ape to loader prompt" 48243660Sdteskeset mainmenu_command[3]="goto_prompt" 49243660Sdteskeset mainmenu_keycode[3]=27 50281843Sdteskeset mainansi_caption[3]="^[1mEsc^[mape to loader prompt" 51243660Sdteske 52222417Sjulian\ Enable built-in "Reboot" trailing menuitem 53222417Sjulian\ NOTE: appears before menu_options if configured 54222417Sjulian\ 55243660Sdteskeset mainmenu_reboot 56222417Sjulian 57222417Sjulian\ Enable "Options:" separator. When set to a numerical value (1-8), a visual 58222417Sjulian\ separator is inserted before that menuitem number. 59222417Sjulian\ 60243660Sdteskeset mainmenu_options=5 61222417Sjulian 62262701Sdteskeset mainmenu_kernel=5 63262701Sdteskeset mainmenu_command[5]="cycle_kernel" 64262701Sdteskeset mainmenu_keycode[5]=107 65222417Sjulian 66262701Sdteskeset mainmenu_caption[6]="Configure Boot [O]ptions..." 67262701Sdteskeset mainmenu_command[6]="2 goto_menu" 68262701Sdteskeset mainmenu_keycode[6]=111 69281843Sdteskeset mainansi_caption[6]="Configure Boot ^[1mO^[mptions..." 70262701Sdteske 71293802Sallanjudes" currdev" getenv dup 0> [if] drop 4 s" zfs:" compare 0= [if] 72293802Sallanjude set mainmenu_caption[7]="Select Boot [E]nvironment..." 73293802Sallanjude set mainmenu_command[7]="3 goto_menu" 74293802Sallanjude set mainmenu_keycode[7]=101 75293802Sallanjude set mainansi_caption[7]="Select Boot ^[1mE^[37mnvironment..." 76293802Sallanjude[then] [else] drop [then] 77293802Sallanjude 78243660Sdteske\ 79243660Sdteske\ BOOT OPTIONS MENU 80243660Sdteske\ 81222417Sjulian 82243660Sdteskeset menuset_name2="options" 83222417Sjulian 84243660Sdteskeset optionsmenu_caption[1]="Back to Main Menu [Backspace]" 85243660Sdteskeset optionsmenu_command[1]="1 goto_menu" 86243660Sdteskeset optionsmenu_keycode[1]=8 87281843Sdteskeset optionsansi_caption[1]="Back to Main Menu ^[1m[Backspace]^[m" 88222417Sjulian 89243660Sdteskeset optionsmenu_caption[2]="Load System [D]efaults" 90243660Sdteskeset optionsmenu_command[2]="set_default_boot_options" 91243660Sdteskeset optionsmenu_keycode[2]=100 92281843Sdteskeset optionsansi_caption[2]="Load System ^[1mD^[mefaults" 93243660Sdteske 94243660Sdteskeset optionsmenu_options=3 95243660Sdteskeset optionsmenu_optionstext="Boot Options:" 96243660Sdteske 97243660Sdteskeset optionsmenu_acpi=3 98243660Sdteskeset optionsmenu_caption[3]="[A]CPI Support off" 99243660Sdteskeset optionstoggled_text[3]="[A]CPI Support On" 100243660Sdteskeset optionsmenu_command[3]="toggle_acpi" 101243660Sdteskeset optionsmenu_keycode[3]=97 102281843Sdteskeset optionsansi_caption[3]="^[1mA^[mCPI Support ^[34;1mOff^[m" 103281843Sdteskeset optionstoggled_ansi[3]="^[1mA^[mCPI Support ^[32;7mOn^[m" 104243660Sdteske 105243660Sdteskeset optionsmenu_init[4]="init_safemode" 106243660Sdteskeset optionsmenu_caption[4]="Safe [M]ode... off" 107243660Sdteskeset optionstoggled_text[4]="Safe [M]ode... On" 108243660Sdteskeset optionsmenu_command[4]="toggle_safemode" 109243660Sdteskeset optionsmenu_keycode[4]=109 110281843Sdteskeset optionsansi_caption[4]="Safe ^[1mM^[mode... ^[34;1mOff^[m" 111281843Sdteskeset optionstoggled_ansi[4]="Safe ^[1mM^[mode... ^[32;7mOn^[m" 112243660Sdteske 113243660Sdteskeset optionsmenu_init[5]="init_singleuser" 114243660Sdteskeset optionsmenu_caption[5]="[S]ingle User. off" 115243660Sdteskeset optionstoggled_text[5]="[S]ingle User. On" 116243660Sdteskeset optionsmenu_command[5]="toggle_singleuser" 117243660Sdteskeset optionsmenu_keycode[5]=115 118281843Sdteskeset optionsansi_caption[5]="^[1mS^[mingle User. ^[34;1mOff^[m" 119281843Sdteskeset optionstoggled_ansi[5]="^[1mS^[mingle User. ^[32;7mOn^[m" 120243660Sdteske 121243660Sdteskeset optionsmenu_init[6]="init_verbose" 122243660Sdteskeset optionsmenu_caption[6]="[V]erbose..... off" 123243660Sdteskeset optionstoggled_text[6]="[V]erbose..... On" 124243660Sdteskeset optionsmenu_command[6]="toggle_verbose" 125243660Sdteskeset optionsmenu_keycode[6]=118 126281843Sdteskeset optionsansi_caption[6]="^[1mV^[merbose..... ^[34;1mOff^[m" 127281843Sdteskeset optionstoggled_ansi[6]="^[1mV^[merbose..... ^[32;7mOn^[m" 128243660Sdteske 129293802Sallanjude\ 130293802Sallanjude\ BOOT ENVIRONMENT MENU 131293802Sallanjude\ 132293802Sallanjude 133293802Sallanjudeset menuset_name3="bootenv" 134293802Sallanjude 135293802Sallanjudeset bemenu_current="Active: " 136293802Sallanjudeset beansi_current="^[1m${bemenu_current}^[m" 137293802Sallanjudeset bemenu_bootfs="bootfs: " 138293802Sallanjudeset beansi_bootfs="^[1m${bemenu_bootfs}^[m" 139293802Sallanjudeset bemenu_page="[P]age: " 140293802Sallanjudeset beansi_page="^[1mP^[mage: " 141293802Sallanjudeset bemenu_pageof=" of " 142293802Sallanjudeset beansi_pageof="${bemenu_pageof}" 143293802Sallanjudeset zfs_be_currpage=1 144293802Sallanjude 145293802Sallanjudeset bootenvmenu_init="init_bootenv" 146293802Sallanjude 147293802Sallanjudeset bootenvmenu_command[1]="be_draw_screen 1 goto_menu" 148293802Sallanjudeset bootenvmenu_keycode[1]=8 149293802Sallanjude 150293802Sallanjudeset bootenvmenu_command[2]="set_bootenv" 151293802Sallanjudeset bootenvmenu_keycode[2]=97 152293802Sallanjudeset bootenv_root[2]="${zfs_be_active}" 153293802Sallanjude 154293802Sallanjudeset bootenvmenu_command[3]="set_be_page" 155293802Sallanjudeset bootenvmenu_keycode[3]=112 156293802Sallanjude 157293802Sallanjudeset bootenvmenu_options=4 158293802Sallanjudeset bootenvmenu_optionstext="Boot Environments:" 159293802Sallanjude 160222417Sjulian\ Enable automatic booting (add ``autoboot_delay=N'' to loader.conf(5) to 161222417Sjulian\ customize the timeout; default is 10-seconds) 162222417Sjulian\ 163222417Sjulianset menu_timeout_command="boot" 164222417Sjulian 165262704Sdteske\ Include optional elements defined in a local file 166262704Sdteske\ 167262704Sdtesketry-include /boot/menu.rc.local 168262704Sdteske 169293802Sallanjude\ Initialize boot environment variables 170293802Sallanjude\ 171293802Sallanjudes" reloadbe" sfind ( xt|0 bool ) [if] 172293802Sallanjude s" bootenv_autolist" getenv dup -1 = [if] 173293802Sallanjude drop s" execute" evaluate \ Use evaluate to avoid passing 174293802Sallanjude \ reloadbe an optional parameter 175293802Sallanjude [else] 176293802Sallanjude s" YES" compare-insensitive 0= [if] 177293802Sallanjude s" execute" evaluate 178293802Sallanjude [then] 179293802Sallanjude [then] 180293802Sallanjude[else] 181293802Sallanjude drop ( xt=0 ) 182293802Sallanjude[then] 183293802Sallanjude 184222417Sjulian\ Display the main menu (see `menu.4th') 185243660Sdteskeset menuset_initial=1 186243660Sdteskemenuset-loadinitial 187222417Sjulianmenu-display 188