1 '\" te
   2 .\" Copyright (c) 2003 Sun Microsystems, Inc.  All Rights Reserved.
   3 .\" Copyright 2016 Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
   4 .\" Copyright 2019 OmniOS Community Edition (OmniOSce) Association.
   5 .\" Copyright 2019 Peter Tribble
   6 .\" Copyright 1989 AT&T
   7 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
   8 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
   9 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
  10 .TH SYSTEM 4 "Apr 20, 2019"
  11 .SH NAME
  12 system \- system configuration information file
  13 .SH DESCRIPTION
  14 .LP
  15 The \fBsystem\fR file is used for customizing the operation of the operating
  16 system kernel. The recommended procedure is to preserve the original
  17 \fBsystem\fR file before modifying it.
  18 .sp
  19 .LP
  20 It is not recommended to edit the \fB/etc/system\fR file directly but rather
  21 to deliver configuration fragments into files under \fB/etc/system.d\fR;
  22 files in this directory are combined in alphabetical order and read by the
  23 kernel before \fB/etc/system\fR is processed. Directives in \fB/etc/system\fR
  24 therefore take precedence over any settings delivered in fragment files.
  25 .sp
  26 .LP
  27 The recommended naming schema for the fragment files is to use the name of
  28 the package which is delivering the file with '\fB/\fR' characters replaced
  29 by '\fB:\fR'; file names that start with a dot (\fB.\fR) will be ignored.
  30 .sp
  31 .LP
  32 If \fB/etc/system.d/\fR exists and contains any fragment files,
  33 then the directory must also be writable or it will not be possible to
  34 create or update the system boot archive.
  35 .sp
  36 .LP
  37 The \fBsystem\fR file contains commands which are read by the kernel during
  38 initialization and used to customize the operation of your system. These
  39 commands are useful for modifying the system's treatment of its loadable kernel
  40 modules.
  41 .sp
  42 .LP
  43 The syntax of the \fBsystem\fR file consists of a list of keyword/value pairs
  44 which are recognized by the system as valid commands. Comment lines must begin
  45 with an asterisk (\fB*\fR) or a hash mark (\fB#\fR) and end with a newline
  46 character. All commands are case-insensitive except where noted.
  47 .sp
  48 .LP
  49 Commands that modify the system's operation with respect to loadable kernel
  50 modules require you to specify the module type by listing the module's
  51 namespace. The following namespaces are currently supported on all platforms:
  52 .sp
  53 .ne 2
  54 .na
  55 \fB\fBdrv\fR\fR
  56 .ad
  57 .RS 10n
  58 Modules in this namespace are device drivers.
  59 .RE
  60 
  61 .sp
  62 .ne 2
  63 .na
  64 \fB\fBexec\fR\fR
  65 .ad
  66 .RS 10n
  67 Modules in this namespace are execution format modules. The following
  68 \fBexec\fR modules are currently provided:
  69 .sp
  70 .ne 2
  71 .na
  72 \fBOnly on SPARC systems:\fR
  73 .ad
  74 .RS 28n
  75 .sp
  76 .in +2
  77 .nf
  78 aoutexec
  79 .fi
  80 .in -2
  81 .sp
  82 
  83 .RE
  84 
  85 .sp
  86 .ne 2
  87 .na
  88 \fBOn SPARC and IA systems:\fR
  89 .ad
  90 .RS 28n
  91 .sp
  92 .in +2
  93 .nf
  94 elfexec
  95 intpexec
  96 javaexec
  97 .fi
  98 .in -2
  99 .sp
 100 
 101 .RE
 102 
 103 .RE
 104 
 105 .sp
 106 .ne 2
 107 .na
 108 \fB\fBfirmware\fR\fR
 109 .ad
 110 .RS 10n
 111 Raw firmware images in subdirectories, one for each device driver
 112 module using \fBfirmload\fR(9F).
 113 .RE
 114 
 115 .sp
 116 .ne 2
 117 .na
 118 \fB\fBfs\fR\fR
 119 .ad
 120 .RS 10n
 121 These modules are filesystems.
 122 .RE
 123 
 124 .sp
 125 .ne 2
 126 .na
 127 \fB\fBsched\fR\fR
 128 .ad
 129 .RS 10n
 130 These modules implement a process scheduling algorithm.
 131 .RE
 132 
 133 .sp
 134 .ne 2
 135 .na
 136 \fB\fBstrmod\fR\fR
 137 .ad
 138 .RS 10n
 139 These modules are \fBSTREAMS\fR modules.
 140 .RE
 141 
 142 .sp
 143 .ne 2
 144 .na
 145 \fB\fBsys\fR\fR
 146 .ad
 147 .RS 10n
 148 These modules implement loadable system-call modules.
 149 .RE
 150 
 151 .sp
 152 .ne 2
 153 .na
 154 \fB\fBmisc\fR\fR
 155 .ad
 156 .RS 10n
 157 These modules do not fit into any of the above categories, so are considered
 158 "miscellaneous" modules.
 159 .RE
 160 
 161 .sp
 162 .LP
 163 SPARC only:
 164 .sp
 165 .ne 2
 166 .na
 167 \fB\fBdacf\fR\fR
 168 .ad
 169 .RS 8n
 170 These modules provide rules and actions for device auto-configuration.
 171 .RE
 172 
 173 .sp
 174 .ne 2
 175 .na
 176 \fB\fBtod\fR\fR
 177 .ad
 178 .RS 8n
 179 These modules provide support for the time of day hardware.
 180 .RE
 181 
 182 .sp
 183 .ne 2
 184 .na
 185 \fB\fBcpu\fR\fR
 186 .ad
 187 .RS 8n
 188 These modules provide \fBCPU\fR-specific kernel routines.
 189 .RE
 190 
 191 .sp
 192 .LP
 193 A description of each of the supported commands follows:
 194 .sp
 195 .ne 2
 196 .na
 197 \fB\fBexclude:\fR <\fInamespace\fR>/<\fImodulename\fR>\fR
 198 .ad
 199 .sp .6
 200 .RS 4n
 201 Do not allow the listed loadable kernel module to be loaded. \fBexclude\fR
 202 commands are cumulative; the list of modules to \fBexclude\fR is created by
 203 combining every \fBexclude\fR entry in the \fBsystem\fR file.
 204 .RE
 205 
 206 .sp
 207 .ne 2
 208 .na
 209 \fB\fBinclude:\fR <\fInamespace\fR>/<\fImodulename\fR>\fR
 210 .ad
 211 .sp .6
 212 .RS 4n
 213 Include the listed loadable kernel module. This is the system's default, so
 214 using \fBinclude\fR does not modify the system's operation. \fBinclude\fR
 215 commands are cumulative.
 216 .RE
 217 
 218 .sp
 219 .ne 2
 220 .na
 221 \fB\fBforceload:\fR <\fInamespace\fR>/<\fImodulename\fR>\fR
 222 .ad
 223 .sp .6
 224 .RS 4n
 225 Force this kernel module to be loaded during kernel initialization. The default
 226 action is to automatically load the kernel module when its services are first
 227 accessed. \fBforceload\fR commands are cumulative.
 228 .RE
 229 
 230 .sp
 231 .ne 2
 232 .na
 233 \fB\fBrootdev:\fR <\fIdevice name\fR>\fR
 234 .ad
 235 .sp .6
 236 .RS 4n
 237 Set the root device to the listed value instead of using the default root
 238 device as supplied by the boot program.
 239 .RE
 240 
 241 .sp
 242 .ne 2
 243 .na
 244 \fB\fBrootfs:\fR <\fIroot filesystem type\fR>\fR
 245 .ad
 246 .sp .6
 247 .RS 4n
 248 Set the root filesystem type to the listed value.
 249 .RE
 250 
 251 .sp
 252 .ne 2
 253 .na
 254 \fB\fBmoddir:\fR <\fIfirst module path\fR>[[{:, }<\fIsecond ...\fR>]...]\fR
 255 .ad
 256 .sp .6
 257 .RS 4n
 258 Set the search path for loadable kernel modules. This command operates very
 259 much like the \fBPATH\fR shell variable. Multiple directories to search can be
 260 listed together, delimited either by blank spaces or colons.
 261 .RE
 262 
 263 .sp
 264 .ne 2
 265 .na
 266 \fB\fBset\fR [\fI<module>\fR:]\fI<symbol>\fR {=, |, &} [~][-]\fI<value>\fR\fR
 267 .ad
 268 .sp .6
 269 .RS 4n
 270 Set an integer or character pointer in the kernel or in the selected kernel
 271 module to a new value. This command is used to change kernel and module
 272 parameters and thus modify the operation of your system. Assignment operations
 273 are not cumulative, whereas bitwise \fBAND\fR and \fBOR\fR operations are
 274 cumulative.
 275 .sp
 276 Operations that are supported for modifying integer variables are: simple
 277 assignment, inclusive bitwise \fBOR,\fR bitwise \fBAND,\fR one's complement,
 278 and negation. Variables in a specific loadable module can be targeted for
 279 modification by specifying the variable name prefixed with the kernel module
 280 name and a colon (:) separator. Values can be specified as hexadecimal (0x10),
 281 Octal (046), or Decimal (5).
 282 .sp
 283 The only operation supported for modifying character pointers is simple
 284 assignment. Static string data such as character arrays cannot be modified
 285 using the \fBset\fR command. Use care and ensure that the variable you are
 286 modifying is in fact a character pointer. The \fBset\fR command is very
 287 powerful, and will likely cause problems if used carelessly. The following
 288 escape sequences are supported within the quoted string:
 289 .sp
 290 .in +2
 291 .nf
 292 \en     (newline)
 293 \et     (tab)
 294 \eb     (backspace)
 295 .fi
 296 .in -2
 297 .sp
 298 
 299 .RE
 300 
 301 .SH EXAMPLES
 302 .LP
 303 \fBExample 1 \fRA sample \fBsystem\fR file.
 304 .sp
 305 .LP
 306 The following is a sample \fBsystem\fR file.
 307 
 308 .sp
 309 .in +2
 310 .nf
 311 * Force the ELF exec kernel module to be loaded during kernel
 312 * initialization. Execution type modules are in the exec namespace.
 313 forceload: exec/elfexec
 314 * Change the root device to /sbus@1,f8000000/esp@0,800000/sd@3,0:a.
 315 * You can derive root device names from /devices.
 316 * Root device names must be the fully expanded Open Boot Prom
 317 * device name. This command is platform and configuration specific.
 318 * This example uses the first partition (a) of the SCSI disk at
 319 * SCSI target 3 on the esp host adapter in slot 0 (on board)
 320 * of the SBus of the machine.
 321 * Adapter unit-address 3,0 at sbus unit-address 0,800000.
 322 rootdev: /sbus@1,f8000000/esp@0,800000/sd@3,0:a
 323 * Set the filesystem type of the root to ufs. Note that
 324 * the equal sign can be used instead of the colon.
 325 rootfs:ufs
 326 * Set the search path for kernel modules to look first in
 327 * /usr/phil/mod_test for modules, then in /kernel/modules (the
 328 * default) if not found. Useful for testing new modules.
 329 * Note that you can delimit your module pathnames using
 330 * colons instead of spaces: moddir:/newmodules:/kernel/modules
 331 moddir:/usr/phil/mod_test /kernel/modules.
 332 * Set the configuration option {_POSIX_CHOWN_RESTRICTED} :
 333 * This configuration option is enabled by default.
 334 set rstchown = 1
 335 * Disable the configuration option {_POSIX_CHOWN_RESTRICTED} :
 336 set rstchown = 0
 337 * Turn on debugging messages in the modules mydriver. This is useful
 338 * during driver development.
 339 set mydriver:debug = 1
 340 * Bitwise AND the kernel variable "moddebug" with the
 341 * one's complement of the hex value 0x880, and set
 342 * "moddebug" to this new value.
 343 set moddebug & ~0x880
 344 * Demonstrate the cumulative effect of the SET
 345 * bitwise AND/OR operations by further modifying "moddebug"
 346 * by ORing it with 0x40.
 347 set moddebug | 0x40
 348 .fi
 349 .in -2
 350 .sp
 351 
 352 .SH SEE ALSO
 353 .LP
 354 \fBboot\fR(1M), \fBinit\fR(1M), \fBkernel\fR(1M)
 355 .SH WARNINGS
 356 .LP
 357 Use care when modifying the \fBsystem\fR file; it modifies the operation of the
 358 kernel. If you preserved the original \fBsystem\fR file, you can boot using
 359 \fBboot -a\fR, which will ask you to specify the path to the saved file. This
 360 should allow the system to boot correctly. If you cannot locate a \fBsystem\fR
 361 file that will work, you may specify \fB/dev/null\fR. This acts as an empty
 362 \fBsystem\fR file, and the system will attempt to boot using its default
 363 settings.
 364 .SH NOTES
 365 .LP
 366 The \fBsystem\fR files are read only once, at boot time.