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