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