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