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