xref: /freebsd/stand/defaults/loader.conf.5 (revision 82397d791966b09d344251bc709cd9db2b3a1902)
1.\" Copyright (c) 1999 Daniel C. Sobral
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\"
13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23.\" SUCH DAMAGE.
24.\"
25.\" $FreeBSD$
26.Dd December 31, 2020
27.Dt LOADER.CONF 5
28.Os
29.Sh NAME
30.Nm loader.conf
31.Nd "system bootstrap configuration information"
32.Sh DESCRIPTION
33The file
34.Nm
35contains descriptive information on bootstrapping the system.
36Through
37it you can specify the kernel to be booted, parameters to be passed to
38it, and additional modules to be loaded; and generally set all variables
39described in
40.Xr loader 8 .
41.Sh SYNTAX
42Though
43.Nm Ns 's
44format was defined explicitly to resemble
45.Xr rc.conf 5 ,
46and can be sourced by
47.Xr sh 1 ,
48some settings are treated in a special fashion.
49Also, the
50behavior of some settings is defined by the setting's suffix;
51the prefix identifies which module the setting controls.
52.Pp
53The general parsing rules are:
54.Bl -bullet
55.It
56Spaces and empty lines are ignored.
57.It
58A # sign will mark the remainder of the line as a comment.
59.It
60Only one setting can be present on each line.
61.El
62.Pp
63All settings have the following format:
64.Pp
65.Dl variable="value"
66.Pp
67Unless it belongs to one of the classes of settings that receive special
68treatment, a setting will set the value of a
69.Xr loader 8
70environment variable.
71The settings that receive special
72treatment are listed below.
73Settings beginning with
74.Qq *
75below define the modules to be loaded and
76may have any prefix; the prefix identifies a module.
77All such settings sharing a common
78prefix refer to the same module.
79.Bl -tag -width Ar
80.It Ar exec
81Immediately executes a
82.Xr loader 8
83command.
84This type of setting cannot be processed by programs other
85than
86.Xr loader 8 ,
87so its use should be avoided.
88Multiple instances of it will be processed
89independently.
90.It Ar loader_conf_dirs
91Space separated list of directories to process for configuration files.
92The lua-based loader will process files with a
93.Dq .conf
94suffix that are placed in these directories.
95.It Ar loader_conf_files
96Defines additional configuration files to be processed right after the
97present file.
98.Ar loader_conf_files
99should be treated as write-only.
100One cannot depend on any value remaining in the loader environment or carried
101over into the kernel environment.
102.It Ar kernel
103Name of the kernel to be loaded.
104If no kernel name is set, no additional
105modules will be loaded.
106The name must be a subdirectory of
107.Pa /boot
108that contains a kernel.
109.It Ar kernel_options
110Flags to be passed to the kernel.
111.It Ar vfs.root.mountfrom
112Specify the root partition to mount.
113For example:
114.Pp
115.Dl vfs.root.mountfrom="ufs:/dev/da0s1a"
116.Pp
117.Xr loader 8
118automatically calculates the value of this tunable from
119.Pa /etc/fstab
120from the partition the kernel was loaded from.
121The calculated value might be calculated incorrectly when
122.Pa /etc/fstab
123is not available during
124.Xr loader 8
125startup (as during diskless booting from NFS), or if a different
126device is desired by the user.
127The preferred value can be set in
128.Pa /loader.conf .
129.Pp
130The value can also be overridden from the
131.Xr loader 8
132command line.
133This is useful for system recovery when
134.Pa /etc/fstab
135is damaged, lost, or read from the wrong partition.
136.It Ar password
137Protect boot menu with a password without interrupting
138.Ic autoboot
139process.
140The password should be in clear text format.
141If a password is set, boot menu will not appear until any key is pressed during
142countdown period specified by
143.Va autoboot_delay
144variable or
145.Ic autoboot
146process fails.
147In both cases user should provide specified password to be able to access boot
148menu.
149.It Ar bootlock_password
150Provides a password to be required by check-password before execution is
151allowed to continue.
152The password should be in clear text format.
153If a password is set, the user must provide specified password to boot.
154.It Ar verbose_loading
155If set to
156.Dq YES ,
157module names will be displayed as they are loaded.
158.It Ar module_blacklist
159Blacklist of modules.
160Modules specified in the blacklist may not be loaded automatically with a
161.Ar *_load
162directive, but they may be loaded directly at the
163.Xr loader 8
164prompt.
165Blacklisted modules may still be loaded indirectly as dependencies of other
166modules.
167.It Ar *_load
168If set to
169.Dq YES ,
170that module will be loaded.
171If no name is defined (see below), the
172module's name is taken to be the same as the prefix.
173.It Ar *_name
174Defines the name of the module.
175.It Ar *_type
176Defines the module's type.
177If none is given, it defaults to a kld module.
178.It Ar *_flags
179Flags and parameters to be passed to the module.
180.It Ar *_before
181Commands to be executed before the module is loaded.
182Use of this setting
183should be avoided.
184.It Ar *_after
185Commands to be executed after the module is loaded.
186Use of this setting
187should be avoided.
188.It Ar *_error
189Commands to be executed if the loading of a module fails.
190Except for the
191special value
192.Dq abort ,
193which aborts the bootstrap process, use of this setting should be avoided.
194.El
195.Pp
196.Em WARNING:
197developers should never use these suffixes for any kernel environment
198variables (tunables) or conflicts will result.
199.Sh DEFAULT SETTINGS
200Most of
201.Nm Ns 's
202default settings can be ignored.
203The few of them which are important
204or useful are:
205.Bl -tag -width bootfile -offset indent
206.It Va bitmap_load
207.Pq Dq NO
208If set to
209.Dq YES ,
210a bitmap will be loaded to be displayed on screen while booting.
211.It Va bitmap_name
212.Pq Dq Pa /boot/splash.bmp
213Name of the bitmap to be loaded.
214Any other name can be used.
215.It Va comconsole_speed
216.Dq ( 9600
217or the value of the
218.Va BOOT_COMCONSOLE_SPEED
219variable when
220.Xr loader 8
221was compiled).
222Sets the speed of the serial console.
223If the previous boot loader stage specified that a serial console
224is in use then the default speed is determined from the current
225serial port speed setting.
226.It Va console
227.Pq Dq vidconsole
228.Dq comconsole
229selects serial console,
230.Dq vidconsole
231selects the video console,
232.Dq nullconsole
233selects a mute console
234(useful for systems with neither a video console nor a serial port), and
235.Dq spinconsole
236selects the video console which prevents any input and hides all output
237replacing it with
238.Dq spinning
239character (useful for embedded products and such).
240.It Va efi_max_resolution
241.It Va vbe_max_resolution
242Specify the maximum desired resolution for the EFI or VESA BIOS Extension (VBE)
243framebuffer console.
244The following values are accepted:
245.Bl -column "WidthxHeight"
246.It Sy Value Ta Sy Resolution
247.It 480p Ta 640x480
248.It 720p Ta 1280x720
249.It 1080p Ta 1920x1080
250.It 2160p Ta 3840x2160
251.It 4k Ta 3840x2160
252.It 5k Ta 5120x2880
253.It Va Width Ns x Ns Va Height Ta Va Width Ns x Ns Va Height
254.El
255.It Va kernel
256.Pq Dq kernel
257.It Va kernels
258.Pq Dq kernel kernel.old
259Space or comma separated list of kernels to present in the boot menu.
260.It Va loader_conf_files
261.Pq Dq Pa /boot/loader.conf /boot/loader.conf.local
262.It Va loader_conf_dirs
263.Pq Dq Pa /boot/loader.conf.d
264.It Va splash_bmp_load
265.Pq Dq NO
266If set to
267.Dq YES ,
268will load the splash screen module, making it possible to display a bmp image
269on the screen while booting.
270.It Va splash_pcx_load
271.Pq Dq NO
272If set to
273.Dq YES ,
274will load the splash screen module, making it possible to display a pcx image
275on the screen while booting.
276.It Va vesa_load
277.Pq Dq NO
278If set to
279.Dq YES ,
280the vesa module will be loaded, enabling bitmaps above VGA resolution to
281be displayed.
282.It Va beastie_disable
283If set to
284.Dq YES ,
285the beastie boot menu will be skipped.
286.It Va loader_logo Pq Dq Li orbbw
287Selects a desired logo in the beastie boot menu.
288Possible values are:
289.Dq Li orbbw ,
290.Dq Li orb ,
291.Dq Li fbsdbw ,
292.Dq Li beastiebw ,
293.Dq Li beastie ,
294and
295.Dq Li none .
296.It Va loader_color
297If set to
298.Dq NO ,
299the beastie boot menu will be displayed without ANSI coloring.
300.It Va entropy_cache_load
301.Pq Dq YES
302If set to
303.Dq NO ,
304the very early
305boot-time entropy file
306will not be loaded.
307See the entropy entries in
308.Xr rc.conf 5 .
309.It Va entropy_cache_name
310.Pq Dq /boot/entropy
311The name of the very early
312boot-time entropy cache file.
313.It Va cpu_microcode_load
314.Pq Dq NO
315If set to
316.Dq YES ,
317the microcode update file specified by
318.Va cpu_microcode_name
319will be loaded and applied very early during boot.
320This provides functionality similar to
321.Xr cpucontrol 8
322but ensures that CPU features enabled by microcode updates can be
323used by the kernel.
324The update will be re-applied automatically when resuming from an
325ACPI sleep state.
326If the update file contains updates for multiple processor models,
327the kernel will search for and extract a matching update.
328Currently this setting is supported only on Intel
329.Dv i386
330and
331.Dv amd64
332processors.
333It has no effect on other processor types.
334.It Va cpu_microcode_name
335A path to a microcode update file.
336.El
337.Sh OTHER SETTINGS
338Other settings that may be used in
339.Nm
340that have no default value:
341.Bl -tag -width bootfile -offset indent
342.It Va fdt_overlays
343Specifies a comma-delimited list of FDT overlays to apply.
344.Pa /boot/dtb/overlays
345is created by default for overlays to be placed in.
346.It Va kernels_autodetect
347If set to
348.Dq YES ,
349attempt to auto-detect kernels installed in
350.Pa /boot .
351This is an option specific to the Lua-based loader.
352It is not available in the default Forth-based loader.
353.El
354.Sh FILES
355.Bl -tag -width /boot/defaults/loader.conf -compact
356.It Pa /boot/defaults/loader.conf
357default settings -- do not change this file.
358.It Pa /boot/loader.conf
359user defined settings.
360.It Pa /boot/loader.conf.local
361machine-specific settings for sites with a common loader.conf.
362.El
363.Sh SEE ALSO
364.Xr rc.conf 5 ,
365.Xr boot 8 ,
366.Xr cpucontrol 8 ,
367.Xr loader 8 ,
368.Xr loader.4th 8
369.Sh HISTORY
370The file
371.Nm
372first appeared in
373.Fx 3.2 .
374.Sh AUTHORS
375This manual page was written by
376.An Daniel C. Sobral Aq dcs@FreeBSD.org .
377.Sh BUGS
378The
379.Xr loader 8
380stops reading
381.Nm
382when it encounters a syntax error, so any options which are vital for
383booting a particular system (i.e.\&
384.Dq Va hw.ata.ata_dma Ns "=0" )
385should precede any experimental additions to
386.Nm .
387