xref: /netbsd-src/share/man/man4/options.4 (revision 220b5c059a84c51ea44107ea8951a57ffaecdc8c)
1.\"	$NetBSD: options.4,v 1.157 2001/12/05 15:05:15 wiz 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 20, 2001
34.Os
35.Dt OPTIONS 4
36.Sh NAME
37.Nm options
38.Nd Miscellaneous kernel configuration options
39.Sh SYNOPSIS
40.Cd options ...
41.Sh DESCRIPTION
42This manual page describes a number of miscellaneous kernel
43configuration options that may be specified in a kernel config
44file.
45See
46.Xr config 8
47for information on how to configure and build kernels.
48.Em Note :
49Options are passed to the compile process as -D flags to the C
50compiler.
51.Ss Compatibility Options
52.Bl -ohang
53.It Cd options COMPAT_09
54Enable binary compatibility with
55.Nx 0.9 .
56This enables support for
5716-bit user, group, and process ids (following revisions support
5832-bit identifiers),
59It also allows the use of the deprecated
60.Xr getdomainname 3 ,
61.Xr setdomainname 3 ,
62and
63.Xr uname 3
64syscalls.
65This option also allows using numeric filesystem identifiers rather
66than strings.
67Post
68.Nx 0.9
69versions use string identifiers.
70.It Cd options COMPAT_10
71Enable binary compatibility with
72.Nx 1.0 .
73This option allows the use of the filesystem name of
74.Dq ufs
75as an alias for
76.Dq ffs .
77The name
78.Dq ffs
79should be used post 1.0 in
80.Pa /etc/fstab
81and other files.
82It also adds old syscalls for the
83.At V
84shared memory interface.
85This was changed post 1.0 to work on 64-bit architectures.
86This option also enables
87.Dq sgtty
88compatibility, without which programs using the old interface produce
89an
90.Dq inappropriate ioctl
91error, and
92.Pa /dev/io
93only works when this option is set in the kernel,
94see
95.Xr io 4
96on ports that support it.
97.It Cd options COMPAT_11
98Enable binary compatibility with
99.Nx 1.1 .
100This allows binaries running on the i386 port to gain direct access to
101the io ports by opening
102.Pa /dev/io
103read/write.
104This functionality was replaced by
105.Xr i386_iopl 2
106post 1.1.
107On the
108.Tn Atari
109port, the location of the disk label was moved after 1.1.
110When the
111.Em COMPAT_11
112option is set, the kernel will read (pre) 1.1 style disk labels as a
113last resort.
114When a disklabel is re-written, the old style label will be replaced
115with a post 1.1 style label.
116.It Cd options COMPAT_12
117Enable binary compatibility with
118.Nx 1.2 .
119This allows the use of old syscalls for
120.Fn reboot
121and
122.Fn swapon .
123The syscall numbers were changed post 1.2 to add functionality to the
124.Xr reboot 2
125syscall, and the new
126.Xr swapctl 2
127interface was introduced.
128.It Cd options COMPAT_13
129Enable binary compatibility with
130.Nx 1.3 .
131This allows the use of old syscalls for
132.Fn sigaltstack ,
133and also enables the old
134.Xr swapctl 2
135command
136.Dv SWAP_STATS
137(now called
138.Dv SWAP_OSTATS ) ,
139which does not include the
140.Fa se_path
141member of
142.Va struct swapent .
143.It Cd options COMPAT_14
144Enable binary compatibility with
145.Nx 1.4 .
146This allows some old
147.Xr ioctl 2
148on
149.Xr wscons 4
150to be performed, and allows the
151.Dv NFSSVC_BIOD
152mode of the
153.Xr nfssvc 2
154system call to be used for compatibility with the deprecated nfsiod program.
155.It Cd options COMPAT_43
156Enables compatibility with
157.Bx 4.3 .
158This adds an old syscall for
159.Xr lseek 2 .
160It also adds the ioctls for
161.Dv TIOCGETP
162and
163.Dv TIOCSETP .
164The return values for
165.Xr getpid 2 ,
166.Xr getgid 2 ,
167and
168.Xr getuid 2
169syscalls are modified as well, to return the parent's pid and
170uid as well as the current process's.
171It also enables the deprecated
172.Dv NTTYDISC
173terminal line discipline.
174It also provides backwards compatibility with
175.Dq old
176SIOC[GS]IF{ADDR,DSTADDR,BRDADDR,NETMASK} interface ioctls, including
177binary compatibility with code written before the introduction of the
178sa_len field in sockaddrs.
179It also enables
180support for some older pre
181.Bx 4.4
182socket calls.
183.It Cd options COMPAT_SVR4
184On those architectures that support it, this enables binary
185compatibility with
186.At V.4
187applications built for the same architecture.
188This currently includes the i386, m68k and sparc port.
189.It Cd options COMPAT_LINUX
190On those architectures that support it, this enables binary
191compatibility with Linux ELF and
192.Xr a.out 5
193applications built for the same architecture.
194This currently includes the alpha, i386, powerpc, and m68k
195ports. There is also a minimal support for running Linux
196binaries on Mips ports, but it is experimental at
197the moment.
198.It Cd options COMPAT_SUNOS
199On those architectures that support it, this enables binary
200compatibility with
201.Tn SunOS 4.1
202applications built for the same architecture.
203This currently includes the sparc, sparc64 and most or all m68k ports.
204Note that the sparc64 requires the
205.Em COMPAT_NETBSD32
206option for 64-bit kernels, in addition to this option.
207.It Cd options COMPAT_ULTRIX
208On those architectures that support it, this enables binary
209compatibility with
210.Tn Ultrix
211applications built for the same architecture.
212This currently is limited to the pmax.
213The functionality of this option is unknown.
214.It Cd options COMPAT_FREEBSD
215On those architectures that support it, this enables binary
216compatibility with
217.Fx
218applications built for the same architecture.
219At the moment this is limited to the i386 port.
220.It Cd options COMPAT_HPUX
221On those architectures that support it, this enables binary
222compatibility with
223.Tn HP/UX
224applications built for the same architecture.
225This is limited to the hp300 port, and has some known bugs.
226A limited set of programs do work.
227.It Cd options COMPAT_IBCS2
228On those architectures that support it, this enables binary
229compatibility with iBCS2 or SVR3 applications built for the same architecture.
230This is currently limited to the i386 and vax ports.
231.It Cd options COMPAT_IRIX
232On those architectures that support it, this enables binary
233compatibility with IRIX o32 binaries built for the same architecture.
234This feature is highly experimental, and it is currently limited to
235the sgimips port of
236.Nx .
237.It Cd options COMPAT_OSF1
238On those architectures that support it, this enables binary
239compatibility with
240.Tn Digital
241.Ux
242.Po
243formerly
244.Tn OSF/1
245.Pc
246applications built for the same architecture.
247This is currently limited to the alpha port.
248.It Cd options COMPAT_NOMID
249Enable compatibility with
250.Xr a.out 5
251executables that lack a machine ID.
252This includes
253.Nx 0.8 Ns 's
254ZMAGIC format, and 386BSD and BSDI's
255QMAGIC, NMAGIC, and OMAGIC
256.Xr a.out 5
257formats.
258.It Cd options COMPAT_NETBSD32
259On those architectures that support it, this enables binary
260compatibility with 32-bit applications built for the same architecture.
261This is currently limited to the sparc64 port, and only applicable for
26264-bit kernels.
263.It Cd options COMPAT_SVR4_32
264On those architectures that support it, this enables binary
265compatibility with 32-bit SVR4 applications built for the same architecture.
266This is currently limited to the sparc64 port, and only applicable for
26764-bit kernels.
268.It Cd options COMPAT_AOUT_M68K
269On m68k architectures which have switched to ELF,
270this enable binary compatibility with
271.Nx Ns Tn /m68k
272.Xr a.out 5
273executables on
274.Nx Ns Tn /m68k
275ELF kernel.
276This handles alignment incompatibility of m68k ABI between
277a.out and ELF which causes the structure padding differences.
278Currently only some system calls which use
279.Va struct stat
280are adjusted and some binaries which use
281.Xr sysctl 3
282to retrieve network details would not work properly.
283.El
284.Ss Debugging Options
285.Bl -ohang
286.It Cd options DDB
287Compiles in a kernel debugger for diagnosing kernel problems.
288See
289.Xr ddb 4
290for details.
291.Em NOTE :
292not available on all architectures.
293.It Cd options DDB_FROMCONSOLE=integer
294If set to non-zero, DDB may be entered by sending a break on a serial
295console or by a special key sequence on a graphics console.
296A value of "0" ignores console breaks or key sequences,
297It not explicitly specified, the default value is "1".
298Note that this sets the value of the
299.Em ddb.fromconsole
300.Xr sysctl 3
301variable which may be changed at run time -- see
302.Xr sysctl 8
303for details.
304.It Cd options DDB_HISTORY_SIZE=integer
305If this is non-zero, enable history editing in the kernel debugger
306and set the size of the history to this value.
307.It Cd options DDB_ONPANIC
308If set to non-zero, DDB will be entered upon kernel panic.
309The default if not specified is "1".
310Note that this sets the value of the
311.Em ddb.onpanic
312.Xr sysctl 3
313variable which may be changed at run time -- see
314.Xr sysctl 8
315for details.
316.It Cd options DDB_BREAK_CHAR=integer
317This option overrides the using break to enter the kernel debugger
318on the serial console.
319The value given will is the ascii value to be used instead.
320This is currently only supported by the com driver.
321.It Cd options KGDB
322Compiles in a remote kernel debugger stub for diagnosing kernel problems
323using the
324.Dq remote target
325feature of gdb.
326See
327.Xr gdb 1
328for details.
329.Em NOTE :
330not available on all architectures.
331.It Cd options KGDB_DEV
332Device number
333.Po
334as a
335.Dv dev_t
336.Pc
337of kgdb device.
338.It Cd options KGDB_DEVADDR
339Memory address of kgdb device.
340.It Cd options KGDB_DEVMODE
341Permissions of kgdb device.
342.It Cd options KGDB_DEVNAME
343Device name of kgdb device.
344.It Cd options KGDB_DEVRATE
345Baud rate of kgdb device.
346.It Cd makeoptions DEBUG="-g"
347The -g flag causes
348.Pa netbsd.gdb
349to be built in addition to
350.Pa netbsd .
351.Pa netbsd.gdb
352is useful for debugging kernel crash dumps with gdb.
353The command
354.Dl gdb -k
355invokes gdb in kernel debugger mode.
356See
357.Xr gdb 1
358for details.
359This also turns on
360.Em options DEBUG
361(which see).
362.It Cd options DEBUG
363Turns on miscellaneous kernel debugging.
364Since options are turned into preprocessor defines (see above),
365.Em options DEBUG
366is equivalent to doing a
367.Em #define DEBUG
368throughout the kernel.
369Much of the kernel has
370.Em #ifdef DEBUG
371conditionalized debugging code.
372Note that many parts of the kernel (typically device drivers) include their own
373.Em #ifdef XXX_DEBUG
374conditionals instead.
375This option also turns on certain other options,
376which may decrease system performance.
377.It Cd options DIAGNOSTIC
378Adds code to the kernel that does internal consistency checks.
379This code will cause the kernel to panic if corruption of internal data
380structures is detected. These checks can decrease performance up to 15%.
381.It Cd options KTRACE
382Add hooks for the system call tracing facility, which allows users to
383watch the system call invocation behavior of processes.
384See
385.Xr ktrace 1
386for details.
387.It Cd options MSGBUFSIZE=integer
388This option sets the size of the kernel message buffer.
389This buffer holds the kernel output of
390.Fn printf
391when not (yet) read by
392.Xr syslogd 8 .
393This is particularly useful when the system has crashed and you wish to lookup
394the kernel output from just before the crash.
395Also, since the autoconfig output becomes more and more verbose,
396it sometimes happens that the message buffer overflows before
397.Xr syslogd 8
398was able to read it.
399Note that not all systems are capable of obtaining a variable sized message
400buffer.
401There are also some systems on which memory contents are not preserved
402across reboots.
403.It Cd options MALLOCLOG
404Enables an event log for
405.Xr malloc 9 .
406Useful for tracking down
407.Dq Data modified on freelist
408and
409.Dq multiple free
410problems.
411.It Cd options MALLOCLOGSIZE=integer
412Defines the number of entries in the malloc log.
413Default is 100000 entries.
414.It Cd options UVMHIST
415Enables the UVM history logs, which create in-memory traces of
416various UVM activities. These logs can be displayed be calling
417.Fn uvmhist_dump
418or
419.Fn uvm_hist
420with appropriate arguments from DDB.
421See the kernel source file sys/uvm/uvm_stat.c for details.
422.It Cd options UVMHIST_PRINT
423Prints the UVM history logs on the system console as entries are added.
424Note that the output is
425.Em extremely
426voluminous, so this option is really only useful for debugging
427the very earliest parts of kernel initialization.
428.El
429.Ss File Systems
430.Bl -ohang
431.It Cd file-system FFS
432Includes code implementing the Berkeley Fast File System
433.Em ( FFS ) .
434Most machines need this if they are not running diskless.
435.It Cd file-system EXT2FS
436Includes code implementing the Second Extended File System
437.Em ( EXT2FS )
438, revision 0 and revision 1 with the
439.Em filetype
440and
441.Em sparse_super
442options.  This is the most commonly used file system on the Linux operating
443system, and is provided here for compatibility.
444Some of the specific features of
445.Em EXT2FS
446like the "behavior on errors" are not implemented.
447This file system can't be used with UID or GID greater than 65535.
448See
449.Xr mount_ext2fs 8
450for details.
451.It Cd file-system LFS
452.Em [EXPERIMENTAL]
453Include the Log-structured File System
454.Em ( LFS ) .
455See
456.Xr mount_lfs 8
457and
458.Xr newfs_lfs 8
459for details.
460.It Cd file-system MFS
461Include the Memory File System
462.Em ( MFS ) .
463This file system stores files in swappable memory, and produces
464notable performance improvements when it is used as the file store
465for
466.Pa /tmp
467and similar file systems.
468See
469.Xr mount_mfs 8
470for details.
471.It Cd file-system NFS
472Include the client side of the Network File System
473.Pq Tn NFS
474remote file sharing protocol.
475Although the bulk of the code implementing
476.Tn NFS
477is kernel based, several user level daemons are needed for it to work.
478See
479.Xr mount_nfs 8
480for details.
481.It Cd file-system CD9660
482Includes code for the
483.Tn ISO
4849660 + Rock Ridge file system, which is the standard file system on many
485.Tn CD-ROM
486discs.
487Useful primarily if you have a
488.Tn CD-ROM
489drive.
490See
491.Xr mount_cd9660 8
492for details.
493.It Cd file-system MSDOSFS
494Includes the
495.Tn MS-DOS
496FAT file system, which is reportedly still used
497by unfortunate people who have not heard about
498.Nx .
499Also implements the
500.Tn Windows 95
501extensions to the same, which permit the use of longer, mixed case
502file names.
503See
504.Xr mount_msdos 8
505and
506.Xr fsck_msdos 8
507for details.
508.It Cd file-system NTFS
509.Em [EXPERIMENTAL]
510Includes code for the
511.Tn Microsoft Windows NT
512file system.
513See
514.Xr mount_ntfs 8
515for details.
516.It Cd file-system FDESC
517Includes code for a file system, conventionally mounted on
518.Pa /dev/fd ,
519which permits access to the per-process file descriptor space via
520special files in the file system.
521See
522.Xr mount_fdesc 8
523for details.
524Note that this facility is redundant, and thus unneeded on most
525.Nx
526systems, since the
527.Xr fd 4
528pseudodevice driver already provides identical functionality.
529On most
530.Nx
531systems, instances of
532.Xr fd 4
533are mknoded under
534.Pa /dev/fd/
535and on
536.Pa /dev/stdin ,
537.Pa /dev/stdout ,
538and
539.Pa /dev/stderr .
540.It Cd file-system KERNFS
541Includes code which permits the mounting of a special file system
542(normally mounted on
543.Pa /kern )
544in which files representing various kernel variables and parameters
545may be found.
546See
547.Xr mount_kernfs 8
548for details.
549.It Cd file-system NULLFS
550Includes code for a loopback file system.
551This permits portions of the file hierarchy to be re-mounted in other places.
552The code really exists to provide an example of a stackable file system layer.
553See
554.Xr mount_null 8
555for details.
556.It Cd file-system OVERLAY
557Includes code for a file system filter.
558This permits the overlay file system to intercept all access to an underlying
559file system. This file system is intended to serve as an example of
560a stacking file system which has a need to interpose itself between an
561underlying file system and all other access.
562See
563.Xr mount_overlay 8
564for details.
565.It Cd file-system PORTAL
566.Em [EXPERIMENTAL]
567Includes the portal filesystem.
568This permits interesting tricks like opening
569.Tn TCP
570sockets by opening files in the file system.
571The portal file system is conventionally mounted on
572.Pa /p
573and is partially implemented by a special daemon.
574See
575.Xr mount_portal 8
576for details.
577.It Cd file-system PROCFS
578Includes code for a special file system (conventionally mounted on
579.Pa /proc )
580in which the process space becomes visible in the file system.
581Among
582other things, the memory spaces of processes running on the system are
583visible as files, and signals may be sent to processes by writing to
584.Pa ctl
585files in the procfs namespace.
586See
587.Xr mount_procfs 8
588for details.
589.It Cd file-system UMAPFS
590Includes a loopback file system in which user and group ids may be
591remapped -- this can be useful when mounting alien file systems with
592different uids and gids than the local system.
593See
594.Xr mount_umap 8
595for details.
596.It Cd file-system UNION
597.Em [EXPERIMENTAL]
598Includes code for the union file system, which permits directories to
599be mounted on top of each other in such a way that both file systems
600remain visible -- this permits tricks like allowing writing (and the
601deleting of files) on a read-only file system like a
602.Tn CD-ROM
603by mounting a local writable file system on top of the read-only file system.
604See
605.Xr mount_union 8
606for details.
607.It Cd file-system CODA
608.Em [EXPERIMENTAL]
609Includes code for the Coda file system.
610Coda is a distributed file system like NFS and AFS.  It is
611freely available, like NFS, but it functions much like AFS in being a
612.Dq stateful
613file system.  Both Coda and AFS cache files on your local
614machine to improve performance.  Then Coda goes a step further than AFS
615by letting you access the cached files when there is no available
616network, viz. disconnected laptops and network outages.  In Coda, both
617the client and server are outside the kernel which makes them easier
618to experiment with.  Coda is available for several UNIX and non-UNIX
619platforms.
620See http://www.coda.cs.cmu.edu for more details.
621NOTE: You also need to enable the pseudo-device, vcoda, for the Coda
622filesystem to work.
623.El
624.Ss File System Options
625.Bl -ohang
626.It Cd options NFSSERVER
627Include the server side of the
628.Em NFS
629(Network File System) remote file sharing protocol.
630Although the bulk of the code implementing
631.Em NFS
632is kernel based, several user level daemons are needed for it to
633work.
634See
635.Xr mountd 8
636and
637.Xr nfsd 8
638for details.
639.It Cd options QUOTA
640Enables kernel support for file system quotas.
641See
642.Xr quotaon 8 ,
643.Xr edquota 8 ,
644and
645.Xr quota 1
646for details.
647Note that quotas only work on
648.Dq ffs
649file systems, although
650.Xr rpc.rquotad 8
651permits them to be accessed over
652.Em NFS .
653.It Cd options FFS_EI
654Enable ``Endian-Independent'' FFS support.
655This allows a system to mount an FFS filesystem created for another
656architecture, at a small performance cost for all FFS filesystems.
657See also
658.Xr newfs 8 ,
659.Xr fsck_ffs 8 ,
660.Xr dumpfs 8
661for filesystem byte order status and manipulation.
662.It Cd options NVNODE=integer
663This option sets the size of the cache used by the name-to-inode translation
664routines, (a.k.a. the
665.Fn namei
666cache, though called by many other names in the kernel source).
667By default, this cache has
668.Dv NPROC
669(set as 20 + 16 * MAXUSERS) * (80 + NPROC / 8) entries.
670A reasonable way to derive a value of
671.Dv NVNODE ,
672should you notice a large number of namei cache misses with a tool such as
673.Xr systat 1 ,
674is to examine your system's current computed value with
675.Xr sysctl 8 ,
676(which calls this parameter "kern.maxvnodes") and to increase this value
677until either the namei cache hit rate improves or it is determined that
678your system does not benefit substantially from an increase in the size of
679the namei cache.
680.It Cd options NAMECACHE_ENTER_REVERSE
681Causes the namei cache to always enter a reverse mapping (vnode -> name)
682as well as a normal one. Normally, this is already done for directory
683vnodes, to speed up the getcwd operation. This option will cause
684longer hash chains in the reverse cache, and thus slow down
685getcwd somewhat. However, it does make vnode -> path translations
686possible in some cases. For now, only useful if strict /proc/#/maps
687emulation for Linux binaries is required.
688.It Cd options EXT2FS_SYSTEM_FLAGS
689This option changes the behavior of the APPEND and IMMUTABLE flags
690for a file on an
691.Em EXT2FS
692filesystem.
693Without this option, the superuser or owner of the file can
694set and clear them.
695With this option, only the superuser can set them, and
696they can't be cleared if the securelevel is greater than 0.
697See also
698.Xr chflags 1 .
699.It Cd options NFS_BOOT_BOOTP
700Enable use of the BOOTP protocol (RFC 951, 1048) to get configuration
701information if NFS is used to mount the root file system.
702See
703.Xr diskless 8
704for details.
705.It Cd options NFS_BOOT_DHCP
706Same as
707.Dq NFS_BOOT_BOOTP
708, but use the DHCP extensions to the
709BOOTP protocol (RFC 1541).
710.It Cd options NFS_BOOT_BOOTP_REQFILE
711Specifies the string sent in the bp_file field of the BOOTP / DHCP
712request packet.
713.It Cd options NFS_BOOT_BOOTPARAM
714Enable use of the BOOTPARAM protocol, consisting of RARP and
715BOOTPARAM RPC, to get configuration information if NFS
716is used to mount the root file system.
717See
718.Xr diskless 8
719for details.
720.It Cd options NFS_BOOT_RWSIZE=value
721Set the initial NFS read and write sizes for diskless-boot requests.
722The normal default is 8Kbytes.  This option provides a way to lower
723the value (e.g., to 1024 bytes) as a workaround for buggy network
724interface cards or boot proms. Once booted, the read and write request
725sizes can be increased by remounting the filesystem. See
726.Xr mount_nfs 8
727for details.
728.It Cd options NFS_V2_ONLY
729Reduce the size of the NFS client code by omitting code that's only required
730for NFSv3 and NQNFS support, leaving only that code required to use NFSv2
731servers.
732.El
733.Ss Miscellaneous Options
734.Bl -ohang
735.It Cd options LKM
736Enable loadable kernel modules.
737See
738.Xr lkm 4
739for details.
740.Em NOTE :
741not available on all architectures.
742.It Cd options INSECURE
743Hardwires the kernel security level at -1.
744This means that the system
745always runs in secure level 0 mode, even when running multiuser.
746See the manual page for
747.Xr init 8
748for details on the implications of this.
749The kernel secure level may manipulated by the superuser by altering the
750.Em kern.securelevel
751.Xr sysctl 3
752variable (the secure level may only be lowered by a call from process ID 1,
753i.e.
754.Xr init 8 ) .
755See also
756.Xr sysctl 8
757and
758.Xr sysctl 3 .
759.It Cd options UCONSOLE
760Normally, only the superuser can execute the
761.Dv TIOCCONS
762.Xr ioctl 2 ,
763which redirects console output to a non-console tty.
764See
765.Xr tty 4
766for details.
767This option permits any user to execute the
768.Dv TIOCCONS
769.Xr ioctl 2 .
770This is useful on
771machines such as personal workstations which run
772.Xr X 7
773servers, where one would prefer to permit console output to be
774viewed in a window without requiring a suid root program to do it.
775.It Cd options MEMORY_DISK_HOOKS
776This option allows for some machine dependent functions to be called when
777the
778.Tn RAM
779disk driver is configured.
780This can result in automatically loading a
781.Tn RAM
782disk from floppy on open (among other things).
783.It Cd options MEMORY_DISK_IS_ROOT
784Forces the
785.Tn RAM
786disk to be the root device.
787This can only be overridden when
788the kernel is booted in the 'ask-for-root' mode.
789.It Cd options VNODE_OP_NOINLINE
790Do not inline the VOP_*() calls in the kernel.
791On i386 GENERIC, this saves 36k of kernel text.  Useful
792for install media kernels, small memory systems and embedded systems.
793.It Cd options HZ=integer
794On ports that support it, set the system clock frequency (see
795.Xr hz 9 )
796to the supplied value. Handle with care.
797.It Cd options NTP
798Turns on in-kernel precision timekeeping support used by software
799implementing
800.Em NTP
801(Network Time Protocol, RFC1305).
802The
803.Em NTP
804option adds an in-kernel Phase-Locked Loop (PLL) for normal
805.Em NTP
806operation, and a Frequency-Locked Loop (FLL) for intermittently-connected
807operation.
808.Xr ntpd 8
809will employ a user-level PLL when kernel support is unavailable,
810but the in-kernel version has lower latency and more precision, and
811so typically keeps much better time.
812The interface to the kernel
813.Em NTP
814support is provided by the
815.Xr ntp_adjtime 2
816and
817.Xr ntp_gettime 2
818system calls, which are intended for use by
819.Xr ntpd 8
820and are enabled by the option.
821On systems with sub-microsecond resolution timers, or where (HZ / 100000)
822is not an integer, the
823.Em NTP
824option also enables extended-precision arithmetic to keep track of
825fractional clock ticks at NTP time-format precision.
826.It Cd options PPS_SYNC
827This option enables a kernel serial line discipline for receiving time
828phase signals from an external reference clock such as a radio clock.
829(The
830.Em NTP
831option (which see) must be on if the
832.Em PPS_SYNC
833option is used.)
834Some reference clocks generate a Pulse Per Second (PPS) signal in
835phase with their time source.
836The
837.Em PPS
838line discipline receives this signal on either the data leads
839or the DCD control lead of a serial port.
840.Em NTP
841uses the PPS signal to discipline the local clock oscillator to a high
842degree of precision (typically less than 50 microseconds in time and
8430.1 ppm in accuracy).
844.Em PPS
845can also generate a serial output pulse when the system receives a PPS
846interrupt.
847This can be used to measure the system interrupt latency and thus calibrate
848.Em NTP
849to account for it.
850Using
851.Em PPS
852usually requires a
853gadget box
854to convert from TTL to RS-232 signal levels.
855The gadget box and PPS are described in more detail in the HTML documentation
856for
857.Xr ntpd 8
858in
859.Pa /usr/share/doc/html/ntp .
860.It Cd options SETUIDSCRIPTS
861Allows scripts with the setuid bit set to execute as the effective
862user rather than the real user, just like binary executables.
863.Pp
864.Em NOTE :
865Using this option will also enable
866.Em options FDSCRIPTS
867.It Cd option FDSCRIPTS
868Allows execution of scripts with the execute bit set, but not the
869read bit, by opening the file and passing the file descriptor to
870the shell, rather than the filename.
871.Pp
872.Em NOTE :
873Execute only (non-readable) scripts will have
874.Va argv[0]
875set to
876.Pa /dev/fd/* .
877What this option allows as far as security is
878concerned, is the ability to safely ensure that the correct script
879is run by the interpreter, as it is passed as an already open file.
880.It Cd options PUCCN
881Enables treating serial ports found on PCI boards
882.Xr puc 4
883as potential console devices.  The method for choosing such a console
884device is port dependent.
885.It Cd options RTC_OFFSET=integer
886The kernel (and typically the hardware battery backed-up clock on
887those machines that have one) keeps time in
888.Em UTC
889(Universal Coordinated Time, once known as
890.Em GMT ,
891or Greenwich Mean Time)
892and not in the time of the local time zone.
893The
894.Em RTC_OFFSET
895option is used on some ports (such as the i386) to tell the kernel
896that the hardware clock is offset from
897.Em UTC
898by the specified number of minutes.
899This is typically used when a machine boots several operating
900systems and one of them wants the hardware clock to run in the
901local time zone and not in
902.Em UTC ,
903e.g.
904.Em RTC_OFFSET=300
905means
906the hardware clock is set to US Eastern Time (300 minutes behind
907.Em UTC ) ,
908and not
909.Em UTC .
910(Note:
911.Em RTC_OFFSET
912is used to initialize a kernel variable named
913.Va rtc_offset
914which is the source actually used to determine the clock offset, and
915which may be accessed via the kern.rtc_offset sysctl variable.
916See
917.Xr sysctl 8
918and
919.Xr sysctl 3
920for details.
921Since the kernel clock is initialized from the hardware clock very
922early in the boot process, it is not possible to meaningfully change
923.Va rtc_offset
924in system initialization scripts.
925Changing this value currently may only be done at kernel compile
926time or by patching the kernel and rebooting).
927.Pp
928.Em NOTE :
929Unfortunately, in many cases where the hardware clock
930is kept in local time, it is adjusted for Daylight Savings
931Time; this means that attempting to use
932.Em RTC_OFFSET
933to let
934.Nx
935coexist with such an operating system, like Windows,
936would necessitate changing
937.Em RTC_OFFSET
938twice a year. As such, this solution is imperfect.
939.It Cd options KMEMSTATS
940The kernel memory allocator,
941.Xr malloc 9 ,
942will keep statistics on its performance if this option is enabled.
943Unfortunately, this option therefore essentially disables the
944.Fn MALLOC
945and
946.Fn FREE
947forms of the memory allocator, which are used to enhance the performance
948of certain critical sections of code in the kernel.
949This option therefore can lead to a significant decrease in the
950performance of certain code in the kernel if enabled.
951Examples of such code include the
952.Fn namei
953routine, the
954.Xr ccd 4
955driver,
956the
957.Xr ncr 4
958driver,
959and much of the networking code.
960.It Cd options MAXUPRC=integer
961Sets the soft
962.Dv RLIMIT_NPROC
963resource limit, which specifies the maximum number of simultaneous
964processes a user is permitted to run, for process 0;
965this value is inherited by its child processes.
966It defaults to
967.Em CHILD_MAX ,
968which is currently defined to be 160.
969Setting
970.Em MAXUPRC
971to a value less than
972.Em CHILD_MAX
973is not permitted, as this would result in a violation of the semantics of
974.St -p1003.1-90 .
975.It Cd options DEFCORENAME=string
976Sets the default value of the
977.Em kern.defcorename
978sysctl variable, otherwise it is set to
979.Nm %n.core .
980See
981.Xr sysctl 8
982and
983.Xr sysctl 3
984for details.
985.It Cd options RASOPS_CLIPPING
986Enables clipping within the
987.Nm rasops
988raster-console output system.
989.Em NOTE :
990only available on architectures that use
991.Nm rasops
992for console output.
993.It Cd options RASOPS_SMALL
994Removes optimized character writing code from the
995.Nm rasops
996raster-console output system.
997.Em NOTE :
998only available on architectures that use
999.Nm rasops
1000for console output.
1001.El
1002.Ss Networking Options
1003.Bl -ohang
1004.It Cd options GATEWAY
1005Enables
1006.Em IPFORWARDING
1007(which see)
1008and (on most ports) increases the size of
1009.Em NMBCLUSTERS
1010(which see).
1011In general,
1012.Em GATEWAY
1013is used to indicate that a system should act as a router, and
1014.Em IPFORWARDING
1015is not invoked directly.
1016(Note that
1017.Em GATEWAY
1018has no impact on protocols other than
1019.Tn IP ,
1020such as
1021.Tn CLNP
1022or
1023.Tn XNS ) .
1024.It Cd options IPFORWARDING=value
1025If
1026.Em value
1027is 1 this enables IP routing behavior. If
1028.Em value
1029is 0 (the default), it disables it. The
1030.Em GATEWAY
1031option sets this to 1 automatically.
1032With this option enabled, the machine will forward IP datagrams destined
1033for other machines between its interfaces.
1034Note that even without this option, the kernel will
1035still forward some packets (such as source routed packets) -- removing
1036.Em GATEWAY
1037and
1038.Em IPFORWARDING
1039is insufficient to stop all routing through a bastion host on a
1040firewall -- source routing is controlled independently.
1041To turn off source routing, use
1042.Em options IPFORWSRCRT=0
1043(which see).
1044Note that IP forwarding may be turned on and off independently of the
1045setting of the
1046.Em IPFORWARDING
1047option through the use of the
1048.Em net.inet.ip.forwarding
1049sysctl variable.
1050If
1051.Em net.inet.ip.forwarding
1052is 1, IP forwarding is on.
1053See
1054.Xr sysctl 8
1055and
1056.Xr sysctl 3
1057for details.
1058.It Cd options IPFORWSRCRT=value
1059If
1060.Em value
1061is set to zero, source routing of IP datagrams is turned off.
1062If
1063.Em value
1064is set to one (the default) or the option is absent, source routed IP
1065datagrams are forwarded by the machine.
1066Note that source routing of IP packets may be turned on and off
1067independently of the setting of the
1068.Em IPFORWSRCRT
1069option through the use of the
1070.Em net.inet.ip.forwsrcrt
1071sysctl variable.
1072If
1073.Em net.inet.ip.forwsrcrt
1074is 1, forwarding of source routed IP datagrams is on.
1075See
1076.Xr sysctl 8
1077and
1078.Xr sysctl 3
1079for details.
1080.It Cd options IFA_STATS
1081Tells the kernel to maintain per-address statistics on bytes sent
1082and received over (currently) internet and appletalk addresses.
1083.\"This can be a fairly expensive operation, so you probably want to
1084.\"keep this disabled.
1085The option is not recommended as it degrades system stability.
1086.It Cd options MROUTING
1087Includes support for IP multicast routers.
1088You certainly want
1089.Em INET
1090with this.
1091Multicast routing is controlled by the
1092.Xr mrouted 8
1093daemon.
1094.It Cd options INET
1095Includes support for the
1096.Tn TCP/IP
1097protocol stack.
1098You almost certainly want this.
1099See
1100.Xr inet 4
1101for details.
1102This option is currently required.
1103.It Cd options INET6
1104Includes support for the
1105.Tn IPv6
1106protocol stack.
1107See
1108.Xr inet6 4
1109for details.
1110Unlike
1111.Em INET ,
1112.Em INET6
1113enables multicast routing code as well.
1114This option requires
1115.Em INET
1116at this moment, but it should not.
1117.It Cd options ND6_DEBUG
1118The option sets the default value of net.inet6.icmp6.nd6_debug to 1,
1119for debugging IPv6 neighbor discovery protocol handling.
1120See
1121.Xr sysctl 3
1122for details.
1123.It Cd options IPSEC
1124Includes support for the
1125.Tn IPsec
1126protocol.
1127See
1128.Xr ipsec 4
1129for details.
1130.Em IPSEC
1131will enable
1132secret key management part,
1133policy management part,
1134.Tn AH
1135and
1136.Tn IPComp .
1137Kernel binary will not be subject to export control in most of countries,
1138even if compiled with
1139.Em IPSEC .
1140For example, it should be okay to export it from within the United States
1141to the outside.
1142.Em INET6
1143and
1144.Em IPSEC
1145are orthogonal so you can get IPv4-only kernel with IPsec support,
1146IPv4/v6 dual support kernel without IPsec, and so forth.
1147This option requires
1148.Em INET
1149at this moment, but it should not.
1150.It Cd options IPSEC_DEBUG
1151Enables debugging code in
1152.Tn IPsec
1153stack.
1154This option assumes
1155.Em IPSEC .
1156.It Cd options IPSEC_ESP
1157Includes support for
1158.Tn IPsec
1159.Tn ESP
1160protocol.
1161See
1162.Xr ipsec 4
1163for details.
1164.Em IPSEC_ESP
1165will enable source code that is subject to export control in some countries
1166.Pq including the United States ,
1167and compiled kernel binary will be subject to certain restriction.
1168This option assumes
1169.Em IPSEC .
1170.It Cd options SUBNETSARELOCAL
1171Sets default value for net.inet.ip.subnetsarelocal variable, which
1172controls whether non-directly-connected subnets of connected networks
1173are considered "local" for purposes of choosing the MSS for a TCP
1174connection.  This is mostly present for historic reasons and
1175completely irrelevant if you enable Path MTU discovery.
1176.It Cd options HOSTZEROBROADCAST
1177Sets default value for net.inet.ip.hostzerobroadcast variable, which
1178controls whether the zeroth host address of each connected subnet is
1179also considered a broadcast address.  Default value is "1", for
1180compatibility with old systems; if this is set to zero on all hosts on
1181a subnet, you should be able to fit an extra host per subnet on the
1182".0" address.
1183.It Cd options MCLSHIFT=value
1184This option is the base-2 logarithm of the size of mbuf clusters.
1185The
1186.Bx
1187networking stack keeps network packets in a linked
1188list, or chain, of kernel buffer objects called mbufs.
1189The system provides larger mbuf clusters as an optimization for
1190large packets, instead of using long chains for large packets.
1191The mbuf cluster size,
1192or
1193.Em MCLBYTES ,
1194must be a power of two, and is computed as two raised to the power
1195.Em MCLSHIFT .
1196On systems with Ethernet network adaptors,
1197.Em MCLSHIFT
1198is often set to 11, giving 2048-byte mbuf clusters, large enough to
1199hold a 1500-byte
1200.Tn Ethernet
1201frame in a single cluster.
1202Systems with network interfaces supporting larger frame sizes like
1203.Tn ATM ,
1204.Tn FDDI ,
1205or
1206.Tn HIPPI
1207may perform better with
1208.Em MCLSHIFT
1209set to 12 or 13, giving mbuf cluster sizes of 4096 and 8192 bytes,
1210respectively.
1211.It Cd options NS
1212Include support for the
1213.Tn Xerox
1214.Tn XNS
1215protocol stack.
1216See
1217.Xr ns 4
1218for details.
1219.It Cd options ISO,TPIP
1220Include support for the ubiquitous
1221.Tn OSI
1222protocol stack.
1223See
1224.Xr iso 4
1225for details.
1226This option assumes
1227.Em INET .
1228.It Cd options EON
1229Include support for tunneling
1230.Tn OSI
1231protocols over
1232.Tn IP .
1233Known to be broken, or at least very fragile, and undocumented.
1234.It Cd options CCITT,LLC,HDLC
1235Include support for the
1236.Tn CCITT
1237(nee
1238.Tn ITU-TSS )
1239.Tn X.25
1240protocol stack.
1241The state of this code is currently unknown, and probably contains bugs.
1242This option assumes
1243.Em INET .
1244.It Cd options NETATALK
1245Include support for the
1246.Tn AppleTalk
1247protocol stack.
1248The kernel provides provision for the
1249.Em Datagram Delivery Protocol
1250(DDP), providing SOCK_DGRAM support and
1251.Tn AppleTalk
1252routing.
1253This stack is used by the
1254.Em NETATALK
1255package, which adds support for
1256.Tn AppleTalk
1257server services via user libraries and applications.
1258.It Cd options IPNOPRIVPORTS
1259Normally, only root can bind a socket descriptor to a so-called
1260.Dq privileged
1261.Tn TCP
1262port, that is, a port number in the range 0-1023.
1263This option eliminates those checks from the kernel.
1264This can be useful if there is a desire to allow daemons without
1265privileges to bind those ports, e.g. on firewalls.
1266The security tradeoffs in doing this are subtle.
1267This option should only be used by experts.
1268.It Cd options TCP_COMPAT_42
1269.Tn TCP
1270bug compatibility with
1271.Bx 4.2 .
1272In
1273.Bx 4.2 ,
1274.Tn TCP
1275sequence numbers were 32-bit signed values.
1276Modern implementations of TCP use unsigned values.
1277This option clamps the initial sequence number to start in
1278the range 2^31 rather than the full unsigned range of 2^32.
1279Also, under
1280.Bx 4.2 ,
1281keepalive packets must contain at least one byte or else
1282the remote end would not respond.
1283.It Cd options TCP_DEBUG
1284Record the last
1285.Em TCP_NDEBUG
1286TCP packets with SO_DEBUG set, and decode to the console if
1287.Em tcpconsdebug
1288is set.
1289.It Cd options TCP_NDEBUG
1290Number of packets to record for
1291.Em TCP_DEBUG .
1292Defaults to 100.
1293.It Cd options PFIL_HOOKS
1294This option turns on the packet filter interface hooks.
1295See
1296.Xr pfil 9
1297for details.
1298This option assumes
1299.Em INET .
1300.It Cd options IPFILTER_LOG
1301This option, in conjunction with
1302.Em pseudo-device ipfilter ,
1303enables logging of IP packets using ip-filter.
1304.It Cd options IPFILTER_DEFAULT_BLOCK
1305This option sets the default policy of ip-filter.
1306If it is set, ip-filter will block packets by default.
1307.It Cd options PPP_BSDCOMP
1308Enable support for BSD-compress
1309.Pq Sq bsdcomp
1310compression in ppp.
1311.It Cd options PPP_DEFLATE
1312Enable support for deflate
1313compression in ppp.
1314.It Cd options PPP_FILTER
1315This option turns on
1316.Xr pcap 3
1317based filtering for ppp connections.
1318This option is used by
1319.Xr pppd 8
1320which needs to be compiled with
1321.Em PPP_FILTER
1322defined (the current default).
1323.El
1324.Ss System V IPC Options
1325.Bl -ohang
1326.It Cd options SYSVMSG
1327Includes support for
1328.At V
1329style message queues.
1330See
1331.Xr msgctl 2 ,
1332.Xr msgget 2 ,
1333.Xr msgrcv 2 ,
1334.Xr msgsnd 2 .
1335.It Cd options SYSVSEM
1336Includes support for
1337.At V
1338style semaphores.
1339See
1340.Xr semctl 2 ,
1341.Xr semget 2 ,
1342.Xr semop 2 .
1343.It Cd options SEMMNI=value
1344Sets the number of
1345.At V
1346style semaphore identifiers.  The GENERIC config file for your port
1347will have the default.
1348.It Cd options SEMMNS=value
1349Sets the number of
1350.At V
1351style semaphores in the system.  The GENERIC config file for your port
1352will have the default.
1353.It Cd options SEMUME=value
1354Sets the maximum number of undo entries per process for
1355.At V
1356style semaphores.  The GENERIC config file for your port
1357will have the default.
1358.It Cd options SEMMNU=value
1359Sets the number of undo structures in the system for
1360.At V
1361style semaphores.  The GENERIC config file for your port
1362will have the default.
1363.It Cd options SYSVSHM
1364Includes support for
1365.At V
1366style shared memory.
1367See
1368.Xr shmat 2 ,
1369.Xr shmctl 2 ,
1370.Xr shmdt 2 ,
1371.Xr shmget 2 .
1372.It Cd options SHMMAXPGS=value
1373Sets the maximum number of
1374.At V
1375style shared memory pages that are available through the
1376.Xr shmget 2
1377system call.
1378Default value is 1024 on most ports.
1379See
1380.Pa /usr/include/machine/vmparam.h
1381for the default.
1382.El
1383.Ss VM Related Options
1384.Bl -ohang
1385.It Cd options NMBCLUSTERS=value
1386The number of mbuf clusters the kernel supports.  Mbuf clusters are
1387MCLBYTES in size (usually 2k).  This is used to compute the size of
1388the kernel VM map
1389.Em mb_map ,
1390which maps mbuf clusters.
1391Default on most ports is 256 (512 with
1392.Dq options GATEWAY
1393).
1394See
1395.Pa /usr/include/machine/param.h
1396for exact default information.
1397Increase this value if you get
1398.Dq mb_map full
1399messages.
1400.It Cd options NKMEMPAGES=value
1401.It Cd options NKMEMPAGES_MIN=value
1402.It Cd options NKMEMPAGES_MAX=value
1403Size of kernel VM map
1404.Em kmem_map ,
1405in PAGE_SIZE-sized chunks (the VM page size; this value may be read
1406from the
1407.Xr sysctl 8
1408variable
1409.Em hw.pagesize
1410).
1411This VM map is used to map the kernel malloc arena.
1412The kernel attempts to auto-size this map based on the amount of
1413physical memory in the system.  Platform-specific code may place
1414bounds on this computed size, which may be viewed with the
1415.Xr sysctl 8
1416variable
1417.Em vm.nkmempages .
1418See
1419.Pa /usr/include/machine/param.h
1420for the default upper and lower bounds.
1421The related options
1422.Sq NKMEMPAGES_MIN
1423and
1424.Sq NKMEMPAGES_MAX
1425allow the bounds to be overridden in the kernel configuration file.
1426These options are provided in the event the computed value is
1427insufficient resulting in an
1428.Dq out of space in kmem_map
1429panic.
1430.It Cd options BUFCACHE=value
1431Size of the buffer cache as a percentage of total available
1432.Tn RAM .
1433Ignored if BUFPAGES is also specified.
1434.It Cd options NBUF=value
1435.It Cd options BUFPAGES=value
1436These options set the number of pages available for the buffer cache.
1437Their default value is a machine dependent value, often calculated as
1438between 5% and 10% of total available
1439.Tn RAM .
1440.It Cd options MAXTSIZ=bytes
1441Sets the maximum size limit of a process' text segment. See
1442.Pa /usr/include/machine/vmparam.h
1443for the port-specific default.
1444.It Cd options DFLDSIZ=bytes
1445Sets the default size limit of a process' data segment, the value that
1446will be returned as the soft limit for
1447.Dv RLIMIT_DATA
1448(as returned by
1449.Xr getrlimit 2 ) .
1450See
1451.Pa /usr/include/machine/vmparam.h
1452for the port-specific default.
1453.It Cd options MAXDSIZ=bytes
1454Sets the maximum size limit of a process' data segment, the value that
1455will be returned as the hard limit for
1456.Dv RLIMIT_DATA
1457(as returned by
1458.Xr getrlimit 2 ) .
1459See
1460.Pa /usr/include/machine/vmparam.h
1461for the port-specific default.
1462.It Cd options DFLSSIZ=bytes
1463Sets the default size limit of a process' stack segment, the value that
1464will be returned as the soft limit for
1465.Dv RLIMIT_STACK
1466(as returned by
1467.Xr getrlimit 2 ) .
1468See
1469.Pa /usr/include/machine/vmparam.h
1470for the port-specific default.
1471.It Cd options MAXSSIZ=bytes
1472Sets the maximum size limit of a process' stack segment, the value that
1473will be returned as the hard limit for
1474.Dv RLIMIT_STACK
1475(as returned by
1476.Xr getrlimit 2 ) .
1477See
1478.Pa /usr/include/machine/vmparam.h
1479for the port-specific default.
1480.El
1481.Ss amiga-specific Options
1482.Bl -ohang
1483.It Cd options BB060STUPIDROM
1484When the bootloader (which passes
1485.Tn AmigaOS
1486.Tn ROM
1487information) claims we have a 68060
1488.Tn CPU
1489without
1490.Tn FPU ,
1491go look into the Processor Configuration Register (PCR) to find out.
1492You need this with
1493.Tn Amiga
1494.Tn ROM Ns s
1495up to (at least) V40.xxx (OS3.1),
1496when you boot via the bootblocks and don't have a DraCo.
1497.It Cd options IOBZCLOCK=frequency
1498The IOBlix boards come with two different serial master clocks: older ones
1499use 24 MHz, newer ones use 22.1184 MHz. The driver normally assumes the latter.
1500If your board uses 24 MHz, you can recompile your kernel with
1501options IOBZCLOCK=24000000
1502or patch the kernel variable
1503.Tn iobzclock
1504to the same value.
1505.It Cd options LIMITMEM=value
1506If there, limit the part of the first memory bank used by
1507.Nx
1508to value megabytes.
1509Default is unlimited.
1510.It Cd options NKPTADD=addvalue
1511.It Cd options NKPTADDSHIFT=shiftvalue
1512The
1513.Tn CPU
1514specific
1515.Tn MMU
1516table for the kernel is pre-allocated at kernel startup time.
1517Part of it is scaled with
1518.Va maxproc ,
1519to have enough room to hold the user program
1520.Tn MMU
1521tables; the second part is a fixed amount for the kernel itself.
1522.Pp
1523The third part accounts for the size of the file buffer cache.
1524Its size is either
1525.Dv NKPTADD
1526pages (if defined) or memory size in bytes divided by two to
1527the power of
1528.Dv NKPTADDSHIFT .
1529The default is undefined
1530.Dv NKPTADD
1531and
1532.Dv NKPTADDSHIFT=24 ,
1533allowing for 16 buffers per megabyte of main memory (while
1534a GENERIC kernel allocates about half of that).
1535When you get "can't get KPT page" panics, you should increase
1536.Dv NKPTADD
1537(if defined), or decrease
1538.Dv NKPTADDSHIFT
1539by one.
1540.It Cd options P5PPC68KBOARD
1541Add special support for Phase5 mixed 68k+PPC boards. Currently, this only
1542affects rebooting from
1543.Nx
1544and is only needed on 68040+PPC, not on
154568060+PPC; without this, affected machines will hang after
1546.Nx
1547has shut
1548down and will only restart after a keyboard reset or a power cycle.
1549.El
1550.Ss arm32-specific Options
1551.Bl -ohang
1552.It Cd options FRENCH_KEYBOARD
1553Include translation for French keyboards when using
1554.Xr pccons 4
1555on a Shark.
1556.It Cd options FINNISH_KEYBOARD
1557Include translation for Finnish keyboards when using
1558.Xr pccons 4
1559on a Shark.
1560.It Cd options GERMAN_KEYBOARD
1561Include translation for German keyboards when using
1562.Xr pccons 4
1563on a Shark.
1564.It Cd options NORWEGIAN_KEYBOARD
1565Include translation for French keyboards when using
1566.Xr pccons 4
1567on a Shark.
1568.El
1569.Ss atari-specific Options
1570.Bl -ohang
1571.It Cd options DISKLABEL_AHDI
1572Include support for AHDI (native Atari) disklabels.
1573.It Cd options DISKLABEL_NBDA
1574Include support for
1575.Nx Ns Tn /atari
1576labels.
1577If you don't set this option, it will be set automatically.
1578.Nx Ns Tn /atari
1579will not work without it.
1580.It Cd options FALCON_SCSI
1581Include support for the 5380-SCSI configuration as found on the Falcon.
1582.It Cd options RELOC_KERNEL
1583If set, the kernel will relocate itself to TT-RAM, if possible.
1584This will give you a slightly faster system.
1585.Em Beware
1586that on some TT030 systems,
1587the system will frequently dump with MMU-faults with this option enabled.
1588.It Cd options SERCONSOLE
1589Allow the modem1-port to act as the system-console.
1590A carrier should be active on modem1 during system boot to active
1591the console functionality.
1592.It Cd options TT_SCSI
1593Include support for the 5380-SCSI configuration as found on the TT030
1594and Hades.
1595.El
1596.Ss i386-specific Options
1597.Bl -ohang
1598.It Cd options I386_CPU,I486_CPU,I586_CPU,I686_CPU
1599Include support for a particular class of
1600.Tn CPU
1601.Po
1602.Tn i386 ,
1603.Tn i486 ,
1604.Tn Pentium ,
1605or
1606.Tn Pentium Pro
1607.Pc .
1608If the appropriate class for your
1609.Tn CPU
1610is not configured, the kernel will use the highest class available
1611that will work.
1612In general, using the correct
1613.Tn CPU
1614class will result in the best performance.
1615At least one of these options must be present.
1616.It Cd options CPURESET_DELAY=value
1617specifies the time (in millisecond) to wait before doing a hardware reset
1618in the last phase of a reboot. This gives the user a chance to see error
1619messages from the shutdown operations (like NFS unmounts, buffer cache flush,
1620etc ...). Setting this to 0 will disable the delay. Default is 2 seconds.
1621.It Cd options MATH_EMULATE
1622Include the floating point emulator.
1623This is useful only for
1624.Tn CPU Ns s
1625that lack an
1626internal Floating Point Unit
1627.Pq Tn FPU
1628or co-processor.
1629.It Cd options VM86
1630Include support for virtual 8086 mode, used by
1631.Tn DOS
1632emulators and X servers to run BIOS code, e.g. for some VESA routines.
1633.It Cd options USER_LDT
1634Include i386-specific system calls for modifying the local descriptor table,
1635used by Windows emulators.
1636.It Cd options REALBASEMEM=integer
1637Overrides the base memory size passed in from the boot block.
1638(Value given in kilobytes.)
1639Use this option only if the boot block reports the size incorrectly.
1640(Note that some
1641.Tn BIOS Ns es
1642put the extended
1643.Tn BIOS
1644data area at the top of base memory, and therefore report a smaller
1645base memory size to prevent programs overwriting it.
1646This is correct behavior, and you should not use the
1647.Em REALBASEMEM
1648option to access this memory).
1649.It Cd options REALEXTMEM=integer
1650Overrides the extended memory size passed in from the boot block.
1651(Value given in kilobytes. Extended memory does not include the first megabyte.)
1652Use this option only if the boot block reports the size incorrectly.
1653.It Cd options FRENCH_KBD,FINNISH_KBD,GERMAN_KBD,NORWEGIAN_KBD
1654Select a non-US keyboard layout for the
1655.Em pccons
1656console driver.
1657.It Cd options CYRIX_CACHE_WORKS
1658Relevant only to the Cyrix 486DLC cpu. This option is used to turn on
1659the cache in hold-flush mode. It is not turned on by default because it
1660is known to have problems in certain motherboard implementations.
1661.It Cd options CYRIX_CACHE_REALLY_WORKS
1662Relevant only to the Cyrix 486DLC cpu. This option is used to turn on
1663the cache in write-back mode. It is not turned on by default because it
1664is known to have problems in certain motherboard implementations. In order
1665for this option to take effect, option
1666.Em CYRIX_CACHE_WORKS
1667must also be specified.
1668.It Cd options PCIBIOS
1669Enable support for initializing the
1670.Tn PCI
1671bus using information from the
1672.Tn BIOS .
1673See
1674.Xr pcibios 4
1675for details.
1676.El
1677.Ss isa-specific Options
1678Options specific to
1679.Xr isa 4
1680busses.
1681.Bl -ohang
1682.It Cd options PCIC_ISA_ALLOC_IOBASE=address, PCIC_ISA_ALLOC_IOSIZE=size
1683Control the section of IO bus space used for PCMCIA bus space mapping.
1684Ideally the probed defaults are satisfactory, however in practice
1685that is not always the case. See
1686.Xr pcmcia 4
1687for details.
1688.It Cd options PCIC_ISA_INTR_ALLOC_MASK=mask
1689Controls the allowable interrupts that may be used for
1690.Tn PCMCIA
1691devices. This mask is a logical-or of power-of-2s of allowable
1692interrupts:
1693.Bd -literal -offset 04n
1694.Em "IRQ Val      IRQ Val      IRQ Val       IRQ Val"
1695 0  0x0001    4  0x0010    8  0x0100    12  0x1000
1696 1  0x0002    5  0x0020    9  0x0200    13  0x2000
1697 2  0x0004    6  0x0040   10  0x0400    14  0x4000
1698 3  0x0008    7  0x0080   11  0x0800    15  0x8000
1699.Ed
1700.El
1701.Ss m68k-specific Options
1702.Bl -ohang
1703.It Cd options FPU_EMULATE
1704Include support for MC68881/MC68882 emulator.
1705.It Cd options FPSP
1706Include support for 68040 floating point.
1707.It Cd options M68020,M68030,M68040,M68060
1708Include support for a specific
1709.Tn CPU ,
1710at least one (the one you are using) should be specified.
1711.It Cd options M060SP
1712Include software support for 68060.
1713This provides emulation of unimplemented
1714integer instructions as well as emulation of unimplemented floating point
1715instructions and data types and software support for floating point traps.
1716.El
1717.Ss sparc-specific Options
1718.Bl -ohang
1719.It Cd options AUDIO_DEBUG
1720Enable simple event debugging of the logging of the
1721.Xr audio 4
1722device.
1723.It Cd options BLINK
1724Enable blinking of LED.  Blink rate is full cycle every N seconds for
1725N < then current load average.  See
1726.Xr getloadavg 3 .
1727.\" .It Cd options COLORFONT_CACHE
1728.\" this is totally fucked up.. what does this do?
1729.It Cd options COUNT_SW_LEFTOVERS
1730Count how many times the sw SCSI device has left 3, 2, 1 and 0 in the
1731sw_3_leftover, sw_2_leftover, sw_1_leftover, and sw_0_leftover
1732variables accessible from
1733.Xr ddb 4 .
1734See
1735.Xr sw 4 .
1736.It Cd options DEBUG_ALIGN
1737Adds debugging messages calls when user-requested alignment fault
1738handling happens.
1739.It Cd options DEBUG_EMUL
1740Adds debugging messages calls for emulated floating point and
1741alignment fixing operations.
1742.It Cd options DEBUG_SVR4
1743Prints registers messages calls for emulated SVR4 getcontext and
1744setcontext operations.  See
1745.Em options COMPAT_SVR4 .
1746.It Cd options EXTREME_DEBUG
1747Adds debugging functions callable from
1748.Xr ddb 4 .  The debug_pagetables, test_region and print_fe_map
1749functions print information about page tables for the SUN4M
1750platforms only.
1751.It Cd options EXTREME_EXTREME_DEBUG
1752Adds extra info to
1753.Em options EXTREME_DEBUG .
1754.It Cd options FPU_CONTEXT
1755Make
1756.Em options COMPAT_SVR4
1757getcontext and setcontext include floating point registers.
1758.It Cd options MAGMA_DEBUG
1759Adds debugging messages to the
1760.Xr magma 4
1761device.
1762.It Cd options RASTERCONS_FULLSCREEN
1763Use the entire screen for the console.
1764.It Cd options RASTERCONS_SMALLFONT
1765Use a the fixed font on the console, instead of the normal font.
1766.It Cd options SUN4
1767Support sun4 class machines.
1768.It Cd options SUN4C
1769Support sun4c class machines.
1770.It Cd options SUN4M
1771Support sun4m class machines.
1772.It Cd options SUN4_MMU3L
1773.\" XXX ???
1774Enable support for sun4 3-level MMU machines.
1775.It Cd options V9
1776Enable SPARC V9 assembler in
1777.Xr ddb 4 .
1778.El
1779.Ss sparc64-specific Options
1780.Bl -ohang
1781.It Cd options AUDIO_DEBUG
1782Enable simple event debugging of the logging of the
1783.Xr audio 4
1784device.
1785.It Cd options BLINK
1786Enable blinking of LED.  Blink rate is full cycle every N seconds for
1787N < then current load average.  See
1788.Xr getloadavg 3 .
1789.El
1790.Ss x68k-specific Options
1791.Bl -ohang
1792.It Cd options EXTENDED_MEMORY
1793Include support for extended memory e.g. TS-6BE16 and 060turbo on-board.
1794.It Cd options JUPITER
1795Include support for Jupiter-X MPU accelerator
1796.It Cd options ZSCONSOLE,ZSCN_SPEED=value
1797Use the built-in serial port as the system-console.
1798Speed is specified in bps, defaults to 9600.
1799.It Cd options ITE_KERNEL_ATTR=value
1800Set the kernel message attribute for ITE.
1801Value, an integer, is a logical or of the following values:
1802.Bl -tag -width 4n -compact -offset indent
1803.It 1
1804color inversed
1805.It 2
1806underlined
1807.It 4
1808bolded
1809.El
1810.El
1811.\" The following requests should be uncommented and used where appropriate.
1812.\" .Sh FILES
1813.\" .Sh EXAMPLES
1814.Sh SEE ALSO
1815.Xr gdb 1 ,
1816.Xr ktrace 1 ,
1817.Xr quota 1 ,
1818.Xr gettimeofday 2 ,
1819.Xr i386_iopl 2 ,
1820.Xr msgctl 2 ,
1821.Xr msgget 2 ,
1822.Xr msgrcv 2 ,
1823.Xr msgsnd 2 ,
1824.Xr ntp_adjtime 2 ,
1825.Xr ntp_gettime 2 ,
1826.Xr semctl 2 ,
1827.Xr semget 2 ,
1828.Xr semop 2 ,
1829.Xr shmat 2 ,
1830.Xr shmctl 2 ,
1831.Xr shmdt 2 ,
1832.Xr shmget 2 ,
1833.Xr sysctl 3 ,
1834.Xr apm 4 ,
1835.Xr ddb 4 ,
1836.Xr inet 4 ,
1837.Xr iso 4 ,
1838.Xr lkm 4 ,
1839.Xr ns 4 ,
1840.Xr pcibios 4 ,
1841.Xr pcmcia 4 ,
1842.Xr config 8 ,
1843.Xr edquota 8 ,
1844.Xr init 8 ,
1845.Xr mount_cd9660 8 ,
1846.Xr mount_fdesc 8 ,
1847.Xr mount_kernfs 8 ,
1848.Xr mount_lfs 8 ,
1849.Xr mount_mfs 8 ,
1850.Xr mount_msdos 8 ,
1851.Xr mount_nfs 8 ,
1852.Xr mount_ntfs 8 ,
1853.Xr mount_null 8 ,
1854.Xr mount_portal 8 ,
1855.Xr mount_procfs 8 ,
1856.Xr mount_umap 8 ,
1857.Xr mount_union 8 ,
1858.Xr mrouted 8 ,
1859.Xr newfs_lfs 8 ,
1860.Xr ntpd 8 ,
1861.Xr quotaon 8 ,
1862.Xr rpc.rquotad 8 ,
1863.Xr sysctl 8
1864.Sh HISTORY
1865The
1866.Nm
1867man page first appeared in
1868.Nx 1.3 .
1869.Sh BUGS
1870The
1871.Em INET
1872and the
1873.Em VNODEPAGER
1874options should not be required.
1875The
1876.Em EON
1877option should be a pseudo-device, and is also very fragile.
1878