| Commit | Line | Data |
|---|---|---|
| 32235017 | 1 | .\" |
| 984263bc MD |
2 | .\" Copyright (c) 1999 Daniel C. Sobral |
| 3 | .\" All rights reserved. | |
| 4 | .\" | |
| 5 | .\" Redistribution and use in source and binary forms, with or without | |
| 6 | .\" modification, are permitted provided that the following conditions | |
| 7 | .\" are met: | |
| 8 | .\" 1. Redistributions of source code must retain the above copyright | |
| 9 | .\" notice, this list of conditions and the following disclaimer. | |
| 10 | .\" 2. Redistributions in binary form must reproduce the above copyright | |
| 11 | .\" notice, this list of conditions and the following disclaimer in the | |
| 12 | .\" documentation and/or other materials provided with the distribution. | |
| 13 | .\" | |
| 14 | .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | |
| 15 | .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
| 16 | .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
| 17 | .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | |
| 18 | .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |
| 19 | .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |
| 20 | .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |
| 21 | .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |
| 22 | .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |
| 23 | .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |
| 24 | .\" SUCH DAMAGE. | |
| 25 | .\" | |
| 5ee58eed | 26 | .\" $FreeBSD: src/sys/boot/common/loader.8,v 1.57 2003/06/29 20:57:55 brueffer Exp $ |
| 984263bc | 27 | .\" |
| 5a82ae89 | 28 | .Dd August 27, 2012 |
| 984263bc MD |
29 | .Dt LOADER 8 |
| 30 | .Os | |
| 31 | .Sh NAME | |
| 32 | .Nm loader | |
| 33 | .Nd kernel bootstrapping final stage | |
| 34 | .Sh DESCRIPTION | |
| 35 | The program called | |
| 36 | .Nm | |
| 37 | is the final stage of | |
| 9bb2a92d | 38 | .Dx Ns 's |
| 984263bc | 39 | kernel bootstrapping process. |
| b5ef8da1 TN |
40 | It is implemented as a |
| 41 | .Tn BTX | |
| 32235017 | 42 | client and is linked statically to |
| 984263bc | 43 | .Xr libstand 3 |
| 2a2fb130 TN |
44 | and located in the |
| 45 | .Pa /boot | |
| 46 | or | |
| 47 | .Pa / | |
| 48 | directory. | |
| 49 | .Pp | |
| 50 | If a | |
| 51 | .Pa /boot | |
| 52 | directory exist on the boot file system, then | |
| 53 | .Dq /boot/ | |
| 54 | is prepended to all relative file names used by | |
| 55 | .Nm . | |
| 56 | This makes it possible to locate all files used by | |
| 57 | .Nm | |
| 58 | in either | |
| 59 | .Pa / | |
| 60 | or | |
| 61 | .Pa /boot | |
| 62 | directory on the boot file system. | |
| b5ef8da1 | 63 | If boot and root are the same file system, then files used by |
| 2a2fb130 TN |
64 | .Nm |
| 65 | are located in | |
| 984263bc | 66 | .Pa /boot . |
| 2a2fb130 TN |
67 | If boot and root are different file systems, then files used by |
| 68 | .Nm | |
| 69 | are located in | |
| 70 | .Pa / | |
| 71 | on the boot file system, which is mounted as | |
| 72 | .Pa /boot | |
| 73 | on the root file system when the kernel is running. | |
| 984263bc | 74 | .Pp |
| 984263bc MD |
75 | During initialization, |
| 76 | .Nm | |
| 77 | will probe for a console and set the | |
| 78 | .Va console | |
| 79 | variable, or set it to serial console | |
| 80 | .Pq Dq comconsole | |
| 81 | if the previous boot stage used that. | |
| 82 | Then, devices are probed, | |
| 83 | .Va currdev | |
| 84 | and | |
| 85 | .Va loaddev | |
| 86 | are set, and | |
| 87 | .Va LINES | |
| 88 | is set to 24. | |
| 984263bc | 89 | After that, |
| b5ef8da1 | 90 | .Pa dloader.rc |
| 984263bc | 91 | is processed if available, and, failing that, |
| 2a2fb130 | 92 | .Pa boot.conf |
| 5ee58eed | 93 | is read for historical reasons. |
| 984263bc MD |
94 | These files are processed through the |
| 95 | .Ic include | |
| 96 | command, which reads all of them into memory before processing them, | |
| 97 | making disk changes possible. | |
| 98 | .Pp | |
| 99 | At this point, if an | |
| 100 | .Ic autoboot | |
| 101 | has not been tried, and if | |
| 102 | .Va autoboot_delay | |
| 103 | is not set to | |
| 104 | .Dq NO | |
| 105 | (not case sensitive), then an | |
| 106 | .Ic autoboot | |
| 107 | will be tried. | |
| 108 | If the system gets past this point, | |
| 109 | .Va prompt | |
| 110 | will be set and | |
| 111 | .Nm | |
| 112 | will engage interactive mode. | |
| 113 | .Sh BUILTIN COMMANDS | |
| 5ee58eed MD |
114 | In |
| 115 | .Nm , | |
| 116 | builtin commands take parameters from the command line. | |
| 984263bc MD |
117 | .Pp |
| 118 | The builtin commands available are: | |
| 119 | .Pp | |
| b5ef8da1 TN |
120 | .Bl -tag -width indent -compact |
| 121 | .It Ar variable Ns = Ns Ar value | |
| 122 | Assign | |
| 123 | .Ar value | |
| 124 | to | |
| 125 | .Ar variable . | |
| 32235017 | 126 | The value is always assigned to a local variable |
| b5ef8da1 TN |
127 | .Ar variable . |
| 128 | If | |
| 129 | .Ar variable | |
| 32235017 SW |
130 | is in the list of known kernel environment variables or is a kernel tunable, |
| 131 | the value is also assigned to the kernel environment variable of the | |
| 132 | given name. | |
| d9f21820 TN |
133 | If the variable name contains a |
| 134 | .Ql .\& | |
| 135 | it is considered a kernel tunable. | |
| 32235017 SW |
136 | Local variables are unset if |
| 137 | .Ar value | |
| b5ef8da1 | 138 | is empty. |
| d9f21820 | 139 | Kernel environment variable will have empty value. |
| b5ef8da1 | 140 | .Pp |
| 32235017 | 141 | In other words, the assignment above will set a local variable and |
| d9f21820 | 142 | if applicable, also assign |
| 32235017 SW |
143 | .Ar value |
| 144 | to the kernel environment variable, even if | |
| 145 | .Ar value | |
| 146 | is empty. | |
| b5ef8da1 | 147 | See also |
| d9f21820 TN |
148 | .Sx KERNEL ENVIRONMENT VARIABLES AND LOCAL VARIABLES . |
| 149 | .Pp | |
| 150 | .Ar Value | |
| 151 | can be a string or a string expression containing literal text and | |
| 152 | kernel environment variables, like | |
| 153 | .Dq $VAR | |
| 154 | or | |
| 155 | .Dq ${VAR} . | |
| 156 | Escape sequences like | |
| 157 | .Ql \en | |
| 158 | (newline), | |
| 159 | .Ql \et | |
| 160 | (TAB) and | |
| 161 | .Ql \eOOO | |
| 162 | (character with number given in octal) | |
| 163 | can also be used. | |
| 164 | This is actually a general facility of | |
| 165 | .Nm | |
| 166 | which can be used for arguments of all commands. | |
| b5ef8da1 TN |
167 | .Pp |
| 168 | .It Ic autoboot Op Ar delay Op Ar prompt | |
| 984263bc MD |
169 | Proceeds to bootstrap the system after a number of seconds, if not |
| 170 | interrupted by the user. | |
| 171 | Displays a countdown prompt | |
| 172 | warning the user the system is about to be booted, | |
| 173 | unless interrupted by a key press. | |
| 174 | The kernel will be loaded first if necessary. | |
| 175 | Defaults to 10 seconds. | |
| 176 | .Pp | |
| 177 | .It Ic bcachestat | |
| 178 | Displays statistics about disk cache usage. | |
| 179 | For depuration only. | |
| 180 | .Pp | |
| b5ef8da1 | 181 | .It Ic boot Oo Fl Ns Ar flag ... Oc Op Ar kernelname |
| 984263bc MD |
182 | Immediately proceeds to bootstrap the system, loading the kernel |
| 183 | if necessary. | |
| 184 | Any flags or arguments are passed to the kernel, but they | |
| 185 | must precede the kernel name, if a kernel name is provided. | |
| bc65ccee TN |
186 | Flags are described in |
| 187 | .Xr boot 8 . | |
| 20134a6f TN |
188 | See also |
| 189 | .Va boot_* | |
| 190 | and | |
| 191 | .Va kernel_options | |
| 192 | variables. | |
| 984263bc | 193 | .Pp |
| b5ef8da1 TN |
194 | .It Ic cd Op Ar directory |
| 195 | Change working directory to | |
| 196 | .Ar directory . | |
| 197 | Default is $base. | |
| 198 | .Pp | |
| 199 | .It Ic echo Oo Fl n Oc Op Ar message | |
| 984263bc MD |
200 | Displays text on the screen. |
| 201 | A new line will be printed unless | |
| 202 | .Fl n | |
| 203 | is specified. | |
| d9f21820 TN |
204 | See description of assignment |
| 205 | .Pq Ar variable Ns = Ns Ar value | |
| 206 | .Ar value | |
| 207 | for use of kernel environment variables and escape sequences in | |
| 208 | .Ar message . | |
| 984263bc | 209 | .Pp |
| 20134a6f TN |
210 | .It Ic else |
| 211 | Conditional if/else/endif. | |
| 212 | .Pp | |
| 213 | .It Ic elseifexists Ar path | |
| 214 | Conditional | |
| 215 | .Ar path | |
| 216 | exists, i.e.\& file/dir present. | |
| 217 | .Pp | |
| 218 | .It Ic endif | |
| 219 | Conditional if/else/endif. | |
| 220 | .Pp | |
| 984263bc MD |
221 | .It Ic heap |
| 222 | Displays memory usage statistics. | |
| 223 | For debugging purposes only. | |
| 224 | .Pp | |
| b5ef8da1 | 225 | .It Ic help Op Ar topic Op Ar subtopic |
| 984263bc | 226 | Shows help messages read from |
| 2a2fb130 | 227 | .Pa loader.help . |
| b5ef8da1 TN |
228 | The special |
| 229 | .Ar topic | |
| 230 | .Cm index | |
| 231 | will list all topics available. | |
| 984263bc | 232 | .Pp |
| 20134a6f TN |
233 | .It Ic ifexists Ar path |
| 234 | Conditional | |
| d9f21820 | 235 | .Ar path |
| 20134a6f TN |
236 | exists, i.e.\& file/dir present. |
| 237 | .Pp | |
| d9f21820 TN |
238 | .It Ic ifset Ar kenv_variable |
| 239 | Conditional kernel environment variable | |
| 240 | .Ar kenv_variable | |
| 20134a6f TN |
241 | exists. |
| 242 | .Pp | |
| b5ef8da1 | 243 | .It Ic include Ar |
| 984263bc MD |
244 | Process script files. |
| 245 | Each file, in turn, is completely read into memory, | |
| 246 | and then each of its lines is passed to the command line interpreter. | |
| 247 | If any error is returned by the interpreter, the include | |
| 248 | command aborts immediately, without reading any other files, and | |
| b5ef8da1 | 249 | returns an error itself. |
| 984263bc | 250 | .Pp |
| b5ef8da1 | 251 | .It Ic load Oo Fl t Ar type Oc Ar file Op Ar argument ... |
| 984263bc MD |
252 | Loads a kernel, kernel loadable module (kld), or file of opaque |
| 253 | contents tagged as being of the type | |
| 254 | .Ar type . | |
| b5ef8da1 TN |
255 | Kernel and modules can be either in a.out or |
| 256 | .Tn ELF | |
| 257 | format. | |
| 984263bc MD |
258 | Any arguments passed after the name of the file to be loaded |
| 259 | will be passed as arguments to that file. | |
| 984263bc | 260 | .Pp |
| b5ef8da1 | 261 | .It Ic loadall |
| 32235017 | 262 | Load the kernel and all modules specified by MODULE_load variables. |
| b5ef8da1 TN |
263 | .Pp |
| 264 | .It Ic local Op Ar local_variable ... | |
| 265 | Displays the specified variable's value, or all local variables and their | |
| 266 | values if | |
| 267 | .Ar local_variable | |
| 268 | is not specified. | |
| 269 | .Pp | |
| 270 | .It Ic ls Oo Fl l Oc Op Ar path | |
| 984263bc MD |
271 | Displays a listing of files in the directory |
| 272 | .Ar path , | |
| d9f21820 | 273 | or the current directory if |
| 984263bc MD |
274 | .Ar path |
| 275 | is not specified. | |
| 276 | If | |
| 277 | .Fl l | |
| 278 | is specified, file sizes will be shown too. | |
| 279 | .Pp | |
| 280 | .It Ic lsdev Op Fl v | |
| b5ef8da1 TN |
281 | Lists all devices. |
| 282 | A | |
| c5f72e80 | 283 | .Sq * |
| b5ef8da1 | 284 | prefix indicates a disk slice or partition from which it may be |
| 4f6dc91b | 285 | possible to load modules. |
| 984263bc MD |
286 | If |
| 287 | .Fl v | |
| b5ef8da1 TN |
288 | is specified, more details, |
| 289 | like disk slice or partition size and position, are printed. | |
| 984263bc MD |
290 | .Pp |
| 291 | .It Ic lsmod Op Fl v | |
| 292 | Displays loaded modules. | |
| 293 | If | |
| 294 | .Fl v | |
| 295 | is specified, more details are shown. | |
| 296 | .Pp | |
| b5ef8da1 | 297 | .It Ic lunset Ar local_variable |
| 32235017 SW |
298 | Unset a local variable. |
| 299 | Discards the value and removes the variable. | |
| b5ef8da1 | 300 | .Pp |
| d9f21820 TN |
301 | .It Ic lunsetif Ar local_variable kenv_variable |
| 302 | Unset local variable | |
| b5ef8da1 | 303 | .Ar local_variable |
| d9f21820 TN |
304 | if kernel environment variable |
| 305 | .Ar kenv_variable | |
| b5ef8da1 TN |
306 | is true, i.e.\& set to 1 or |
| 307 | .Ql YES . | |
| 308 | .Pp | |
| 309 | .It Ic menu | |
| 310 | Run menu system. | |
| 311 | .Pp | |
| 312 | .It Ic menuadd Ar command_line | |
| 32235017 | 313 | Add script line for the current menu item. |
| b5ef8da1 TN |
314 | .Pp |
| 315 | .It Ic menuclear | |
| 32235017 | 316 | Clear all menu items. |
| b5ef8da1 TN |
317 | .Pp |
| 318 | .It Ic menuitem Ar key description | |
| 32235017 SW |
319 | Start a new menu item. |
| 320 | When running the menu system, a line with | |
| b5ef8da1 TN |
321 | .Ar key |
| 322 | and | |
| 323 | .Ar description | |
| 32235017 | 324 | is displayed, and an item is chosen by pressing |
| b5ef8da1 TN |
325 | .Ar key . |
| 326 | .Pp | |
| 327 | .It Ic more Ar | |
| 984263bc MD |
328 | Display the files specified, with a pause at each |
| 329 | .Va LINES | |
| 330 | displayed. | |
| 331 | .Pp | |
| b5ef8da1 | 332 | .It Ic optcd Op Ar directory |
| 32235017 | 333 | Change the working directory to |
| b5ef8da1 TN |
334 | .Ar directory . |
| 335 | Default is $base. | |
| 336 | Ignore errors. | |
| 337 | This command is like | |
| 338 | .Ic cd , | |
| 32235017 | 339 | but ignores errors when changing the directory. |
| b5ef8da1 TN |
340 | .Pp |
| 341 | .It Ic optinclude Ar | |
| 342 | Process script files. | |
| 343 | Ignore errors. | |
| 344 | This command is like | |
| 345 | .Ic include , | |
| 346 | but ignores errors while executing commands in included files. | |
| 347 | .Pp | |
| 984263bc MD |
348 | .It Ic pnpscan Op Fl v |
| 349 | Scans for Plug-and-Play devices. | |
| 350 | This is not functional at present. | |
| 351 | .Pp | |
| b5ef8da1 | 352 | .It Ic pwd |
| 32235017 | 353 | Prints the working directory. |
| b5ef8da1 | 354 | .Pp |
| d9f21820 TN |
355 | .It Ic read Oo Fl p Ar prompt Oc Oo Fl t Ar seconds Oc Op Ar kenv_variable |
| 356 | Reads a line of input from the terminal, | |
| 357 | storing it in kernel environment variable | |
| 358 | .Ar kenv_variable | |
| 984263bc | 359 | if specified. |
| d9f21820 TN |
360 | A prompt may be displayed through the |
| 361 | .Fl p | |
| 362 | flag. | |
| 984263bc MD |
363 | A timeout can be specified with |
| 364 | .Fl t , | |
| 365 | though it will be canceled at the first key pressed. | |
| 984263bc MD |
366 | .Pp |
| 367 | .It Ic reboot | |
| 368 | Immediately reboots the system. | |
| 369 | .Pp | |
| d9f21820 TN |
370 | .It Ic set Ar kenv_variable |
| 371 | .It Ic set Ar kenv_variable Ns = Ns Ar value | |
| 372 | Set kernel environment variable | |
| 373 | .Ar kenv_variable | |
| 374 | to the given value, | |
| 375 | if no | |
| 376 | .Ar value | |
| 377 | is given, the empty string is the value. | |
| 984263bc | 378 | .Pp |
| d9f21820 | 379 | .It Ic show Op Ar kenv_variable |
| b5ef8da1 TN |
380 | Displays the specified kernel environment variable's value, |
| 381 | or all variables and their values if | |
| d9f21820 | 382 | .Ar kenv_variable |
| 984263bc MD |
383 | is not specified. |
| 384 | .Pp | |
| 385 | .It Ic unload | |
| 32235017 | 386 | Removes all modules from memory. |
| 984263bc | 387 | .Pp |
| d9f21820 | 388 | .It Ic unset Ar kenv_variable |
| 984263bc | 389 | Removes |
| d9f21820 TN |
390 | .Ar kenv_variable |
| 391 | from the kernel environment. | |
| 984263bc MD |
392 | .Pp |
| 393 | .It Ic \&? | |
| 32235017 | 394 | Lists most available commands with a short help text for each. |
| 984263bc | 395 | .El |
| d9f21820 | 396 | .Ss KERNEL ENVIRONMENT VARIABLES AND LOCAL VARIABLES |
| 984263bc MD |
397 | The |
| 398 | .Nm | |
| d9f21820 TN |
399 | actually has two different kinds of variables. |
| 400 | These are | |
| 401 | kernel environment variables, | |
| 402 | which are visible to the kernel when it is started, | |
| b5ef8da1 TN |
403 | and a separate space of local variables used by |
| 404 | .Nm , | |
| 405 | which are not available to the kernel. | |
| 984263bc | 406 | .Pp |
| d9f21820 TN |
407 | Both local variable and kernel environment variable |
| 408 | of the same name are changed by assignment | |
| 409 | .Pq Ar variable Ns = Ns Ar value . | |
| 410 | .Pp | |
| 411 | Kernel environment variables can be set and unset through the | |
| 984263bc MD |
412 | .Ic set |
| 413 | and | |
| 414 | .Ic unset | |
| d9f21820 | 415 | builtins, and can have their values examined through the |
| 984263bc | 416 | .Ic show |
| d9f21820 TN |
417 | and |
| 418 | .Ic ifset | |
| 419 | builtins. | |
| 420 | Variables in command arguments or | |
| 421 | .Ar value | |
| 422 | in assignments | |
| 423 | .Dq ( $VAR | |
| 424 | and | |
| 425 | .Dq ${VAR} ) | |
| 426 | refers to kernel environment variables. | |
| 427 | .Pp | |
| 428 | Local variables can be unset with | |
| 429 | .Ic lunset | |
| 430 | and | |
| 431 | .Ic lunsetif | |
| 432 | builtin, and can have their values examined through the | |
| 433 | .Ic local | |
| 984263bc | 434 | builtin. |
| 984263bc MD |
435 | .Pp |
| 436 | Notice that these environment variables are not inherited by any shell | |
| b5ef8da1 TN |
437 | after the system has been booted, but can be examined by |
| 438 | .Xr kenv 1 . | |
| 984263bc | 439 | .Pp |
| d9f21820 TN |
440 | Note that a variable can have two instances with differnet values: |
| 441 | both a local variable instance and a kernel environment variable instance | |
| 442 | can exist for the same name and with different values. | |
| 443 | This can cause confusion and is seldom done on purpose. | |
| 444 | .Pp | |
| 984263bc MD |
445 | A few variables are set automatically by |
| 446 | .Nm . | |
| 447 | Others can affect the behavior of either | |
| 448 | .Nm | |
| 449 | or the kernel at boot. | |
| 450 | Some options may require a value, | |
| 451 | while others define behavior just by being set. | |
| b5ef8da1 TN |
452 | Both types of variables are described below. |
| 453 | .Bl -tag -width indent | |
| 5ee58eed | 454 | .It Va acpi_load |
| d9f21820 TN |
455 | Used for handling automatic loading of the |
| 456 | .Xr acpi 4 | |
| 457 | module. | |
| 458 | To disable automatic loading of the ACPI module use: | |
| 459 | .Pp | |
| 460 | .Dl lunset acpi_load | |
| 461 | .Dl set hint.acpi.0.disabled=1 | |
| 984263bc MD |
462 | .It Va autoboot_delay |
| 463 | Number of seconds | |
| 464 | .Ic autoboot | |
| 20134a6f TN |
465 | and |
| 466 | .Ic menu | |
| 984263bc | 467 | will wait before booting. |
| 20134a6f | 468 | Default value is 10 seconds. |
| 984263bc MD |
469 | .Pp |
| 470 | If set to | |
| 471 | .Dq NO , | |
| 472 | no | |
| 473 | .Ic autoboot | |
| 474 | will be automatically attempted after processing | |
| b5ef8da1 | 475 | .Pa dloader.rc , |
| 984263bc MD |
476 | though explicit |
| 477 | .Ic autoboot Ns 's | |
| 478 | will be processed normally, defaulting to 10 seconds delay. | |
| 479 | .It Va boot_askname | |
| 480 | Instructs the kernel to prompt the user for the name of the root device | |
| 481 | when the kernel is booted. | |
| 482 | .It Va boot_ddb | |
| 483 | Instructs the kernel to start in the DDB debugger, rather than | |
| 484 | proceeding to initialize when booted. | |
| 485 | .It Va boot_gdb | |
| 486 | Selects gdb-remote mode for the kernel debugger by default. | |
| 487 | .It Va boot_single | |
| 488 | Prevents the kernel from initiating a multi-user startup; instead single-user | |
| 489 | mode will be entered when the kernel has finished device probing. | |
| 490 | .It Va boot_userconfig | |
| 491 | Requests that the kernel's interactive device configuration program | |
| 492 | be run when the kernel is booted. | |
| 493 | .It Va boot_verbose | |
| 494 | Setting this variable causes extra debugging information to be printed | |
| 32235017 | 495 | by the kernel during and after the boot phase. |
| 984263bc MD |
496 | .It Va bootfile |
| 497 | List of semicolon-separated search path for bootable kernels. | |
| 498 | The default is | |
| 20134a6f | 499 | .Dq Li kernel . |
| 984263bc MD |
500 | .It Va console |
| 501 | Defines the current console. | |
| 502 | .It Va currdev | |
| 503 | Selects the default device. | |
| 504 | Syntax for devices is odd. | |
| 20134a6f TN |
505 | .It Va default_kernel |
| 506 | Selects default kernel loaded by | |
| 507 | .Ic menu | |
| 508 | command. | |
| d9f21820 TN |
509 | Defaults to |
| 510 | .Pa kernel . | |
| 511 | .It Va dumpdev | |
| 512 | The name of a device where the kernel can save a crash dump in case | |
| 513 | of a panic. | |
| 514 | This automatically sets the | |
| 515 | .Va kern.dumpdev | |
| 516 | .Xr sysctl 3 | |
| 517 | .Tn MIB | |
| 518 | variable. | |
| df620736 | 519 | .It Va ehci_load |
| d9f21820 | 520 | Used for handling automatic loading of the |
| dfab327d | 521 | .Xr ehci 4 |
| d9f21820 TN |
522 | module. |
| 523 | To disable automatic loading of the EHCI module use: | |
| 524 | .Pp | |
| 525 | .Dl lunset ehci_load | |
| 526 | .Dl set hint.ehci.0.disabled=1 | |
| 527 | .It Va init_chroot | |
| 528 | Directory | |
| 529 | .Xr init 8 | |
| 530 | will | |
| 531 | .Fn chroot | |
| 532 | to on startup. | |
| 533 | By setting this variable | |
| 534 | .Dx | |
| 535 | can be run from a subdirectory of the root file system. | |
| 984263bc MD |
536 | .It Va init_path |
| 537 | Sets the list of binaries which the kernel will try to run as the initial | |
| 538 | process. | |
| 539 | The first matching binary is used. | |
| 540 | The default list is | |
| 22628b14 | 541 | .Dq Li /sbin/init:/sbin/oinit:/sbin/init.bak . |
| 20134a6f TN |
542 | .It Va kernel_options |
| 543 | Set kernel boot flags. | |
| 544 | See also | |
| 545 | .Ic boot | |
| 546 | command. | |
| 984263bc MD |
547 | .It Va LINES |
| 548 | Define the number of lines on the screen, to be used by the pager. | |
| 549 | .It Va module_path | |
| b5ef8da1 TN |
550 | Sets the list of directories which will be searched for modules named in a |
| 551 | .Nm load | |
| 552 | command or implicitly required by a dependency. | |
| 984263bc | 553 | The default value for this variable is |
| b5ef8da1 TN |
554 | .Dq Li ;modules , |
| 555 | which first searches the current working directory and then | |
| 556 | .Pa modules . | |
| 984263bc MD |
557 | .It Va num_ide_disks |
| 558 | Sets the number of IDE disks as a workaround for some problems in | |
| 559 | finding the root disk at boot. | |
| 560 | This has been deprecated in favor of | |
| 561 | .Va root_disk_unit . | |
| 562 | .It Va prompt | |
| 563 | Value of | |
| 564 | .Nm Ns 's | |
| 565 | prompt. | |
| 566 | Defaults to | |
| b5ef8da1 | 567 | .Dq Li OK . |
| d9f21820 TN |
568 | Kernel environment variables can be used in |
| 569 | .Va prompt | |
| 570 | by including | |
| 571 | .Dq Li ${VAR} . | |
| 572 | E.g. (note that | |
| 573 | .Ql $ | |
| 574 | must be escaped with | |
| 575 | .Ql \e | |
| 576 | to be included in | |
| 577 | .Va prompt ) : | |
| 578 | .Pp | |
| 579 | .Dl "set prompt=\*q\e${currdev} OK\*q" | |
| 984263bc MD |
580 | .It Va root_disk_unit |
| 581 | If the code which detects the disk unit number for the root disk is | |
| b5ef8da1 TN |
582 | confused, e.g.\& by a mix of |
| 583 | .Tn SCSI | |
| 584 | and | |
| 585 | .Tn IDE | |
| 586 | disks, or | |
| 587 | .Tn IDE | |
| 588 | disks with | |
| 589 | gaps in the sequence (e.g.\& no primary slave), the unit number can | |
| 984263bc | 590 | be forced by setting this variable. |
| d9f21820 TN |
591 | .Pp |
| 592 | See also | |
| 593 | .Va vfs.root.mountfrom | |
| 594 | variable. | |
| 984263bc MD |
595 | .It Va rootdev |
| 596 | By default the value of | |
| 597 | .Va currdev | |
| 5ee58eed | 598 | is used to set the root file system |
| 984263bc MD |
599 | when the kernel is booted. |
| 600 | This can be overridden by setting | |
| 601 | .Va rootdev | |
| 602 | explicitly. | |
| d9f21820 TN |
603 | .Pp |
| 604 | See also | |
| 605 | .Va vfs.root.mountfrom | |
| b5ef8da1 | 606 | variable. |
| 984263bc MD |
607 | .El |
| 608 | .Pp | |
| 609 | Other variables are used to override kernel tunable parameters. | |
| 24d322d7 TN |
610 | The following |
| 611 | .Nm | |
| 612 | tunables are available: | |
| b5ef8da1 | 613 | .Bl -tag -width indent |
| d9f21820 TN |
614 | .It Va hw.ioapic_enable |
| 615 | Control use of | |
| 616 | .Tn I/O APIC . | |
| 617 | Set to 1 to enable, 0 to disable. | |
| 618 | Default is 1. | |
| fbd6ea1c | 619 | .It Va hw.irq.X.dest |
| b5ef8da1 TN |
620 | Set irqX's destination to the given |
| 621 | .Tn CPUID , | |
| fbd6ea1c | 622 | which starts from 0. |
| b5ef8da1 TN |
623 | If the specified value is larger than the last |
| 624 | .Tn CPUID , | |
| 32235017 SW |
625 | then the first |
| 626 | .Tn CPUID | |
| 627 | will be used. | |
| b5ef8da1 | 628 | This variable should not be used if |
| d9f21820 TN |
629 | .Tn I/O APIC |
| 630 | use is disabled. | |
| 5ee58eed MD |
631 | .It Va hw.physmem |
| 632 | Limit the amount of physical memory the system will use. | |
| 633 | By default the size is in bytes, but the | |
| 634 | .Cm k , K , m , M , g | |
| 635 | and | |
| 636 | .Cm G | |
| 637 | suffixes | |
| 638 | are also accepted and indicate kilobytes, megabytes and gigabytes | |
| 639 | respectively. | |
| 640 | An invalid suffix will result in the variable being ignored by the | |
| 641 | kernel. | |
| 746342c5 TN |
642 | .It Va hw.usb.hack_defer_exploration |
| 643 | The USB keyboard will sometimes not attach properly unless you set this | |
| 42480ff5 | 644 | variable to 0. |
| 8ff58dce | 645 | .It Va kern.emergency_intr_enable |
| b5ef8da1 | 646 | Setting this to 1 enables emergency interrupt polling. |
| 32235017 | 647 | All interrupt handlers are executed periodically. |
| b5ef8da1 | 648 | This mode is very expensive and should |
| 8ff58dce | 649 | only be used to get a system accessible when interrupt routing is |
| b5ef8da1 TN |
650 | otherwise broken. |
| 651 | It is primarily used by kernel developers to debug new systems. | |
| 8ff58dce | 652 | .It Va kern.emergency_intr_freq |
| b5ef8da1 TN |
653 | Set the polling rate for the emergency interrupt polling code. |
| 654 | The default is 10 (hz) to dissuade casual use. | |
| 655 | If you are doing real work | |
| 8ff58dce MD |
656 | with emergency interrupt polling mode enabled, it is recommended |
| 657 | that you use a frequency between 100hz and 300hz. | |
| 984263bc MD |
658 | .It Va kern.maxusers |
| 659 | Set the size of a number of statically allocated system tables; see | |
| 660 | .Xr tuning 7 | |
| b5ef8da1 | 661 | for a description of how to select an appropriate value for this tunable. |
| 984263bc MD |
662 | When set, this tunable replaces the value declared in the kernel |
| 663 | compile-time configuration file. | |
| 664 | .It Va kern.ipc.nmbclusters | |
| 665 | Set the number of mbuf clusters to be allocated. | |
| 666 | The value cannot be set below the default | |
| 667 | determined when the kernel was compiled. | |
| 668 | Modifies | |
| 669 | .Va NMBCLUSTERS . | |
| 29ad119f DR |
670 | .It Va kern.mmxopt |
| 671 | Toggles the mmx optimizations for the bcopy/copyin/copyout routines | |
| 984263bc MD |
672 | .It Va kern.vm.kmem.size |
| 673 | Sets the size of kernel memory (bytes). | |
| 5ee58eed | 674 | This overrides the value determined when the kernel was compiled. |
| 984263bc | 675 | .It Va kern.maxswzone |
| b5ef8da1 TN |
676 | Limits the amount of |
| 677 | .Tn KVM | |
| 678 | to be used to hold swap | |
| 984263bc MD |
679 | meta information, which directly governs the |
| 680 | maximum amount of swap the system can support. | |
| 681 | This value is specified in bytes of KVA space | |
| 682 | and defaults to around 70MBytes. | |
| 683 | Care should be taken | |
| 684 | to not reduce this value such that the actual | |
| aa0d550a | 685 | amount of configured swap exceeds \(12 the |
| 984263bc MD |
686 | kernel-supported swap. |
| 687 | The default 70MB allows | |
| 688 | the kernel to support a maximum of (approximately) | |
| 689 | 14GB of configured swap. | |
| 690 | Only mess around with | |
| 691 | this parameter if you need to greatly extend the | |
| b5ef8da1 TN |
692 | .Tn KVM |
| 693 | reservation for other resources such as the | |
| 984263bc MD |
694 | buffer cache or |
| 695 | .Va NMBCLUSTERS . | |
| 696 | Modifies | |
| 697 | .Va VM_SWZONE_SIZE_MAX . | |
| 698 | .It Va kern.maxbcache | |
| 699 | Limits the amount of KVM reserved for use by the | |
| 700 | buffer cache, specified in bytes. | |
| 701 | The default maximum is 200MB. | |
| 702 | This parameter is used to | |
| 703 | prevent the buffer cache from eating too much | |
| b5ef8da1 TN |
704 | .Tn KVM |
| 705 | in large-memory machine configurations. | |
| 984263bc | 706 | Only mess around with this parameter if you need to |
| b5ef8da1 TN |
707 | greatly extend the |
| 708 | .Tn KVM | |
| 709 | reservation for other resources | |
| 984263bc MD |
710 | such as the swap zone or |
| 711 | .Va NMBCLUSTERS . | |
| 712 | Note that | |
| 713 | the NBUF parameter will override this limit. | |
| 714 | Modifies | |
| 715 | .Va VM_BCACHE_SIZE_MAX . | |
| 5ee58eed | 716 | .It Va machdep.disable_mtrrs |
| b5ef8da1 TN |
717 | Disable the use of |
| 718 | .Sy i686 | |
| 719 | .Tn MTRRs | |
| 720 | (x86 only). | |
| 984263bc MD |
721 | .It Va net.inet.tcp.tcbhashsize |
| 722 | Overrides the compile-time set value of | |
| 723 | .Va TCBHASHSIZE | |
| 724 | or the preset default of 512. | |
| 725 | Must be a power of 2. | |
| 5a82ae89 SW |
726 | .It Va vfs.root.wakedelay |
| 727 | Specify an additional delay (default is 2 seconds if unspecified) | |
| 728 | before trying to mount root. | |
| 2a2fb130 | 729 | .It Va vfs.root.mountfrom |
| b5ef8da1 TN |
730 | Specify root file system. |
| 731 | A semicolon separated list of file systems to try | |
| b27d3d3b | 732 | as the kernel root file system. |
| b5ef8da1 | 733 | File system format is file system type and disk store, |
| b27d3d3b | 734 | separated by colon. |
| 32235017 | 735 | This variable needs to be set when using a boot-only partition, which is |
| b27d3d3b | 736 | typically mounted on root file system as |
| 746342c5 | 737 | .Pa /boot . |
| b27d3d3b | 738 | .Pp |
| b5ef8da1 TN |
739 | One file system example: |
| 740 | .Dl hammer:da8s1a | |
| 6507240b | 741 | .Pp |
| b5ef8da1 TN |
742 | One file system |
| 743 | .Nm HAMMER | |
| 744 | multi volume example: | |
| 745 | .Dl hammer:da8s1a:da9s1a | |
| 984263bc | 746 | .Pp |
| b5ef8da1 TN |
747 | Several file systems, boot list, example: |
| 748 | .Dl ufs:da0s1a;hammer:ad1s1d | |
| 984263bc | 749 | .Pp |
| b5ef8da1 TN |
750 | Each file system in the list will be tried in the order specified |
| 751 | until the mount succeeds. | |
| 752 | If all fail, the | |
| 753 | .Ql mountroot> | |
| 754 | prompt is displayed for manual entry. | |
| 984263bc | 755 | .Pp |
| b5ef8da1 | 756 | You may not specify devtab labels here but you can specify paths available to |
| 32235017 | 757 | .Xr devfs 5 |
| b5ef8da1 TN |
758 | such as: |
| 759 | .Dl hammer:serno/L41JYE0G.s1d | |
| d9f21820 TN |
760 | .It Va vfs.root.realroot |
| 761 | Root file system and extra options for | |
| 762 | .Nm initrd . | |
| 763 | See | |
| 764 | .Xr mkinitrd 8 . | |
| 984263bc | 765 | .El |
| 984263bc | 766 | .Sh FILES |
| b5ef8da1 | 767 | .Bl -tag -width /boot/defaults/dloader.menu -compact |
| 984263bc MD |
768 | .It Pa /boot/boot.conf |
| 769 | .Nm | |
| 770 | bootstrapping script. | |
| d9f21820 | 771 | Deprecated |
| b5ef8da1 TN |
772 | .It Pa /boot/defaults/dloader.menu |
| 773 | .Nm | |
| d9f21820 | 774 | menu setup commands -- do not change this file |
| 984263bc | 775 | .It Pa /boot/defaults/loader.conf |
| b5ef8da1 TN |
776 | .Nm |
| 777 | configuration file, see | |
| 778 | .Xr loader.conf 5 | |
| d9f21820 | 779 | -- do not change this file |
| b5ef8da1 TN |
780 | .It Pa /boot/dloader.menu |
| 781 | .Nm | |
| d9f21820 | 782 | menu setup commands |
| b5ef8da1 TN |
783 | .It Pa /boot/dloader.rc |
| 784 | .Nm | |
| d9f21820 TN |
785 | bootstrapping script |
| 786 | .It Pa /boot/loader | |
| 787 | .Nm | |
| 788 | itself | |
| 984263bc MD |
789 | .It Pa /boot/loader.conf |
| 790 | .It Pa /boot/loader.conf.local | |
| 791 | .Nm | |
| b5ef8da1 | 792 | configuration files, see |
| d9f21820 | 793 | .Xr loader.conf 5 |
| 984263bc | 794 | .It Pa /boot/loader.help |
| 32235017 | 795 | help messages, used by the |
| b5ef8da1 | 796 | .Ic help |
| d9f21820 | 797 | command |
| 984263bc MD |
798 | .El |
| 799 | .Sh EXAMPLES | |
| 800 | Boot in single user mode: | |
| 801 | .Pp | |
| b5ef8da1 | 802 | .Dl loadall |
| 984263bc MD |
803 | .Dl boot -s |
| 804 | .Pp | |
| 805 | Load kernel's user configuration file. | |
| 806 | Notice that a kernel must be loaded before any other | |
| 807 | .Ic load | |
| 808 | command is attempted. | |
| 809 | .Bd -literal -offset indent | |
| 810 | load kernel | |
| 2a2fb130 | 811 | load -t userconfig_script kernel.conf |
| 984263bc MD |
812 | .Ed |
| 813 | .Pp | |
| 814 | Load the kernel, a splash screen, and then autoboot in five seconds. | |
| 815 | .Bd -literal -offset indent | |
| 816 | load kernel | |
| 817 | load splash_bmp | |
| 2a2fb130 | 818 | load -t splash_image_data chuckrulez.bmp |
| 984263bc MD |
819 | autoboot 5 |
| 820 | .Ed | |
| 821 | .Pp | |
| 822 | Set the disk unit of the root device to 2, and then boot. | |
| 823 | This would be needed in a system with two IDE disks, | |
| b5ef8da1 TN |
824 | with the second IDE disk hardwired to |
| 825 | .Pa ad2 | |
| 826 | instead of | |
| 827 | .Pa ad1 . | |
| 984263bc MD |
828 | .Bd -literal -offset indent |
| 829 | set root_disk_unit=2 | |
| 2a2fb130 | 830 | boot kernel |
| 984263bc | 831 | .Ed |
| 984263bc | 832 | .Sh SEE ALSO |
| d9f21820 | 833 | .Xr kenv 1 , |
| 984263bc | 834 | .Xr libstand 3 , |
| dd8223d7 SW |
835 | .Xr acpi 4 , |
| 836 | .Xr ehci 4 , | |
| 984263bc MD |
837 | .Xr loader.conf 5 , |
| 838 | .Xr tuning 7 , | |
| 839 | .Xr boot 8 , | |
| bc65ccee | 840 | .Xr btxld 8 , |
| d9f21820 TN |
841 | .Xr cryptsetup 8 , |
| 842 | .Xr lvm 8 , | |
| b5ef8da1 TN |
843 | .Xr pxeboot 8 , |
| 844 | .Xr pxeboot_tftp 8 , | |
| 24d322d7 | 845 | .Xr sysctl 8 |
| 984263bc | 846 | .Sh HISTORY |
| 5ee58eed | 847 | The |
| 984263bc MD |
848 | .Nm |
| 849 | first appeared in | |
| 850 | .Fx 3.1 . | |
| 32235017 SW |
851 | .Nm dloader |
| 852 | was introduced and | |
| b5ef8da1 TN |
853 | .Tn FORTH |
| 854 | removed in | |
| 855 | .Dx 2.7 . | |
| 984263bc MD |
856 | .Sh AUTHORS |
| 857 | .An -nosplit | |
| 5ee58eed | 858 | The |
| 984263bc MD |
859 | .Nm |
| 860 | was written by | |
| 861 | .An Michael Smith Aq msmith@FreeBSD.org . | |
| 862 | .Pp | |
| 32235017 SW |
863 | .Nm dloader |
| 864 | was written by | |
| b5ef8da1 | 865 | .An Matthew Dillon Aq dillon@backplane.com . |
| d9f21820 TN |
866 | .Sh BUGS |
| 867 | A variable can have two instances: local & kernel environment, | |
| 868 | this can cause confusion. |