xref: /netbsd-src/share/man/man4/options.4 (revision db6316d1518382eecd2fdbe55a1205e0620a1b35)
1.\"	$NetBSD: options.4,v 1.255 2004/12/08 18:33:32 peter Exp $
2.\"
3.\" Copyright (c) 1996
4.\" 	Perry E. Metzger.  All rights reserved.
5.\"
6.\" Redistribution and use in source and binary forms, with or without
7.\" modification, are permitted provided that the following conditions
8.\" are met:
9.\" 1. Redistributions of source code must retain the above copyright
10.\"    notice, this list of conditions and the following disclaimer.
11.\" 2. Redistributions in binary form must reproduce the above copyright
12.\"    notice, this list of conditions and the following disclaimer in the
13.\"    documentation and/or other materials provided with the distribution.
14.\" 3. All advertising materials mentioning features or use of this software
15.\"    must display the following acknowledgment:
16.\"	This product includes software developed for the NetBSD Project
17.\"	by Perry E. Metzger.
18.\" 4. The name of the author may not be used to endorse or promote products
19.\"    derived from this software without specific prior written permission.
20.\"
21.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
22.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
23.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
24.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
25.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
26.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
30.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31.\"
32.\"
33.Dd November 11, 2004
34.Os
35.Dt OPTIONS 4
36.Sh NAME
37.Nm options
38.Nd Miscellaneous kernel configuration options
39.Sh SYNOPSIS
40.Cd cinclude ...
41.Cd config ...
42.Cd [no] file-system ...
43.Cd ident ...
44.Cd include ...
45.Cd [no] makeoptions ...
46.Cd maxusers ...
47.Cd [no] options ...
48.Cd [no] pseudo-device ...
49.Sh DESCRIPTION
50This manual page describes a number of miscellaneous kernel
51configuration options that may be specified in a kernel config
52file.
53See
54.Xr config 8
55for information on how to configure and build kernels.
56.Pp
57The
58.Ar no
59form removes a previously specified option.
60.Ss Keywords
61The following keywords are recognized in a kernel configuration file:
62.Bl -ohang
63.It Sy cinclude Xo
64.Qq Ar filename
65.Xc
66Conditionally includes another kernel configuration file whose name is
67.Ar filename ,
68which may be double-quoted and may be an explicit path or relative to
69the kernel source directory.
70Failure to open the named file is ignored.
71.It Sy config Xo
72.Ar exec_name
73.No root on
74.Ar rootdev
75.Op type Ar fstype
76.Op dumps on Ar dumpdev
77.Xc
78Defines a configuration whose kernel executable is named
79.Ar exec_name ,
80normally
81.Dq netbsd ,
82with its root file system of type
83.Ar fstype
84on the device
85.Ar rootdev ,
86and optionally specifying the location of kernel core dumps on the device
87.Ar dumpdev .
88.Ar dev
89or
90.Ar dumpdev
91and
92.Ar fstype
93may be specified as
94.Dq \&? ,
95which is a wild card.
96The root
97.Ar fstype
98and
99.Ar dumpdev
100are optional and assumed to be wild carded if they are not specified.
101.It Ar device_instance Xo
102at
103.Ar attachment
104.Op Ar locators value Op ...
105.Op flags Ar value
106.Xc
107Define an instance of the device driver
108.Ar device_instance
109that attaches to the bus or device named
110.Ar attachment .
111An
112.Ar attachment
113may require additional information on where the device can be found, such
114as an address, channel, function, offset, and/or slot, referred to as
115.Ar locators ,
116whose
117.Ar value
118often may be a wild card,
119.Dq \&? .
120Some device drivers have one or more
121.Ar flags
122that can be adjusted to affect the way they operate.
123.It Sy file-system Xo
124.Ar fs_name Op , Ar fs_name Op ...
125.Xc
126Include support for the file-system
127.Ar fs_name .
128.It Sy ident Xo
129.Qq Ar string
130.Xc
131Sets the kernel identification string to
132.Ar string .
133.It Sy include Xo
134.Qq Ar filename
135.Xc
136Functions the same as
137.Ar cinclude ,
138except failure to open
139.Ar filename
140produces a fatal error.
141.It Sy options Xo
142.Ar option_name Op , Ar option_name=value Op ...
143.Xc
144Specifies (or sets) the option, or comma-separated list of options,
145.Ar option_name .
146Some options expect to be assigned a value, which may be an integer,
147a double-quoted word, a bare word, or an empty string
148.Pq Qq .
149.Pp
150.Em Note :
151Options that are not defined by device definition files are passed to
152the compile process as
153.Fl D
154flags to the C compiler.
155.It Sy makeoptions Xo
156.Ar name=value
157.Xc
158Defines a
159.Xr make 1
160macro
161.Ar name
162with the value
163.Ar value
164in the kernel Makefile.
165.It Sy maxusers Xo
166.Ar integer
167.Xc
168Set the maxusers variable in the kernel.
169.It Sy no Xo
170.Ar keyword Ar name Op Ar arguments Op ...
171.Xc
172For the
173.Xr config 8
174.Ar keywords
175file-system, makeoptions, options, and pseudo-device,
176.Ar no
177removes the file-system, makeoption, options, or pseudo-device,
178.Ar name .
179This is useful when a kernel configuration file includes another which
180has undesired options.
181.Pp
182For example, a local configuration file that wanted the kitchen sink, but
183not COMPAT_09 or bridging, might be:
184.Bd -literal -offset indent
185include "arch/i386/conf/GENERIC"
186no options COMPAT_09
187no pseudo-device bridge
188.Ed
189.It Sy pseudo-device Xo
190.Ar name
191.Op Ar N
192.Xc
193Includes support for the pseudo-device
194.Ar name .
195Some pseudo-devices can have multiple or
196.Ar N
197instances.
198.El
199.Ss Compatibility Options
200.Bl -ohang
201.It Cd options COMPAT_09
202Enable binary compatibility with
203.Nx 0.9 .
204This enables support for
20516-bit user, group, and process IDs (following revisions support
20632-bit identifiers),
207It also allows the use of the deprecated
208.Xr getdomainname 3 ,
209.Xr setdomainname 3 ,
210and
211.Xr uname 3
212syscalls.
213This option also allows using numeric file system identifiers rather
214than strings.
215Post
216.Nx 0.9
217versions use string identifiers.
218.It Cd options COMPAT_10
219Enable binary compatibility with
220.Nx 1.0 .
221This option allows the use of the file system name of
222.Dq ufs
223as an alias for
224.Dq ffs .
225The name
226.Dq ffs
227should be used post 1.0 in
228.Pa /etc/fstab
229and other files.
230It also adds old syscalls for the
231.At V
232shared memory interface.
233This was changed post 1.0 to work on 64-bit architectures.
234This option also enables
235.Dq sgtty
236compatibility, without which programs using the old interface produce
237an
238.Dq inappropriate ioctl
239error, and
240.Pa /dev/io
241only works when this option is set in the kernel,
242see
243.Xr io 4
244on ports that support it.
245.It Cd options COMPAT_11
246Enable binary compatibility with
247.Nx 1.1 .
248This allows binaries running on the i386 port to gain direct access to
249the io ports by opening
250.Pa /dev/io
251read/write.
252This functionality was replaced by
253.Xr i386_iopl 2
254post 1.1.
255On the
256.Tn Atari
257port, the location of the disk label was moved after 1.1.
258When the
259.Em COMPAT_11
260option is set, the kernel will read (pre) 1.1 style disk labels as a
261last resort.
262When a disklabel is re-written, the old style label will be replaced
263with a post 1.1 style label.
264This also enables the
265.Em EXEC_ELF_NOTELESS
266option.
267.It Cd options COMPAT_12
268Enable binary compatibility with
269.Nx 1.2 .
270This allows the use of old syscalls for
271.Fn reboot
272and
273.Fn swapon .
274The syscall numbers were changed post 1.2 to add functionality to the
275.Xr reboot 2
276syscall, and the new
277.Xr swapctl 2
278interface was introduced.
279This also enables the
280.Em EXEC_ELF_NOTELESS
281option.
282.It Cd options COMPAT_13
283Enable binary compatibility with
284.Nx 1.3 .
285This allows the use of old syscalls for
286.Fn sigaltstack ,
287and also enables the old
288.Xr swapctl 2
289command
290.Dv SWAP_STATS
291(now called
292.Dv SWAP_OSTATS ) ,
293which does not include the
294.Fa se_path
295member of
296.Va struct swapent .
297.It Cd options COMPAT_14
298Enable binary compatibility with
299.Nx 1.4 .
300This allows some old
301.Xr ioctl 2
302on
303.Xr wscons 4
304to be performed, and allows the
305.Dv NFSSVC_BIOD
306mode of the
307.Xr nfssvc 2
308system call to be used for compatibility with the deprecated nfsiod program.
309.It Cd options COMPAT_16
310Enable binary compatibility with
311.Nx 1.6 .
312This allows the use of old signal trampoline code which has been deprecated
313with the addition of
314.Xr siginfo 5 .
315.It Cd options COMPAT_43
316Enables compatibility with
317.Bx 4.3 .
318This adds an old syscall for
319.Xr lseek 2 .
320It also adds the ioctls for
321.Dv TIOCGETP
322and
323.Dv TIOCSETP .
324The return values for
325.Xr getpid 2 ,
326.Xr getgid 2 ,
327and
328.Xr getuid 2
329syscalls are modified as well, to return the parent's PID and
330UID as well as the current process's.
331It also enables the deprecated
332.Dv NTTYDISC
333terminal line discipline.
334It also provides backwards compatibility with
335.Dq old
336SIOC[GS]IF{ADDR,DSTADDR,BRDADDR,NETMASK} interface ioctls, including
337binary compatibility with code written before the introduction of the
338sa_len field in sockaddrs.
339It also enables
340support for some older pre
341.Bx 4.4
342socket calls.
343.It Cd options COMPAT_BSDPTY
344This option is currenty on by default and enables the pty multiplexor
345.Xr ptm 4
346and
347.Xr ptmx 4
348to find and use ptys named
349.Pa /dev/ptyXX
350(master) and
351.Pa /dev/ttyXX
352(slave).
353Eventually this option will become optional as ptyfs based pseudo-ttys become
354the default, see
355.Xr mount_ptyfs 8 .
356.It Cd options COMPAT_SVR4
357On those architectures that support it, this enables binary
358compatibility with
359.At V.4
360applications built for the same architecture.
361This currently includes the i386, m68k, and sparc ports.
362.It Cd options COMPAT_LINUX
363On those architectures that support it, this enables binary
364compatibility with Linux ELF and
365.Xr a.out 5
366applications built for the same architecture.
367This currently includes the alpha, arm, i386, m68k, mips, and powerpc
368ports.
369.It Cd options COMPAT_SUNOS
370On those architectures that support it, this enables binary
371compatibility with
372.Tn SunOS 4.1
373applications built for the same architecture.
374This currently includes the sparc, sparc64 and most or all m68k ports.
375Note that the sparc64 requires the
376.Em COMPAT_NETBSD32
377option for 64-bit kernels, in addition to this option.
378.It Cd options COMPAT_ULTRIX
379On those architectures that support it, this enables binary
380compatibility with
381.Tn ULTRIX
382applications built for the same architecture.
383This currently is limited to the pmax.
384The functionality of this option is unknown.
385.It Cd options COMPAT_DARWIN
386On those architectures that support it, this enables binary compatibility with
387.Tn Darwin
388applications built for the same architecture.
389This feature is highly experimental, it requires COMPAT_MACH and
390EXEC_MACHO and it is currently limited to i386 and powerpc ports of
391.Nx .
392.It Cd options COMPAT_FREEBSD
393On those architectures that support it, this enables binary
394compatibility with
395.Fx
396applications built for the same architecture.
397At the moment this is limited to the i386 port.
398.It Cd options COMPAT_HPUX
399On those architectures that support it, this enables binary
400compatibility with
401.Tn HP/UX
402applications built for the same architecture.
403This is limited to the hp300 port, and has some known bugs.
404A limited set of programs do work.
405.It Cd options COMPAT_IBCS2
406On those architectures that support it, this enables binary
407compatibility with iBCS2 or SVR3 applications built for the same architecture.
408This is currently limited to the i386 and vax ports.
409.It Cd options COMPAT_IRIX
410On those architectures that support it, this enables binary
411compatibility with IRIX o32 binaries built for the same architecture.
412This feature is experimental, and it is currently limited to
413the sgimips port.
414.It Cd options COMPAT_MACH
415On those architectures that support it, this enables the emulation of
416Mach kernel traps for binaries built for the same architecture.
417This features is highly experimental and it is currently
418limited to i386 and powerpc ports of
419.Nx .
420.It Cd options COMPAT_OSF1
421On those architectures that support it, this enables binary
422compatibility with
423.Tn Digital
424.Ux
425.Po
426formerly
427.Tn OSF/1
428.Pc
429applications built for the same architecture.
430This is currently limited to the alpha port.
431.It Cd options COMPAT_NOMID
432Enable compatibility with
433.Xr a.out 5
434executables that lack a machine ID.
435This includes
436.Nx 0.8 Ns 's
437ZMAGIC format, and 386BSD and BSDI's
438QMAGIC, NMAGIC, and OMAGIC
439.Xr a.out 5
440formats.
441.It Cd options COMPAT_NETBSD32
442On those architectures that support it, this enables binary
443compatibility with 32-bit applications built for the same architecture.
444This is currently limited to the amd64 and sparc64 ports, and only
445applicable for 64-bit kernels.
446.It Cd options COMPAT_SVR4_32
447On those architectures that support it, this enables binary
448compatibility with 32-bit SVR4 applications built for the same architecture.
449This is currently limited to the sparc64 port, and only applicable for
45064-bit kernels.
451.It Cd options COMPAT_AOUT_M68K
452On m68k architectures which have switched to ELF,
453this enable binary compatibility with
454.Nx Ns Tn /m68k
455.Xr a.out 5
456executables on
457.Nx Ns Tn /m68k
458ELF kernel.
459This handles alignment incompatibility of m68k ABI between
460a.out and ELF which causes the structure padding differences.
461Currently only some system calls which use
462.Va struct stat
463are adjusted and some binaries which use
464.Xr sysctl 3
465to retrieve network details would not work properly.
466.It Cd options EXEC_MACHO
467On those architectures that support it, this adds support for running
468Mach-O executables.
469This is currently limited to the i386 and powerpc ports of
470.Nx .
471.It Cd options EXEC_ELF_NOTELESS
472Run unidentified ELF binaries as
473.Nx
474binaries.
475This might be needed for very old
476.Nx
477ELF binaries on some archs.
478These old binaries didn't contain an appropriate
479.Li .note.netbsd.ident
480section, and thus can't be identified by the kernel as
481.Nx
482binaries otherwise.
483Beware - if this option is on, the kernel would run
484.Em any
485unknown ELF binaries as if they were
486.Nx
487binaries.
488.El
489.Ss Debugging Options
490.Bl -ohang
491.It Cd options DDB
492Compiles in a kernel debugger for diagnosing kernel problems.
493See
494.Xr ddb 4
495for details.
496.Em NOTE :
497not available on all architectures.
498.It Cd options DDB_FROMCONSOLE=integer
499If set to non-zero, DDB may be entered by sending a break on a serial
500console or by a special key sequence on a graphics console.
501A value of "0" ignores console breaks or key sequences.
502If not explicitly specified, the default value is "1".
503Note that this sets the value of the
504.Em ddb.fromconsole
505.Xr sysctl 3
506variable which may be changed at run time -- see
507.Xr sysctl 8
508for details.
509.It Cd options DDB_HISTORY_SIZE=integer
510If this is non-zero, enable history editing in the kernel debugger
511and set the size of the history to this value.
512.It Cd options DDB_ONPANIC
513If set to non-zero, DDB will be entered upon kernel panic.
514The default if not specified is "1".
515Note that this sets the value of the
516.Em ddb.onpanic
517.Xr sysctl 3
518variable which may be changed at run time -- see
519.Xr sysctl 8
520for details.
521.It Cd options DDB_BREAK_CHAR=integer
522This option overrides the using break to enter the kernel debugger
523on the serial console.
524The value given will is the ascii value to be used instead.
525This is currently only supported by the com driver.
526.It Cd options KGDB
527Compiles in a remote kernel debugger stub for diagnosing kernel problems
528using the
529.Dq remote target
530feature of gdb.
531See
532.Xr gdb 1
533for details.
534.Em NOTE :
535not available on all architectures.
536.It Cd options KGDB_DEV
537Device number
538.Po
539as a
540.Dv dev_t
541.Pc
542of kgdb device.
543.It Cd options KGDB_DEVADDR
544Memory address of kgdb device.
545.It Cd options KGDB_DEVMODE
546Permissions of kgdb device.
547.It Cd options KGDB_DEVNAME
548Device name of kgdb device.
549.It Cd options KGDB_DEVRATE
550Baud rate of kgdb device.
551.It Cd makeoptions DEBUG="-g"
552The
553.Fl g
554flag causes
555.Pa netbsd.gdb
556to be built in addition to
557.Pa netbsd .
558.Pa netbsd.gdb
559is useful for debugging kernel crash dumps with gdb.
560See
561.Xr gdb 1
562for details.
563This also turns on
564.Em options DEBUG
565(which see).
566.It Cd options DEBUG
567Turns on miscellaneous kernel debugging.
568Since options are turned into preprocessor defines (see above),
569.Em options DEBUG
570is equivalent to doing a
571.Em #define DEBUG
572throughout the kernel.
573Much of the kernel has
574.Em #ifdef DEBUG
575conditionalized debugging code.
576Note that many parts of the kernel (typically device drivers) include their own
577.Em #ifdef XXX_DEBUG
578conditionals instead.
579This option also turns on certain other options,
580which may decrease system performance.
581.It Cd options DIAGNOSTIC
582Adds code to the kernel that does internal consistency checks.
583This code will cause the kernel to panic if corruption of internal data
584structures is detected.
585These checks can decrease performance up to 15%.
586.It Cd options KSTACK_CHECK_MAGIC
587Check kernel stack usage and panic if stack overflow is detected.
588This check is performance sensitive because it scans stack on each context
589switch.
590.It Cd options KTRACE
591Add hooks for the system call tracing facility, which allows users to
592watch the system call invocation behavior of processes.
593See
594.Xr ktrace 1
595for details.
596.It Cd options MSGBUFSIZE=integer
597This option sets the size of the kernel message buffer.
598This buffer holds the kernel output of
599.Fn printf
600when not (yet) read by
601.Xr syslogd 8 .
602This is particularly useful when the system has crashed and you wish to lookup
603the kernel output from just before the crash.
604Also, since the autoconfig output becomes more and more verbose,
605it sometimes happens that the message buffer overflows before
606.Xr syslogd 8
607was able to read it.
608Note that not all systems are capable of obtaining a variable sized message
609buffer.
610There are also some systems on which memory contents are not preserved
611across reboots.
612.It Cd options MALLOCLOG
613Enables an event log for
614.Xr malloc 9 .
615Useful for tracking down
616.Dq Data modified on freelist
617and
618.Dq multiple free
619problems.
620.It Cd options MALLOCLOGSIZE=integer
621Defines the number of entries in the malloc log.
622Default is 100000 entries.
623.It Cd options SYSTRACE
624Add hooks for the system call policy facility.
625See
626.Xr systrace 1
627for details.
628.It Cd options UVMHIST
629Enables the UVM history logs, which create in-memory traces of
630various UVM activities.
631These logs can be displayed be calling
632.Fn uvmhist_dump
633or
634.Fn uvm_hist
635with appropriate arguments from DDB.
636See the kernel source file sys/uvm/uvm_stat.c for details.
637.It Cd options UVMHIST_PRINT
638Prints the UVM history logs on the system console as entries are added.
639Note that the output is
640.Em extremely
641voluminous, so this option is really only useful for debugging
642the very earliest parts of kernel initialization.
643.El
644.Ss File Systems
645.Bl -ohang
646.It Cd file-system FFS
647Includes code implementing the Berkeley Fast File System
648.Em ( FFS ) .
649Most machines need this if they are not running diskless.
650.It Cd file-system EXT2FS
651Includes code implementing the Second Extended File System
652.Em ( EXT2FS ) ,
653revision 0 and revision 1 with the
654.Em filetype
655and
656.Em sparse_super
657options.
658This is the most commonly used file system on the Linux operating system,
659and is provided here for compatibility.
660Some of the specific features of
661.Em EXT2FS
662like the "behavior on errors" are not implemented.
663This file system can't be used with UID or GID greater than 65535.
664See
665.Xr mount_ext2fs 8
666for details.
667.It Cd file-system LFS
668.Em [EXPERIMENTAL]
669Include the Log-structured File System
670.Em ( LFS ) .
671See
672.Xr mount_lfs 8
673and
674.Xr newfs_lfs 8
675for details.
676.It Cd file-system MFS
677Include the Memory File System
678.Em ( MFS ) .
679This file system stores files in swappable memory, and produces
680notable performance improvements when it is used as the file store
681for
682.Pa /tmp
683and similar file systems.
684See
685.Xr mount_mfs 8
686for details.
687.It Cd file-system NFS
688Include the client side of the Network File System
689.Pq Tn NFS
690remote file sharing protocol.
691Although the bulk of the code implementing
692.Tn NFS
693is kernel based, several user level daemons are needed for it to work.
694See
695.Xr mount_nfs 8
696for details.
697.It Cd file-system CD9660
698Includes code for the
699.Tn ISO
7009660 + Rock Ridge file system, which is the standard file system on many
701.Tn CD-ROM
702discs.
703Useful primarily if you have a
704.Tn CD-ROM
705drive.
706See
707.Xr mount_cd9660 8
708for details.
709.It Cd file-system MSDOSFS
710Includes the
711.Tn MS-DOS
712FAT file system, which is reportedly still used
713by unfortunate people who have not heard about
714.Nx .
715Also implements the
716.Tn Windows 95
717extensions to the same, which permit the use of longer, mixed case
718file names.
719See
720.Xr mount_msdos 8
721and
722.Xr fsck_msdos 8
723for details.
724.It Cd file-system NTFS
725.Em [EXPERIMENTAL]
726Includes code for the
727.Tn Microsoft Windows NT
728file system.
729See
730.Xr mount_ntfs 8
731for details.
732.It Cd file-system FDESC
733Includes code for a file system, conventionally mounted on
734.Pa /dev/fd ,
735which permits access to the per-process file descriptor space via
736special files in the file system.
737See
738.Xr mount_fdesc 8
739for details.
740Note that this facility is redundant, and thus unneeded on most
741.Nx
742systems, since the
743.Xr fd 4
744pseudo-device driver already provides identical functionality.
745On most
746.Nx
747systems, instances of
748.Xr fd 4
749are mknoded under
750.Pa /dev/fd/
751and on
752.Pa /dev/stdin ,
753.Pa /dev/stdout ,
754and
755.Pa /dev/stderr .
756.It Cd file-system KERNFS
757Includes code which permits the mounting of a special file system
758(normally mounted on
759.Pa /kern )
760in which files representing various kernel variables and parameters
761may be found.
762See
763.Xr mount_kernfs 8
764for details.
765.It Cd file-system NULLFS
766Includes code for a loopback file system.
767This permits portions of the file hierarchy to be re-mounted in other places.
768The code really exists to provide an example of a stackable file system layer.
769See
770.Xr mount_null 8
771for details.
772.It Cd file-system OVERLAY
773Includes code for a file system filter.
774This permits the overlay file system to intercept all access to an underlying
775file system.
776This file system is intended to serve as an example of a stacking file
777system which has a need to interpose itself between an underlying file
778system and all other access.
779See
780.Xr mount_overlay 8
781for details.
782.It Cd file-system PORTAL
783.Em [EXPERIMENTAL]
784Includes the portal file system.
785This permits interesting tricks like opening
786.Tn TCP
787sockets by opening files in the file system.
788The portal file system is conventionally mounted on
789.Pa /p
790and is partially implemented by a special daemon.
791See
792.Xr mount_portal 8
793for details.
794.It Cd file-system PROCFS
795Includes code for a special file system (conventionally mounted on
796.Pa /proc )
797in which the process space becomes visible in the file system.
798Among
799other things, the memory spaces of processes running on the system are
800visible as files, and signals may be sent to processes by writing to
801.Pa ctl
802files in the procfs namespace.
803See
804.Xr mount_procfs 8
805for details.
806.It Cd file-system UMAPFS
807Includes a loopback file system in which user and group IDs may be
808remapped -- this can be useful when mounting alien file systems with
809different UIDs and GIDs than the local system.
810See
811.Xr mount_umap 8
812for details.
813.It Cd file-system UNION
814.Em [EXPERIMENTAL]
815Includes code for the union file system, which permits directories to
816be mounted on top of each other in such a way that both file systems
817remain visible -- this permits tricks like allowing writing (and the
818deleting of files) on a read-only file system like a
819.Tn CD-ROM
820by mounting a local writable file system on top of the read-only file system.
821See
822.Xr mount_union 8
823for details.
824.It Cd file-system CODA
825.Em [EXPERIMENTAL]
826Includes code for the Coda file system.
827Coda is a distributed file system like NFS and AFS.
828It is freely available, like NFS, but it functions much like AFS in being a
829.Dq stateful
830file system.
831Both Coda and AFS cache files on your local machine to improve performance.
832Then Coda goes a step further than AFS by letting you access the cached
833files when there is no available network, viz. disconnected laptops and
834network outages.
835In Coda, both the client and server are outside the kernel which makes
836them easier to experiment with.
837Coda is available for several UNIX and non-UNIX platforms.
838See http://www.coda.cs.cmu.edu for more details.
839NOTE: You also need to enable the pseudo-device, vcoda, for the Coda
840file system to work.
841.El
842.Ss File System Options
843.Bl -ohang
844.It Cd options NFSSERVER
845Include the server side of the
846.Em NFS
847(Network File System) remote file sharing protocol.
848Although the bulk of the code implementing
849.Em NFS
850is kernel based, several user level daemons are needed for it to
851work.
852See
853.Xr mountd 8
854and
855.Xr nfsd 8
856for details.
857.It Cd options QUOTA
858Enables kernel support for file system quotas.
859See
860.Xr quotaon 8 ,
861.Xr edquota 8 ,
862and
863.Xr quota 1
864for details.
865Note that quotas only work on
866.Dq ffs
867file systems, although
868.Xr rpc.rquotad 8
869permits them to be accessed over
870.Em NFS .
871.It Cd options FFS_EI
872Enable ``Endian-Independent'' FFS support.
873This allows a system to mount an FFS file system created for another
874architecture, at a small performance cost for all FFS file systems.
875See also
876.Xr newfs 8 ,
877.Xr fsck_ffs 8 ,
878.Xr dumpfs 8
879for file system byte order status and manipulation.
880.It Cd options NVNODE=integer
881This option sets the size of the cache used by the name-to-inode translation
882routines, (a.k.a. the
883.Fn namei
884cache, though called by many other names in the kernel source).
885By default, this cache has
886.Dv NPROC
887(set as 20 + 16 * MAXUSERS) * (80 + NPROC / 8) entries.
888A reasonable way to derive a value of
889.Dv NVNODE ,
890should you notice a large number of namei cache misses with a tool such as
891.Xr systat 1 ,
892is to examine your system's current computed value with
893.Xr sysctl 8 ,
894(which calls this parameter "kern.maxvnodes") and to increase this value
895until either the namei cache hit rate improves or it is determined that
896your system does not benefit substantially from an increase in the size of
897the namei cache.
898.It Cd options NAMECACHE_ENTER_REVERSE
899Causes the namei cache to always enter a reverse mapping (vnode -\*[Gt] name)
900as well as a normal one.
901Normally, this is already done for directory vnodes, to speed up the getcwd
902operation.
903This option will cause longer hash chains in the reverse cache, and thus
904slow down getcwd somewhat.
905However, it does make vnode -\*[Gt] path translations possible in some cases.
906For now, only useful if strict /proc/#/maps emulation for Linux binaries is
907required.
908.It Cd options EXT2FS_SYSTEM_FLAGS
909This option changes the behavior of the APPEND and IMMUTABLE flags
910for a file on an
911.Em EXT2FS
912file system.
913Without this option, the superuser or owner of the file can
914set and clear them.
915With this option, only the superuser can set them, and
916they can't be cleared if the securelevel is greater than 0.
917See also
918.Xr chflags 1 .
919.It Cd options NFS_BOOT_BOOTP
920Enable use of the BOOTP protocol (RFCs 951 and 1048) to get configuration
921information if NFS is used to mount the root file system.
922See
923.Xr diskless 8
924for details.
925.It Cd options NFS_BOOT_DHCP
926Same as
927.Dq NFS_BOOT_BOOTP ,
928but use the DHCP extensions to the
929BOOTP protocol (RFC 1541).
930.It Cd options NFS_BOOT_BOOTP_REQFILE
931Specifies the string sent in the bp_file field of the BOOTP / DHCP
932request packet.
933.It Cd options NFS_BOOT_BOOTPARAM
934Enable use of the BOOTPARAM protocol, consisting of RARP and
935BOOTPARAM RPC, to get configuration information if NFS
936is used to mount the root file system.
937See
938.Xr diskless 8
939for details.
940.It Cd options NFS_BOOT_RWSIZE=value
941Set the initial NFS read and write sizes for diskless-boot requests.
942The normal default is 8Kbytes.
943This option provides a way to lower the value (e.g., to 1024 bytes)
944as a workaround for buggy network interface cards or boot PROMs.
945Once booted, the read and write request sizes can be increased by
946remounting the file system.
947See
948.Xr mount_nfs 8
949for details.
950.It Cd options NFS_V2_ONLY
951Reduce the size of the NFS client code by omitting code that's only required
952for NFSv3 and NQNFS support, leaving only that code required to use NFSv2
953servers.
954.El
955.Ss Miscellaneous Options
956.Bl -ohang
957.It Cd options NEW_BUFQ_STRATEGY
958Enable experimental buffer queue strategy for disk I/O.
959In the default strategy, outstanding disk requests are ordered by
960sector number and sent to the disk, regardless of whether the
961operation is a read or write; this option gives priority to issuing
962read requests over write requests.
963Although requests may therefore be issued out of sector-order, causing
964more seeks and thus lower overall throughput, interactive system
965responsiveness under heavy disk I/O load may be improved, as processes
966blocking on disk reads are serviced sooner (file writes typically
967don't cause applications to block).
968The performance effect varies greatly depending on the hardware, drive
969firmware, filesystem configuration, workload, and desired performance
970trade-off.
971Systems using drive write-cache (most modern IDE disks, by default)
972are unlikely to benefit and may well suffer; such disks acknowledge
973writes very quickly, and optimise them internally according to
974physical layout.
975Giving these disks as many requests to work with as possible (the
976standard strategy) will typically produce the best results, especially
977if the drive has a large cache; the drive will silently complete
978writes from cache as it seeks for reads.
979Disks that support a large number of concurrent tagged requests (SCSI
980disks and many hardware RAID controllers) expose this internal
981scheduling with tagged responses, and don't block for reads; such
982disks may not see a noticable difference with either strategy.
983However, if IDE disks are run with write-cache disabled for safety,
984writes are not acknowledged until actually completed, and only one
985request can be outstanding; a large number of small writes in one
986locality can keep the disk busy, starving reads elsewhere on the disk.
987Such systems are likely to see the most benefit from this option.
988Finally, the performance interaction of this option with ffs soft
989dependencies can be subtle, as that mechanism can drastically alter
990the workload for filesystem metadata writes.
991.It Cd options LKM
992Enable loadable kernel modules.
993See
994.Xr lkm 4
995for details.
996.Em NOTE :
997not available on all architectures.
998.It Cd options INSECURE
999Hardwires the kernel security level at -1.
1000This means that the system
1001always runs in secure level 0 mode, even when running multiuser.
1002See the manual page for
1003.Xr init 8
1004for details on the implications of this.
1005The kernel secure level may manipulated by the superuser by altering the
1006.Em kern.securelevel
1007.Xr sysctl 3
1008variable (the secure level may only be lowered by a call from process ID 1,
1009i.e.
1010.Xr init 8 ) .
1011See also
1012.Xr sysctl 8
1013and
1014.Xr sysctl 3 .
1015.It Cd options MEMORY_DISK_DYNAMIC
1016This options makes the
1017.Xr md 4
1018.Tn RAM
1019disk size dynamically sized.
1020.It Cd options MEMORY_DISK_HOOKS
1021This option allows for some machine dependent functions to be called when
1022the
1023.Xr md 4
1024.Tn RAM
1025disk driver is configured.
1026This can result in automatically loading a
1027.Tn RAM
1028disk from floppy on open (among other things).
1029.It Cd options MEMORY_DISK_IS_ROOT
1030Forces the
1031.Xr md 4
1032.Tn RAM
1033disk to be the root device.
1034This can only be overridden when
1035the kernel is booted in the 'ask-for-root' mode.
1036.It Cd options MEMORY_DISK_ROOT_SIZE=integer
1037Allocates the given number of 512 byte blocks as memory for the
1038.Xr md 4
1039.Tn RAM
1040disk, to be populated with
1041.Xr mdsetimage 8 .
1042.It Cd options MEMORY_DISK_SERVER=0
1043Do not include the interface to a userland memory disk server process.
1044Per default, this options is set to 1, including the support code.
1045Useful for install media kernels.
1046.It Cd options VNODE_OP_NOINLINE
1047Do not inline the
1048.Fn VOP_*
1049calls in the kernel.
1050On i386 GENERIC, this saves 36k of kernel text.
1051Useful for install media kernels, small memory systems and embedded systems.
1052.It Cd options MALLOC_NOINLINE
1053Time critical fixed size memory allocation is performed with
1054.Fn MALLOC
1055and
1056.Fn FREE .
1057Normally these expand to inline code, but with
1058.Em MALLOC_NOINLINE
1059these call the normal
1060.Fn malloc
1061and
1062.Fn free
1063functions.
1064Useful for install media kernels, small memory systems and embedded systems.
1065.It Cd options HZ=integer
1066On ports that support it, set the system clock frequency (see
1067.Xr hz 9 )
1068to the supplied value.
1069Handle with care.
1070.It Cd options NTP
1071Turns on in-kernel precision timekeeping support used by software
1072implementing
1073.Em NTP
1074(Network Time Protocol, RFC 1305).
1075The
1076.Em NTP
1077option adds an in-kernel Phase-Locked Loop (PLL) for normal
1078.Em NTP
1079operation, and a Frequency-Locked Loop (FLL) for intermittently-connected
1080operation.
1081.Xr ntpd 8
1082will employ a user-level PLL when kernel support is unavailable,
1083but the in-kernel version has lower latency and more precision, and
1084so typically keeps much better time.
1085The interface to the kernel
1086.Em NTP
1087support is provided by the
1088.Xr ntp_adjtime 2
1089and
1090.Xr ntp_gettime 2
1091system calls, which are intended for use by
1092.Xr ntpd 8
1093and are enabled by the option.
1094On systems with sub-microsecond resolution timers, or where (HZ / 100000)
1095is not an integer, the
1096.Em NTP
1097option also enables extended-precision arithmetic to keep track of
1098fractional clock ticks at NTP time-format precision.
1099.It Cd options PPS_SYNC
1100This option enables a kernel serial line discipline for receiving time
1101phase signals from an external reference clock such as a radio clock.
1102(The
1103.Em NTP
1104option (which see) must be on if the
1105.Em PPS_SYNC
1106option is used.)
1107Some reference clocks generate a Pulse Per Second (PPS) signal in
1108phase with their time source.
1109The
1110.Em PPS
1111line discipline receives this signal on either the data leads
1112or the DCD control lead of a serial port.
1113.Em NTP
1114uses the PPS signal to discipline the local clock oscillator to a high
1115degree of precision (typically less than 50 microseconds in time and
11160.1 ppm in accuracy).
1117.Em PPS
1118can also generate a serial output pulse when the system receives a PPS
1119interrupt.
1120This can be used to measure the system interrupt latency and thus calibrate
1121.Em NTP
1122to account for it.
1123Using
1124.Em PPS
1125usually requires a
1126gadget box
1127to convert from TTL to RS-232 signal levels.
1128The gadget box and PPS are described in more detail in the HTML documentation
1129for
1130.Xr ntpd 8
1131in
1132.Pa /usr/share/doc/html/ntp .
1133.It Cd options NO_TSC_TIME
1134Don't use TSC microtime, even if available (i386 only).
1135Improves time behavior under VMware.
1136.It Cd options SETUIDSCRIPTS
1137Allows scripts with the setuid bit set to execute as the effective
1138user rather than the real user, just like binary executables.
1139.Pp
1140.Em NOTE :
1141Using this option will also enable
1142.Em options FDSCRIPTS
1143.It Cd options FDSCRIPTS
1144Allows execution of scripts with the execute bit set, but not the
1145read bit, by opening the file and passing the file descriptor to
1146the shell, rather than the filename.
1147.Pp
1148.Em NOTE :
1149Execute only (non-readable) scripts will have
1150.Va argv[0]
1151set to
1152.Pa /dev/fd/* .
1153What this option allows as far as security is
1154concerned, is the ability to safely ensure that the correct script
1155is run by the interpreter, as it is passed as an already open file.
1156.It Cd options PUCCN
1157Enables treating serial ports found on PCI boards
1158.Xr puc 4
1159as potential console devices.
1160The method for choosing such a console device is port dependent.
1161.It Cd options RTC_OFFSET=integer
1162The kernel (and typically the hardware battery backed-up clock on
1163those machines that have one) keeps time in
1164.Em UTC
1165(Universal Coordinated Time, once known as
1166.Em GMT ,
1167or Greenwich Mean Time)
1168and not in the time of the local time zone.
1169The
1170.Em RTC_OFFSET
1171option is used on some ports (such as the i386) to tell the kernel
1172that the hardware clock is offset from
1173.Em UTC
1174by the specified number of minutes.
1175This is typically used when a machine boots several operating
1176systems and one of them wants the hardware clock to run in the
1177local time zone and not in
1178.Em UTC ,
1179e.g.
1180.Em RTC_OFFSET=300
1181means
1182the hardware clock is set to US Eastern Time (300 minutes behind
1183.Em UTC ) ,
1184and not
1185.Em UTC .
1186(Note:
1187.Em RTC_OFFSET
1188is used to initialize a kernel variable named
1189.Va rtc_offset
1190which is the source actually used to determine the clock offset, and
1191which may be accessed via the kern.rtc_offset sysctl variable.
1192See
1193.Xr sysctl 8
1194and
1195.Xr sysctl 3
1196for details.
1197Since the kernel clock is initialized from the hardware clock very
1198early in the boot process, it is not possible to meaningfully change
1199.Va rtc_offset
1200in system initialization scripts.
1201Changing this value currently may only be done at kernel compile
1202time or by patching the kernel and rebooting).
1203.Pp
1204.Em NOTE :
1205Unfortunately, in many cases where the hardware clock
1206is kept in local time, it is adjusted for Daylight Savings
1207Time; this means that attempting to use
1208.Em RTC_OFFSET
1209to let
1210.Nx
1211coexist with such an operating system, like Windows,
1212would necessitate changing
1213.Em RTC_OFFSET
1214twice a year.
1215As such, this solution is imperfect.
1216.It Cd options KMEMSTATS
1217The kernel memory allocator,
1218.Xr malloc 9 ,
1219will keep statistics on its performance if this option is enabled.
1220Unfortunately, this option therefore essentially disables the
1221.Fn MALLOC
1222and
1223.Fn FREE
1224forms of the memory allocator, which are used to enhance the performance
1225of certain critical sections of code in the kernel.
1226This option therefore can lead to a significant decrease in the
1227performance of certain code in the kernel if enabled.
1228Examples of such code include the
1229.Fn namei
1230routine, the
1231.Xr ccd 4
1232driver,
1233the
1234.Xr ncr 4
1235driver,
1236and much of the networking code.
1237.It Cd options MAXUPRC=integer
1238Sets the soft
1239.Dv RLIMIT_NPROC
1240resource limit, which specifies the maximum number of simultaneous
1241processes a user is permitted to run, for process 0;
1242this value is inherited by its child processes.
1243It defaults to
1244.Em CHILD_MAX ,
1245which is currently defined to be 160.
1246Setting
1247.Em MAXUPRC
1248to a value less than
1249.Em CHILD_MAX
1250is not permitted, as this would result in a violation of the semantics of
1251.St -p1003.1-90 .
1252.It Cd options NOFILE=integer
1253Sets the soft
1254.Dv RLIMIT_NOFILE
1255resource limit, which specifies the maximum number of open
1256file descriptors for each process;
1257this value is inherited by its child processes.
1258It defaults to
1259.Em OPEN_MAX ,
1260which is currently defined to be 64.
1261.It Cd options DEFCORENAME=string
1262Sets the default value of the
1263.Em kern.defcorename
1264sysctl variable, otherwise it is set to
1265.Nm %n.core .
1266See
1267.Xr sysctl 8
1268and
1269.Xr sysctl 3
1270for details.
1271.It Cd options RASOPS_CLIPPING
1272Enables clipping within the
1273.Nm rasops
1274raster-console output system.
1275.Em NOTE :
1276only available on architectures that use
1277.Nm rasops
1278for console output.
1279.It Cd options RASOPS_SMALL
1280Removes optimized character writing code from the
1281.Nm rasops
1282raster-console output system.
1283.Em NOTE :
1284only available on architectures that use
1285.Nm rasops
1286for console output.
1287.It Cd options INCLUDE_CONFIG_FILE
1288Embeds the kernel config file used to define the kernel in the kernel
1289binary itself.
1290The embedded data also includes any files directly included by the config
1291file itself, e.g.
1292.Pa GENERIC.local
1293or
1294.Pa std.$MACHINE .
1295The embedded config file can be extracted from the resulting kernel by
1296the following command:
1297.Bd -literal -offset indent
1298strings netbsd | sed -n 's/^_CFG_//p' | unvis
1299.Ed
1300.It Cd options INCLUDE_JUST_CONFIG
1301Similar to the above option, but includes just the actual config file,
1302not any included files.
1303.It Cd options PIPE_SOCKETPAIR
1304Use slower, but smaller socketpair(2)-based pipe implementation instead
1305of default faster, but bigger one.
1306Primarily useful for installation kernels.
1307.It Cd options USERCONF
1308Compiles in the in-kernel device configuration manager.
1309See
1310.Xr userconf 4
1311for details.
1312.It Cd options PERFCTRS
1313Compiles in kernel support for CPU performance-monitoring counters.
1314See
1315.Xr pmc 1
1316for details.
1317.Em NOTE :
1318not available on all architectures.
1319.It Cd options XSERVER
1320Compiles in kernel support for
1321.Tn X11
1322on architectures that still use (or can use) the legacy
1323.Em pccons
1324console drivers rather than
1325.Xr wscons 4 .
1326These include bebox, i386, shark.
1327.It Cd options XSERVER_DDB
1328A supplement to XSERVER that adds support for entering
1329.Xr ddb 4
1330while in
1331.Tn X11 .
1332.El
1333.Ss Networking Options
1334.Bl -ohang
1335.It Cd options GATEWAY
1336Enables
1337.Em IPFORWARDING
1338(which see)
1339and (on most ports) increases the size of
1340.Em NMBCLUSTERS
1341(which see).
1342In general,
1343.Em GATEWAY
1344is used to indicate that a system should act as a router, and
1345.Em IPFORWARDING
1346is not invoked directly.
1347(Note that
1348.Em GATEWAY
1349has no impact on protocols other than
1350.Tn IP ,
1351such as
1352.Tn CLNP
1353or
1354.Tn XNS ) .
1355.Em GATEWAY
1356option also compiles IPv4 fast forwarding code into the kernel.
1357.It Cd options IPFORWARDING=value
1358If
1359.Em value
1360is 1 this enables IP routing behavior.
1361If
1362.Em value
1363is 0 (the default), it disables it.
1364The
1365.Em GATEWAY
1366option sets this to 1 automatically.
1367With this option enabled, the machine will forward IP datagrams destined
1368for other machines between its interfaces.
1369Note that even without this option, the kernel will
1370still forward some packets (such as source routed packets) -- removing
1371.Em GATEWAY
1372and
1373.Em IPFORWARDING
1374is insufficient to stop all routing through a bastion host on a
1375firewall -- source routing is controlled independently.
1376To turn off source routing, use
1377.Em options IPFORWSRCRT=0
1378(which see).
1379Note that IP forwarding may be turned on and off independently of the
1380setting of the
1381.Em IPFORWARDING
1382option through the use of the
1383.Em net.inet.ip.forwarding
1384sysctl variable.
1385If
1386.Em net.inet.ip.forwarding
1387is 1, IP forwarding is on.
1388See
1389.Xr sysctl 8
1390and
1391.Xr sysctl 3
1392for details.
1393.It Cd options IPFORWSRCRT=value
1394If
1395.Em value
1396is set to zero, source routing of IP datagrams is turned off.
1397If
1398.Em value
1399is set to one (the default) or the option is absent, source routed IP
1400datagrams are forwarded by the machine.
1401Note that source routing of IP packets may be turned on and off
1402independently of the setting of the
1403.Em IPFORWSRCRT
1404option through the use of the
1405.Em net.inet.ip.forwsrcrt
1406sysctl variable.
1407If
1408.Em net.inet.ip.forwsrcrt
1409is 1, forwarding of source routed IP datagrams is on.
1410See
1411.Xr sysctl 8
1412and
1413.Xr sysctl 3
1414for details.
1415.It Cd options IFA_STATS
1416Tells the kernel to maintain per-address statistics on bytes sent
1417and received over (currently) internet and appletalk addresses.
1418.\"This can be a fairly expensive operation, so you probably want to
1419.\"keep this disabled.
1420The option is not recommended as it degrades system stability.
1421.It Cd options IFQ_MAXLEN=value
1422Increases the allowed size of the network interface packet queues.
1423The default queue size is 50 packets, and you do not normally need
1424to increase it.
1425.It Cd options MROUTING
1426Includes support for IP multicast routers.
1427You certainly want
1428.Em INET
1429with this.
1430Multicast routing is controlled by the
1431.Xr mrouted 8
1432daemon.
1433.It Cd options PIM
1434Includes support for Protocol Independent Multicast (PIM) routing.
1435You need
1436.Em MROUTING
1437and
1438.Em INET
1439with this.
1440.It Cd options INET
1441Includes support for the
1442.Tn TCP/IP
1443protocol stack.
1444You almost certainly want this.
1445See
1446.Xr inet 4
1447for details.
1448This option is currently required.
1449.It Cd options INET6
1450Includes support for the
1451.Tn IPv6
1452protocol stack.
1453See
1454.Xr inet6 4
1455for details.
1456Unlike
1457.Em INET ,
1458.Em INET6
1459enables multicast routing code as well.
1460This option requires
1461.Em INET
1462at this moment, but it should not.
1463.It Cd options ND6_DEBUG
1464The option sets the default value of net.inet6.icmp6.nd6_debug to 1,
1465for debugging IPv6 neighbor discovery protocol handling.
1466See
1467.Xr sysctl 3
1468for details.
1469.It Cd options IPSEC
1470Includes support for the
1471.Tn IPsec
1472protocol.
1473See
1474.Xr ipsec 4
1475for details.
1476.It Cd options IPSEC_DEBUG
1477Enables debugging code in
1478.Tn IPsec
1479stack.
1480See
1481.Xr ipsec 4
1482for details.
1483.It Cd options IPSEC_ESP
1484Includes support for
1485.Tn IPsec
1486.Tn ESP
1487protocol.
1488See
1489.Xr ipsec 4
1490for details.
1491.It Cd options ALTQ
1492Enabled ALTQ (Alternate Queueing).
1493For simple rate-limiting, use
1494.Xr tbrconfig 8
1495to set up the interface transmission rate.
1496To use queueing disciplines, their appropriate kernel options should also
1497be defined (documented below).
1498Queueing disciplines are managed by
1499.Xr altqd 8 .
1500See
1501.Xr altq 9
1502for details.
1503.It Cd options ALTQ_HFSC
1504Include support for ALTQ-implemented HFSC (Hierarchical Fair Service Curve)
1505module.
1506HFSC supports both link-sharing and guaranteed real-time services.
1507HFSC employs a service curve based QoS model, and its unique feature
1508is an ability to decouple delay and bandwidth allocation.
1509Requires
1510.Em ALTQ_RED
1511to use the RED queueing discipline on HFSC classes, or
1512.Em ALTQ_RIO
1513to use the RIO queueing discipline on HFSC classes.
1514This option assumes
1515.Em ALTQ .
1516.It Cd options ALTQ_PRIQ
1517Include support for ALTQ-implemented PRIQ (Priority Queueing).
1518PRIQ implements a simple priority-based queueing discipline.
1519A higher priority class is always served first.
1520Requires
1521.Em ALTQ_RED
1522to use the RED queueing discipline on HFSC classes, or
1523.Em ALTQ_RIO
1524to use the RIO queueing discipline on HFSC classes.
1525This option assumes
1526.Em ALTQ .
1527.It Cd options ALTQ_WFQ
1528Include support for ALTQ-implemented WFQ (Weighted Fair Queueing).
1529WFQ implements a weighted-round robin scheduler for a set of queues.
1530A weight can be assigned to each queue to give a different proportion
1531of the link capacity.
1532A hash function is used to map a flow to one of a set of queues.
1533This option assumes
1534.Em ALTQ .
1535.It Cd options ALTQ_FIFOQ
1536Include support for ALTQ-implemented FIFO queueing.
1537FIFOQ is a simple drop-tail FIFO (First In, First Out) queueing discipline.
1538This option assumes
1539.Em ALTQ .
1540.It Cd options ALTQ_RIO
1541Include support for ALTQ-implemented RIO (RED with In/Out).
1542The original RIO has 2 sets of RED parameters; one for in-profile
1543packets and the other for out-of-profile packets.
1544At the ingress of the network, profile meters tag packets as IN or
1545OUT based on contracted profiles for customers.
1546Inside the network, IN packets receive preferential treatment by
1547the RIO dropper.
1548ALTQ/RIO has 3 drop precedence levels defined for the Assured Forwarding
1549PHB of DiffServ (RFC 2597).
1550This option assumes
1551.Em ALTQ .
1552.It Cd options ALTQ_BLUE
1553Include support for ALTQ-implemented Blue buffer management.
1554Blue is another active buffer management mechanism.
1555This option assumes
1556.Em ALTQ .
1557.It Cd options ALTQ_FLOWVALVE
1558Include support for ALTQ-implemented Flowvalve.
1559Flowvalve is a simple implementation of a RED penalty box that identifies
1560and punishes misbehaving flows.
1561This option requires
1562.Em ALTQ_RED
1563and assumes
1564.Em ALTQ .
1565.It Cd options ALTQ_CDNR
1566Include support for ALTQ-implemented CDNR (diffserv traffic conditioner)
1567packet marking/manipulation.
1568Traffic conditioners are components to meter, mark, or drop incoming
1569packets according to some rules.
1570As opposed to queueing disciplines, traffic conditioners handle incoming
1571packets at an input interface.
1572This option assumes
1573.Em ALTQ .
1574.It Cd options ALTQ_NOPCC
1575Disables use of processor cycle counter to measure time in ALTQ.
1576This option should be defined for a non-Pentium i386 CPU which does not
1577have TSC, SMP (per-CPU counters are not in sync), or power management
1578which affects processor cycle counter.
1579This option assumes
1580.Em ALTQ .
1581.It Cd options ALTQ_IPSEC
1582Include support for IPsec in IPv4 ALTQ.
1583This option assumes
1584.Em ALTQ .
1585.It Cd options ALTQ_JOBS
1586Undocumented at this time.
1587.It Cd options ALTQ_AFMAP
1588Include support for an undocumented ALTQ feature that is used to map an IP
1589flow to an ATM VC (Virtual Circuit).
1590This option assumes
1591.Em ALTQ .
1592.It Cd options ALTQ_LOCALQ
1593Include support for ALTQ-implemented local queues.
1594Its practical use is undefined.
1595Assumes
1596.Em ALTQ .
1597.It Cd options SUBNETSARELOCAL
1598Sets default value for net.inet.ip.subnetsarelocal variable, which
1599controls whether non-directly-connected subnets of connected networks
1600are considered "local" for purposes of choosing the MSS for a TCP
1601connection.
1602This is mostly present for historic reasons and completely irrelevant if
1603you enable Path MTU discovery.
1604.It Cd options HOSTZEROBROADCAST
1605Sets default value for net.inet.ip.hostzerobroadcast variable, which
1606controls whether the zeroth host address of each connected subnet is
1607also considered a broadcast address.
1608Default value is "1", for compatibility with old systems; if this is
1609set to zero on all hosts on a subnet, you should be able to fit an extra
1610host per subnet on the
1611".0" address.
1612.It Cd options MCLSHIFT=value
1613This option is the base-2 logarithm of the size of mbuf clusters.
1614The
1615.Bx
1616networking stack keeps network packets in a linked
1617list, or chain, of kernel buffer objects called mbufs.
1618The system provides larger mbuf clusters as an optimization for
1619large packets, instead of using long chains for large packets.
1620The mbuf cluster size,
1621or
1622.Em MCLBYTES ,
1623must be a power of two, and is computed as two raised to the power
1624.Em MCLSHIFT .
1625On systems with Ethernet network adaptors,
1626.Em MCLSHIFT
1627is often set to 11, giving 2048-byte mbuf clusters, large enough to
1628hold a 1500-byte
1629.Tn Ethernet
1630frame in a single cluster.
1631Systems with network interfaces supporting larger frame sizes like
1632.Tn ATM ,
1633.Tn FDDI ,
1634or
1635.Tn HIPPI
1636may perform better with
1637.Em MCLSHIFT
1638set to 12 or 13, giving mbuf cluster sizes of 4096 and 8192 bytes,
1639respectively.
1640.It Cd options NS
1641Include support for the
1642.Tn Xerox
1643.Tn XNS
1644protocol stack.
1645See
1646.Xr ns 4
1647for details.
1648.It Cd options ISO,TPIP
1649Include support for the ubiquitous
1650.Tn OSI
1651protocol stack.
1652See
1653.Xr iso 4
1654for details.
1655This option assumes
1656.Em INET .
1657.It Cd options EON
1658Include support for tunneling
1659.Tn OSI
1660protocols over
1661.Tn IP .
1662Known to be broken, or at least very fragile, and undocumented.
1663.It Cd options CCITT,LLC,HDLC
1664Include support for the
1665.Tn CCITT
1666(nee
1667.Tn ITU-TSS )
1668.Tn X.25
1669protocol stack.
1670The state of this code is currently unknown, and probably contains bugs.
1671This option assumes
1672.Em INET .
1673.It Cd options NETATALK
1674Include support for the
1675.Tn AppleTalk
1676protocol stack.
1677The kernel provides provision for the
1678.Em Datagram Delivery Protocol
1679(DDP), providing SOCK_DGRAM support and
1680.Tn AppleTalk
1681routing.
1682This stack is used by the
1683.Em NETATALK
1684package, which adds support for
1685.Tn AppleTalk
1686server services via user libraries and applications.
1687.It Cd options IPNOPRIVPORTS
1688Normally, only root can bind a socket descriptor to a so-called
1689.Dq privileged
1690.Tn TCP
1691port, that is, a port number in the range 0-1023.
1692This option eliminates those checks from the kernel.
1693This can be useful if there is a desire to allow daemons without
1694privileges to bind those ports, e.g., on firewalls.
1695The security tradeoffs in doing this are subtle.
1696This option should only be used by experts.
1697.It Cd options TCP_COMPAT_42
1698.Tn TCP
1699bug compatibility with
1700.Bx 4.2 .
1701In
1702.Bx 4.2 ,
1703.Tn TCP
1704sequence numbers were 32-bit signed values.
1705Modern implementations of TCP use unsigned values.
1706This option clamps the initial sequence number to start in
1707the range 2^31 rather than the full unsigned range of 2^32.
1708Also, under
1709.Bx 4.2 ,
1710keepalive packets must contain at least one byte or else
1711the remote end would not respond.
1712.It Cd options TCP_DEBUG
1713Record the last
1714.Em TCP_NDEBUG
1715TCP packets with SO_DEBUG set, and decode to the console if
1716.Em tcpconsdebug
1717is set.
1718.It Cd options TCP_NDEBUG
1719Number of packets to record for
1720.Em TCP_DEBUG .
1721Defaults to 100.
1722.It Cd options TCP_SENDSPACE=value
1723.It Cd options TCP_RECVSPACE=value
1724These options set the max TCP window size to other sizes than the default.
1725The TCP window sizes can be altered via
1726.Xr sysctl 8
1727as well.
1728.It Cd options TCP_INIT_WIN=value
1729This option sets the initial TCP window size for non-local connections,
1730which is used when the transmission starts.
1731The default size is 1, but if the machine should act more aggressively,
1732the initial size can be set to some other value.
1733The initial TCP window size can be set via
1734.Xr sysctl 8
1735as well.
1736.It Cd options PFIL_HOOKS
1737This option turns on the packet filter interface hooks.
1738See
1739.Xr pfil 9
1740for details.
1741This option assumes
1742.Em INET .
1743.It Cd options IPFILTER_LOG
1744This option, in conjunction with
1745.Em pseudo-device ipfilter ,
1746enables logging of IP packets using ip-filter.
1747.It Cd options IPFILTER_DEFAULT_BLOCK
1748This option sets the default policy of ip-filter.
1749If it is set, ip-filter will block packets by default.
1750.It Cd options BRIDGE_IPF
1751This option causes
1752.Em bridge
1753devices to use the IP and/or IPv6 filtering hooks, forming
1754a link-layer filter that uses protocol-layer rules.
1755This option assumes the presence of
1756.Em pseudo-device ipfilter .
1757.It Cd options MBUFTRACE
1758This option can help track down mbuf leaks.
1759When enabled, mbufs are tagged with the devices and protocols using them,
1760which slightly decreases network performance.
1761This additional information can be viewed with
1762.Xr netstat 1 :
1763.Dl Ic netstat Fl mssv
1764Not all devices or protocols support this option.
1765.El
1766.Ss Sysctl Related Options
1767.Bl -ohang
1768.It Cd options SYSCTL_DISALLOW_CREATE
1769Disallows the creation or deletion of nodes from the sysctl tree, as
1770well as the assigning of descriptions to nodes that lack them, by any
1771process.
1772These operations are still available to kernel sub-systems, including
1773loadable kernel modules.
1774.It Cd options SYSCTL_DISALLOW_KWRITE
1775Prevents processes from adding nodes to the sysctl tree that make
1776existing kernel memory areas writeable.
1777Sections of kernel memory can still be read and new nodes that own
1778their own data may still be writeable.
1779.It Cd options SYSCTL_DEBUG_SETUP
1780Causes the SYSCTL_SETUP routines to print a brief message when they
1781are invoked.
1782This is merely meant as an aid in determining the order in which
1783sections of the tree are created.
1784.It Cd options SYSCTL_DEBUG_CREATE
1785Prints a message each time
1786.Fn sysctl_create ,
1787the function that adds nodes to the tree, is called.
1788.It Cd options SYSCTL_INCLUDE_DESCR
1789Causes the kernel to include short, human readable descriptions for
1790nodes in the sysctl tree.
1791The descriptions can be retrieved programmatically (see
1792.Xr sysctl 3 ) ,
1793or by the sysctl binary itself (see
1794.Xr sysctl 8 ) .
1795The descriptions are meant to give an indication of the purpose and/or
1796effects of a given node's value, not replace the documentation for the
1797given subsystem as a whole.
1798.El
1799.Ss System V IPC Options
1800.Bl -ohang
1801.It Cd options SYSVMSG
1802Includes support for
1803.At V
1804style message queues.
1805See
1806.Xr msgctl 2 ,
1807.Xr msgget 2 ,
1808.Xr msgrcv 2 ,
1809.Xr msgsnd 2 .
1810.It Cd options SYSVSEM
1811Includes support for
1812.At V
1813style semaphores.
1814See
1815.Xr semctl 2 ,
1816.Xr semget 2 ,
1817.Xr semop 2 .
1818.It Cd options SEMMNI=value
1819Sets the number of
1820.At V
1821style semaphore identifiers.
1822The GENERIC config file for your port will have the default.
1823.It Cd options SEMMNS=value
1824Sets the number of
1825.At V
1826style semaphores in the system.
1827The GENERIC config file for your port will have the default.
1828.It Cd options SEMUME=value
1829Sets the maximum number of undo entries per process for
1830.At V
1831style semaphores.
1832The GENERIC config file for your port will have the default.
1833.It Cd options SEMMNU=value
1834Sets the number of undo structures in the system for
1835.At V
1836style semaphores.
1837The GENERIC config file for your port will have the default.
1838.It Cd options SYSVSHM
1839Includes support for
1840.At V
1841style shared memory.
1842See
1843.Xr shmat 2 ,
1844.Xr shmctl 2 ,
1845.Xr shmdt 2 ,
1846.Xr shmget 2 .
1847.It Cd options SHMMAXPGS=value
1848Sets the maximum number of
1849.At V
1850style shared memory pages that are available through the
1851.Xr shmget 2
1852system call.
1853Default value is 1024 on most ports.
1854See
1855.Pa /usr/include/machine/vmparam.h
1856for the default.
1857.El
1858.Ss VM Related Options
1859.Bl -ohang
1860.It Cd options NMBCLUSTERS=value
1861The number of mbuf clusters the kernel supports.
1862Mbuf clusters are MCLBYTES in size (usually 2k).
1863This is used to compute the size of the kernel VM map
1864.Em mb_map ,
1865which maps mbuf clusters.
1866Default on most ports is 1024 (2048 with
1867.Dq options GATEWAY
1868).
1869See
1870.Pa /usr/include/machine/param.h
1871for exact default information.
1872Increase this value if you get
1873.Dq mclpool limit reached
1874messages.
1875.It Cd options NKMEMPAGES=value
1876.It Cd options NKMEMPAGES_MIN=value
1877.It Cd options NKMEMPAGES_MAX=value
1878Size of kernel VM map
1879.Em kmem_map ,
1880in PAGE_SIZE-sized chunks (the VM page size; this value may be read
1881from the
1882.Xr sysctl 8
1883variable
1884.Em hw.pagesize
1885).
1886This VM map is used to map the kernel malloc arena.
1887The kernel attempts to auto-size this map based on the amount of
1888physical memory in the system.
1889Platform-specific code may place bounds on this computed size,
1890which may be viewed with the
1891.Xr sysctl 8
1892variable
1893.Em vm.nkmempages .
1894See
1895.Pa /usr/include/machine/param.h
1896for the default upper and lower bounds.
1897The related options
1898.Sq NKMEMPAGES_MIN
1899and
1900.Sq NKMEMPAGES_MAX
1901allow the bounds to be overridden in the kernel configuration file.
1902These options are provided in the event the computed value is
1903insufficient resulting in an
1904.Dq out of space in kmem_map
1905panic.
1906.It Cd options SB_MAX=value
1907Sets the max size in bytes that a socket buffer is allowed to occupy.
1908The default is 256k, but sometimes it needs to be increased, for example
1909when using large TCP windows.
1910This option can be changed via
1911.Xr sysctl 8
1912as well.
1913.It Cd options SOMAXKVA=value
1914Sets the maximum size of kernel virtual memory that the socket buffers
1915are allowed to use.
1916The default is 16MB, but in situations where for example large TCP
1917windows are used this value must also be increased.
1918This option can be changed via
1919.Xr sysctl 8
1920as well.
1921.It Cd options BUFCACHE=value
1922Size of the buffer cache as a percentage of total available
1923.Tn RAM .
1924Ignored if BUFPAGES is also specified.
1925.It Cd options NBUF=value
1926Sets the number of buffer headers available, i.e., the number of
1927open files that may have a buffer cache entry.
1928Each buffer header
1929requires MAXBSIZE (machine dependent, but usually 65536) bytes.
1930The default value is machine dependent, but is usually equal to the
1931value of BUFPAGES.
1932If an architecture dependent VM_MAX_KERNEL_BUF constant is defined
1933then NBUF may be reduced at run time so that the storage allocated
1934for buffer headers doesn't exceed that limit.
1935.It Cd options BUFPAGES=value
1936These options set the number of pages available for the buffer cache.
1937Their default value is a machine dependent value, often calculated as
1938between 5% and 10% of total available
1939.Tn RAM .
1940.It Cd options MAXTSIZ=bytes
1941Sets the maximum size limit of a process' text segment.
1942See
1943.Pa /usr/include/machine/vmparam.h
1944for the port-specific default.
1945.It Cd options DFLDSIZ=bytes
1946Sets the default size limit of a process' data segment, the value that
1947will be returned as the soft limit for
1948.Dv RLIMIT_DATA
1949(as returned by
1950.Xr getrlimit 2 ) .
1951See
1952.Pa /usr/include/machine/vmparam.h
1953for the port-specific default.
1954.It Cd options MAXDSIZ=bytes
1955Sets the maximum size limit of a process' data segment, the value that
1956will be returned as the hard limit for
1957.Dv RLIMIT_DATA
1958(as returned by
1959.Xr getrlimit 2 ) .
1960See
1961.Pa /usr/include/machine/vmparam.h
1962for the port-specific default.
1963.It Cd options DFLSSIZ=bytes
1964Sets the default size limit of a process' stack segment, the value that
1965will be returned as the soft limit for
1966.Dv RLIMIT_STACK
1967(as returned by
1968.Xr getrlimit 2 ) .
1969See
1970.Pa /usr/include/machine/vmparam.h
1971for the port-specific default.
1972.It Cd options MAXSSIZ=bytes
1973Sets the maximum size limit of a process' stack segment, the value that
1974will be returned as the hard limit for
1975.Dv RLIMIT_STACK
1976(as returned by
1977.Xr getrlimit 2 ) .
1978See
1979.Pa /usr/include/machine/vmparam.h
1980for the port-specific default.
1981.It Cd options DUMP_ON_PANIC=integer
1982Defaults to one.
1983If set to zero, the kernel will not dump to the dump device when
1984it panics, though dumps can still be forced via
1985.Xr ddb 4
1986with the
1987.Dq sync
1988command.
1989Note that this sets the value of the
1990.Em kern.dump_on_panic
1991.Xr sysctl 3
1992variable which may be changed at run time -- see
1993.Xr sysctl 8
1994for details.
1995.It Cd options USE_TOPDOWN_VM
1996User space memory allocations (as made by
1997.Xr mmap 2 )
1998will be arranged in a
1999.Dq top down
2000fashion instead of the traditional
2001.Dq upwards from MAXDSIZ \+ vm_daddr
2002method.
2003This includes the placement of
2004.Xr ld.so 1 .
2005Arranging memory in this manner allows either (or both of) the heap or
2006.Xr mmap 2
2007allocated space to grow larger than traditionally possible.
2008This option is not available on all ports, but is instead expected to be
2009offered on a port-by-port basis, after which some ports will commit to
2010using it by default.
2011See the files
2012.Pa /usr/include/uvm/uvm_param.h
2013for some implementation details, and
2014.Pa /usr/include/machine/vmparam.h
2015for port specific details including availability.
2016.El
2017.Ss amiga-specific Options
2018.Bl -ohang
2019.It Cd options BB060STUPIDROM
2020When the bootloader (which passes
2021.Tn AmigaOS
2022.Tn ROM
2023information) claims we have a 68060
2024.Tn CPU
2025without
2026.Tn FPU ,
2027go look into the Processor Configuration Register (PCR) to find out.
2028You need this with
2029.Tn Amiga
2030.Tn ROM Ns s
2031up to (at least) V40.xxx (OS3.1),
2032when you boot via the bootblocks and don't have a DraCo.
2033.It Cd options IOBZCLOCK=frequency
2034The IOBlix boards come with two different serial master clocks: older ones
2035use 24 MHz, newer ones use 22.1184 MHz.
2036The driver normally assumes the latter.
2037If your board uses 24 MHz, you can recompile your kernel with
2038options IOBZCLOCK=24000000
2039or patch the kernel variable
2040.Tn iobzclock
2041to the same value.
2042.It Cd options LIMITMEM=value
2043If there, limit the part of the first memory bank used by
2044.Nx
2045to value megabytes.
2046Default is unlimited.
2047.It Cd options NKPTADD=addvalue
2048.It Cd options NKPTADDSHIFT=shiftvalue
2049The
2050.Tn CPU
2051specific
2052.Tn MMU
2053table for the kernel is pre-allocated at kernel startup time.
2054Part of it is scaled with
2055.Va maxproc ,
2056to have enough room to hold the user program
2057.Tn MMU
2058tables; the second part is a fixed amount for the kernel itself.
2059.Pp
2060The third part accounts for the size of the file buffer cache.
2061Its size is either
2062.Dv NKPTADD
2063pages (if defined) or memory size in bytes divided by two to
2064the power of
2065.Dv NKPTADDSHIFT .
2066The default is undefined
2067.Dv NKPTADD
2068and
2069.Dv NKPTADDSHIFT=24 ,
2070allowing for 16 buffers per megabyte of main memory (while
2071a GENERIC kernel allocates about half of that).
2072When you get "can't get KPT page" panics, you should increase
2073.Dv NKPTADD
2074(if defined), or decrease
2075.Dv NKPTADDSHIFT
2076by one.
2077.It Cd options P5PPC68KBOARD
2078Add special support for Phase5 mixed 68k+PPC boards.
2079Currently, this only affects rebooting from
2080.Nx
2081and is only needed on 68040+PPC, not on
208268060+PPC; without this, affected machines will hang after
2083.Nx
2084has shut
2085down and will only restart after a keyboard reset or a power cycle.
2086.El
2087.Ss arm32-specific Options
2088.Bl -ohang
2089.It Cd options FRENCH_KBD
2090Include translation for French keyboards when using
2091.Em pccons
2092on a Shark.
2093.It Cd options FINNISH_KBD
2094Include translation for Finnish keyboards when using
2095.Em pccons
2096on a Shark.
2097.It Cd options GERMAN_KBD
2098Include translation for German keyboards when using
2099.Em pccons
2100on a Shark.
2101.It Cd options NORWEGIAN_KBD
2102Include translation for French keyboards when using
2103.Em pccons
2104on a Shark.
2105.El
2106.Ss atari-specific Options
2107.Bl -ohang
2108.It Cd options DISKLABEL_AHDI
2109Include support for AHDI (native Atari) disklabels.
2110.It Cd options DISKLABEL_NBDA
2111Include support for
2112.Nx Ns Tn /atari
2113labels.
2114If you don't set this option, it will be set automatically.
2115.Nx Ns Tn /atari
2116will not work without it.
2117.It Cd options FALCON_SCSI
2118Include support for the 5380-SCSI configuration as found on the Falcon.
2119.It Cd options RELOC_KERNEL
2120If set, the kernel will relocate itself to TT-RAM, if possible.
2121This will give you a slightly faster system.
2122.Em Beware
2123that on some TT030 systems,
2124the system will frequently dump with MMU-faults with this option enabled.
2125.It Cd options SERCONSOLE
2126Allow the modem1-port to act as the system-console.
2127A carrier should be active on modem1 during system boot to active
2128the console functionality.
2129.It Cd options TT_SCSI
2130Include support for the 5380-SCSI configuration as found on the TT030
2131and Hades.
2132.El
2133.Ss i386-specific Options
2134.Bl -ohang
2135.It Cd options I386_CPU,I486_CPU,I586_CPU,I686_CPU
2136Include support for a particular class of
2137.Tn CPU
2138.Po
2139.Tn i386 ,
2140.Tn i486 ,
2141.Tn Pentium ,
2142or
2143.Tn Pentium Pro
2144.Pc .
2145If the appropriate class for your
2146.Tn CPU
2147is not configured, the kernel will use the highest class available
2148that will work.
2149In general, using the correct
2150.Tn CPU
2151class will result in the best performance.
2152At least one of these options must be present.
2153.It Cd options ENHANCED_SPEEDSTEP
2154Include support for the
2155.Tn Enhanced SpeedStep Technology
2156present in newer
2157.Tn CPU Ns s .
2158.It Cd options EST_FREQ_USERWRITE
2159Allow any user to change the frequency of an
2160.Tn Enhanced SpeedStep Technology
2161capable
2162.Tn CPU .
2163.It Cd options CPURESET_DELAY=value
2164Specifies the time (in millisecond) to wait before doing a hardware reset
2165in the last phase of a reboot.
2166This gives the user a chance to see error messages from the shutdown
2167operations (like NFS unmounts, buffer cache flush, etc ...).
2168Setting this to 0 will disable the delay.
2169Default is 2 seconds.
2170.It Cd options MATH_EMULATE
2171Include the floating point emulator.
2172This is useful only for
2173.Tn CPU Ns s
2174that lack an
2175internal Floating Point Unit
2176.Pq Tn FPU
2177or co-processor.
2178.It Cd options VM86
2179Include support for virtual 8086 mode, used by
2180.Tn DOS
2181emulators and X servers to run BIOS code, e.g., for some VESA routines.
2182.It Cd options USER_LDT
2183Include i386-specific system calls for modifying the local descriptor table,
2184used by Windows emulators.
2185.It Cd options REALBASEMEM=integer
2186Overrides the base memory size passed in from the boot block.
2187(Value given in kilobytes.)
2188Use this option only if the boot block reports the size incorrectly.
2189(Note that some
2190.Tn BIOS Ns es
2191put the extended
2192.Tn BIOS
2193data area at the top of base memory, and therefore report a smaller
2194base memory size to prevent programs overwriting it.
2195This is correct behavior, and you should not use the
2196.Em REALBASEMEM
2197option to access this memory).
2198.It Cd options REALEXTMEM=integer
2199Overrides the extended memory size passed in from the boot block.
2200(Value given in kilobytes.
2201Extended memory does not include the first megabyte.)
2202Use this option only if the boot block reports the size incorrectly.
2203.It Cd options FRENCH_KBD,FINNISH_KBD,GERMAN_KBD,NORWEGIAN_KBD
2204Select a non-US keyboard layout for the
2205.Em pccons
2206console driver.
2207.It Cd options CYRIX_CACHE_WORKS
2208Relevant only to the Cyrix 486DLC CPU.
2209This option is used to turn on the cache in hold-flush mode.
2210It is not turned on by default because it is known to have problems in
2211certain motherboard implementations.
2212.It Cd options CYRIX_CACHE_REALLY_WORKS
2213Relevant only to the Cyrix 486DLC CPU.
2214This option is used to turn on the cache in write-back mode.
2215It is not turned on by default because it is known to have problems in
2216certain motherboard implementations.
2217In order for this option to take effect, option
2218.Em CYRIX_CACHE_WORKS
2219must also be specified.
2220.It Cd options PCIBIOS
2221Enable support for initializing the
2222.Tn PCI
2223bus using information from the
2224.Tn BIOS .
2225See
2226.Xr pcibios 4
2227for details.
2228.It Cd options KSTACK_CHECK_DR0
2229Detect kernel stack overflow using DR0 register.
2230This option uses DR0 register exclusively so you can't use DR0 register for
2231other purpose (e.g., hardware breakpoint) if you turn this on.
2232.It Cd options MTRR
2233Include support for accessing MTRR registers from user-space.
2234See
2235.Xr i386_get_mtrr 2 .
2236.It Cd options BEEP_ONHALT
2237Make the system speaker emit several beeps when it is completely safe to
2238power down the computer after a
2239.Xr halt 8
2240command.
2241Requires
2242.Xr sysbeep 4
2243support.
2244.It Cd options BEEP_ONHALT_COUNT=times
2245Number of times to beep the speaker when
2246.Cd options BEEP_ONHALT
2247is enabled.
2248Defaults to 3.
2249.It Cd options BEEP_ONHALT_PITCH=hz
2250The tone frequency used when
2251.Cd options BEEP_ONHALT
2252option, in hertz.
2253Defaults to 1500.
2254.It Cd options BEEP_ONHALT_PERIOD=msecs
2255The duration of each beep when
2256.Cd options BEEP_ONHALT
2257is enabled, in milliseconds.
2258Defaults to 250.
2259.El
2260.Ss isa-specific Options
2261Options specific to
2262.Xr isa 4
2263busses.
2264.Bl -ohang
2265.It Cd options PCIC_ISA_ALLOC_IOBASE=address, PCIC_ISA_ALLOC_IOSIZE=size
2266Control the section of IO bus space used for PCMCIA bus space mapping.
2267Ideally the probed defaults are satisfactory, however in practice
2268that is not always the case.
2269See
2270.Xr pcmcia 4
2271for details.
2272.It Cd options PCIC_ISA_INTR_ALLOC_MASK=mask
2273Controls the allowable interrupts that may be used for
2274.Tn PCMCIA
2275devices.
2276This mask is a logical-or of power-of-2s of allowable interrupts:
2277.Bd -literal -offset 04n
2278.Em "IRQ Val      IRQ Val      IRQ Val       IRQ Val"
2279 0  0x0001    4  0x0010    8  0x0100    12  0x1000
2280 1  0x0002    5  0x0020    9  0x0200    13  0x2000
2281 2  0x0004    6  0x0040   10  0x0400    14  0x4000
2282 3  0x0008    7  0x0080   11  0x0800    15  0x8000
2283.Ed
2284.El
2285.Ss m68k-specific Options
2286.Bl -ohang
2287.It Cd options FPU_EMULATE
2288Include support for MC68881/MC68882 emulator.
2289.It Cd options FPSP
2290Include support for 68040 floating point.
2291.It Cd options M68020,M68030,M68040,M68060
2292Include support for a specific
2293.Tn CPU ,
2294at least one (the one you are using) should be specified.
2295.It Cd options M060SP
2296Include software support for 68060.
2297This provides emulation of unimplemented
2298integer instructions as well as emulation of unimplemented floating point
2299instructions and data types and software support for floating point traps.
2300.El
2301.Ss powerpc-specific Options
2302.Bl -ohang
2303.It Cd options PMAP_MEMLIMIT=value
2304Limit the amount of memory seen by the kernel to
2305.Ar value
2306bytes (OEA only).
2307.El
2308.Ss sparc-specific Options
2309.Bl -ohang
2310.It Cd options AUDIO_DEBUG
2311Enable simple event debugging of the logging of the
2312.Xr audio 4
2313device.
2314.It Cd options BLINK
2315Enable blinking of LED.
2316Blink rate is full cycle every N seconds for
2317N \*[Lt] then current load average.
2318See
2319.Xr getloadavg 3 .
2320.\" .It Cd options COLORFONT_CACHE
2321.\" What does this do?
2322.It Cd options COUNT_SW_LEFTOVERS
2323Count how many times the sw SCSI device has left 3, 2, 1 and 0 in the
2324sw_3_leftover, sw_2_leftover, sw_1_leftover, and sw_0_leftover
2325variables accessible from
2326.Xr ddb 4 .
2327See
2328.Xr sw 4 .
2329.It Cd options DEBUG_ALIGN
2330Adds debugging messages calls when user-requested alignment fault
2331handling happens.
2332.It Cd options DEBUG_EMUL
2333Adds debugging messages calls for emulated floating point and
2334alignment fixing operations.
2335.It Cd options DEBUG_SVR4
2336Prints registers messages calls for emulated SVR4 getcontext and
2337setcontext operations.
2338See
2339.Em options COMPAT_SVR4 .
2340.It Cd options EXTREME_DEBUG
2341Adds debugging functions callable from
2342.Xr ddb 4 .
2343The debug_pagetables, test_region and print_fe_map
2344functions print information about page tables for the SUN4M
2345platforms only.
2346.It Cd options EXTREME_EXTREME_DEBUG
2347Adds extra info to
2348.Em options EXTREME_DEBUG .
2349.It Cd options FPU_CONTEXT
2350Make
2351.Em options COMPAT_SVR4
2352getcontext and setcontext include floating point registers.
2353.It Cd options MAGMA_DEBUG
2354Adds debugging messages to the
2355.Xr magma 4
2356device.
2357.It Cd options RASTERCONS_FULLSCREEN
2358Use the entire screen for the console.
2359.It Cd options RASTERCONS_SMALLFONT
2360Use the Fixed font on the console, instead of the normal font.
2361.It Cd options SUN4
2362Support sun4 class machines.
2363.It Cd options SUN4C
2364Support sun4c class machines.
2365.It Cd options SUN4M
2366Support sun4m class machines.
2367.It Cd options SUN4_MMU3L
2368.\" XXX ???
2369Enable support for sun4 3-level MMU machines.
2370.It Cd options V9
2371Enable SPARC V9 assembler in
2372.Xr ddb 4 .
2373.El
2374.Ss sparc64-specific Options
2375.Bl -ohang
2376.It Cd options AUDIO_DEBUG
2377Enable simple event debugging of the logging of the
2378.Xr audio 4
2379device.
2380.It Cd options BLINK
2381Enable blinking of LED.
2382Blink rate is full cycle every N seconds for
2383N \*[Lt] then current load average.
2384See
2385.Xr getloadavg 3 .
2386.El
2387.Ss x68k-specific Options
2388.Bl -ohang
2389.It Cd options EXTENDED_MEMORY
2390Include support for extended memory, e.g., TS-6BE16 and 060turbo on-board.
2391.It Cd options JUPITER
2392Include support for Jupiter-X MPU accelerator
2393.It Cd options ZSCONSOLE,ZSCN_SPEED=value
2394Use the built-in serial port as the system-console.
2395Speed is specified in bps, defaults to 9600.
2396.It Cd options ITE_KERNEL_ATTR=value
2397Set the kernel message attribute for ITE.
2398Value, an integer, is a logical or of the following values:
2399.Bl -tag -width 4n -compact -offset indent
2400.It 1
2401color inversed
2402.It 2
2403underlined
2404.It 4
2405bolded
2406.El
2407.El
2408.\" The following requests should be uncommented and used where appropriate.
2409.\" .Sh FILES
2410.\" .Sh EXAMPLES
2411.Sh SEE ALSO
2412.Xr gdb 1 ,
2413.Xr ktrace 1 ,
2414.Xr pmc 1 ,
2415.Xr quota 1 ,
2416.Xr gettimeofday 2 ,
2417.Xr i386_get_mtrr 2 ,
2418.Xr i386_iopl 2 ,
2419.Xr msgctl 2 ,
2420.Xr msgget 2 ,
2421.Xr msgrcv 2 ,
2422.Xr msgsnd 2 ,
2423.Xr ntp_adjtime 2 ,
2424.Xr ntp_gettime 2 ,
2425.Xr semctl 2 ,
2426.Xr semget 2 ,
2427.Xr semop 2 ,
2428.Xr shmat 2 ,
2429.Xr shmctl 2 ,
2430.Xr shmdt 2 ,
2431.Xr shmget 2 ,
2432.Xr sysctl 3 ,
2433.Xr apm 4 ,
2434.Xr ddb 4 ,
2435.Xr inet 4 ,
2436.Xr iso 4 ,
2437.Xr lkm 4 ,
2438.Xr md 4 ,
2439.Xr ns 4 ,
2440.Xr pcibios 4 ,
2441.Xr pcmcia 4 ,
2442.Xr ppp 4 ,
2443.Xr userconf 4 ,
2444.Xr wscons 4 ,
2445.Xr config 8 ,
2446.Xr edquota 8 ,
2447.Xr init 8 ,
2448.Xr mdsetimage 8 ,
2449.Xr mount_cd9660 8 ,
2450.Xr mount_fdesc 8 ,
2451.Xr mount_kernfs 8 ,
2452.Xr mount_lfs 8 ,
2453.Xr mount_mfs 8 ,
2454.Xr mount_msdos 8 ,
2455.Xr mount_nfs 8 ,
2456.Xr mount_ntfs 8 ,
2457.Xr mount_null 8 ,
2458.Xr mount_portal 8 ,
2459.Xr mount_procfs 8 ,
2460.Xr mount_umap 8 ,
2461.Xr mount_union 8 ,
2462.Xr mrouted 8 ,
2463.Xr newfs_lfs 8 ,
2464.Xr ntpd 8 ,
2465.Xr quotaon 8 ,
2466.Xr rpc.rquotad 8 ,
2467.Xr sysctl 8
2468.Sh HISTORY
2469The
2470.Nm
2471man page first appeared in
2472.Nx 1.3 .
2473.Sh BUGS
2474The
2475.Em INET
2476option should not be required.
2477The
2478.Em EON
2479option should be a pseudo-device, and is also very fragile.
2480