diff options
Diffstat (limited to 'static/netbsd/man4/options.4')
| -rw-r--r-- | static/netbsd/man4/options.4 | 2774 |
1 files changed, 2774 insertions, 0 deletions
diff --git a/static/netbsd/man4/options.4 b/static/netbsd/man4/options.4 new file mode 100644 index 00000000..75d01cb2 --- /dev/null +++ b/static/netbsd/man4/options.4 @@ -0,0 +1,2774 @@ +.\" $NetBSD: options.4,v 1.532 2025/12/12 07:05:52 andvar Exp $ +.\" +.\" Copyright (c) 1996 +.\" Perry E. Metzger. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgment: +.\" This product includes software developed for the NetBSD Project +.\" by Perry E. Metzger. +.\" 4. The name of the author may not be used to endorse or promote products +.\" derived from this software without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" +.Dd December 12, 2025 +.Dt OPTIONS 4 +.Os +.Sh NAME +.Nm options +.Nd Miscellaneous kernel configuration options +.Sh SYNOPSIS +.Cd cinclude ... +.Cd config ... +.Cd [no] file-system ... +.Cd ident ... +.Cd include ... +.Cd [no] makeoptions ... +.Cd maxusers ... +.Cd [no] options ... +.Cd [no] pseudo-device ... +.Sh DESCRIPTION +This manual page describes a number of miscellaneous kernel +configuration options that may be specified in a kernel config +file. +See +.Xr config 1 +and +.Xr config 5 +for information on how to configure and build kernels. +.Pp +The +.Ar no +form removes a previously specified option. +.Ss Keywords +The following keywords are recognized in a kernel configuration file: +.Bl -ohang +.It Sy cinclude Qq Ar filename +Conditionally includes another kernel configuration file whose name is +.Ar filename , +which may be double-quoted and may be an explicit path or relative to +the kernel source directory. +Failure to open the named file is ignored. +.It Sy config Ar exec_name No root on Ar rootdev Oo type Ar fstype Oc \ +Oo dumps on Ar dumpdev Oc +Defines a configuration whose kernel executable is named +.Ar exec_name , +normally +.Dq netbsd , +with its root file system of type +.Ar fstype +on the device +.Ar rootdev , +and optionally specifying the location of kernel core dumps on the device +.Ar dumpdev . +.Ar dev +or +.Ar dumpdev +and +.Ar fstype +may be specified as +.Dq \&? , +which is a wild card. +The root +.Ar fstype +and +.Ar dumpdev +are optional and assumed to be wild carded if they are not specified. +.It Ar device_instance No at Ar attachment \ +Oo Ar locators value Oo ... Oc Oc Oo flags Ar value Oc +Define an instance of the device driver +.Ar device_instance +that attaches to the bus or device named +.Ar attachment . +An +.Ar attachment +may require additional information on where the device can be found, such +as an address, channel, function, offset, and/or slot, referred to as +.Ar locators , +whose +.Ar value +often may be a wild card, +.Dq \&? . +Some device drivers have one or more +.Ar flags +that can be adjusted to affect the way they operate. +.It Sy file-system Ar fs_name Op , Ar fs_name Op ... +Include support for the file-system +.Ar fs_name . +.It Sy ident Qq Ar string +Sets the kernel identification string to +.Ar string . +.It Sy include Qq Ar filename +Functions the same as +.Ar cinclude , +except failure to open +.Ar filename +produces a fatal error. +.It Sy makeoptions Ar name=value +Defines a +.Xr make 1 +macro +.Ar name +with the value +.Ar value +in the kernel Makefile. +.It Sy maxusers Ar integer +Set the maxusers variable in the kernel. +.It Sy no Ar keyword Ar name Op Ar arguments Op ... +For the +.Xr config 1 +.Ar keywords +file-system, makeoptions, options, and pseudo-device, +.Ar no +removes the file-system, makeoption, options, or pseudo-device, +.Ar name . +This is useful when a kernel configuration file includes another which +has undesired options. +.Pp +For example, a local configuration file that wanted the kitchen sink, but +not COMPAT_09 or bridging, might be: +.Bd -literal -offset indent +include "arch/i386/conf/GENERIC" +no options COMPAT_09 +no pseudo-device bridge +.Ed +.It Sy options Ar option_name Op , Ar option_name=value Op ... +Specifies (or sets) the option, or comma-separated list of options, +.Ar option_name . +Some options expect to be assigned a value, which may be an integer, +a double-quoted word, a bare word, or an empty string +.Pq Qq . +Note that those are eventually handled by the C compiler, so the rules +of that language apply. +.Pp +.Em Note : +Options that are not defined by device definition files are passed to +the compile process as +.Fl D +flags to the C compiler. +.It Sy pseudo-device Ar name Op Ar N +Includes support for the pseudo-device +.Ar name . +Some pseudo-devices can have multiple or +.Ar N +instances. +.El +.Ss Compatibility Options +Note that compatibility options for older +.Nx +releases includes support for newer releases as well. +This means that typically only one of these is necessary, with the +.Cd COMPAT_09 +option enabling all +.Nx +compatibility. +This does not include the +.Cd COMPAT_43 +or +.Cd COMPAT_44 +options. +.Bl -ohang +.It Cd options COMPAT_09 +Enable binary compatibility with +.Nx 0.9 . +This enables support for +16-bit user, group, and process IDs (following revisions support +32-bit identifiers). +It also allows the use of the deprecated +.Xr getdomainname 3 , +.Xr setdomainname 3 , +and +.Xr uname 3 +syscalls. +This option also allows using numeric file system identifiers rather +than strings. +Post +.Nx 0.9 +versions use string identifiers. +.It Cd options COMPAT_10 +Enable binary compatibility with +.Nx 1.0 . +This option allows the use of the file system name of +.Dq ufs +as an alias for +.Dq ffs . +The name +.Dq ffs +should be used post 1.0 in +.Pa /etc/fstab +and other files. +It also adds old syscalls for the +.At V +shared memory interface. +This was changed post 1.0 to work on 64-bit architectures. +This option also enables +.Dq sgtty +compatibility, without which programs using the old interface produce +an +.Dq inappropriate ioctl +error, and +.Pa /dev/io +only works when this option is set in the kernel, +see +.Xr io 4 +on ports that support it. +.It Cd options COMPAT_11 +Enable binary compatibility with +.Nx 1.1 . +This allows binaries running on the i386 port to gain direct access to +the io ports by opening +.Pa /dev/io +read/write. +This functionality was replaced by +.Xr i386_iopl 2 +post 1.1. +On the Atari port, the location of the disk label was moved after 1.1. +When the +.Em COMPAT_11 +option is set, the kernel will read (pre) 1.1 style disk labels as a +last resort. +When a disk label is re-written, the old style label will be replaced +with a post 1.1 style label. +This also enables the +.Em EXEC_ELF_NOTELESS +option. +.It Cd options COMPAT_12 +Enable binary compatibility with +.Nx 1.2 . +This allows the use of old syscalls for +.Fn reboot +and +.Fn swapon . +The syscall numbers were changed post 1.2 to add functionality to the +.Xr reboot 2 +syscall, and the new +.Xr swapctl 2 +interface was introduced. +This also enables the +.Em EXEC_ELF_NOTELESS +option. +.It Cd options COMPAT_13 +Enable binary compatibility with +.Nx 1.3 . +This allows the use of old syscalls for +.Fn sigaltstack , +and also enables the old +.Xr swapctl 2 +command +.Dv SWAP_STATS +(now called +.Dv SWAP_OSTATS ) , +which does not include the +.Fa se_path +member of +.Va struct swapent . +.It Cd options COMPAT_14 +Enable binary compatibility with +.Nx 1.4 . +This allows some old +.Xr ioctl 2 +on +.Xr wscons 4 +to be performed, and allows the +.Dv NFSSVC_BIOD +mode of the +.Xr nfssvc 2 +system call to be used for compatibility with the deprecated nfsiod program. +.It Cd options COMPAT_15 +Enable binary compatibility with +.Nx 1.5 . +Since there were no API changes from +.Nx 1.5 +and +.Nx 1.6 , +this option does nothing. +.It Cd options COMPAT_16 +Enable binary compatibility with +.Nx 1.6 . +This allows the use of old signal trampoline code which has been deprecated +with the addition of +.Xr siginfo 2 . +.It Cd options COMPAT_20 +Enable binary compatibility with +.Nx 2.0 . +This allows the use of old syscalls for +.Fn statfs , +.Fn fstatfs , +.Fn getfsstat +and +.Fn fhstatfs , +which have been deprecated with the addition of the +.Xr statvfs 2 , +.Xr fstatvfs 2 , +.Xr getvfsstat 2 +and +.Xr fhstatvfs 2 +system calls. +.It Cd options COMPAT_30 +Enable binary compatibility with +.Nx 3.0 . +See +.Xr compat_30 8 +for details about the changes made after the +.Nx 3.0 +release. +.It Cd options COMPAT_40 +Enable binary compatibility with +.Nx 4.0 . +This allows the use of old +.Xr ptrace 2 +calls for the SH3 platform. +It also enables the old +.Xr mount 2 +system call that did not include the data length parameter. +The power_event_t structure's pev_switch is filled in. +.It Cd options COMPAT_43 +Enables compatibility with +.Bx 4.3 . +This adds an old syscall for +.Xr lseek 2 . +It also adds the ioctls for +.Dv TIOCGETP +and +.Dv TIOCSETP . +The return values for +.Xr getpid 2 , +.Xr getgid 2 , +and +.Xr getuid 2 +syscalls are modified as well, to return the parent's PID and +UID as well as the current process's. +It also enables the deprecated +.Dv NTTYDISC +terminal line discipline. +It also provides backwards compatibility with +.Dq old +SIOC[GS]IF{ADDR,DSTADDR,BRDADDR,NETMASK} interface ioctls, including +binary compatibility with code written before the introduction of the +sa_len field in sockaddrs. +It also enables +support for some older pre +.Bx 4.4 +socket calls. +.It Cd options COMPAT_50 +Enable binary compatibility with +.Nx 5.0 . +This enables support for the old +.Ft time_t +and +.Ft dev_t +types as 32 bit, and all the associated kernel interface changes. +It also enables old +.Xr gpio 4 +and +.Xr rnd 4 +interfaces. +.It Cd options COMPAT_60 +Enable binary compatibility with +.Nx 6.0 . +This provides old +.Xr ccd 4 +interfaces, enables support for old +.Xr cpuctl 8 +microcode interfaces, and support for the old +.Ft ptmget +structure. +.It Cd options COMPAT_70 +Enable binary compatibility with +.Nx 7.0 . +This provides support for old +.Xr route 4 +interfaces. +.It Cd options COMPAT_80 +Enable binary compatibility with +.Nx 8.0 . +.It Cd options COMPAT_90 +Enable binary compatibility with +.Nx 9.0 . +.It Cd options COMPAT_BSDPTY +This option is currently on by default and enables the pty multiplexer +.Xr ptm 4 +and +.Xr ptmx 4 +to find and use ptys named +.Pa /dev/ptyXX +(master) and +.Pa /dev/ttyXX +(slave). +Eventually this option will become optional as ptyfs based pseudo-ttys become +the default, see +.Xr mount_ptyfs 8 . +.It Cd options COMPAT_LINUX +On those architectures that support it, this enables binary +compatibility with Linux ELF and +.Xr a.out 5 +applications built for the same architecture. +This currently includes the alpha, arm, i386, m68k, mips, powerpc and +x86_64 ports. +.It Cd options COMPAT_LINUX32 +On those 64 bit architectures that support it, this enables binary +compatibility with 32 bit Linux binaries. +For now this is limited to running i386 ELF Linux binaries on amd64. +.It Cd options COMPAT_SUNOS +On those architectures that support it, this enables binary +compatibility with SunOS 4.1 applications built for the same architecture. +This currently includes the sparc, sparc64 and most or all m68k ports. +Note that the sparc64 requires the +.Em COMPAT_NETBSD32 +option for 64-bit kernels, in addition to this option. +.It Cd options COMPAT_ULTRIX +On those architectures that support it, this enables binary +compatibility with ULTRIX applications built for the same architecture. +This currently is limited to the pmax. +The functionality of this option is unknown. +.It Cd options COMPAT_FREEBSD +On those architectures that support it, this enables binary +compatibility with +.Fx +applications built for the same architecture. +At the moment this is limited to the i386 port. +.It Cd options COMPAT_NOMID +Enable compatibility with +.Xr a.out 5 +executables that lack a machine ID. +This includes +.Nx 0.8 Ns 's +ZMAGIC format, and 386BSD and BSDI's +QMAGIC, NMAGIC, and OMAGIC +.Xr a.out 5 +formats. +.It Cd options COMPAT_NETBSD32 +On those architectures that support it, this enables binary +compatibility with 32-bit applications built for the same architecture. +This is currently limited to the amd64 and sparc64 ports, and only +applicable for 64-bit kernels. +.It Cd options COMPAT_AOUT_M68K +On m68k architectures which have switched to ELF, +this enables binary compatibility with +.Nx Ns /m68k +.Xr a.out 5 +executables on +.Nx Ns /m68k +ELF kernels. +This handles alignment incompatibility of m68k ABI between +a.out and ELF which causes the structure padding differences. +Currently only some system calls which use +.Va struct stat +are adjusted and some binaries which use +.Xr sysctl 3 +to retrieve network details would not work properly. +.It Cd options EMUL_NATIVEROOT=string +Just like emulated binaries first try looking up files in +an emulation root (e.g. +.Pa /emul/linux ) +before looking them up in real root, this option causes native +binaries to first look up files in an "emulation" directory too. +This can be useful to test an amd64 kernel on top of an i386 system +before full migration: by unpacking the amd64 distribution in e.g. +.Pa /emul/netbsd64 +and specifying that location as +.Cd EMUL_NATIVEROOT , +native amd64 binaries can be run while the root file system remains +populated with i386 binaries. +Beware of +.Pa /dev +incompatibilities between i386 and amd64 if you do this. +.It Cd options EXEC_ELF_NOTELESS +Run unidentified ELF binaries as +.Nx +binaries. +This might be needed for very old +.Nx +ELF binaries on some archs. +These old binaries didn't contain an appropriate +.Li .note.netbsd.ident +section, and thus can't be identified by the kernel as +.Nx +binaries otherwise. +Beware - if this option is on, the kernel would run +.Em any +unknown ELF binaries as if they were +.Nx +binaries. +.El +.Ss Debugging Options +.Bl -ohang +.It Cd options DDB +Compiles in a kernel debugger for diagnosing kernel problems. +See +.Xr ddb 4 +for details. +.Em NOTE : +not available on all architectures. +.It Cd options DDB_FROMCONSOLE=integer +If set to non-zero, DDB may be entered by sending a break on a serial +console or by a special key sequence on a graphics console. +A value of "0" ignores console breaks or key sequences. +If not explicitly specified, the default value is "1". +Note that this sets the value of the +.Em ddb.fromconsole +.Xr sysctl 3 +variable which may be changed at run time \(em see +.Xr sysctl 8 +for details. +.It Cd options DDB_HISTORY_SIZE=integer +If this is non-zero, enable history editing in the kernel debugger +and set the size of the history to this value. +.It Cd options DDB_ONPANIC +The default if not specified is +.Dq 1 +- just enter into DDB. +If set to +.Dq 0 +the kernel will attempt to print out a stack trace +and reboot the system. +If set to +.Dq -1 +then neither a stack trace is printed or DDB entered - +it is as if DDB were not compiled into the kernel. +Note that this sets the value of the +.Em ddb.onpanic +.Xr sysctl 3 +variable which may be changed at run time \(em see +.Xr sysctl 8 +for details. +.It Cd options DDB_COMMANDONENTER=string +This option specify commands which will be executed on each entry to DDB. +This sets the default value of the +.Em ddb.commandonenter +.Xr sysctl 3 +variable which may be changed at run time. +.It Cd options DDB_BREAK_CHAR=integer +This option overrides using break to enter the kernel debugger +on the serial console. +The value given is the ASCII value to be used instead. +This is currently only supported by the com driver. +.It Cd options CNMAGIC=string +This option overrides the +.Xr cnmagic 9 +string used to enter the kernel debugger. +.It Cd options DDB_VERBOSE_HELP +This option adds more verbose descriptions to the +.Em help +command. +.It Cd options DDB_PANICSTACKFRAMES=integer +Number of stack frames to display on panic. +Useful to avoid scrolling away the interesting frames on a glass tty. +Default value is +.Dv 65535 +(all frames), useful value around +.Dv 10 . +.It Cd options KGDB +Compiles in a remote kernel debugger stub for diagnosing kernel problems +using the +.Dq remote target +feature of gdb. +See +.Xr gdb 1 +for details. +.Em NOTE : +not available on all architectures. +.It Cd options KGDB_DEV +Device number +.Po +as a +.Dv dev_t +.Pc +of kgdb device. +.It Cd options KGDB_DEVADDR +Memory address of kgdb device. +.It Cd options KGDB_DEVMODE +Permissions of kgdb device. +.It Cd options KGDB_DEVNAME +Device name of kgdb device. +.It Cd options KGDB_DEVRATE +Baud rate of kgdb device. +.It Cd makeoptions DEBUG="-g" +The +.Fl g +flag causes +.Pa netbsd.gdb +to be built in addition to +.Pa netbsd . +.Pa netbsd.gdb +is useful for debugging kernel crash dumps with gdb. +See +.Xr gdb 1 +for details. +.It Cd options DEBUG +Turns on miscellaneous kernel debugging. +Since options are turned into preprocessor defines (see above), +.Em options DEBUG +is equivalent to doing a +.Em #define DEBUG +throughout the kernel. +Much of the kernel has +.Em #ifdef DEBUG +conditionalized debugging code. +Note that many parts of the kernel (typically device drivers) include their own +.Em #ifdef XXX_DEBUG +conditionals instead. +This option also turns on certain other options, +which may decrease system performance. +Systems with this option are not suitable for regular use, and are +intended only for debugging or looking for bugs. +.It Cd options DIAGNOSTIC +Adds code to the kernel that does internal consistency checks. +This code will cause the kernel to panic if corruption of internal data +structures is detected. +Historically, the performance degradation is sufficiently small that +it is reasonable for systems with +.Em options DIAGNOSTIC +to be in production use, with the real consideration not being +performance but instead a preference for more panics versus continued +operation with undetected problems. +.It Cd options LOCKDEBUG +Adds code to the kernel to detect incorrect use of locking primitives +(mutex, rwlock). +This code will cause the kernel to check for dead lock conditions. +It will also check for memory being freed to not contain initialised +lock primitives. +Functions for use in +.Xr ddb 4 +to check lock chains etc. are also enabled. +These checks are very expensive and can decrease performance on +multi-processor machines by a factor of three. +.It Cd options KDTRACE_HOOKS +Adds hooks for the DTrace tracing facility, which allows users to +analyze many aspects of system and application behavior. +See +.Xr dtrace 1 +for details. +.It Cd options KSTACK_CHECK_MAGIC +Check kernel stack usage and panic if stack overflow is detected. +This check is performance sensitive because it scans stack on each context +switch. +.It Cd options KTRACE +Add hooks for the system call tracing facility, which allows users to +watch the system call invocation behavior of processes. +See +.Xr ktrace 1 +for details. +.It Cd options MSGBUFSIZE=integer +This option sets the size of the kernel message buffer in bytes. +This buffer holds the kernel output of +.Fn printf +when not (yet) read by +.Xr syslogd 8 . +This is particularly useful when the system has crashed and you wish to lookup +the kernel output from just before the crash. +Also, since the autoconfig output becomes more and more verbose, +it sometimes happens that the message buffer overflows before +.Xr syslogd 8 +was able to read it. +Note that not all systems are capable of obtaining a variable sized message +buffer. +There are also some systems on which memory contents are not preserved +across reboots. +.It Cd options KERNHIST +Enables the kernel history logs, which create in-memory traces of +various kernel activities. +These logs can be displayed by using +.Cm show kernhist +from DDB. +See the kernel source file +.Pa sys/kern/kern_history.c +and the +.Xr kernhist 9 +manual for details. +.It Cd options KERNHIST_PRINT +Prints the kernel history logs on the system console as entries are added. +Note that the output is +.Em extremely +voluminous, so this option is really only useful for debugging +the very earliest parts of kernel initialization. +.It Cd options UVMHIST +Like +.Em KERNHIST , +it enables the UVM history logs. +These logs can be displayed by using +.Cm show kernhist +from DDB. +See the kernel source file +.Pa sys/uvm/uvm_stat.c +for details. +.It Cd options UVMHIST_PRINT +Like +.Em UVMHIST , +it prints the UVM history logs on the system console as entries are added. +Note that the output is +.Em extremely +voluminous, so this option is really only useful for debugging +the very earliest parts of kernel initialization. +.It Cd options UVMHIST_MAPHIST_SIZE +Set the size of the +.Dq maphist +kernel history. +The default is 100. +This option depends upon the +.Em UVMHIST +option. +.It Cd options UVMHIST_PDHIST_SIZE +Set the size of the +.Dq pdhist +kernel history. +The default is 100. +This option depends upon the +.Em UVMHIST +option. +.It Cd options BIOHIST +Like +.Em KERNHIST , +it enables the BIO history logs. +These logs can be displayed by using +.Cm show kernhist +from DDB, and can help in debugging problems with Buffered I/O operations. +See the kernel source file +.Pa sys/kern/vfs_vio.c +for details. +.It Cd options BIOHIST_PRINT +Like +.Em BIOHIST , +it prints the BIO history logs on the system console as entries are added. +Note that the output is +.Em extremely +voluminous, so this option is really only useful for debugging +the very earliest parts of kernel initialization. +.It Cd options BIOHIST_SIZE +Set the size of the +.Dq biohist +kernel history. +The default is 500. +This option depends upon the +.Em BIOHIST +option. +.El +.Ss File Systems +.Bl -ohang +.It Cd file-system FFS +Includes code implementing the Berkeley Fast File System +.Po Em FFS Pc . +Most machines need this if they are not running diskless. +.It Cd file-system EXT2FS +Includes code implementing the Second Extended File System +.Po Em ext2 Pc , +revision 0 and revision 1 with the +.Em filetype , +.Em sparse_super +and +.Em large_file +options. +This is the most commonly used file system on the Linux operating system, +and is provided here for compatibility. +Some of the specific features of +.Em ext2 +like the "behavior on errors" are not implemented. +See +.Xr mount_ext2fs 8 +for details. +.It Cd file-system LFS +.Bq Em EXPERIMENTAL +Include the Log-structured File System +.Po Em LFS Pc . +See +.Xr mount_lfs 8 +and +.Xr newfs_lfs 8 +for details. +.It Cd file-system MFS +Include the Memory File System +.Po Em MFS Pc . +This file system stores files in swappable memory, and produces +notable performance improvements when it is used as the file store +for +.Pa /tmp +and similar file systems. +See +.Xr mount_mfs 8 +for details. +.It Cd file-system NFS +Include the client side of the Network File System (NFS) +remote file sharing protocol. +Although the bulk of the code implementing NFS +is kernel based, several user level daemons are needed for it to work. +See +.Xr mount_nfs 8 +for details. +.It Cd file-system CD9660 +Includes code for the ISO 9660 + Rock Ridge file system, which is +the standard file system on many CD-ROM discs. +Useful primarily if you have a CD-ROM drive. +See +.Xr mount_cd9660 8 +for details. +.It Cd file-system MSDOSFS +Includes the MS-DOS FAT file system, which is reportedly still used +by unfortunate people who have not heard about +.Nx . +Also implements the Windows 95 extensions to the same, which permit +the use of longer, mixed case file names. +See +.Xr mount_msdos 8 +and +.Xr fsck_msdos 8 +for details. +.It Cd file-system NTFS +.Bq Em EXPERIMENTAL +Includes code for the Microsoft Windows NT file system. +See +.Xr mount_ntfs 8 +for details. +.It Cd file-system FDESC +Includes code for a file system, conventionally mounted on +.Pa /dev/fd , +which permits access to the per-process file descriptor space via +special files in the file system. +See +.Xr mount_fdesc 8 +for details. +Note that this facility is redundant, and thus unneeded on most +.Nx +systems, since the +.Xr fd 4 +pseudo-device driver already provides identical functionality. +On most +.Nx +systems, instances of +.Xr fd 4 +are mknoded under +.Pa /dev/fd/ +and on +.Pa /dev/stdin , +.Pa /dev/stdout , +and +.Pa /dev/stderr . +.It Cd file-system KERNFS +Includes code which permits the mounting of a special file system +(normally mounted on +.Pa /kern ) +in which files representing various kernel variables and parameters +may be found. +See +.Xr mount_kernfs 8 +for details. +.It Cd file-system NULLFS +Includes code for a loopback file system. +This permits portions of the file hierarchy to be re-mounted in other places. +The code really exists to provide an example of a stackable file system layer. +See +.Xr mount_null 8 +for details. +.It Cd file-system OVERLAY +Includes code for a file system filter. +This permits the overlay file system to intercept all access to an underlying +file system. +This file system is intended to serve as an example of a stacking file +system which has a need to interpose itself between an underlying file +system and all other access. +See +.Xr mount_overlay 8 +for details. +.It Cd file-system PROCFS +Includes code for a special file system (conventionally mounted on +.Pa /proc ) +in which the process space becomes visible in the file system. +Among +other things, the memory spaces of processes running on the system are +visible as files, and signals may be sent to processes by writing to +.Pa ctl +files in the procfs namespace. +See +.Xr mount_procfs 8 +for details. +.It Cd file-system UDF +Includes code for the UDF file system commonly found on CD and DVD media but +also on USB sticks and harddiscs for interchange and backup. Supports read and +write access for all formats on discs and on rewritable and recordable +CD/DVD/BD media. It has a somewhat limited write support for UDF 2.50 as it +can't expand the metadata partion. +See +.Xr mount_udf 8 +and +.Xr fsck_udf 8 +for details. +.It Cd file-system UMAPFS +Includes a loopback file system in which user and group IDs may be +remapped \(em this can be useful when mounting alien file systems with +different UIDs and GIDs than the local system. +See +.Xr mount_umap 8 +for details. +.It Cd file-system UNION +.Bq Em EXPERIMENTAL +Includes code for the union file system, which permits directories to +be mounted on top of each other in such a way that both file systems +remain visible \(em this permits tricks like allowing writing (and the +deleting of files) on a read-only file system like a CD-ROM by +mounting a local writable file system on top of the read-only file +system. +See +.Xr mount_union 8 +for details. +.It Cd file-system CODA +.Bq Em EXPERIMENTAL +Includes code for the Coda file system. +Coda is a distributed file system like NFS and AFS. +It is freely available, like NFS, but it functions much like AFS in being a +.Dq stateful +file system. +Both Coda and AFS cache files on your local machine to improve performance. +Then Coda goes a step further than AFS by letting you access the cached +files when there is no available network, viz. disconnected laptops and +network outages. +In Coda, both the client and server are outside the kernel which makes +them easier to experiment with. +Coda is available for several UNIX and non-UNIX platforms. +See +.Lk http://www.coda.cs.cmu.edu +for more details. +.Em NOTE : +You also need to enable the pseudo-device, vcoda, for the Coda +file system to work. +.It Cd file-system PTYFS +Includes code for a special file system (normally mounted on +.Pa /dev/pts ) +in which pseudo-terminal slave devices become visible in the file system. +See +.Xr mount_ptyfs 8 +for details. +.It Cd file-system TMPFS +Includes code for the efficient memory file system, normally used over +.Pa /tmp . +See +.Xr mount_tmpfs 8 +for details. +.It Cd file-system PUFFS +Includes kernel support for the pass-to-userspace framework file system. +It can be used to implement file system functionality in userspace. +See +.Xr puffs 3 +for more details. +This enables for example sshfs: +.Xr mount_psshfs 8 . +.El +.Ss File System Options +.Bl -ohang +.It Cd options DISKLABEL_EI +Enable +.Dq Endian-Independent +.Xr disklabel 5 +support. +This allows a system to recognize a disklabel written in the other byte order. +For writing, when a label already exists, its byte order is preserved. +Otherwise, a new label is written in the native byte order. +To specify the byte order explicitly, the +.Fl F +option of +.Xr disklabel 8 +should be used with the +.Fl B +option in order to avoid using +.Xr ioctl 2 , +which results in the default behavior explained above. +At the moment this option is restricted to the following ports: +amd64, bebox, emips, epoc32, evbarm, i386, ibmnws, landisk, mvmeppc, prep, +.\" riscv, +rs6000, sandpoint, +.\" usermode, +xen, and zaurus; +also to machines of the +evbmips and evbppc ports that support +Master Boot Record (MBR). +.It Cd options MAGICLINKS +Enables the expansion of special strings +.Po +beginning with +.Dq @ +.Pc +when traversing symbolic links. +See +.Xr symlink 7 +for a list of supported strings. +Note that this option only controls the enabling of this feature +by the kernel at boot-up. +This feature can still be manipulated with the +.Xr sysctl 8 +command regardless of the setting of this option. +.It Cd options NFSSERVER +Include the server side of the +.Em NFS +(Network File System) remote file sharing protocol. +Although the bulk of the code implementing +.Em NFS +is kernel based, several user level daemons are needed for it to +work. +See +.Xr mountd 8 +and +.Xr nfsd 8 +for details. +.It Cd options NVNODE=integer +This option sets the size of the cache used by the name-to-inode translation +routines, (a.k.a. the +.Fn namei +cache, though called by many other names in the kernel source). +By default, this cache has +.Dv ( NPROC + NTEXT + 100 ) +entries (NPROC set as 20 + 16 * MAXUSERS and NTEXT as 80 + NPROC / 8). +A reasonable way to derive a value of +.Dv NVNODE , +should you notice a large number of namei cache misses with a tool such as +.Xr systat 1 , +is to examine your system's current computed value with +.Xr sysctl 8 , +(which calls this parameter "kern.maxvnodes") and to increase this value +until either the namei cache hit rate improves or it is determined that +your system does not benefit substantially from an increase in the size of +the namei cache. +.It Cd options NAMECACHE_ENTER_REVERSE +Causes the namei cache to always enter a reverse mapping (vnode -> name) +as well as a normal one. +Normally, this is already done for directory vnodes, to speed up the getcwd +operation. +This option will cause longer hash chains in the reverse cache, and thus +slow down getcwd somewhat. +However, it does make vnode -> path translations possible in some cases. +For now, only useful if strict +.Pa /proc/#/maps +emulation for Linux binaries is required. +.El +.Ss Options for FFS/UFS File Systems +.Bl -ohang +.It Cd options APPLE_UFS +Enable support for UFS file systems created on Mac OS X. +.It Cd options FFS_EI +Enable +.Dq Endian-Independent +FFS support. +This allows a system to mount an FFS file system created for another +architecture, at a small performance cost for all FFS file systems. +See also +.Xr newfs 8 , +.Xr fsck_ffs 8 , +.Xr dumpfs 8 +for file system byte order status and manipulation. +.It Cd options FFS_NO_SNAPSHOT +Disable support for the creation of file system internal snapshot +of FFS file systems. +Maybe useful for install media kernels, small memory systems and +embedded systems which don't require the snapshot support. +.It Cd options QUOTA +Enables kernel support for traditional quotas in FFS. +Traditional quotas store the quota information in external files and +require +.Xr quotacheck 8 +and +.Xr quotaon 8 +at boot time. +Traditional quotas are limited to 32-bit sizes and are at this point +considered a legacy feature. +.It Cd options QUOTA2 +Enables kernel support for in-volume quotas in FFS. +The quota information is file system metadata maintained by +.Xr fsck 8 +and/or WAPBL journaling. +MFS volumes can also use +.Dv QUOTA2 +quotas; see +.Xr mount_mfs 8 +for more information. +.It Cd options UFS_DIRHASH +Increase lookup performance by maintaining in-core hash tables +for large directories. +.It Cd options UFS_EXTATTR +Enable extended attribute support for UFS1 file systems. +.It Cd options WAPBL +Enable +.Dq Write Ahead Physical Block Logging file system journaling . +This provides rapid file system consistency checking after a system outage. +It also provides better general use performance over regular FFS. +See also +.Xr wapbl 4 . +.El +.Ss Options for the LFS File System +.Bl -ohang +.\" .It Cd options LFS_KERNEL_RFW +.\" There is no documentation for this. (XXX) +.\" .It Cd options LFS_QUOTA +.\" Enable traditional quota support for LFS. +.\" (It is not clear if this works.) +.\" .It Cd options LFS_QUOTA2 +.\" Enable modernized 64-bit quota support for LFS. +.\" (This does not work yet.) +.It Cd options LFS_EI +Enable +.Dq Endian-Independent +LFS support. +This allows (at a small performance cost) mounting an LFS file system +created for another architecture. +.\" .It Cd options LFS_EXTATTR +.\" Enable extended attribute support for LFS. +.\" (It is not clear if this works.) +.It Cd options LFS_DIRHASH +Increase lookup performance by maintaining in-core hash tables +for large directories. +.El +.Ss Options for the NFS File System +.Bl -ohang +.It Cd options NFS_BOOT_BOOTP +Enable use of the BOOTP protocol (RFCs 951 and 1048) to get configuration +information if NFS is used to mount the root file system. +See +.Xr diskless 8 +for details. +.It Cd options NFS_BOOT_BOOTSTATIC +Enable use of static values defined as +.Dq NFS_BOOTSTATIC_MYIP , +.Dq NFS_BOOTSTATIC_GWIP , +.Dq NFS_BOOTSTATIC_SERVADDR , +and +.Dq NFS_BOOTSTATIC_SERVER +in kernel options to get configuration information +if NFS is used to mount the root file system. +.It Cd options NFS_BOOT_DHCP +Same as +.Dq NFS_BOOT_BOOTP , +but use the DHCP extensions to the +BOOTP protocol (RFC 1541). +.It Cd options NFS_BOOT_BOOTP_REQFILE +Specifies the string sent in the bp_file field of the BOOTP/DHCP +request packet. +.It Cd options NFS_BOOT_BOOTPARAM +Enable use of the BOOTPARAM protocol, consisting of RARP and +BOOTPARAM RPC, to get configuration information if NFS +is used to mount the root file system. +See +.Xr diskless 8 +for details. +.It Cd options NFS_BOOT_RWSIZE=value +Set the initial NFS read and write sizes for diskless-boot requests. +The normal default is 8Kbytes. +This option provides a way to lower the value (e.g., to 1024 bytes) +as a workaround for buggy network interface cards or boot PROMs. +Once booted, the read and write request sizes can be increased by +remounting the file system. +See +.Xr mount_nfs 8 +for details. +.It Cd options NFS_V2_ONLY +Reduce the size of the NFS client code by omitting code that's only required +for NFSv3 and NQNFS support, leaving only that code required to use NFSv2 +servers. +.It Cd options NFS_BOOT_UDP +Use NFS over UDP instead of the default TCP, for mounting root. +.El +.Ss Buffer queue strategy options +The following options enable alternative buffer queue strategies. +.Bl -ohang +.It Cd options BUFQ_READPRIO +Enable alternate buffer queue strategy for disk I/O. +In the default strategy, outstanding disk requests are ordered by +sector number and sent to the disk, regardless of whether the +operation is a read or write; this option gives priority to issuing +read requests over write requests. +Although requests may therefore be issued out of sector-order, causing +more seeks and thus lower overall throughput, interactive system +responsiveness under heavy disk I/O load may be improved, as processes +blocking on disk reads are serviced sooner (file writes typically +don't cause applications to block). +The performance effect varies greatly depending on the hardware, drive +firmware, file system configuration, workload, and desired performance +trade-off. +Systems using drive write-cache (most modern IDE disks, by default) +are unlikely to benefit and may well suffer; such disks acknowledge +writes very quickly, and optimize them internally according to +physical layout. +Giving these disks as many requests to work with as possible (the +standard strategy) will typically produce the best results, especially +if the drive has a large cache; the drive will silently complete +writes from cache as it seeks for reads. +Disks that support a large number of concurrent tagged requests (SCSI +disks and many hardware RAID controllers) expose this internal +scheduling with tagged responses, and don't block for reads; such +disks may not see a noticeable difference with either strategy. +However, if IDE disks are run with write-cache disabled for safety, +writes are not acknowledged until actually completed, and only one +request can be outstanding; a large number of small writes in one +locality can keep the disk busy, starving reads elsewhere on the disk. +Such systems are likely to see the most benefit from this option. +Finally, the performance interaction of this option with ffs soft +dependencies can be subtle, as that mechanism can drastically alter +the workload for file system metadata writes. +.It Cd options BUFQ_PRIOCSCAN +Enable another buffer queue strategy for disk I/O, per-priority cyclical scan. +.It Cd options NEW_BUFQ_STRATEGY +Synonym of +.Em BUFQ_READPRIO . +.El +.Ss Miscellaneous Options +.Bl -ohang +.It Cd options CPU_UCODE +Support cpu microcode loading via +.Xr cpuctl 8 . +.It Cd options MEMORY_DISK_DYNAMIC +This option makes the +.Xr md 4 +RAM disk size dynamically sized. +It is incompatible with +.Xr mdsetimage 8 . +.It Cd options MEMORY_DISK_HOOKS +This option allows for some machine dependent functions to be called when +the +.Xr md 4 +RAM disk driver is configured. +This can result in automatically loading a RAM disk from floppy on +open (among other things). +.It Cd options MEMORY_DISK_IS_ROOT +Forces the +.Xr md 4 +RAM disk to be the root device. +This can only be overridden when +the kernel is booted in the 'ask-for-root' mode. +.It Cd options MEMORY_DISK_ROOT_SIZE=integer +Allocates the given number of 512 byte blocks as memory for the +.Xr md 4 +RAM disk, to be populated with +.Xr mdsetimage 8 . +.It Cd options MEMORY_DISK_SERVER=0 +Do not include the interface to a userland memory disk server process. +Per default, this option is set to 1, including the support code. +Useful for install media kernels. +.It Cd options MEMORY_DISK_RBFLAGS=value +This option sets the +.Xr reboot 2 +flags used when booting with a memory disk as root file system. +Possible values include +.Dv RB_AUTOBOOT +(boot in the usual fashion - default value), and +.Dv RB_SINGLE +(boot in single-user mode). +.It Cd options MODULAR +Enables the framework for kernel modules (see +.Xr module 7 ) . +.It Cd options MODULAR_DEFAULT_AUTOLOAD +Enables the autoloading of kernel modules by default. +This sets the default value of the +.Em kern.module.autoload +.Xr sysctl 3 +variable which may be changed at run time. +.It Cd options MODULAR_DEFAULT_VERBOSE +Enables verbose debug messages of kernel modules by default. +This sets the default value of the +.Em kern.module.verbose +.Xr sysctl 3 +variable which may be changed at run time. +.It Cd options VND_COMPRESSION +Enables the +.Xr vnd 4 +driver to also handle compressed images. +See +.Xr vndcompress 1 , +.Xr vnd 4 +and +.Xr vnconfig 8 +for more information. +.It Cd options SELFRELOC +Make the kernel able to self relocate at bootstrap, so that it can +run whatever its load address is. +This is intented to be used with the +.Ic reloc +bootstrap command documented in +.Xr x86/boot 8 , +to workaround UEFI bugs, and is only available on amd64. +.It Cd options SPLDEBUG +Help the kernel programmer find bugs related to the interrupt priority +level. +When +.Fn spllower +or +.Fn splraise +changes the current CPU's interrupt priority level to or from +.Dv IPL_HIGH , +record a backtrace. +Read +.Xr i386/return_address 9 +for caveats about collecting backtraces. +This feature is experimental, and it is only available on i386. +See +.Pa sys/kern/subr_spldebug.c . +.It Cd options TFTPROOT +Download the root memory disk through TFTP at root mount time. +This enables the use of a root RAM disk without requiring it to be +embedded in the kernel using +.Xr mdsetimage 8 . +The RAM disk name is obtained using DHCP's filename parameter. +This option requires +.Em MEMORY_DISK_HOOKS +and +.Em MEMORY_DISK_DYNAMIC . +It is incompatible with +.Em MEMORY_DISK_ROOT_SIZE . +.It Cd options HEARTBEAT +Turns on heartbeat checks to panic if any CPU in the system or the +timecounter appears stuck. +.Pp +Each CPU will periodically check in hard interrupt context that the +timecounter has advanced and soft interrupts have run on the current +CPU, and each CPU will also be periodically checked for progress by +another CPU. +.Pp +If a CPU detects no progress has been made after +.Dv HEARTBEAT_MAX_PERIOD +seconds, +.Nx +will panic, giving the opportunity to enter ddb or get a crash dump +even if the system has become totally unresponsive to keyboard input. +.Pp +This is different from a hardware watchdog timer +.Pq Xr wdogctl 8 : +.Bl -bullet +.It +.Cd options HEARTBEAT +is purely a software mechanism, so if hard interrupts are stuck on all +CPUs, then +.Cd options HEARTBEAT +cannot trigger, but a hardware watchdog timer can. +.It +A hardware watchdog timer won't notice if a single CPU is stuck, or if +the system timecounter is stuck, as long as at least one CPU is not +stuck and able to run +.Xr wdogctl 8 +or the kernel watchdog tickle thread. +In contrast, +.Cd options HEARTBEAT +uses hard interrupts on each CPU to cross-check soft interrupt progress +on another CPU as well as the timecounter, so it can detect when a +single CPU is unable to make progress when others are able. +.El +.It Cd options HEARTBEAT_MAX_PERIOD_DEFAULT=integer +Time in seconds since the last +.Cd options HEARTBEAT +progress check has passed before it will trigger a panic. +Default: 15. +.Pp +Can be changed at runtime via the +.Li kern.heartbeat.max_period +.Xr sysctl 7 +knob. +.It Cd options HZ=integer +On ports that support it, set the system clock frequency (see +.Xr hz 9 ) +to the supplied value. +Handle with care. +.It Cd options NTP +Turns on in-kernel precision timekeeping support used by software +implementing +.Em NTP +(Network Time Protocol, RFC 1305). +The +.Em NTP +option adds an in-kernel Phase-Locked Loop (PLL) for normal +.Em NTP +operation, and a Frequency-Locked Loop (FLL) for intermittently-connected +operation. +.Xr ntpd 8 +will employ a user-level PLL when kernel support is unavailable, +but the in-kernel version has lower latency and more precision, and +so typically keeps much better time. +.Pp +The interface to the kernel +.Em NTP +support is provided by the +.Xr ntp_adjtime 2 +and +.Xr ntp_gettime 2 +system calls, which are intended for use by +.Xr ntpd 8 +and are enabled by the option. +On systems with sub-microsecond resolution timers, or where (HZ/100000) +is not an integer, the +.Em NTP +option also enables extended-precision arithmetic to keep track of +fractional clock ticks at NTP time-format precision. +.It Cd options PPS_SYNC +This option enables a kernel serial line discipline for receiving time +phase signals from an external reference clock such as a radio clock. +Some reference clocks generate a Pulse Per Second (PPS) signal in +phase with their time source. +The +.Em PPS +line discipline receives this signal on either the data leads +or the DCD control lead of a serial port. +.Pp +.Em NTP +uses the PPS signal to discipline the local clock oscillator to a high +degree of precision (typically less than 50 microseconds in time and +0.1 ppm in accuracy). +.Em PPS +can also generate a serial output pulse when the system receives a PPS +interrupt. +This can be used to measure the system interrupt latency and thus calibrate +.Em NTP +to account for it. +Using +.Em PPS +usually requires a gadget box +to convert from TTL to RS-232 signal levels. +The gadget box and PPS are described in more detail in the HTML documentation +for +.Xr ntpd 8 +in +.Pa /usr/share/doc/reference/ref8/ntp . +.Pp +.Nx +currently supports this option in +.Xr com 4 +and +.Xr zsc 4 . +.Pp +.Em NOTE : +Using this option will also enable +.Em options NTP . +.It Cd options SETUIDSCRIPTS +Allows scripts with the setuid bit set to execute as the effective +user rather than the real user, just like binary executables. +.Pp +.Em NOTE : +Using this option will also enable +.Em options FDSCRIPTS +.It Cd options FDSCRIPTS +Allows execution of scripts with the execute bit set, but not the +read bit, by opening the file and passing the file descriptor to +the shell, rather than the filename. +.Pp +.Em NOTE : +Execute only (non-readable) scripts will have +.Va argv[0] +set to +.Pa /dev/fd/* . +What this option allows as far as security is +concerned, is the ability to safely ensure that the correct script +is run by the interpreter, as it is passed as an already open file. +.It Cd options RTC_OFFSET=integer +The kernel (and typically the hardware battery backed-up clock on +those machines that have one) keeps time in +.Em UTC +(Universal Coordinated Time, once known as +.Em GMT , +or Greenwich Mean Time) +and not in the time of the local time zone. +The +.Em RTC_OFFSET +option is used on some ports (such as the i386) to tell the kernel +that the hardware clock is offset from +.Em UTC +by the specified number of minutes. +This is typically used when a machine boots several operating +systems and one of them wants the hardware clock to run in the +local time zone and not in +.Em UTC , +e.g. +.Em RTC_OFFSET=300 +means +the hardware clock is set to US Eastern Time (300 minutes behind +.Em UTC ) , +and not +.Em UTC . +(Note: +.Em RTC_OFFSET +is used to initialize a kernel variable named +.Va rtc_offset +which is the source actually used to determine the clock offset, and +which may be accessed via the kern.rtc_offset sysctl variable. +See +.Xr sysctl 8 +and +.Xr sysctl 3 +for details. +Since the kernel clock is initialized from the hardware clock very +early in the boot process, it is not possible to meaningfully change +.Va rtc_offset +in system initialization scripts. +Changing this value currently may only be done at kernel compile +time or by patching the kernel and rebooting). +.Pp +.Em NOTE : +Unfortunately, in many cases where the hardware clock +is kept in local time, it is adjusted for Daylight Savings +Time; this means that attempting to use +.Em RTC_OFFSET +to let +.Nx +coexist with such an operating system, like Windows, +would necessitate changing +.Em RTC_OFFSET +twice a year. +As such, this solution is imperfect. +.It Cd options MAXUPRC=integer +Sets the soft +.Dv RLIMIT_NPROC +resource limit, which specifies the maximum number of simultaneous +processes a user is permitted to run, for process 0; +this value is inherited by its child processes. +It defaults to +.Em CHILD_MAX , +which is currently defined to be 160. +Setting +.Em MAXUPRC +to a value less than +.Em CHILD_MAX +is not permitted, as this would result in a violation of the semantics of +.St -p1003.1-90 . +.It Cd options NOFILE=integer +Sets the soft +.Dv RLIMIT_NOFILE +resource limit, which specifies the maximum number of open +file descriptors for each process; +this value is inherited by its child processes. +It defaults to +.Em OPEN_MAX , +which is currently defined to be 128. +.It Cd options MAXFILES=integer +Sets the default value of the +.Em kern.maxfiles +sysctl variable, which indicates the maximum number of files that may +be open in the system. +.It Cd options DEFCORENAME=string +Sets the default value of the +.Em kern.defcorename +sysctl variable, otherwise it is set to +.Nm %n.core . +See +.Xr sysctl 8 +and +.Xr sysctl 3 +for details. +.It Cd options RASOPS_CLIPPING +Enables clipping within the +.Nm rasops +raster-console output system. +.Em NOTE : +only available on architectures that use +.Nm rasops +for console output. +.It Cd options RASOPS_SMALL +Removes optimized character writing code from the +.Nm rasops +raster-console output system. +.Em NOTE : +only available on architectures that use +.Nm rasops +for console output. +.It Cd options INCLUDE_CONFIG_FILE +Embeds the kernel config file used to define the kernel in the kernel +binary itself. +The embedded data also includes any files directly included by the config +file itself, e.g. +.Pa GENERIC.local +or +.Pa std.$MACHINE . +The embedded config file can be extracted from the resulting kernel with +.Xr config 1 +.Fl x , +or by the following command: +.Bd -literal -offset indent +strings netbsd | sed -n 's/^_CFG_//p' | unvis +.Ed +.It Cd options INCLUDE_JUST_CONFIG +Similar to the above option, but includes just the actual config file, +not any included files. +.It Cd options PIPE_SOCKETPAIR +Use slower, but smaller socketpair(2)-based pipe implementation instead +of default faster, but bigger one. +Primarily useful for installation kernels. +.It Cd options USERCONF +Compiles in the in-kernel device configuration manager. +See +.Xr userconf 4 +for details. +.It Cd options SCDEBUG_DEFAULT +Used with the +.Cd options SYSCALL_DEBUG +described below to choose which types of events are displayed. +.Pp +.Bl -tag -width "SCDEBUG_KERNHIST" -compact -offset indent +.It Dv SCDEBUG_CALLS +Show system call entry points. +.It Dv SCDEBUG_RETURNS +Show system call exit points. +.It Dv SCDEBUG_ALL +Show all system call requests, including unimplemented calls. +.It Dv SCDEBUG_SHOWARGS +Show the arguments provided. +.It Dv SCDEBUG_KERNHIST +Store a restricted form of the system call debug in a kernel history +instead of printing it to the console. +This option relies upon +.Cd options KERNHIST . +.El +.Pp +The default value is +.Dv (SCDEBUG_CALLS|SCDEBUG_RETURNS|SCDEBUG_SHOWARGS) . +.It Cd options SYSCALL_DEBUG +Useful for debugging system call issues, usually in early single user bringup. +By default, writes entries to the system console for most system call events. +Can be configured with the +.Cd options SCDEBUG_DEFAULT +option to to use the +.Cd options KERNHIST +facility instead. +.It Cd options SYSCALL_STATS +Count the number of times each system call number is called. +The values can be read through the sysctl interface and displayed using +.Xr systat 1 . +.Em NOTE : +not yet available on all architectures. +.It Cd options SYSCALL_TIMES +Count the time spent (using +.Fn cpu_counter32 ) +in each system call. +.Em NOTE : +Using this option will also enable +.Cd options SYSCALL_STATS . +.It Cd options SYSCALL_TIMES_HASCOUNTER +Force use of +.Fn cpu_counter32 +even if +.Fn cpu_hascounter +reports false. +Useful for systems where the cycle counter doesn't run at a constant rate +(e.g. Soekris boxes). +.It Cd options XSERVER_DDB +A supplement to XSERVER that adds support for entering +.Xr ddb 4 +while in X11. +.It Cd options FILEASSOC +Support for +.Xr fileassoc 9 . +Required for +.Cd options PAX_SEGVGUARD +and +.Cd pseudo-device veriexec . +.It Cd options FILEASSOC_NHOOKS=integer +Number of storage slots per file for +.Xr fileassoc 9 . +Default is 4. +.El +.Ss Networking Options +.Bl -ohang +.It Cd options GATEWAY +Enables +.Em IPFORWARDING +and (on most ports) increases the size of +.Em NMBCLUSTERS . +In general, +.Em GATEWAY +is used to indicate that a system should act as a router, and +.Em IPFORWARDING +is not invoked directly. +(Note that +.Em GATEWAY +has no impact on protocols other than IP). +.Em GATEWAY +option also compiles IPv4 and IPv6 fast forwarding code into the kernel. +.It Cd options IPFORWARDING=value +If +.Em value +is 1 this enables IP routing behavior. +If +.Em value +is 0 (the default), it disables it. +The +.Em GATEWAY +option sets this to 1 automatically. +With this option enabled, the machine will forward IP datagrams destined +for other machines between its interfaces. +Note that even without this option, the kernel will +still forward some packets (such as source routed packets) \(em removing +.Em GATEWAY +and +.Em IPFORWARDING +is insufficient to stop all routing through a bastion host on a +firewall \(em source routing is controlled independently. +Note that IP forwarding may be turned on and off independently of the +setting of the +.Em IPFORWARDING +option through the use of the +.Em net.inet.ip.forwarding +sysctl variable. +If +.Em net.inet.ip.forwarding +is 1, IP forwarding is on. +See +.Xr sysctl 8 +and +.Xr sysctl 3 +for details. +.It Cd options IFA_STATS +Tells the kernel to maintain per-address statistics on bytes sent +and received over (currently) Internet and AppleTalk addresses. +.\"This can be a fairly expensive operation, so you probably want to +.\"keep this disabled. +The option is not recommended as it degrades system stability. +.It Cd options IFQ_MAXLEN=value +Increases the allowed size of the network interface packet queues. +The default queue size is 50 packets, and you do not normally need +to increase it. +.It Cd options IPSELSRC +Includes support for source-address selection policies. +See +.Xr in_getifa 9 . +.It Cd options MROUTING +Includes support for IP multicast routers. +You certainly want +.Em INET +with this. +Multicast routing is controlled by the +.Xr mrouted 8 +daemon. +See also option +.Cd PIM . +.It Cd options PIM +Includes support for Protocol Independent Multicast (PIM) routing. +You need +.Em MROUTING +and +.Em INET +with this. +Software using this can be found e.g. in +.Pa pkgsrc/net/xorp . +.It Cd options INET +Includes support for the TCP/IP protocol stack. +You almost certainly want this. +See +.Xr inet 4 +for details. +.It Cd options INET6 +Includes support for the IPv6 protocol stack. +See +.Xr inet6 4 +for details. +Unlike +.Em INET , +.Em INET6 +enables multicast routing code as well. +This option requires +.Em INET +at this moment, but it should not. +.It Cd options ND6_DEBUG +The option sets the default value of net.inet6.icmp6.nd6_debug to 1, +for debugging IPv6 neighbor discovery protocol handling. +See +.Xr sysctl 3 +for details. +.It Cd options IPSEC +Includes support for the IPsec protocol, using the implementation derived from +.Ox , +relying on +.Xr opencrypto 9 +to carry out cryptographic operations. +See +.Xr ipsec 4 +for details. +.It Cd options IPSEC_DEBUG +Enables debugging code in IPsec stack. +See +.Xr ipsec 4 +for details. +The +.Cd IPSEC +option includes support for IPsec Network Address Translator traversal +(NAT-T), as described in RFCs 3947 and 3948. +This feature might be patent-encumbered in some countries. +.It Cd options ALTQ +Enabled ALTQ (Alternate Queueing). +For simple rate-limiting, use +.Xr tbrconfig 8 +to set up the interface transmission rate. +To use queueing disciplines, their appropriate kernel options should also +be defined (documented below). +Queueing disciplines are managed by +.Xr altqd 8 . +See +.Xr altq 9 +for details. +.It Cd options ALTQ_HFSC +Include support for ALTQ-implemented HFSC (Hierarchical Fair Service Curve) +module. +HFSC supports both link-sharing and guaranteed real-time services. +HFSC employs a service curve based QoS model, and its unique feature +is an ability to decouple delay and bandwidth allocation. +Requires +.Em ALTQ_RED +to use the RED queueing discipline on HFSC classes, or +.Em ALTQ_RIO +to use the RIO queueing discipline on HFSC classes. +This option assumes +.Em ALTQ . +.It Cd options ALTQ_PRIQ +Include support for ALTQ-implemented PRIQ (Priority Queueing). +PRIQ implements a simple priority-based queueing discipline. +A higher priority class is always served first. +Requires +.Em ALTQ_RED +to use the RED queueing discipline on HFSC classes, or +.Em ALTQ_RIO +to use the RIO queueing discipline on HFSC classes. +This option assumes +.Em ALTQ . +.It Cd options ALTQ_WFQ +Include support for ALTQ-implemented WFQ (Weighted Fair Queueing). +WFQ implements a weighted-round robin scheduler for a set of queues. +A weight can be assigned to each queue to give a different proportion +of the link capacity. +A hash function is used to map a flow to one of a set of queues. +This option assumes +.Em ALTQ . +.It Cd options ALTQ_FIFOQ +Include support for ALTQ-implemented FIFO queueing. +FIFOQ is a simple drop-tail FIFO (First In, First Out) queueing discipline. +This option assumes +.Em ALTQ . +.It Cd options ALTQ_RIO +Include support for ALTQ-implemented RIO (RED with In/Out). +The original RIO has 2 sets of RED parameters; one for in-profile +packets and the other for out-of-profile packets. +At the ingress of the network, profile meters tag packets as IN or +OUT based on contracted profiles for customers. +Inside the network, IN packets receive preferential treatment by +the RIO dropper. +ALTQ/RIO has 3 drop precedence levels defined for the Assured Forwarding +PHB of DiffServ (RFC 2597). +This option assumes +.Em ALTQ . +.It Cd options ALTQ_BLUE +Include support for ALTQ-implemented Blue buffer management. +Blue is another active buffer management mechanism. +This option assumes +.Em ALTQ . +.It Cd options ALTQ_FLOWVALVE +Include support for ALTQ-implemented Flowvalve. +Flowvalve is a simple implementation of a RED penalty box that identifies +and punishes misbehaving flows. +This option requires +.Em ALTQ_RED +and assumes +.Em ALTQ . +.It Cd options ALTQ_CDNR +Include support for ALTQ-implemented CDNR (diffserv traffic conditioner) +packet marking/manipulation. +Traffic conditioners are components to meter, mark, or drop incoming +packets according to some rules. +As opposed to queueing disciplines, traffic conditioners handle incoming +packets at an input interface. +This option assumes +.Em ALTQ . +.It Cd options ALTQ_NOPCC +Disables use of processor cycle counter to measure time in ALTQ. +This option should be defined for a non-Pentium i386 CPU which does not +have TSC, SMP (per-CPU counters are not in sync), or power management +which affects processor cycle counter. +This option assumes +.Em ALTQ . +.It Cd options ALTQ_IPSEC +Include support for IPsec in IPv4 ALTQ. +This option assumes +.Em ALTQ . +.It Cd options ALTQ_JOBS +Include support for ALTQ-implemented JoBS (Joint Buffer Management +and Scheduling). +This option assumes +.Em ALTQ . +.It Cd options ALTQ_AFMAP +Include support for an undocumented ALTQ feature that is used to map an IP +flow to an ATM VC (Virtual Circuit). +This option assumes +.Em ALTQ . +.It Cd options ALTQ_LOCALQ +Include support for ALTQ-implemented local queues. +Its practical use is undefined. +Assumes +.Em ALTQ . +.It Cd options SUBNETSARELOCAL +Sets default value for net.inet.ip.subnetsarelocal variable, which +controls whether non-directly-connected subnets of connected networks +are considered "local" for purposes of choosing the MSS for a TCP +connection. +This is mostly present for historic reasons and completely irrelevant if +you enable Path MTU discovery. +.It Cd options HOSTZEROBROADCAST +Sets default value for net.inet.ip.hostzerobroadcast variable, which +controls whether the zeroth host address of each connected subnet is +also considered a broadcast address. +Default value is "1", for compatibility with old systems; if this is +set to zero on all hosts on a subnet, you should be able to fit an extra +host per subnet on the +".0" address. +.It Cd options MCLSHIFT=value +This option is the base-2 logarithm of the size of mbuf clusters. +The +.Bx +networking stack keeps network packets in a linked +list, or chain, of kernel buffer objects called mbufs. +The system provides larger mbuf clusters as an optimization for +large packets, instead of using long chains for large packets. +The mbuf cluster size, +or +.Em MCLBYTES , +must be a power of two, and is computed as two raised to the power +.Em MCLSHIFT . +On systems with Ethernet network adapters, +.Em MCLSHIFT +is often set to 11, giving 2048-byte mbuf clusters, large enough to +hold a 1500-byte Ethernet frame in a single cluster. +Systems with network interfaces supporting larger frame sizes like +ATM, FDDI, or HIPPI may perform better with +.Em MCLSHIFT +set to 12 or 13, giving mbuf cluster sizes of 4096 and 8192 bytes, +respectively. +.It Cd options NETATALK +Include support for the AppleTalk protocol stack. +The kernel provides provision for the +.Em Datagram Delivery Protocol +(DDP), providing SOCK_DGRAM support and AppleTalk routing. +This stack is used by the +.Em NETATALK +package, which adds support for AppleTalk server services via user +libraries and applications. +.It Cd options BLUETOOTH +Include support for the Bluetooth protocol stack. +See +.Xr bluetooth 4 +for details. +.It Cd options IPNOPRIVPORTS +Normally, only root can bind a socket descriptor to a so-called +.Dq privileged +TCP port, that is, a port number in the range 0-1023. +This option eliminates those checks from the kernel. +This can be useful if there is a desire to allow daemons without +privileges to bind those ports, e.g., on firewalls. +The security tradeoffs in doing this are subtle. +This option should only be used by experts. +.It Cd options TCP_DEBUG +Record the last +.Em TCP_NDEBUG +TCP packets with SO_DEBUG set, and decode to the console if +.Em tcpconsdebug +is set. +.It Cd options TCP_NDEBUG +Number of packets to record for +.Em TCP_DEBUG . +Defaults to 100. +.It Cd options TCP_SENDSPACE=value +.It Cd options TCP_RECVSPACE=value +These options set the max TCP window size to other sizes than the default. +The TCP window sizes can be altered via +.Xr sysctl 8 +as well. +.It Cd options TCP_INIT_WIN=value +This option sets the initial TCP window size for non-local connections, +which is used when the transmission starts. +The default size is 1, but if the machine should act more aggressively, +the initial size can be set to some other value. +The initial TCP window size can be set via +.Xr sysctl 8 +as well. +.It Cd options TCP_SIGNATURE +Enable MD5 TCP signatures (RFC 2385) to protect BGP sessions. +.It Cd options IPFILTER_LOG +This option, in conjunction with +.Em pseudo-device ipfilter , +enables logging of IP packets using IP-Filter. +.It Cd options IPFILTER_LOOKUP +This option enables the +IP-Filter +.Xr ippool 8 +functionality to be enabled. +.It Cd options IPFILTER_COMPAT +This option enables older IP-Filter binaries to work. +.It Cd options IPFILTER_DEFAULT_BLOCK +This option sets the default policy of IP-Filter. +If it is set, IP-Filter will block packets by default. +.It Cd options MBUFTRACE +This option can help track down mbuf leaks. +When enabled, mbufs are tagged with the devices and protocols using them. +This can significantly decrease network performance, particularly +on MP systems. +This additional information can be viewed with +.Xr netstat 1 : +.Dl Ic netstat Fl mssv +Not all devices or protocols support this option. +.El +.Ss Sysctl Related Options +.Bl -ohang +.It Cd options SYSCTL_DISALLOW_CREATE +Disallows the creation or deletion of nodes from the sysctl tree, as +well as the assigning of descriptions to nodes that lack them, by any +process. +These operations are still available to kernel sub-systems, including +loadable kernel modules. +.It Cd options SYSCTL_DISALLOW_KWRITE +Prevents processes from adding nodes to the sysctl tree that make +existing kernel memory areas writable. +Sections of kernel memory can still be read and new nodes that own +their own data may still be writable. +.It Cd options SYSCTL_DEBUG_SETUP +Causes the SYSCTL_SETUP routines to print a brief message when they +are invoked. +This is merely meant as an aid in determining the order in which +sections of the tree are created. +.It Cd options SYSCTL_DEBUG_CREATE +Prints a message each time +.Fn sysctl_create , +the function that adds nodes to the tree, is called. +.It Cd options SYSCTL_INCLUDE_DESCR +Causes the kernel to include short, human readable descriptions for +nodes in the sysctl tree. +The descriptions can be retrieved programmatically (see +.Xr sysctl 3 ) , +or by the sysctl binary itself (see +.Xr sysctl 8 ) . +The descriptions are meant to give an indication of the purpose and/or +effects of a given node's value, not replace the documentation for the +given subsystem as a whole. +.El +.Ss System V IPC Options +.Bl -ohang +.It Cd options SYSVMSG +Includes support for +.At V +style message queues. +See +.Xr msgctl 2 , +.Xr msgget 2 , +.Xr msgrcv 2 , +.Xr msgsnd 2 . +.It Cd options SYSVSEM +Includes support for +.At V +style semaphores. +See +.Xr semctl 2 , +.Xr semget 2 , +.Xr semop 2 . +.It Cd options SEMMNI=value +Sets the number of +.At V +style semaphore identifiers. +The GENERIC config file for your port will have the default. +.It Cd options SEMMNS=value +Sets the number of +.At V +style semaphores in the system. +The GENERIC config file for your port will have the default. +.It Cd options SEMUME=value +Sets the maximum number of undo entries per process for +.At V +style semaphores. +The GENERIC config file for your port will have the default. +.It Cd options SEMMNU=value +Sets the number of undo structures in the system for +.At V +style semaphores. +The GENERIC config file for your port will have the default. +.It Cd options SYSVSHM +Includes support for +.At V +style shared memory. +See +.Xr shmat 2 , +.Xr shmctl 2 , +.Xr shmdt 2 , +.Xr shmget 2 . +.It Cd options SHMMAXPGS=value +Sets the maximum number of +.At V +style shared memory pages that are available through the +.Xr shmget 2 +system call. +Default value is 1024 on most ports. +See +.Pa /usr/include/machine/vmparam.h +for the default. +.El +.Ss VM Related Options +.Bl -ohang +.It Cd options NMBCLUSTERS=value +The number of mbuf clusters the kernel supports. +Mbuf clusters are MCLBYTES in size (usually 2k). +The default value is calculated from the amount of physical memory. +Architectures without direct mapping also limit it based on the kmem_map size, +which is used as backing store. +Some archs limit the value with +.Sq NMBCLUSTERS_MAX . +See +.Pa /usr/include/machine/param.h +for those archs. +This value can be accessed via the kern.mbuf.nmbclusters sysctl variable. +Increase this value if you get +.Dq mclpool limit reached +messages. +.It Cd options NMBCLUSTERS_MAX=value +The upper limit of NMBCLUSTERS. +.It Cd options NKMEMPAGES=value +.It Cd options NKMEMPAGES_MIN=value +.It Cd options NKMEMPAGES_MAX=value +Size of kernel VM map +.Em kmem_map , +in PAGE_SIZE-sized chunks (the VM page size; this value may be read +from the +.Xr sysctl 8 +variable +.Em hw.pagesize +). +This VM map is used to map the kernel malloc arena. +The kernel attempts to auto-size this map based on the amount of +physical memory in the system. +Platform-specific code may place bounds on this computed size, +which may be viewed with the +.Xr sysctl 8 +variable +.Em vm.nkmempages . +See +.Pa /usr/include/machine/param.h +for the default upper and lower bounds. +The related options +.Sq NKMEMPAGES_MIN +and +.Sq NKMEMPAGES_MAX +allow the bounds to be overridden in the kernel configuration file. +These options are provided in the event the computed value is +insufficient resulting in an +.Dq out of space in kmem_map +panic. +.It Cd options SB_MAX=value +Sets the max size in bytes that a socket buffer is allowed to occupy. +The default is 256k, but sometimes it needs to be increased, for example +when using large TCP windows. +This option can be changed via +.Xr sysctl 8 +as well. +.It Cd options SOMAXKVA=value +Sets the maximum size of kernel virtual memory that the socket buffers +are allowed to use. +The default is 16MB, but in situations where for example large TCP +windows are used this value must also be increased. +This option can be changed via +.Xr sysctl 8 +as well. +.It Cd options BUFCACHE=value +Size of the buffer cache as a percentage of total available RAM. +Ignored if BUFPAGES is also specified. +.It Cd options NBUF=value +Sets the number of buffer headers available, i.e., the number of +open files that may have a buffer cache entry. +Each buffer header +requires MAXBSIZE (machine dependent, but usually 65536) bytes. +The default value is machine dependent, but is usually equal to the +value of BUFPAGES. +.It Cd options BUFPAGES=value +These options set the number of pages available for the buffer cache. +Their default value is a machine dependent value, often calculated as +between 5% and 10% of total available RAM. +.It Cd options MAXTSIZ=bytes +Sets the maximum size limit of a process' text segment. +See +.Pa /usr/include/machine/vmparam.h +for the port-specific default. +.It Cd options DFLDSIZ=bytes +Sets the default size limit of a process' data segment, the value that +will be returned as the soft limit for +.Dv RLIMIT_DATA +(as returned by +.Xr getrlimit 2 ) . +See +.Pa /usr/include/machine/vmparam.h +for the port-specific default. +.It Cd options MAXDSIZ=bytes +Sets the maximum size limit of a process' data segment, the value that +will be returned as the hard limit for +.Dv RLIMIT_DATA +(as returned by +.Xr getrlimit 2 ) . +See +.Pa /usr/include/machine/vmparam.h +for the port-specific default. +.It Cd options DFLSSIZ=bytes +Sets the default size limit of a process' stack segment, the value that +will be returned as the soft limit for +.Dv RLIMIT_STACK +(as returned by +.Xr getrlimit 2 ) . +See +.Pa /usr/include/machine/vmparam.h +for the port-specific default. +.It Cd options MAXSSIZ=bytes +Sets the maximum size limit of a process' stack segment, the value that +will be returned as the hard limit for +.Dv RLIMIT_STACK +(as returned by +.Xr getrlimit 2 ) . +See +.Pa /usr/include/machine/vmparam.h +for the port-specific default. +.It Cd options DUMP_ON_PANIC=integer +Defaults to one. +If set to zero, the kernel will not dump to the dump device when +it panics, though dumps can still be forced via +.Xr ddb 4 +with the +.Dq sync +command. +Note that this sets the value of the +.Em kern.dump_on_panic +.Xr sysctl 3 +variable which may be changed at run time \(em see +.Xr sysctl 8 +for details. +.It Cd options VMSWAP +Enable paging device/file support. +This option is on by default. +.It Cd options VMSWAP_DEFAULT_PLAINTEXT +Store swap in plaintext, not encrypted, which may expose secrets if the +underlying nonvolatile medium is disclosed. +This option is off by default; it is available only for extremely slow +machines where the performance impact of swapping early at boot +outweighs the security risks. +Swap encryption can still be turned on dynamically with the +.Em vm.swap_encrypt +.Xr sysctl 7 +knob. +.It Cd options PDPOLICY_CLOCKPRO +Use CLOCK-Pro, an alternative page replace policy. +.El +.Ss Security Options +.Bl -ohang +.It Cd options INSECURE +Initializes the kernel security level with \-1 instead of 0. +This means that the system always starts in secure level \-1 mode, even when +running multiuser, unless the securelevel variable is set to value > \-1 in +.Pa /etc/rc.conf . +In this case the kernel security level will be raised to that value when the +.Pa /etc/rc.d/securelevel +script is run during system startup. +See the manual page for +.Xr init 8 +for details on the implications of this. +The kernel secure level may manipulated by the superuser by altering the +.Em kern.securelevel +.Xr sysctl 3 +variable (the secure level may only be lowered by a call from process ID 1, +i.e., +.Xr init 8 ) . +See also +.Xr secmodel_securelevel 9 , +.Xr sysctl 8 +and +.Xr sysctl 3 . +.It Cd options VERIFIED_EXEC_FP_SHA256 +Enables support for SHA256 hashes in Veriexec. +.It Cd options VERIFIED_EXEC_FP_SHA384 +Enables support for SHA384 hashes in Veriexec. +.It Cd options VERIFIED_EXEC_FP_SHA512 +Enables support for SHA512 hashes in Veriexec. +.It Cd options PAX_MPROTECT=value +Enables PaX MPROTECT, +.Xr mprotect 2 +restrictions from the PaX project. +.Pp +The +.Ar value +is the default value for the +.Em global +knob, see +.Xr sysctl 3 . +If 0, PaX MPROTECT will be enabled only if explicitly set on programs +using +.Xr paxctl 8 . +If 1, PaX MPROTECT will be enabled for all programs. +Programs can be exempted using +.Xr paxctl 8 . +.Pp +See +.Xr security 7 +for more details. +.It Cd options PAX_SEGVGUARD=value +Enables PaX Segvguard. +Requires +.Cd options FILEASSOC . +.Pp +The +.Ar value +is the default value for the +.Em global +knob, see +.Xr sysctl 3 . +If 0, PaX Segvguard will be enabled only if explicitly set on programs +using +.Xr paxctl 8 . +If 1, PaX Segvguard will be enabled to all programs, and exemption can +be done using +.Xr paxctl 8 . +.Pp +See +.Xr security 7 +for more details. +.It Cd options PAX_ASLR=value +Enables PaX ASLR. +.Pp +The +.Ar value +is the default value for the +.Em global +knob, see +.Xr sysctl 3 . +If 0, PaX ASLR will be enabled only if explicitly set on programs +using +.Xr paxctl 8 . +If 1, PaX ASLR will be enabled to all programs, and exemption can +be done using +.Xr paxctl 8 . +.Pp +See +.Xr security 7 +for more details. +.It Cd options USER_VA0_DISABLE_DEFAULT=value +Sets the initial value of the flag which controls whether user programs +can map virtual address 0. +The flag can be changed at runtime by +.Xr sysctl 3 . +.It Cd options KASAN +Enables Kernel Address Sanitizer. +.Em NOTE : +not available on all architectures. +.It Cd options KASLR +Enables Kernel ASLR. +This randomizes the location of the kernel image in memory. +.Em NOTE : +not available on all architectures. +.It Cd options SVS +Enables Separate Virtual Space. +On architectures that are designed to function with a shared address +space, this option explicitly isolates the kernel and user spaces. +.Em NOTE : +not available on all architectures. +.El +.Ss amiga-specific Options +.Bl -ohang +.It Cd options BB060STUPIDROM +When the bootloader (which passes AmigaOS ROM information) claims +we have a 68060 CPU without FPU, go look into the Processor +Configuration Register (PCR) to find out. +You need this with Amiga ROMs up to (at least) V40.xxx (OS3.1), +when you boot via the bootblocks and don't have a DraCo. +.It Cd options IOBZCLOCK=frequency +The IOBlix boards come with two different serial master clocks: older ones +use 24 MHz, newer ones use 22.1184 MHz. +The driver normally assumes the latter. +If your board uses 24 MHz, you can recompile your kernel with +options IOBZCLOCK=24000000 +or patch the kernel variable iobzclock to the same value. +.It Cd options LIMITMEM=value +If there, limit the part of the first memory bank used by +.Nx +to value megabytes. +Default is unlimited. +.It Cd options P5PPC68KBOARD +Add special support for Phase5 mixed 68k+PPC boards. +Currently, this only affects rebooting from +.Nx +and is only needed on 68040+PPC, not on +68060+PPC; without this, affected machines will hang after +.Nx +has shut +down and will only restart after a keyboard reset or a power cycle. +.El +.Ss atari-specific Options +.Bl -ohang +.It Cd options DISKLABEL_AHDI +Include support for AHDI (native Atari) disklabels. +.It Cd options DISKLABEL_NBDA +Include support for +.Nx Ns /atari +labels. +If you don't set this option, it will be set automatically. +.Nx Ns /atari +will not work without it. +.It Cd options FALCON_SCSI +Include support for the 5380-SCSI configuration as found on the Falcon. +.It Cd options RELOC_KERNEL +If set, the kernel will relocate itself to TT-RAM, if possible. +This will give you a slightly faster system. +.Em Beware +that on some TT030 systems, +the system will frequently dump with MMU-faults with this option enabled. +.It Cd options SERCONSOLE +Allow the modem1-port to act as the system-console. +A carrier should be active on modem1 during system boot to active +the console functionality. +.It Cd options TT_SCSI +Include support for the 5380-SCSI configuration as found on the TT030 +and Hades. +.El +.Ss i386-specific Options +.Bl -ohang +.It Cd options CPURESET_DELAY=value +Specifies the time (in millisecond) to wait before doing a hardware reset +in the last phase of a reboot. +This gives the user a chance to see error messages from the shutdown +operations (like NFS unmounts, buffer cache flush, etc ...). +Setting this to 0 will disable the delay. +Default is 2 seconds. +.It Cd options USER_LDT +Include i386-specific system calls for modifying the local descriptor table, +used by Windows emulators. +.It Cd options PAE +Enable PAE (Physical Address Extension) mode. +PAE permits up to 36 bits physical addressing (64GB of physical +memory), and turns physical addresses to 64 bits entities in the +memory management subsystem. +Userland virtual address space remains at 32 bits (4GB). +PAE mode is required to enable the NX/XD (No-eXecute/eXecute Disable) +bit for pages, which allows marking certain ones as not being executable. +Any attempt to execute code from such a page will raise an exception. +.It Cd options REALBASEMEM=integer +Overrides the base memory size passed in from the boot block. +(Value given in kilobytes.) +Use this option only if the boot block reports the size incorrectly. +(Note that some BIOSes put the extended BIOS +data area at the top of base memory, and therefore report a smaller +base memory size to prevent programs overwriting it. +This is correct behavior, and you should not use the +.Em REALBASEMEM +option to access this memory). +.It Cd options SPECTRE_V2_GCC_MITIGATION=1 +Enable GCC-specific Spectre variant 2 mitigations. +For 32-bit kernels this means these options: +.Bd -literal -offset indent +-mindirect-branch=thunk -mindirect-branch-register +.Ed +.Pp +For 64-bit kernels this means these options: +.Bd -literal -offset indent +-mindirect-branch=thunk-inline -mindirect-branch-register +.Ed +.It Cd options REALEXTMEM=integer +Overrides the extended memory size passed in from the boot block. +(Value given in kilobytes. +Extended memory does not include the first megabyte.) +Use this option only if the boot block reports the size incorrectly. +.It Cd options CYRIX_CACHE_WORKS +Relevant only to the Cyrix 486DLC CPU. +This option is used to turn on the cache in hold-flush mode. +It is not turned on by default because it is known to have problems in +certain motherboard implementations. +.It Cd options CYRIX_CACHE_REALLY_WORKS +Relevant only to the Cyrix 486DLC CPU. +This option is used to turn on the cache in write-back mode. +It is not turned on by default because it is known to have problems in +certain motherboard implementations. +In order for this option to take effect, option +.Em CYRIX_CACHE_WORKS +must also be specified. +.It Cd options PCIBIOS +Enable support for initializing the PCI bus using information from +the BIOS. +See +.Xr pcibios 4 +for details. +.It Cd options MTRR +Include support for accessing MTRR registers from user-space. +See +.Xr i386_get_mtrr 2 . +.It Cd options BEEP_ONHALT +Make the system speaker emit several beeps when it is completely safe to +power down the computer after a +.Xr halt 8 +command. +Requires +.Xr sysbeep 4 +support. +.It Cd options BEEP_ONHALT_COUNT=times +Number of times to beep the speaker when +.Cd options BEEP_ONHALT +is enabled. +Defaults to 3. +.It Cd options BEEP_ONHALT_PITCH=hz +The tone frequency used when +.Cd options BEEP_ONHALT +option, in hertz. +Defaults to 1500. +.It Cd options BEEP_ONHALT_PERIOD=msecs +The duration of each beep when +.Cd options BEEP_ONHALT +is enabled, in milliseconds. +Defaults to 250. +.It Cd options MULTIBOOT +Makes the kernel Multiboot-compliant, allowing it to be booted through +a Multiboot-compliant boot manager such as GRUB. +See +.Xr multiboot 8 +for more information. +.It Cd options SPLASHSCREEN +Display a splash screen during boot. +.El +.Ss isa-specific Options +Options specific to +.Xr isa 4 +busses. +.Bl -ohang +.It Cd options PCIC_ISA_ALLOC_IOBASE=address, PCIC_ISA_ALLOC_IOSIZE=size +Control the section of IO bus space used for PCMCIA bus space mapping. +Ideally the probed defaults are satisfactory, however in practice +that is not always the case. +See +.Xr pcmcia 4 +for details. +.It Cd options PCIC_ISA_INTR_ALLOC_MASK=mask +Controls the allowable interrupts that may be used for PCMCIA +devices. +This mask is a logical-or of power-of-2s of allowable interrupts: +.Bd -literal -offset 04n +.Em "IRQ Val IRQ Val IRQ Val IRQ Val" + 0 0x0001 4 0x0010 8 0x0100 12 0x1000 + 1 0x0002 5 0x0020 9 0x0200 13 0x2000 + 2 0x0004 6 0x0040 10 0x0400 14 0x4000 + 3 0x0008 7 0x0080 11 0x0800 15 0x8000 +.Ed +.It Cd options PCKBC_CNATTACH_SELFTEST +Perform a self test of the keyboard controller before attaching it as a +console. +This might be necessary on machines where we boot on cold iron, and +pckbc refuses to talk until we request a self test. +Currently only the netwinder port uses it. +.It Cd options PCKBD_CNATTACH_MAY_FAIL +If this option is set the PS/2 keyboard will not be used as the console +if it cannot be found during boot. +This allows other keyboards, like USB, to be the console keyboard. +.It Cd options PCKBD_LAYOUT=layout +Sets the default keyboard layout, see +.Xr pckbd 4 . +.El +.Ss m68k-specific Options +.Bl -ohang +.It Cd options FPU_EMULATE +Include support for MC68881/MC68882 emulator. +.It Cd options FPSP +Include support for 68040 floating point. +.It Cd options M68020,M68030,M68040,M68060 +Include support for a specific CPU, +at least one (the one you are using) should be specified. +.It Cd options M060SP +Include software support for 68060. +This provides emulation of unimplemented +integer instructions as well as emulation of unimplemented floating point +instructions and data types and software support for floating point traps. +.El +.Ss powerpc-specific Options (OEA Only) +.Bl -ohang +.It Cd options PMAP_MEMLIMIT=value +Limit the amount of memory seen by the kernel to +.Ar value +bytes. +.It Cd options PTEGCOUNT=value +Specify the size of the page table as +.Ar value +PTE groups. +Normally, one PTEG is allocated per physical page frame. +.El +.Ss sparc-specific Options +.Bl -ohang +.It Cd options AUDIO_DEBUG +Enable simple event debugging of the logging of the +.Xr audio 4 +device. +.It Cd options BLINK +Enable blinking of LED. +Blink rate is full cycle every N seconds for +N < then current load average. +See +.Xr getloadavg 3 . +.\" .It Cd options COLORFONT_CACHE +.\" What does this do? +.It Cd options COUNT_SW_LEFTOVERS +Count how many times the sw SCSI device has left 3, 2, 1 and 0 in the +sw_3_leftover, sw_2_leftover, sw_1_leftover, and sw_0_leftover +variables accessible from +.Xr ddb 4 . +See +.Xr sw 4 . +.It Cd options DEBUG_ALIGN +Adds debugging messages calls when user-requested alignment fault +handling happens. +.It Cd options DEBUG_EMUL +Adds debugging messages calls for emulated floating point and +alignment fixing operations. +.It Cd options EXTREME_DEBUG +Adds debugging functions callable from +.Xr ddb 4 . +The debug_pagetables, test_region and print_fe_map +functions print information about page tables for the SUN4M +platforms only. +.It Cd options EXTREME_EXTREME_DEBUG +Adds extra info to +.Em options EXTREME_DEBUG . +.It Cd options FPU_CONTEXT +Make +.Em options COMPAT_SVR4 +getcontext and setcontext include floating point registers. +.It Cd options MAGMA_DEBUG +Adds debugging messages to the +.Xr magma 4 +device. +.It Cd options RASTERCONS_FULLSCREEN +Use the entire screen for the console. +.It Cd options RASTERCONS_SMALLFONT +Use the Fixed font on the console, instead of the normal font. +.It Cd options SUN4 +Support sun4 class machines. +.It Cd options SUN4C +Support sun4c class machines. +.It Cd options SUN4M +Support sun4m class machines. +.It Cd options SUN4_MMU3L +.\" XXX ??? +Enable support for sun4 3-level MMU machines. +.It Cd options V9 +Enable SPARC V9 assembler in +.Xr ddb 4 . +.El +.Ss sparc64-specific Options +.Bl -ohang +.It Cd options AUDIO_DEBUG +Enable simple event debugging of the logging of the +.Xr audio 4 +device. +.It Cd options BLINK +Enable blinking of LED. +Blink rate is full cycle every N seconds for +N < then current load average. +See +.Xr getloadavg 3 . +.El +.Ss x68k-specific Options +.Bl -ohang +.It Cd options EXTENDED_MEMORY +Include support for extended memory, e.g., TS-6BE16 and 060turbo on-board. +.It Cd options JUPITER +Include support for Jupiter-X MPU accelerator +.It Cd options ZSCONSOLE,ZSCN_SPEED=value +Use the built-in serial port as the system-console. +Speed is specified in bps, defaults to 9600. +.It Cd options ITE_KERNEL_ATTR=value +Set the kernel message attribute for ITE. +Value, an integer, is a logical or of the following values: +.Bl -tag -width 4n -compact -offset indent +.It 1 +color inversed +.It 2 +underlined +.It 4 +bolded +.El +.El +.Ss x86-specific Options +.Bl -ohang +.It Cd options NO_PCI_MSI_MSIX +Disable support for MSI/MSIX in the kernel. +See +.Xr pci_msi 9 +for details of MSI/MSIX support +.It Cd options NO_PREEMPTION +Disables +.Xr kpreempt 9 +support in the kernel. +.El +.\" The following requests should be uncommented and used where appropriate. +.\" .Sh FILES +.\" .Sh EXAMPLES +.Sh SEE ALSO +.Xr config 1 , +.Xr gcc 1 , +.Xr gdb 1 , +.Xr ktrace 1 , +.Xr quota 1 , +.Xr vndcompress 1 , +.Xr gettimeofday 2 , +.Xr i386_get_mtrr 2 , +.Xr i386_iopl 2 , +.Xr msgctl 2 , +.Xr msgget 2 , +.Xr msgrcv 2 , +.Xr msgsnd 2 , +.Xr ntp_adjtime 2 , +.Xr ntp_gettime 2 , +.Xr reboot 2 , +.Xr semctl 2 , +.Xr semget 2 , +.Xr semop 2 , +.Xr shmat 2 , +.Xr shmctl 2 , +.Xr shmdt 2 , +.Xr shmget 2 , +.Xr sysctl 3 , +.Xr apm 4 , +.Xr ddb 4 , +.Xr inet 4 , +.Xr md 4 , +.Xr pcibios 4 , +.Xr pcmcia 4 , +.Xr ppp 4 , +.Xr userconf 4 , +.Xr vnd 4 , +.Xr wscons 4 , +.Xr config 5 , +.Xr edquota 8 , +.Xr init 8 , +.Xr mdsetimage 8 , +.Xr mount_cd9660 8 , +.Xr mount_fdesc 8 , +.Xr mount_kernfs 8 , +.Xr mount_lfs 8 , +.Xr mount_mfs 8 , +.Xr mount_msdos 8 , +.Xr mount_nfs 8 , +.Xr mount_ntfs 8 , +.Xr mount_null 8 , +.Xr mount_portal 8 , +.Xr mount_procfs 8 , +.Xr mount_udf 8 , +.Xr mount_umap 8 , +.Xr mount_union 8 , +.Xr mrouted 8 , +.Xr newfs_lfs 8 , +.Xr ntpd 8 , +.Xr quotaon 8 , +.Xr rpc.rquotad 8 , +.Xr sysctl 8 , +.Xr cnmagic 9 , +.Xr in_getifa 9 , +.Xr kernhist 9 +.Sh HISTORY +The +.Nm +man page first appeared in +.Nx 1.3 . |
