xref: /freebsd/stand/defaults/loader.conf.5 (revision 72cf7db3aaf17db412183886f19320e5074dc8b7)
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
241Specify the maximum desired resolution for the EFI console.
242The following values are accepted:
243.Bl -column "WidthxHeight"
244.It Sy Value Ta Sy Resolution
245.It 480p Ta 640x480
246.It 720p Ta 1280x720
247.It 1080p Ta 1920x1080
248.It 2160p Ta 3840x2160
249.It 4k Ta 3840x2160
250.It 5k Ta 5120x2880
251.It Va Width Ns x Ns Va Height Ta Va Width Ns x Ns Va Height
252.El
253.It Va kernel
254.Pq Dq kernel
255.It Va kernels
256.Pq Dq kernel kernel.old
257Space or comma separated list of kernels to present in the boot menu.
258.It Va loader_conf_files
259.Pq Dq Pa /boot/loader.conf /boot/loader.conf.local
260.It Va loader_conf_dirs
261.Pq Dq Pa /boot/loader.conf.d
262.It Va splash_bmp_load
263.Pq Dq NO
264If set to
265.Dq YES ,
266will load the splash screen module, making it possible to display a bmp image
267on the screen while booting.
268.It Va splash_pcx_load
269.Pq Dq NO
270If set to
271.Dq YES ,
272will load the splash screen module, making it possible to display a pcx image
273on the screen while booting.
274.It Va vesa_load
275.Pq Dq NO
276If set to
277.Dq YES ,
278the vesa module will be loaded, enabling bitmaps above VGA resolution to
279be displayed.
280.It Va beastie_disable
281If set to
282.Dq YES ,
283the beastie boot menu will be skipped.
284.It Va loader_logo Pq Dq Li orbbw
285Selects a desired logo in the beastie boot menu.
286Possible values are:
287.Dq Li orbbw ,
288.Dq Li orb ,
289.Dq Li fbsdbw ,
290.Dq Li beastiebw ,
291.Dq Li beastie ,
292and
293.Dq Li none .
294.It Va loader_color
295If set to
296.Dq NO ,
297the beastie boot menu will be displayed without ANSI coloring.
298.It Va entropy_cache_load
299.Pq Dq YES
300If set to
301.Dq NO ,
302the very early
303boot-time entropy file
304will not be loaded.
305See the entropy entries in
306.Xr rc.conf 5 .
307.It Va entropy_cache_name
308.Pq Dq /boot/entropy
309The name of the very early
310boot-time entropy cache file.
311.It Va cpu_microcode_load
312.Pq Dq NO
313If set to
314.Dq YES ,
315the microcode update file specified by
316.Va cpu_microcode_name
317will be loaded and applied very early during boot.
318This provides functionality similar to
319.Xr cpucontrol 8
320but ensures that CPU features enabled by microcode updates can be
321used by the kernel.
322The update will be re-applied automatically when resuming from an
323ACPI sleep state.
324If the update file contains updates for multiple processor models,
325the kernel will search for and extract a matching update.
326Currently this setting is supported only on Intel
327.Dv i386
328and
329.Dv amd64
330processors.
331It has no effect on other processor types.
332.It Va cpu_microcode_name
333A path to a microcode update file.
334.El
335.Sh OTHER SETTINGS
336Other settings that may be used in
337.Nm
338that have no default value:
339.Bl -tag -width bootfile -offset indent
340.It Va fdt_overlays
341Specifies a comma-delimited list of FDT overlays to apply.
342.Pa /boot/dtb/overlays
343is created by default for overlays to be placed in.
344.It Va kernels_autodetect
345If set to
346.Dq YES ,
347attempt to auto-detect kernels installed in
348.Pa /boot .
349This is an option specific to the Lua-based loader.
350It is not available in the default Forth-based loader.
351.El
352.Sh FILES
353.Bl -tag -width /boot/defaults/loader.conf -compact
354.It Pa /boot/defaults/loader.conf
355default settings -- do not change this file.
356.It Pa /boot/loader.conf
357user defined settings.
358.It Pa /boot/loader.conf.local
359machine-specific settings for sites with a common loader.conf.
360.El
361.Sh SEE ALSO
362.Xr rc.conf 5 ,
363.Xr boot 8 ,
364.Xr cpucontrol 8 ,
365.Xr loader 8 ,
366.Xr loader.4th 8
367.Sh HISTORY
368The file
369.Nm
370first appeared in
371.Fx 3.2 .
372.Sh AUTHORS
373This manual page was written by
374.An Daniel C. Sobral Aq dcs@FreeBSD.org .
375.Sh BUGS
376The
377.Xr loader 8
378stops reading
379.Nm
380when it encounters a syntax error, so any options which are vital for
381booting a particular system (i.e.\&
382.Dq Va hw.ata.ata_dma Ns "=0" )
383should precede any experimental additions to
384.Nm .
385