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