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 .Dd Apr 22, 2017
  26 .Dt LOADER.4TH 5
  27 .Os
  28 .Sh NAME
  29 .Nm loader.4th
  30 .Nd loader.conf processing tools
  31 .Sh DESCRIPTION
  32 The file that goes by the name of
  33 .Nm
  34 is a set of commands designed to manipulate
  35 .Xr loader.conf 4
  36 files.
  37 The default
  38 .Pa /boot/loader.rc
  39 includes
  40 .Nm
  41 and uses one of its commands to automatically read and process
  42 the standard
  43 .Xr loader.conf 4
  44 files.
  45 Other commands exists to help the user specify alternate
  46 configurations.
  47 .Pp
  48 The commands of
  49 .Nm
  50 by themselves are not enough for most uses.
  51 Please refer to the
  52 examples below for the most common situations, and to
  53 .Xr loader 5
  54 for additional commands.
  55 .Pp
  56 Before using any of the commands provided in
  57 .Nm ,
  58 it must be included
  59 through the command:
  60 .Pp
  61 .Dl include loader.4th
  62 .Pp
  63 This line is present in the default
  64 .Pa /boot/loader.rc
  65 file, so it is not needed (and should not be re-issued) in a normal setup.
  66 .Pp
  67 The commands provided by it are:
  68 .Bl -tag -width disable-module_module -compact -offset indent
  69 .It Ic boot
  70 .It Ic boot Ar kernelname Op Cm ...
  71 .It Ic boot Ar directory Op Cm ...
  72 .It Ic boot Fl flag Cm ...
  73 Boot as specified by the
  74 .Xr loader.conf 4
  75 files read.
  76 .Pp
  77 Depending on the arguments passed, it can override boot flags and
  78 either the kernel name or the search path for kernel and modules.
  79 .Pp
  80 .It Ic boot-conf
  81 .It Ic boot-conf Ar kernelname Op Cm ...
  82 .It Ic boot-conf Ar directory Op Cm ...
  83 .It Ic boot-conf Fl flag Cm ...
  84 Works like
  85 .Ic boot
  86 described above, but instead of booting immediately, uses
  87 .Ic autoboot ,
  88 so it can be stopped.
  89 .Pp
  90 .It Ic start
  91 Reads
  92 .Pa /boot/defaults/loader.conf ,
  93 all other
  94 .Xr loader.conf 4
  95 files specified in it, then loads the desired kernel and modules
  96 .Pq if not already loaded .
  97 After which you can use the
  98 .Ic boot
  99 or
 100 .Ic autoboot
 101 commmands or simply exit (provided
 102 .Va autoboot_delay
 103 is not set to NO) to boot the system.
 104 .Ic start
 105 is the command used in the default
 106 .Pa /boot/loader.rc
 107 file
 108 .Pq see Xr loader 5 .
 109 .Pp
 110 .It Ic initialize
 111 Initialize the support library so commands can be used without executing
 112 .Ic start
 113 first.
 114 Like
 115 .Ic start ,
 116 it reads
 117 .Pa /boot/defaults/loader.conf
 118 and all other
 119 .Xr loader.conf 4
 120 files specified in it
 121 .Pq but does not load kernel or modules .
 122 Returns a flag on the stack to indicate
 123 if any configuration files were successfully loaded.
 124 .Pp
 125 .It Ic read-conf Ar filename
 126 Reads and processes a
 127 .Xr loader.conf 4
 128 file.
 129 Does not proceed to boot.
 130 .Pp
 131 .It Ic enable-module Ar module
 132 Enables the loading of
 133 .Ar module .
 134 .Pp
 135 .It Ic disable-module Ar module
 136 Disables the loading of
 137 .Ar module .
 138 .Pp
 139 .It Ic toggle-module Ar module
 140 Toggles the loading of
 141 .Ar module
 142 on and off.
 143 .Pp
 144 .It Ic show-module Ar module
 145 Shows the information gathered in the
 146 .Xr loader.conf 4
 147 files about the module
 148 .Ar module .
 149 .Pp
 150 .It Ic show-module-options
 151 Shows all modules defined in current
 152 .Xr loader.conf 4
 153 configuration.
 154 .Pp
 155 .It Ic retry
 156 Used inside
 157 .Xr loader.conf 4
 158 files to specify the action after a module loading fails.
 159 .Pp
 160 .It Ic ignore
 161 Used inside
 162 .Xr loader.conf 4
 163 files to specify the action after a module loading fails.
 164 .It Ic try-include Ar file Op Ar
 165 Process script files if they exist.
 166 Each file, in turn, is completely read into memory,
 167 and then each of its lines is passed to the command line interpreter.
 168 If any error is returned by the interpreter, the try-include
 169 command aborts immediately, without reading any other files, and
 170 silently returns without error.
 171 .El
 172 .Sh FILES
 173 .Bl -tag -width /boot/forth/loader.4th -compact
 174 .It Pa /boot/loader
 175 The
 176 .Xr loader 5 .
 177 .It Pa /boot/forth/loader.4th
 178 .Nm
 179 itself.
 180 .It Pa /boot/loader.rc
 181 .Xr loader 5
 182 bootstrapping script.
 183 .It Pa /boot/defaults/loader.conf
 184 File loaded by the
 185 .Ic start
 186 command.
 187 .El
 188 .Sh EXAMPLES
 189 Standard
 190 .Pa /boot/loader.rc :
 191 .Pp
 192 .Bd -literal -offset indent -compact
 193 include /boot/forth/loader.4th
 194 start
 195 .Ed
 196 .Pp
 197 Read an additional configuration file and then proceed to boot:
 198 .Pp
 199 .Bd -literal -offset indent -compact
 200 unload
 201 read-conf /boot/special.conf
 202 boot-conf
 203 .Ed
 204 .Sh SEE ALSO
 205 .Xr loader.conf 4 ,
 206 .Xr loader 5