1.\" $NetBSD: options.4,v 1.338 2006/10/14 07:30:54 wiz Exp $ 2.\" 3.\" Copyright (c) 1996 4.\" Perry E. Metzger. All rights reserved. 5.\" 6.\" Redistribution and use in source and binary forms, with or without 7.\" modification, are permitted provided that the following conditions 8.\" are met: 9.\" 1. Redistributions of source code must retain the above copyright 10.\" notice, this list of conditions and the following disclaimer. 11.\" 2. Redistributions in binary form must reproduce the above copyright 12.\" notice, this list of conditions and the following disclaimer in the 13.\" documentation and/or other materials provided with the distribution. 14.\" 3. All advertising materials mentioning features or use of this software 15.\" must display the following acknowledgment: 16.\" This product includes software developed for the NetBSD Project 17.\" by Perry E. Metzger. 18.\" 4. The name of the author may not be used to endorse or promote products 19.\" derived from this software without specific prior written permission. 20.\" 21.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 22.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 23.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 24.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 25.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 26.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 30.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31.\" 32.\" 33.Dd October 12, 2006 34.Os 35.Dt OPTIONS 4 36.Sh NAME 37.Nm options 38.Nd Miscellaneous kernel configuration options 39.Sh SYNOPSIS 40.Cd cinclude ... 41.Cd config ... 42.Cd [no] file-system ... 43.Cd ident ... 44.Cd include ... 45.Cd [no] makeoptions ... 46.Cd maxusers ... 47.Cd [no] options ... 48.Cd [no] pseudo-device ... 49.Sh DESCRIPTION 50This manual page describes a number of miscellaneous kernel 51configuration options that may be specified in a kernel config 52file. 53See 54.Xr config 1 55and 56.Xr config 5 57for information on how to configure and build kernels. 58.Pp 59The 60.Ar no 61form removes a previously specified option. 62.Ss Keywords 63The following keywords are recognized in a kernel configuration file: 64.Bl -ohang 65.It Sy cinclude Xo 66.Qq Ar filename 67.Xc 68Conditionally includes another kernel configuration file whose name is 69.Ar filename , 70which may be double-quoted and may be an explicit path or relative to 71the kernel source directory. 72Failure to open the named file is ignored. 73.It Sy config Xo 74.Ar exec_name 75.No root on 76.Ar rootdev 77.Op type Ar fstype 78.Op dumps on Ar dumpdev 79.Xc 80Defines a configuration whose kernel executable is named 81.Ar exec_name , 82normally 83.Dq netbsd , 84with its root file system of type 85.Ar fstype 86on the device 87.Ar rootdev , 88and optionally specifying the location of kernel core dumps on the device 89.Ar dumpdev . 90.Ar dev 91or 92.Ar dumpdev 93and 94.Ar fstype 95may be specified as 96.Dq \&? , 97which is a wild card. 98The root 99.Ar fstype 100and 101.Ar dumpdev 102are optional and assumed to be wild carded if they are not specified. 103.It Ar device_instance Xo 104at 105.Ar attachment 106.Op Ar locators value Op ... 107.Op flags Ar value 108.Xc 109Define an instance of the device driver 110.Ar device_instance 111that attaches to the bus or device named 112.Ar attachment . 113An 114.Ar attachment 115may require additional information on where the device can be found, such 116as an address, channel, function, offset, and/or slot, referred to as 117.Ar locators , 118whose 119.Ar value 120often may be a wild card, 121.Dq \&? . 122Some device drivers have one or more 123.Ar flags 124that can be adjusted to affect the way they operate. 125.It Sy file-system Xo 126.Ar fs_name Op , Ar fs_name Op ... 127.Xc 128Include support for the file-system 129.Ar fs_name . 130.It Sy ident Xo 131.Qq Ar string 132.Xc 133Sets the kernel identification string to 134.Ar string . 135.It Sy include Xo 136.Qq Ar filename 137.Xc 138Functions the same as 139.Ar cinclude , 140except failure to open 141.Ar filename 142produces a fatal error. 143.It Sy options Xo 144.Ar option_name Op , Ar option_name=value Op ... 145.Xc 146Specifies (or sets) the option, or comma-separated list of options, 147.Ar option_name . 148Some options expect to be assigned a value, which may be an integer, 149a double-quoted word, a bare word, or an empty string 150.Pq Qq . 151Note that those are eventually handled by the C compiler, so the rules 152of that language apply. 153.Pp 154.Em Note : 155Options that are not defined by device definition files are passed to 156the compile process as 157.Fl D 158flags to the C compiler. 159.It Sy makeoptions Xo 160.Ar name=value 161.Xc 162Defines a 163.Xr make 1 164macro 165.Ar name 166with the value 167.Ar value 168in the kernel Makefile. 169.It Sy maxusers Xo 170.Ar integer 171.Xc 172Set the maxusers variable in the kernel. 173.It Sy no Xo 174.Ar keyword Ar name Op Ar arguments Op ... 175.Xc 176For the 177.Xr config 1 178.Ar keywords 179file-system, makeoptions, options, and pseudo-device, 180.Ar no 181removes the file-system, makeoption, options, or pseudo-device, 182.Ar name . 183This is useful when a kernel configuration file includes another which 184has undesired options. 185.Pp 186For example, a local configuration file that wanted the kitchen sink, but 187not COMPAT_09 or bridging, might be: 188.Bd -literal -offset indent 189include "arch/i386/conf/GENERIC" 190no options COMPAT_09 191no pseudo-device bridge 192.Ed 193.It Sy pseudo-device Xo 194.Ar name 195.Op Ar N 196.Xc 197Includes support for the pseudo-device 198.Ar name . 199Some pseudo-devices can have multiple or 200.Ar N 201instances. 202.El 203.Ss Compatibility Options 204.Bl -ohang 205.It Cd options COMPAT_09 206Enable binary compatibility with 207.Nx 0.9 . 208This enables support for 20916-bit user, group, and process IDs (following revisions support 21032-bit identifiers). 211It also allows the use of the deprecated 212.Xr getdomainname 3 , 213.Xr setdomainname 3 , 214and 215.Xr uname 3 216syscalls. 217This option also allows using numeric file system identifiers rather 218than strings. 219Post 220.Nx 0.9 221versions use string identifiers. 222.It Cd options COMPAT_10 223Enable binary compatibility with 224.Nx 1.0 . 225This option allows the use of the file system name of 226.Dq ufs 227as an alias for 228.Dq ffs . 229The name 230.Dq ffs 231should be used post 1.0 in 232.Pa /etc/fstab 233and other files. 234It also adds old syscalls for the 235.At V 236shared memory interface. 237This was changed post 1.0 to work on 64-bit architectures. 238This option also enables 239.Dq sgtty 240compatibility, without which programs using the old interface produce 241an 242.Dq inappropriate ioctl 243error, and 244.Pa /dev/io 245only works when this option is set in the kernel, 246see 247.Xr io 4 248on ports that support it. 249.It Cd options COMPAT_11 250Enable binary compatibility with 251.Nx 1.1 . 252This allows binaries running on the i386 port to gain direct access to 253the io ports by opening 254.Pa /dev/io 255read/write. 256This functionality was replaced by 257.Xr i386_iopl 2 258post 1.1. 259On the 260.Tn Atari 261port, the location of the disk label was moved after 1.1. 262When the 263.Em COMPAT_11 264option is set, the kernel will read (pre) 1.1 style disk labels as a 265last resort. 266When a disklabel is re-written, the old style label will be replaced 267with a post 1.1 style label. 268This also enables the 269.Em EXEC_ELF_NOTELESS 270option. 271.It Cd options COMPAT_12 272Enable binary compatibility with 273.Nx 1.2 . 274This allows the use of old syscalls for 275.Fn reboot 276and 277.Fn swapon . 278The syscall numbers were changed post 1.2 to add functionality to the 279.Xr reboot 2 280syscall, and the new 281.Xr swapctl 2 282interface was introduced. 283This also enables the 284.Em EXEC_ELF_NOTELESS 285option. 286.It Cd options COMPAT_13 287Enable binary compatibility with 288.Nx 1.3 . 289This allows the use of old syscalls for 290.Fn sigaltstack , 291and also enables the old 292.Xr swapctl 2 293command 294.Dv SWAP_STATS 295(now called 296.Dv SWAP_OSTATS ) , 297which does not include the 298.Fa se_path 299member of 300.Va struct swapent . 301.It Cd options COMPAT_14 302Enable binary compatibility with 303.Nx 1.4 . 304This allows some old 305.Xr ioctl 2 306on 307.Xr wscons 4 308to be performed, and allows the 309.Dv NFSSVC_BIOD 310mode of the 311.Xr nfssvc 2 312system call to be used for compatibility with the deprecated nfsiod program. 313.It Cd options COMPAT_15 314Enable binary compatibility with 315.Nx 1.5 . 316Since there were no API changes from 317.Nx 1.5 318and 319.Nx 1.6 , 320this option does nothing. 321.It Cd options COMPAT_16 322Enable binary compatibility with 323.Nx 1.6 . 324This allows the use of old signal trampoline code which has been deprecated 325with the addition of 326.Xr siginfo 2 . 327.It Cd options COMPAT_20 328Enable binary compatibility with 329.Nx 2.0 . 330This allows the use of old syscalls for 331.Fn statfs , 332.Fn fstatfs , 333.Fn getfsstat 334and 335.Fn fhstatfs , 336which have been deprecated with the addition of the 337.Xr statvfs 2 , 338.Xr fstatvfs 2 , 339.Xr getvfsstat 2 340and 341.Xr fhstatvfs 2 342system calls. 343.It Cd options COMPAT_30 344Enable binary compatibility with 345.Nx 3.0 . 346See 347.Xr compat_30 8 348for details about the changes made after the 349.Nx 3.0 350release. 351.It Cd options COMPAT_43 352Enables compatibility with 353.Bx 4.3 . 354This adds an old syscall for 355.Xr lseek 2 . 356It also adds the ioctls for 357.Dv TIOCGETP 358and 359.Dv TIOCSETP . 360The return values for 361.Xr getpid 2 , 362.Xr getgid 2 , 363and 364.Xr getuid 2 365syscalls are modified as well, to return the parent's PID and 366UID as well as the current process's. 367It also enables the deprecated 368.Dv NTTYDISC 369terminal line discipline. 370It also provides backwards compatibility with 371.Dq old 372SIOC[GS]IF{ADDR,DSTADDR,BRDADDR,NETMASK} interface ioctls, including 373binary compatibility with code written before the introduction of the 374sa_len field in sockaddrs. 375It also enables 376support for some older pre 377.Bx 4.4 378socket calls. 379.It Cd options COMPAT_BSDPTY 380This option is currenty on by default and enables the pty multiplexor 381.Xr ptm 4 382and 383.Xr ptmx 4 384to find and use ptys named 385.Pa /dev/ptyXX 386(master) and 387.Pa /dev/ttyXX 388(slave). 389Eventually this option will become optional as ptyfs based pseudo-ttys become 390the default, see 391.Xr mount_ptyfs 8 . 392.It Cd options COMPAT_SVR4 393On those architectures that support it, this enables binary 394compatibility with 395.At V.4 396applications built for the same architecture. 397This currently includes the i386, m68k, and sparc ports. 398.It Cd options COMPAT_LINUX 399On those architectures that support it, this enables binary 400compatibility with Linux ELF and 401.Xr a.out 5 402applications built for the same architecture. 403This currently includes the alpha, arm, i386, m68k, mips, powerpc and 404x86_64 ports. 405.It Cd options COMPAT_LINUX32 406On those 64 bit architectures that support it, this enables binary 407compatibility with 32 bit Linux binaries. 408For now this is limited to running i386 ELF Linux binaries on amd64. 409.It Cd options COMPAT_SUNOS 410On those architectures that support it, this enables binary 411compatibility with 412.Tn SunOS 4.1 413applications built for the same architecture. 414This currently includes the sparc, sparc64 and most or all m68k ports. 415Note that the sparc64 requires the 416.Em COMPAT_NETBSD32 417option for 64-bit kernels, in addition to this option. 418.It Cd options COMPAT_ULTRIX 419On those architectures that support it, this enables binary 420compatibility with 421.Tn ULTRIX 422applications built for the same architecture. 423This currently is limited to the pmax. 424The functionality of this option is unknown. 425.It Cd options COMPAT_DARWIN 426On those architectures that support it, this enables binary compatibility with 427.Tn Darwin 428applications built for the same architecture. 429This feature is highly experimental, it requires COMPAT_MACH and 430EXEC_MACHO and it is currently limited to i386 and powerpc ports of 431.Nx . 432.It Cd options COMPAT_FREEBSD 433On those architectures that support it, this enables binary 434compatibility with 435.Fx 436applications built for the same architecture. 437At the moment this is limited to the i386 port. 438.It Cd options COMPAT_HPUX 439On those architectures that support it, this enables binary 440compatibility with 441.Tn HP/UX 442applications built for the same architecture. 443This is limited to the hp300 port, and has some known bugs. 444A limited set of programs do work. 445.It Cd options COMPAT_IBCS2 446On those architectures that support it, this enables binary 447compatibility with iBCS2 or SVR3 applications built for the same architecture. 448This is currently limited to the i386 and vax ports. 449.It Cd options COMPAT_IRIX 450On those architectures that support it, this enables binary 451compatibility with IRIX o32 binaries built for the same architecture. 452This feature is experimental, and it is currently limited to 453the sgimips port. 454.It Cd options COMPAT_MACH 455On those architectures that support it, this enables the emulation of 456Mach kernel traps for binaries built for the same architecture. 457This feature is highly experimental and it is currently 458limited to the i386 and powerpc ports of 459.Nx . 460.It Cd options COMPAT_OSF1 461On those architectures that support it, this enables binary 462compatibility with 463.Tn Digital 464.Ux 465.Po 466formerly 467.Tn OSF/1 468.Pc 469applications built for the same architecture. 470This is currently limited to the alpha port. 471.It Cd options COMPAT_NOMID 472Enable compatibility with 473.Xr a.out 5 474executables that lack a machine ID. 475This includes 476.Nx 0.8 Ns 's 477ZMAGIC format, and 386BSD and BSDI's 478QMAGIC, NMAGIC, and OMAGIC 479.Xr a.out 5 480formats. 481.It Cd options COMPAT_NETBSD32 482On those architectures that support it, this enables binary 483compatibility with 32-bit applications built for the same architecture. 484This is currently limited to the amd64 and sparc64 ports, and only 485applicable for 64-bit kernels. 486.It Cd options COMPAT_SVR4_32 487On those architectures that support it, this enables binary 488compatibility with 32-bit SVR4 applications built for the same architecture. 489This is currently limited to the sparc64 port, and only applicable for 49064-bit kernels. 491.It Cd options COMPAT_AOUT_M68K 492On m68k architectures which have switched to ELF, 493this enables binary compatibility with 494.Nx Ns Tn /m68k 495.Xr a.out 5 496executables on 497.Nx Ns Tn /m68k 498ELF kernels. 499This handles alignment incompatibility of m68k ABI between 500a.out and ELF which causes the structure padding differences. 501Currently only some system calls which use 502.Va struct stat 503are adjusted and some binaries which use 504.Xr sysctl 3 505to retrieve network details would not work properly. 506.It Cd options EXEC_MACHO 507On those architectures that support it, this adds support for running 508Mach-O executables. 509This is currently limited to the i386 and powerpc ports of 510.Nx . 511.It Cd options EXEC_ELF_NOTELESS 512Run unidentified ELF binaries as 513.Nx 514binaries. 515This might be needed for very old 516.Nx 517ELF binaries on some archs. 518These old binaries didn't contain an appropriate 519.Li .note.netbsd.ident 520section, and thus can't be identified by the kernel as 521.Nx 522binaries otherwise. 523Beware - if this option is on, the kernel would run 524.Em any 525unknown ELF binaries as if they were 526.Nx 527binaries. 528.It Cd options P1003_1B_SEMAPHORE 529Includes kernel support for the standard C library 530.Pq libc 531functions that implement semaphores as specified in 532.St -p1003.1-96 . 533.El 534.Ss Debugging Options 535.Bl -ohang 536.It Cd options DDB 537Compiles in a kernel debugger for diagnosing kernel problems. 538See 539.Xr ddb 4 540for details. 541.Em NOTE : 542not available on all architectures. 543.It Cd options DDB_FROMCONSOLE=integer 544If set to non-zero, DDB may be entered by sending a break on a serial 545console or by a special key sequence on a graphics console. 546A value of "0" ignores console breaks or key sequences. 547If not explicitly specified, the default value is "1". 548Note that this sets the value of the 549.Em ddb.fromconsole 550.Xr sysctl 3 551variable which may be changed at run time -- see 552.Xr sysctl 8 553for details. 554.It Cd options DDB_HISTORY_SIZE=integer 555If this is non-zero, enable history editing in the kernel debugger 556and set the size of the history to this value. 557.It Cd options DDB_ONPANIC 558The default if not specified is 559.Dq 1 560- just enter into DDB. 561If set to 562.Dq 2 563the kernel will 564attempt to print out a stack trace before entering into DDB. 565If set to 566.Dq 0 567the kernel will attempt to print out a stack trace 568and reboot the system. 569If set to 570.Dq -1 571then neither a stack trace is printed or DDB entered - 572it is as if DDB were not compiled into the kernel. 573Note that this sets the value of the 574.Em ddb.onpanic 575.Xr sysctl 3 576variable which may be changed at run time -- see 577.Xr sysctl 8 578for details. 579.It Cd options DDB_COMMANDONENTER=string 580This option specify commands which will be executed on each entry to DDB. 581This sets the default value of the 582.Em ddb.commandonenter 583.Xr sysctl 3 584variable which may be changed at run time. 585.It Cd options DDB_BREAK_CHAR=integer 586This option overrides using break to enter the kernel debugger 587on the serial console. 588The value given is the ascii value to be used instead. 589This is currently only supported by the com driver. 590.It Cd options KGDB 591Compiles in a remote kernel debugger stub for diagnosing kernel problems 592using the 593.Dq remote target 594feature of gdb. 595See 596.Xr gdb 1 597for details. 598.Em NOTE : 599not available on all architectures. 600.It Cd options KGDB_DEV 601Device number 602.Po 603as a 604.Dv dev_t 605.Pc 606of kgdb device. 607.It Cd options KGDB_DEVADDR 608Memory address of kgdb device. 609.It Cd options KGDB_DEVMODE 610Permissions of kgdb device. 611.It Cd options KGDB_DEVNAME 612Device name of kgdb device. 613.It Cd options KGDB_DEVRATE 614Baud rate of kgdb device. 615.It Cd makeoptions DEBUG="-g" 616The 617.Fl g 618flag causes 619.Pa netbsd.gdb 620to be built in addition to 621.Pa netbsd . 622.Pa netbsd.gdb 623is useful for debugging kernel crash dumps with gdb. 624See 625.Xr gdb 1 626for details. 627This also turns on 628.Em options DEBUG 629(which see). 630.It Cd options DEBUG 631Turns on miscellaneous kernel debugging. 632Since options are turned into preprocessor defines (see above), 633.Em options DEBUG 634is equivalent to doing a 635.Em #define DEBUG 636throughout the kernel. 637Much of the kernel has 638.Em #ifdef DEBUG 639conditionalized debugging code. 640Note that many parts of the kernel (typically device drivers) include their own 641.Em #ifdef XXX_DEBUG 642conditionals instead. 643This option also turns on certain other options, 644which may decrease system performance. 645.It Cd options DIAGNOSTIC 646Adds code to the kernel that does internal consistency checks. 647This code will cause the kernel to panic if corruption of internal data 648structures is detected. 649These checks can decrease performance up to 15%. 650.It Cd options KSTACK_CHECK_MAGIC 651Check kernel stack usage and panic if stack overflow is detected. 652This check is performance sensitive because it scans stack on each context 653switch. 654.It Cd options KTRACE 655Add hooks for the system call tracing facility, which allows users to 656watch the system call invocation behavior of processes. 657See 658.Xr ktrace 1 659for details. 660.It Cd options MSGBUFSIZE=integer 661This option sets the size of the kernel message buffer. 662This buffer holds the kernel output of 663.Fn printf 664when not (yet) read by 665.Xr syslogd 8 . 666This is particularly useful when the system has crashed and you wish to lookup 667the kernel output from just before the crash. 668Also, since the autoconfig output becomes more and more verbose, 669it sometimes happens that the message buffer overflows before 670.Xr syslogd 8 671was able to read it. 672Note that not all systems are capable of obtaining a variable sized message 673buffer. 674There are also some systems on which memory contents are not preserved 675across reboots. 676.It Cd options MALLOCLOG 677Enables an event log for 678.Xr malloc 9 . 679Useful for tracking down 680.Dq Data modified on freelist 681and 682.Dq multiple free 683problems. 684.It Cd options MALLOCLOGSIZE=integer 685Defines the number of entries in the malloc log. 686Default is 100000 entries. 687.It Cd options SYSTRACE 688Add hooks for the system call policy facility. 689See 690.Xr systrace 1 691for details. 692.It Cd options UVMHIST 693Enables the UVM history logs, which create in-memory traces of 694various UVM activities. 695These logs can be displayed be calling 696.Fn uvmhist_dump 697or 698.Fn uvm_hist 699with appropriate arguments from DDB. 700See the kernel source file sys/uvm/uvm_stat.c for details. 701.It Cd options UVMHIST_PRINT 702Prints the UVM history logs on the system console as entries are added. 703Note that the output is 704.Em extremely 705voluminous, so this option is really only useful for debugging 706the very earliest parts of kernel initialization. 707.El 708.Ss File Systems 709.Bl -ohang 710.It Cd file-system FFS 711Includes code implementing the Berkeley Fast File System 712.Em ( FFS ) . 713Most machines need this if they are not running diskless. 714.It Cd file-system EXT2FS 715Includes code implementing the Second Extended File System 716.Em ( EXT2FS ) , 717revision 0 and revision 1 with the 718.Em filetype 719and 720.Em sparse_super 721options. 722This is the most commonly used file system on the Linux operating system, 723and is provided here for compatibility. 724Some of the specific features of 725.Em EXT2FS 726like the "behavior on errors" are not implemented. 727This file system can't be used with UID or GID greater than 65535. 728See 729.Xr mount_ext2fs 8 730for details. 731.It Cd file-system LFS 732.Bq Em EXPERIMENTAL 733Include the Log-structured File System 734.Em ( LFS ) . 735See 736.Xr mount_lfs 8 737and 738.Xr newfs_lfs 8 739for details. 740.It Cd file-system MFS 741Include the Memory File System 742.Em ( MFS ) . 743This file system stores files in swappable memory, and produces 744notable performance improvements when it is used as the file store 745for 746.Pa /tmp 747and similar file systems. 748See 749.Xr mount_mfs 8 750for details. 751.It Cd file-system NFS 752Include the client side of the Network File System 753.Pq Tn NFS 754remote file sharing protocol. 755Although the bulk of the code implementing 756.Tn NFS 757is kernel based, several user level daemons are needed for it to work. 758See 759.Xr mount_nfs 8 760for details. 761.It Cd file-system CD9660 762Includes code for the 763.Tn ISO 7649660 + Rock Ridge file system, which is the standard file system on many 765.Tn CD-ROM 766discs. 767Useful primarily if you have a 768.Tn CD-ROM 769drive. 770See 771.Xr mount_cd9660 8 772for details. 773.It Cd file-system MSDOSFS 774Includes the 775.Tn MS-DOS 776FAT file system, which is reportedly still used 777by unfortunate people who have not heard about 778.Nx . 779Also implements the 780.Tn Windows 95 781extensions to the same, which permit the use of longer, mixed case 782file names. 783See 784.Xr mount_msdos 8 785and 786.Xr fsck_msdos 8 787for details. 788.It Cd file-system NTFS 789.Bq Em EXPERIMENTAL 790Includes code for the 791.Tn Microsoft Windows NT 792file system. 793See 794.Xr mount_ntfs 8 795for details. 796.It Cd file-system FDESC 797Includes code for a file system, conventionally mounted on 798.Pa /dev/fd , 799which permits access to the per-process file descriptor space via 800special files in the file system. 801See 802.Xr mount_fdesc 8 803for details. 804Note that this facility is redundant, and thus unneeded on most 805.Nx 806systems, since the 807.Xr fd 4 808pseudo-device driver already provides identical functionality. 809On most 810.Nx 811systems, instances of 812.Xr fd 4 813are mknoded under 814.Pa /dev/fd/ 815and on 816.Pa /dev/stdin , 817.Pa /dev/stdout , 818and 819.Pa /dev/stderr . 820.It Cd file-system KERNFS 821Includes code which permits the mounting of a special file system 822(normally mounted on 823.Pa /kern ) 824in which files representing various kernel variables and parameters 825may be found. 826See 827.Xr mount_kernfs 8 828for details. 829.It Cd file-system NULLFS 830Includes code for a loopback file system. 831This permits portions of the file hierarchy to be re-mounted in other places. 832The code really exists to provide an example of a stackable file system layer. 833See 834.Xr mount_null 8 835for details. 836.It Cd file-system OVERLAY 837Includes code for a file system filter. 838This permits the overlay file system to intercept all access to an underlying 839file system. 840This file system is intended to serve as an example of a stacking file 841system which has a need to interpose itself between an underlying file 842system and all other access. 843See 844.Xr mount_overlay 8 845for details. 846.It Cd file-system PORTAL 847.Bq Em EXPERIMENTAL 848Includes the portal file system. 849This permits interesting tricks like opening 850.Tn TCP 851sockets by opening files in the file system. 852The portal file system is conventionally mounted on 853.Pa /p 854and is partially implemented by a special daemon. 855See 856.Xr mount_portal 8 857for details. 858.It Cd file-system PROCFS 859Includes code for a special file system (conventionally mounted on 860.Pa /proc ) 861in which the process space becomes visible in the file system. 862Among 863other things, the memory spaces of processes running on the system are 864visible as files, and signals may be sent to processes by writing to 865.Pa ctl 866files in the procfs namespace. 867See 868.Xr mount_procfs 8 869for details. 870.It Cd file-system UDF 871.Bq Em EXPERIMENTAL 872Includes code for the UDF file system commonly found on CD and DVD 873media but also more and more on USB sticks. 874Useful primarily if you have a CD or a DVD drive, be it a read-only 875or a rewritable device. 876Currently only supports read-access. 877See 878.Xr mount_udf 8 879for details. 880.It Cd file-system UMAPFS 881Includes a loopback file system in which user and group IDs may be 882remapped -- this can be useful when mounting alien file systems with 883different UIDs and GIDs than the local system. 884See 885.Xr mount_umap 8 886for details. 887.It Cd file-system UNION 888.Bq Em EXPERIMENTAL 889Includes code for the union file system, which permits directories to 890be mounted on top of each other in such a way that both file systems 891remain visible -- this permits tricks like allowing writing (and the 892deleting of files) on a read-only file system like a 893.Tn CD-ROM 894by mounting a local writable file system on top of the read-only file system. 895See 896.Xr mount_union 8 897for details. 898.It Cd file-system CODA 899.Bq Em EXPERIMENTAL 900Includes code for the Coda file system. 901Coda is a distributed file system like NFS and AFS. 902It is freely available, like NFS, but it functions much like AFS in being a 903.Dq stateful 904file system. 905Both Coda and AFS cache files on your local machine to improve performance. 906Then Coda goes a step further than AFS by letting you access the cached 907files when there is no available network, viz. disconnected laptops and 908network outages. 909In Coda, both the client and server are outside the kernel which makes 910them easier to experiment with. 911Coda is available for several UNIX and non-UNIX platforms. 912See http://www.coda.cs.cmu.edu for more details. 913.Em NOTE : 914You also need to enable the pseudo-device, vcoda, for the Coda 915file system to work. 916.It Cd file-system SMBFS 917.Bq Em EXPERIMENTAL 918Includes code for the SMB/CIFS file system. 919See 920.Xr mount_smbfs 8 921for details. 922.Em NOTE : 923You also need to enable the pseudo-device, nsmb, for the SMB 924file system to work. 925.It Cd file-system PTYFS 926.Bq Em EXPERIMENTAL 927Includes code for a special file system (normally mounted on 928.Pa /dev/pts ) 929in which pseudo-terminal slave devices become visible in the file system. 930See 931.Xr mount_ptyfs 8 932for details. 933.It Cd file-system TMPFS 934.Bq Em EXPERIMENTAL 935Includes code for the efficient memory file system, normally used over 936.Pa /tmp . 937See 938.Xr mount_tmpfs 8 939for details. 940.El 941.Ss File System Options 942.Bl -ohang 943.It Cd options MAGICLINKS 944Enables the expansion of special strings 945.Po 946beginning with 947.Dq @ 948.Pc 949when traversing symbolic links. 950See 951.Xr symlink 7 952for a list of supported strings. 953Note that this option only controls the enabling of this feature 954by the kernel at boot-up. 955This feature can still be manipulated with the 956.Xr sysctl 8 957command regardless of the setting of this option. 958.It Cd options NFSSERVER 959Include the server side of the 960.Em NFS 961(Network File System) remote file sharing protocol. 962Although the bulk of the code implementing 963.Em NFS 964is kernel based, several user level daemons are needed for it to 965work. 966See 967.Xr mountd 8 968and 969.Xr nfsd 8 970for details. 971.It Cd options QUOTA 972Enables kernel support for file system quotas. 973See 974.Xr quotaon 8 , 975.Xr edquota 8 , 976and 977.Xr quota 1 978for details. 979Note that quotas only work on 980.Dq ffs 981file systems, although 982.Xr rpc.rquotad 8 983permits them to be accessed over 984.Em NFS . 985.It Cd options FFS_EI 986Enable ``Endian-Independent'' FFS support. 987This allows a system to mount an FFS file system created for another 988architecture, at a small performance cost for all FFS file systems. 989See also 990.Xr newfs 8 , 991.Xr fsck_ffs 8 , 992.Xr dumpfs 8 993for file system byte order status and manipulation. 994.It Cd options FFS_NO_SNAPSHOT 995Disable the 996.Dq file system snapshot 997support in FFS file systems. 998Maybe useful for install media kernels, small memory systems and 999embedded systems which don't require the snapshot support. 1000.It Cd options NVNODE=integer 1001This option sets the size of the cache used by the name-to-inode translation 1002routines, (a.k.a. the 1003.Fn namei 1004cache, though called by many other names in the kernel source). 1005By default, this cache has 1006.Dv NPROC 1007(set as 20 + 16 * MAXUSERS) * (80 + NPROC / 8) entries. 1008A reasonable way to derive a value of 1009.Dv NVNODE , 1010should you notice a large number of namei cache misses with a tool such as 1011.Xr systat 1 , 1012is to examine your system's current computed value with 1013.Xr sysctl 8 , 1014(which calls this parameter "kern.maxvnodes") and to increase this value 1015until either the namei cache hit rate improves or it is determined that 1016your system does not benefit substantially from an increase in the size of 1017the namei cache. 1018.It Cd options NAMECACHE_ENTER_REVERSE 1019Causes the namei cache to always enter a reverse mapping (vnode -\*[Gt] name) 1020as well as a normal one. 1021Normally, this is already done for directory vnodes, to speed up the getcwd 1022operation. 1023This option will cause longer hash chains in the reverse cache, and thus 1024slow down getcwd somewhat. 1025However, it does make vnode -\*[Gt] path translations possible in some cases. 1026For now, only useful if strict /proc/#/maps emulation for Linux binaries is 1027required. 1028.It Cd options EXT2FS_SYSTEM_FLAGS 1029This option changes the behavior of the APPEND and IMMUTABLE flags 1030for a file on an 1031.Em EXT2FS 1032file system. 1033Without this option, the superuser or owner of the file can 1034set and clear them. 1035With this option, only the superuser can set them, and 1036they can't be cleared if the securelevel is greater than 0. 1037See also 1038.Xr chflags 1 . 1039.It Cd options NFS_BOOT_BOOTP 1040Enable use of the BOOTP protocol (RFCs 951 and 1048) to get configuration 1041information if NFS is used to mount the root file system. 1042See 1043.Xr diskless 8 1044for details. 1045.It Cd options NFS_BOOT_DHCP 1046Same as 1047.Dq NFS_BOOT_BOOTP , 1048but use the DHCP extensions to the 1049BOOTP protocol (RFC 1541). 1050.It Cd options NFS_BOOT_BOOTP_REQFILE 1051Specifies the string sent in the bp_file field of the BOOTP / DHCP 1052request packet. 1053.It Cd options NFS_BOOT_BOOTPARAM 1054Enable use of the BOOTPARAM protocol, consisting of RARP and 1055BOOTPARAM RPC, to get configuration information if NFS 1056is used to mount the root file system. 1057See 1058.Xr diskless 8 1059for details. 1060.It Cd options NFS_BOOT_RWSIZE=value 1061Set the initial NFS read and write sizes for diskless-boot requests. 1062The normal default is 8Kbytes. 1063This option provides a way to lower the value (e.g., to 1024 bytes) 1064as a workaround for buggy network interface cards or boot PROMs. 1065Once booted, the read and write request sizes can be increased by 1066remounting the file system. 1067See 1068.Xr mount_nfs 8 1069for details. 1070.It Cd options NFS_V2_ONLY 1071Reduce the size of the NFS client code by omitting code that's only required 1072for NFSv3 and NQNFS support, leaving only that code required to use NFSv2 1073servers. 1074.It Cd options SOFTDEP 1075Enable kernel support for soft-dependencies in FFS filesystems. 1076Softdep improves write performance by aggregating and properly 1077ordering disk metadata writes, achieving near-asynchronous write 1078performance while maintaining the filesystem consistency of 1079synchronous writes. 1080Soft-dependencies are enabled on a per-mount basis. 1081See 1082.Xr mount 8 1083for details. 1084.It Cd options UFS_DIRHASH 1085Increase lookup performance by maintaining in-core hash tables 1086for large directories. 1087.El 1088.Ss Buffer queue strategy options 1089The following options enable alternative buffer queue strategies. 1090.Bl -ohang 1091.It Cd options BUFQ_READPRIO 1092Enable experimental buffer queue strategy for disk I/O. 1093In the default strategy, outstanding disk requests are ordered by 1094sector number and sent to the disk, regardless of whether the 1095operation is a read or write; this option gives priority to issuing 1096read requests over write requests. 1097Although requests may therefore be issued out of sector-order, causing 1098more seeks and thus lower overall throughput, interactive system 1099responsiveness under heavy disk I/O load may be improved, as processes 1100blocking on disk reads are serviced sooner (file writes typically 1101don't cause applications to block). 1102The performance effect varies greatly depending on the hardware, drive 1103firmware, filesystem configuration, workload, and desired performance 1104trade-off. 1105Systems using drive write-cache (most modern IDE disks, by default) 1106are unlikely to benefit and may well suffer; such disks acknowledge 1107writes very quickly, and optimise them internally according to 1108physical layout. 1109Giving these disks as many requests to work with as possible (the 1110standard strategy) will typically produce the best results, especially 1111if the drive has a large cache; the drive will silently complete 1112writes from cache as it seeks for reads. 1113Disks that support a large number of concurrent tagged requests (SCSI 1114disks and many hardware RAID controllers) expose this internal 1115scheduling with tagged responses, and don't block for reads; such 1116disks may not see a noticable difference with either strategy. 1117However, if IDE disks are run with write-cache disabled for safety, 1118writes are not acknowledged until actually completed, and only one 1119request can be outstanding; a large number of small writes in one 1120locality can keep the disk busy, starving reads elsewhere on the disk. 1121Such systems are likely to see the most benefit from this option. 1122Finally, the performance interaction of this option with ffs soft 1123dependencies can be subtle, as that mechanism can drastically alter 1124the workload for filesystem metadata writes. 1125.It Cd options BUFQ_PRIOCSCAN 1126Enable another buffer queue strategy for disk I/O, per-priority cyclical scan. 1127.It Cd options NEW_BUFQ_STRATEGY 1128Synonym of 1129.Em BUFQ_READPRIO . 1130.El 1131.Ss Miscellaneous Options 1132.Bl -ohang 1133.It Cd options LKM 1134Enable loadable kernel modules. 1135See 1136.Xr lkm 4 1137for details. 1138.Em NOTE : 1139not available on all architectures. 1140.It Cd options MEMORY_DISK_DYNAMIC 1141This option makes the 1142.Xr md 4 1143.Tn RAM 1144disk size dynamically sized. 1145It is incompatible with 1146.Xr mdsetimage 8 . 1147.It Cd options MEMORY_DISK_HOOKS 1148This option allows for some machine dependent functions to be called when 1149the 1150.Xr md 4 1151.Tn RAM 1152disk driver is configured. 1153This can result in automatically loading a 1154.Tn RAM 1155disk from floppy on open (among other things). 1156.It Cd options MEMORY_DISK_IS_ROOT 1157Forces the 1158.Xr md 4 1159.Tn RAM 1160disk to be the root device. 1161This can only be overridden when 1162the kernel is booted in the 'ask-for-root' mode. 1163.It Cd options MEMORY_DISK_ROOT_SIZE=integer 1164Allocates the given number of 512 byte blocks as memory for the 1165.Xr md 4 1166.Tn RAM 1167disk, to be populated with 1168.Xr mdsetimage 8 . 1169.It Cd options MEMORY_DISK_SERVER=0 1170Do not include the interface to a userland memory disk server process. 1171Per default, this option is set to 1, including the support code. 1172Useful for install media kernels. 1173.It Cd options VND_COMPRESSION 1174Enables the 1175.Xr vnd 4 1176driver to also handle compressed images. 1177See 1178.Xr vndcompress 1 , 1179.Xr vnd 4 1180and 1181.Xr vnconfig 8 1182for more information. 1183.It Cd options MALLOC_NOINLINE 1184Time critical fixed size memory allocation is performed with 1185.Fn MALLOC 1186and 1187.Fn FREE . 1188Normally these expand to inline code, but with 1189.Em MALLOC_NOINLINE 1190these call the normal 1191.Fn malloc 1192and 1193.Fn free 1194functions. 1195Useful for install media kernels, small memory systems and embedded systems. 1196.It Cd options HZ=integer 1197On ports that support it, set the system clock frequency (see 1198.Xr hz 9 ) 1199to the supplied value. 1200Handle with care. 1201.It Cd options NTP 1202Turns on in-kernel precision timekeeping support used by software 1203implementing 1204.Em NTP 1205(Network Time Protocol, RFC 1305). 1206The 1207.Em NTP 1208option adds an in-kernel Phase-Locked Loop (PLL) for normal 1209.Em NTP 1210operation, and a Frequency-Locked Loop (FLL) for intermittently-connected 1211operation. 1212.Xr ntpd 8 1213will employ a user-level PLL when kernel support is unavailable, 1214but the in-kernel version has lower latency and more precision, and 1215so typically keeps much better time. 1216The interface to the kernel 1217.Em NTP 1218support is provided by the 1219.Xr ntp_adjtime 2 1220and 1221.Xr ntp_gettime 2 1222system calls, which are intended for use by 1223.Xr ntpd 8 1224and are enabled by the option. 1225On systems with sub-microsecond resolution timers, or where (HZ / 100000) 1226is not an integer, the 1227.Em NTP 1228option also enables extended-precision arithmetic to keep track of 1229fractional clock ticks at NTP time-format precision. 1230.It Cd options PPS_SYNC 1231This option enables a kernel serial line discipline for receiving time 1232phase signals from an external reference clock such as a radio clock. 1233(The 1234.Em NTP 1235option (which see) must be on if the 1236.Em PPS_SYNC 1237option is used.) 1238Some reference clocks generate a Pulse Per Second (PPS) signal in 1239phase with their time source. 1240The 1241.Em PPS 1242line discipline receives this signal on either the data leads 1243or the DCD control lead of a serial port. 1244.Em NTP 1245uses the PPS signal to discipline the local clock oscillator to a high 1246degree of precision (typically less than 50 microseconds in time and 12470.1 ppm in accuracy). 1248.Em PPS 1249can also generate a serial output pulse when the system receives a PPS 1250interrupt. 1251This can be used to measure the system interrupt latency and thus calibrate 1252.Em NTP 1253to account for it. 1254Using 1255.Em PPS 1256usually requires a 1257gadget box 1258to convert from TTL to RS-232 signal levels. 1259The gadget box and PPS are described in more detail in the HTML documentation 1260for 1261.Xr ntpd 8 1262in 1263.Pa /usr/share/doc/html/ntp . 1264.It Cd options NO_TSC_TIME 1265Don't use TSC microtime, even if available (i386 only). 1266Improves time behavior under VMware. 1267.It Cd options SETUIDSCRIPTS 1268Allows scripts with the setuid bit set to execute as the effective 1269user rather than the real user, just like binary executables. 1270.Pp 1271.Em NOTE : 1272Using this option will also enable 1273.Em options FDSCRIPTS 1274.It Cd options FDSCRIPTS 1275Allows execution of scripts with the execute bit set, but not the 1276read bit, by opening the file and passing the file descriptor to 1277the shell, rather than the filename. 1278.Pp 1279.Em NOTE : 1280Execute only (non-readable) scripts will have 1281.Va argv[0] 1282set to 1283.Pa /dev/fd/* . 1284What this option allows as far as security is 1285concerned, is the ability to safely ensure that the correct script 1286is run by the interpreter, as it is passed as an already open file. 1287.It Cd options PUCCN 1288Enables treating serial ports found on PCI boards 1289.Xr puc 4 1290as potential console devices. 1291The method for choosing such a console device is port dependent. 1292.It Cd options RTC_OFFSET=integer 1293The kernel (and typically the hardware battery backed-up clock on 1294those machines that have one) keeps time in 1295.Em UTC 1296(Universal Coordinated Time, once known as 1297.Em GMT , 1298or Greenwich Mean Time) 1299and not in the time of the local time zone. 1300The 1301.Em RTC_OFFSET 1302option is used on some ports (such as the i386) to tell the kernel 1303that the hardware clock is offset from 1304.Em UTC 1305by the specified number of minutes. 1306This is typically used when a machine boots several operating 1307systems and one of them wants the hardware clock to run in the 1308local time zone and not in 1309.Em UTC , 1310e.g. 1311.Em RTC_OFFSET=300 1312means 1313the hardware clock is set to US Eastern Time (300 minutes behind 1314.Em UTC ) , 1315and not 1316.Em UTC . 1317(Note: 1318.Em RTC_OFFSET 1319is used to initialize a kernel variable named 1320.Va rtc_offset 1321which is the source actually used to determine the clock offset, and 1322which may be accessed via the kern.rtc_offset sysctl variable. 1323See 1324.Xr sysctl 8 1325and 1326.Xr sysctl 3 1327for details. 1328Since the kernel clock is initialized from the hardware clock very 1329early in the boot process, it is not possible to meaningfully change 1330.Va rtc_offset 1331in system initialization scripts. 1332Changing this value currently may only be done at kernel compile 1333time or by patching the kernel and rebooting). 1334.Pp 1335.Em NOTE : 1336Unfortunately, in many cases where the hardware clock 1337is kept in local time, it is adjusted for Daylight Savings 1338Time; this means that attempting to use 1339.Em RTC_OFFSET 1340to let 1341.Nx 1342coexist with such an operating system, like Windows, 1343would necessitate changing 1344.Em RTC_OFFSET 1345twice a year. 1346As such, this solution is imperfect. 1347.It Cd options KMEMSTATS 1348The kernel memory allocator, 1349.Xr malloc 9 , 1350will keep statistics on its performance if this option is enabled. 1351Unfortunately, this option therefore essentially disables the 1352.Fn MALLOC 1353and 1354.Fn FREE 1355forms of the memory allocator, which are used to enhance the performance 1356of certain critical sections of code in the kernel. 1357This option therefore can lead to a significant decrease in the 1358performance of certain code in the kernel if enabled. 1359Examples of such code include the 1360.Fn namei 1361routine, the 1362.Xr ccd 4 1363driver, 1364and much of the networking code. 1365.It Cd options MAXUPRC=integer 1366Sets the soft 1367.Dv RLIMIT_NPROC 1368resource limit, which specifies the maximum number of simultaneous 1369processes a user is permitted to run, for process 0; 1370this value is inherited by its child processes. 1371It defaults to 1372.Em CHILD_MAX , 1373which is currently defined to be 160. 1374Setting 1375.Em MAXUPRC 1376to a value less than 1377.Em CHILD_MAX 1378is not permitted, as this would result in a violation of the semantics of 1379.St -p1003.1-90 . 1380.It Cd options NOFILE=integer 1381Sets the soft 1382.Dv RLIMIT_NOFILE 1383resource limit, which specifies the maximum number of open 1384file descriptors for each process; 1385this value is inherited by its child processes. 1386It defaults to 1387.Em OPEN_MAX , 1388which is currently defined to be 64. 1389.It Cd options MAXFILES=integer 1390Sets the default value of the 1391.Em kern.maxfiles 1392sysctl variable, which indicates the maximum number of files that may 1393be open in the system. 1394.It Cd options DEFCORENAME=string 1395Sets the default value of the 1396.Em kern.defcorename 1397sysctl variable, otherwise it is set to 1398.Nm %n.core . 1399See 1400.Xr sysctl 8 1401and 1402.Xr sysctl 3 1403for details. 1404.It Cd options RASOPS_CLIPPING 1405Enables clipping within the 1406.Nm rasops 1407raster-console output system. 1408.Em NOTE : 1409only available on architectures that use 1410.Nm rasops 1411for console output. 1412.It Cd options RASOPS_SMALL 1413Removes optimized character writing code from the 1414.Nm rasops 1415raster-console output system. 1416.Em NOTE : 1417only available on architectures that use 1418.Nm rasops 1419for console output. 1420.It Cd options INCLUDE_CONFIG_FILE 1421Embeds the kernel config file used to define the kernel in the kernel 1422binary itself. 1423The embedded data also includes any files directly included by the config 1424file itself, e.g. 1425.Pa GENERIC.local 1426or 1427.Pa std.$MACHINE . 1428The embedded config file can be extracted from the resulting kernel with 1429.Xr config 1 1430.Fl x , 1431or by the following command: 1432.Bd -literal -offset indent 1433strings netbsd | sed -n 's/^_CFG_//p' | unvis 1434.Ed 1435.It Cd options INCLUDE_JUST_CONFIG 1436Similar to the above option, but includes just the actual config file, 1437not any included files. 1438.It Cd options PIPE_SOCKETPAIR 1439Use slower, but smaller socketpair(2)-based pipe implementation instead 1440of default faster, but bigger one. 1441Primarily useful for installation kernels. 1442.It Cd options USERCONF 1443Compiles in the in-kernel device configuration manager. 1444See 1445.Xr userconf 4 1446for details. 1447.It Cd options PERFCTRS 1448Compiles in kernel support for CPU performance-monitoring counters. 1449See 1450.Xr pmc 1 1451for details. 1452.Em NOTE : 1453not available on all architectures. 1454.It Cd options XSERVER 1455Compiles in kernel support for 1456.Tn X11 1457on architectures that still use (or can use) the legacy 1458.Em pccons 1459console drivers rather than 1460.Xr wscons 4 . 1461These include bebox, i386, shark. 1462.It Cd options XSERVER_DDB 1463A supplement to XSERVER that adds support for entering 1464.Xr ddb 4 1465while in 1466.Tn X11 . 1467.It Cd options FILEASSOC 1468Support for 1469.Xr fileassoc 9 . 1470.It Cd options FILEASSOC_NHOOKS=integer 1471Number of storage slots per file for 1472.Xr fileassoc 9 . 1473Default is 4. 1474.El 1475.Ss Networking Options 1476.Bl -ohang 1477.It Cd options GATEWAY 1478Enables 1479.Em IPFORWARDING 1480(which see) 1481and (on most ports) increases the size of 1482.Em NMBCLUSTERS 1483(which see). 1484In general, 1485.Em GATEWAY 1486is used to indicate that a system should act as a router, and 1487.Em IPFORWARDING 1488is not invoked directly. 1489(Note that 1490.Em GATEWAY 1491has no impact on protocols other than 1492.Tn IP , 1493such as 1494.Tn CLNP 1495or 1496.Tn XNS ) . 1497.Em GATEWAY 1498option also compiles IPv4 fast forwarding code into the kernel. 1499.It Cd options ICMPPRINTFS 1500The 1501.Em ICMPPRINTFS 1502option will enable debugging information to be printed about 1503the 1504.Xr icmp 4 1505protocol. 1506.It Cd options IPFORWARDING=value 1507If 1508.Em value 1509is 1 this enables IP routing behavior. 1510If 1511.Em value 1512is 0 (the default), it disables it. 1513The 1514.Em GATEWAY 1515option sets this to 1 automatically. 1516With this option enabled, the machine will forward IP datagrams destined 1517for other machines between its interfaces. 1518Note that even without this option, the kernel will 1519still forward some packets (such as source routed packets) -- removing 1520.Em GATEWAY 1521and 1522.Em IPFORWARDING 1523is insufficient to stop all routing through a bastion host on a 1524firewall -- source routing is controlled independently. 1525To turn off source routing, use 1526.Em options IPFORWSRCRT=0 1527(which see). 1528Note that IP forwarding may be turned on and off independently of the 1529setting of the 1530.Em IPFORWARDING 1531option through the use of the 1532.Em net.inet.ip.forwarding 1533sysctl variable. 1534If 1535.Em net.inet.ip.forwarding 1536is 1, IP forwarding is on. 1537See 1538.Xr sysctl 8 1539and 1540.Xr sysctl 3 1541for details. 1542.It Cd options IPFORWSRCRT=value 1543If 1544.Em value 1545is set to zero, source routing of IP datagrams is turned off. 1546If 1547.Em value 1548is set to one (the default) or the option is absent, source routed IP 1549datagrams are forwarded by the machine. 1550Note that source routing of IP packets may be turned on and off 1551independently of the setting of the 1552.Em IPFORWSRCRT 1553option through the use of the 1554.Em net.inet.ip.forwsrcrt 1555sysctl variable. 1556If 1557.Em net.inet.ip.forwsrcrt 1558is 1, forwarding of source routed IP datagrams is on. 1559See 1560.Xr sysctl 8 1561and 1562.Xr sysctl 3 1563for details. 1564.It Cd options IFA_STATS 1565Tells the kernel to maintain per-address statistics on bytes sent 1566and received over (currently) internet and appletalk addresses. 1567.\"This can be a fairly expensive operation, so you probably want to 1568.\"keep this disabled. 1569The option is not recommended as it degrades system stability. 1570.It Cd options IFQ_MAXLEN=value 1571Increases the allowed size of the network interface packet queues. 1572The default queue size is 50 packets, and you do not normally need 1573to increase it. 1574.It Cd options MROUTING 1575Includes support for IP multicast routers. 1576You certainly want 1577.Em INET 1578with this. 1579Multicast routing is controlled by the 1580.Xr mrouted 8 1581daemon. 1582See also option 1583.Cd PIM . 1584.It Cd options PIM 1585Includes support for Protocol Independent Multicast (PIM) routing. 1586You need 1587.Em MROUTING 1588and 1589.Em INET 1590with this. 1591Software using this can be found e.g. in 1592.Pa pkgsrc/net/xorp . 1593.It Cd options INET 1594Includes support for the 1595.Tn TCP/IP 1596protocol stack. 1597You almost certainly want this. 1598See 1599.Xr inet 4 1600for details. 1601.It Cd options INET6 1602Includes support for the 1603.Tn IPv6 1604protocol stack. 1605See 1606.Xr inet6 4 1607for details. 1608Unlike 1609.Em INET , 1610.Em INET6 1611enables multicast routing code as well. 1612This option requires 1613.Em INET 1614at this moment, but it should not. 1615.It Cd options ND6_DEBUG 1616The option sets the default value of net.inet6.icmp6.nd6_debug to 1, 1617for debugging IPv6 neighbor discovery protocol handling. 1618See 1619.Xr sysctl 3 1620for details. 1621.It Cd options IPSEC 1622Includes support for the 1623.Tn IPsec 1624protocol. 1625See 1626.Xr ipsec 4 1627for details. 1628.It Cd options IPSEC_DEBUG 1629Enables debugging code in 1630.Tn IPsec 1631stack. 1632See 1633.Xr ipsec 4 1634for details. 1635.It Cd options IPSEC_ESP 1636Includes support for 1637.Tn IPsec 1638.Tn ESP 1639protocol. 1640See 1641.Xr ipsec 4 1642for details. 1643.It Cd options IPSEC_NAT_T 1644Includes support for 1645.Tn IPsec 1646Network Address Translator traversal (NAT-T), as described in RFCs 3947 1647and 3948. 1648This feature might be patent-encumbered in some countries. 1649.It Cd options ALTQ 1650Enabled ALTQ (Alternate Queueing). 1651For simple rate-limiting, use 1652.Xr tbrconfig 8 1653to set up the interface transmission rate. 1654To use queueing disciplines, their appropriate kernel options should also 1655be defined (documented below). 1656Queueing disciplines are managed by 1657.Xr altqd 8 . 1658See 1659.Xr altq 9 1660for details. 1661.It Cd options ALTQ_HFSC 1662Include support for ALTQ-implemented HFSC (Hierarchical Fair Service Curve) 1663module. 1664HFSC supports both link-sharing and guaranteed real-time services. 1665HFSC employs a service curve based QoS model, and its unique feature 1666is an ability to decouple delay and bandwidth allocation. 1667Requires 1668.Em ALTQ_RED 1669to use the RED queueing discipline on HFSC classes, or 1670.Em ALTQ_RIO 1671to use the RIO queueing discipline on HFSC classes. 1672This option assumes 1673.Em ALTQ . 1674.It Cd options ALTQ_PRIQ 1675Include support for ALTQ-implemented PRIQ (Priority Queueing). 1676PRIQ implements a simple priority-based queueing discipline. 1677A higher priority class is always served first. 1678Requires 1679.Em ALTQ_RED 1680to use the RED queueing discipline on HFSC classes, or 1681.Em ALTQ_RIO 1682to use the RIO queueing discipline on HFSC classes. 1683This option assumes 1684.Em ALTQ . 1685.It Cd options ALTQ_WFQ 1686Include support for ALTQ-implemented WFQ (Weighted Fair Queueing). 1687WFQ implements a weighted-round robin scheduler for a set of queues. 1688A weight can be assigned to each queue to give a different proportion 1689of the link capacity. 1690A hash function is used to map a flow to one of a set of queues. 1691This option assumes 1692.Em ALTQ . 1693.It Cd options ALTQ_FIFOQ 1694Include support for ALTQ-implemented FIFO queueing. 1695FIFOQ is a simple drop-tail FIFO (First In, First Out) queueing discipline. 1696This option assumes 1697.Em ALTQ . 1698.It Cd options ALTQ_RIO 1699Include support for ALTQ-implemented RIO (RED with In/Out). 1700The original RIO has 2 sets of RED parameters; one for in-profile 1701packets and the other for out-of-profile packets. 1702At the ingress of the network, profile meters tag packets as IN or 1703OUT based on contracted profiles for customers. 1704Inside the network, IN packets receive preferential treatment by 1705the RIO dropper. 1706ALTQ/RIO has 3 drop precedence levels defined for the Assured Forwarding 1707PHB of DiffServ (RFC 2597). 1708This option assumes 1709.Em ALTQ . 1710.It Cd options ALTQ_BLUE 1711Include support for ALTQ-implemented Blue buffer management. 1712Blue is another active buffer management mechanism. 1713This option assumes 1714.Em ALTQ . 1715.It Cd options ALTQ_FLOWVALVE 1716Include support for ALTQ-implemented Flowvalve. 1717Flowvalve is a simple implementation of a RED penalty box that identifies 1718and punishes misbehaving flows. 1719This option requires 1720.Em ALTQ_RED 1721and assumes 1722.Em ALTQ . 1723.It Cd options ALTQ_CDNR 1724Include support for ALTQ-implemented CDNR (diffserv traffic conditioner) 1725packet marking/manipulation. 1726Traffic conditioners are components to meter, mark, or drop incoming 1727packets according to some rules. 1728As opposed to queueing disciplines, traffic conditioners handle incoming 1729packets at an input interface. 1730This option assumes 1731.Em ALTQ . 1732.It Cd options ALTQ_NOPCC 1733Disables use of processor cycle counter to measure time in ALTQ. 1734This option should be defined for a non-Pentium i386 CPU which does not 1735have TSC, SMP (per-CPU counters are not in sync), or power management 1736which affects processor cycle counter. 1737This option assumes 1738.Em ALTQ . 1739.It Cd options ALTQ_IPSEC 1740Include support for IPsec in IPv4 ALTQ. 1741This option assumes 1742.Em ALTQ . 1743.It Cd options ALTQ_JOBS 1744Include support for ALTQ-implemented JoBS (Joint Buffer Management 1745and Scheduling). 1746This option assumes 1747.Em ALTQ . 1748.It Cd options ALTQ_AFMAP 1749Include support for an undocumented ALTQ feature that is used to map an IP 1750flow to an ATM VC (Virtual Circuit). 1751This option assumes 1752.Em ALTQ . 1753.It Cd options ALTQ_LOCALQ 1754Include support for ALTQ-implemented local queues. 1755Its practical use is undefined. 1756Assumes 1757.Em ALTQ . 1758.It Cd options SUBNETSARELOCAL 1759Sets default value for net.inet.ip.subnetsarelocal variable, which 1760controls whether non-directly-connected subnets of connected networks 1761are considered "local" for purposes of choosing the MSS for a TCP 1762connection. 1763This is mostly present for historic reasons and completely irrelevant if 1764you enable Path MTU discovery. 1765.It Cd options HOSTZEROBROADCAST 1766Sets default value for net.inet.ip.hostzerobroadcast variable, which 1767controls whether the zeroth host address of each connected subnet is 1768also considered a broadcast address. 1769Default value is "1", for compatibility with old systems; if this is 1770set to zero on all hosts on a subnet, you should be able to fit an extra 1771host per subnet on the 1772".0" address. 1773.It Cd options MCLSHIFT=value 1774This option is the base-2 logarithm of the size of mbuf clusters. 1775The 1776.Bx 1777networking stack keeps network packets in a linked 1778list, or chain, of kernel buffer objects called mbufs. 1779The system provides larger mbuf clusters as an optimization for 1780large packets, instead of using long chains for large packets. 1781The mbuf cluster size, 1782or 1783.Em MCLBYTES , 1784must be a power of two, and is computed as two raised to the power 1785.Em MCLSHIFT . 1786On systems with Ethernet network adaptors, 1787.Em MCLSHIFT 1788is often set to 11, giving 2048-byte mbuf clusters, large enough to 1789hold a 1500-byte 1790.Tn Ethernet 1791frame in a single cluster. 1792Systems with network interfaces supporting larger frame sizes like 1793.Tn ATM , 1794.Tn FDDI , 1795or 1796.Tn HIPPI 1797may perform better with 1798.Em MCLSHIFT 1799set to 12 or 13, giving mbuf cluster sizes of 4096 and 8192 bytes, 1800respectively. 1801.It Cd options NS 1802Include support for the 1803.Tn Xerox 1804.Tn XNS 1805protocol stack. 1806See 1807.Xr ns 4 1808for details. 1809.It Cd options ISO,TPIP 1810Include support for the ubiquitous 1811.Tn OSI 1812protocol stack. 1813See 1814.Xr iso 4 1815for details. 1816This option assumes 1817.Em INET . 1818.It Cd options EON 1819Include support for tunneling 1820.Tn OSI 1821protocols over 1822.Tn IP . 1823Known to be broken, or at least very fragile, and undocumented. 1824.It Cd options NETATALK 1825Include support for the 1826.Tn AppleTalk 1827protocol stack. 1828The kernel provides provision for the 1829.Em Datagram Delivery Protocol 1830(DDP), providing SOCK_DGRAM support and 1831.Tn AppleTalk 1832routing. 1833This stack is used by the 1834.Em NETATALK 1835package, which adds support for 1836.Tn AppleTalk 1837server services via user libraries and applications. 1838.It Cd options BLUETOOTH 1839Include support for the 1840.Tn Bluetooth 1841protocol stack. See 1842.Xr bluetooth 4 1843for details. 1844.It Cd options IPNOPRIVPORTS 1845Normally, only root can bind a socket descriptor to a so-called 1846.Dq privileged 1847.Tn TCP 1848port, that is, a port number in the range 0-1023. 1849This option eliminates those checks from the kernel. 1850This can be useful if there is a desire to allow daemons without 1851privileges to bind those ports, e.g., on firewalls. 1852The security tradeoffs in doing this are subtle. 1853This option should only be used by experts. 1854.It Cd options TCP_COMPAT_42 1855.Tn TCP 1856bug compatibility with 1857.Bx 4.2 . 1858In 1859.Bx 4.2 , 1860.Tn TCP 1861sequence numbers were 32-bit signed values. 1862Modern implementations of TCP use unsigned values. 1863This option clamps the initial sequence number to start in 1864the range 2^31 rather than the full unsigned range of 2^32. 1865Also, under 1866.Bx 4.2 , 1867keepalive packets must contain at least one byte or else 1868the remote end would not respond. 1869.It Cd options TCP_DEBUG 1870Record the last 1871.Em TCP_NDEBUG 1872TCP packets with SO_DEBUG set, and decode to the console if 1873.Em tcpconsdebug 1874is set. 1875.It Cd options TCP_NDEBUG 1876Number of packets to record for 1877.Em TCP_DEBUG . 1878Defaults to 100. 1879.It Cd options TCP_SENDSPACE=value 1880.It Cd options TCP_RECVSPACE=value 1881These options set the max TCP window size to other sizes than the default. 1882The TCP window sizes can be altered via 1883.Xr sysctl 8 1884as well. 1885.It Cd options TCP_INIT_WIN=value 1886This option sets the initial TCP window size for non-local connections, 1887which is used when the transmission starts. 1888The default size is 1, but if the machine should act more aggressively, 1889the initial size can be set to some other value. 1890The initial TCP window size can be set via 1891.Xr sysctl 8 1892as well. 1893.It Cd options PFIL_HOOKS 1894This option turns on the packet filter interface hooks. 1895See 1896.Xr pfil 9 1897for details. 1898This option assumes 1899.Em INET . 1900.It Cd options IPFILTER_LOG 1901This option, in conjunction with 1902.Em pseudo-device ipfilter , 1903enables logging of IP packets using ip-filter. 1904.It Cd options IPFILTER_DEFAULT_BLOCK 1905This option sets the default policy of ip-filter. 1906If it is set, ip-filter will block packets by default. 1907.It Cd options BRIDGE_IPF 1908This option causes 1909.Em bridge 1910devices to use the IP and/or IPv6 filtering hooks, forming 1911a link-layer filter that uses protocol-layer rules. 1912This option assumes the presence of 1913.Em pseudo-device ipfilter . 1914.It Cd options MBUFTRACE 1915This option can help track down mbuf leaks. 1916When enabled, mbufs are tagged with the devices and protocols using them, 1917which slightly decreases network performance. 1918This additional information can be viewed with 1919.Xr netstat 1 : 1920.Dl Ic netstat Fl mssv 1921Not all devices or protocols support this option. 1922.El 1923.Ss Sysctl Related Options 1924.Bl -ohang 1925.It Cd options SYSCTL_DISALLOW_CREATE 1926Disallows the creation or deletion of nodes from the sysctl tree, as 1927well as the assigning of descriptions to nodes that lack them, by any 1928process. 1929These operations are still available to kernel sub-systems, including 1930loadable kernel modules. 1931.It Cd options SYSCTL_DISALLOW_KWRITE 1932Prevents processes from adding nodes to the sysctl tree that make 1933existing kernel memory areas writeable. 1934Sections of kernel memory can still be read and new nodes that own 1935their own data may still be writeable. 1936.It Cd options SYSCTL_DEBUG_SETUP 1937Causes the SYSCTL_SETUP routines to print a brief message when they 1938are invoked. 1939This is merely meant as an aid in determining the order in which 1940sections of the tree are created. 1941.It Cd options SYSCTL_DEBUG_CREATE 1942Prints a message each time 1943.Fn sysctl_create , 1944the function that adds nodes to the tree, is called. 1945.It Cd options SYSCTL_INCLUDE_DESCR 1946Causes the kernel to include short, human readable descriptions for 1947nodes in the sysctl tree. 1948The descriptions can be retrieved programmatically (see 1949.Xr sysctl 3 ) , 1950or by the sysctl binary itself (see 1951.Xr sysctl 8 ) . 1952The descriptions are meant to give an indication of the purpose and/or 1953effects of a given node's value, not replace the documentation for the 1954given subsystem as a whole. 1955.El 1956.Ss System V IPC Options 1957.Bl -ohang 1958.It Cd options SYSVMSG 1959Includes support for 1960.At V 1961style message queues. 1962See 1963.Xr msgctl 2 , 1964.Xr msgget 2 , 1965.Xr msgrcv 2 , 1966.Xr msgsnd 2 . 1967.It Cd options SYSVSEM 1968Includes support for 1969.At V 1970style semaphores. 1971See 1972.Xr semctl 2 , 1973.Xr semget 2 , 1974.Xr semop 2 . 1975.It Cd options SEMMNI=value 1976Sets the number of 1977.At V 1978style semaphore identifiers. 1979The GENERIC config file for your port will have the default. 1980.It Cd options SEMMNS=value 1981Sets the number of 1982.At V 1983style semaphores in the system. 1984The GENERIC config file for your port will have the default. 1985.It Cd options SEMUME=value 1986Sets the maximum number of undo entries per process for 1987.At V 1988style semaphores. 1989The GENERIC config file for your port will have the default. 1990.It Cd options SEMMNU=value 1991Sets the number of undo structures in the system for 1992.At V 1993style semaphores. 1994The GENERIC config file for your port will have the default. 1995.It Cd options SYSVSHM 1996Includes support for 1997.At V 1998style shared memory. 1999See 2000.Xr shmat 2 , 2001.Xr shmctl 2 , 2002.Xr shmdt 2 , 2003.Xr shmget 2 . 2004.It Cd options SHMMAXPGS=value 2005Sets the maximum number of 2006.At V 2007style shared memory pages that are available through the 2008.Xr shmget 2 2009system call. 2010Default value is 1024 on most ports. 2011See 2012.Pa /usr/include/machine/vmparam.h 2013for the default. 2014.El 2015.Ss VM Related Options 2016.Bl -ohang 2017.It Cd options NMBCLUSTERS=value 2018The number of mbuf clusters the kernel supports. 2019Mbuf clusters are MCLBYTES in size (usually 2k). 2020This is used to compute the size of the kernel VM map 2021.Em mb_map , 2022which maps mbuf clusters. 2023Default on most ports is 1024 (2048 with 2024.Dq options GATEWAY 2025). 2026See 2027.Pa /usr/include/machine/param.h 2028for exact default information. 2029Increase this value if you get 2030.Dq mclpool limit reached 2031messages. 2032.It Cd options NKMEMPAGES=value 2033.It Cd options NKMEMPAGES_MIN=value 2034.It Cd options NKMEMPAGES_MAX=value 2035Size of kernel VM map 2036.Em kmem_map , 2037in PAGE_SIZE-sized chunks (the VM page size; this value may be read 2038from the 2039.Xr sysctl 8 2040variable 2041.Em hw.pagesize 2042). 2043This VM map is used to map the kernel malloc arena. 2044The kernel attempts to auto-size this map based on the amount of 2045physical memory in the system. 2046Platform-specific code may place bounds on this computed size, 2047which may be viewed with the 2048.Xr sysctl 8 2049variable 2050.Em vm.nkmempages . 2051See 2052.Pa /usr/include/machine/param.h 2053for the default upper and lower bounds. 2054The related options 2055.Sq NKMEMPAGES_MIN 2056and 2057.Sq NKMEMPAGES_MAX 2058allow the bounds to be overridden in the kernel configuration file. 2059These options are provided in the event the computed value is 2060insufficient resulting in an 2061.Dq out of space in kmem_map 2062panic. 2063.It Cd options SB_MAX=value 2064Sets the max size in bytes that a socket buffer is allowed to occupy. 2065The default is 256k, but sometimes it needs to be increased, for example 2066when using large TCP windows. 2067This option can be changed via 2068.Xr sysctl 8 2069as well. 2070.It Cd options SOMAXKVA=value 2071Sets the maximum size of kernel virtual memory that the socket buffers 2072are allowed to use. 2073The default is 16MB, but in situations where for example large TCP 2074windows are used this value must also be increased. 2075This option can be changed via 2076.Xr sysctl 8 2077as well. 2078.It Cd options BUFCACHE=value 2079Size of the buffer cache as a percentage of total available 2080.Tn RAM . 2081Ignored if BUFPAGES is also specified. 2082.It Cd options NBUF=value 2083Sets the number of buffer headers available, i.e., the number of 2084open files that may have a buffer cache entry. 2085Each buffer header 2086requires MAXBSIZE (machine dependent, but usually 65536) bytes. 2087The default value is machine dependent, but is usually equal to the 2088value of BUFPAGES. 2089If an architecture dependent VM_MAX_KERNEL_BUF constant is defined 2090then NBUF may be reduced at run time so that the storage allocated 2091for buffer headers doesn't exceed that limit. 2092.It Cd options BUFPAGES=value 2093These options set the number of pages available for the buffer cache. 2094Their default value is a machine dependent value, often calculated as 2095between 5% and 10% of total available 2096.Tn RAM . 2097.It Cd options MAXTSIZ=bytes 2098Sets the maximum size limit of a process' text segment. 2099See 2100.Pa /usr/include/machine/vmparam.h 2101for the port-specific default. 2102.It Cd options DFLDSIZ=bytes 2103Sets the default size limit of a process' data segment, the value that 2104will be returned as the soft limit for 2105.Dv RLIMIT_DATA 2106(as returned by 2107.Xr getrlimit 2 ) . 2108See 2109.Pa /usr/include/machine/vmparam.h 2110for the port-specific default. 2111.It Cd options MAXDSIZ=bytes 2112Sets the maximum size limit of a process' data segment, the value that 2113will be returned as the hard limit for 2114.Dv RLIMIT_DATA 2115(as returned by 2116.Xr getrlimit 2 ) . 2117See 2118.Pa /usr/include/machine/vmparam.h 2119for the port-specific default. 2120.It Cd options DFLSSIZ=bytes 2121Sets the default size limit of a process' stack segment, the value that 2122will be returned as the soft limit for 2123.Dv RLIMIT_STACK 2124(as returned by 2125.Xr getrlimit 2 ) . 2126See 2127.Pa /usr/include/machine/vmparam.h 2128for the port-specific default. 2129.It Cd options MAXSSIZ=bytes 2130Sets the maximum size limit of a process' stack segment, the value that 2131will be returned as the hard limit for 2132.Dv RLIMIT_STACK 2133(as returned by 2134.Xr getrlimit 2 ) . 2135See 2136.Pa /usr/include/machine/vmparam.h 2137for the port-specific default. 2138.It Cd options DUMP_ON_PANIC=integer 2139Defaults to one. 2140If set to zero, the kernel will not dump to the dump device when 2141it panics, though dumps can still be forced via 2142.Xr ddb 4 2143with the 2144.Dq sync 2145command. 2146Note that this sets the value of the 2147.Em kern.dump_on_panic 2148.Xr sysctl 3 2149variable which may be changed at run time -- see 2150.Xr sysctl 8 2151for details. 2152.It Cd options USE_TOPDOWN_VM 2153User space memory allocations (as made by 2154.Xr mmap 2 ) 2155will be arranged in a 2156.Dq top down 2157fashion instead of the traditional 2158.Dq upwards from MAXDSIZ \+ vm_daddr 2159method. 2160This includes the placement of 2161.Xr ld.so 1 . 2162Arranging memory in this manner allows either (or both of) the heap or 2163.Xr mmap 2 2164allocated space to grow larger than traditionally possible. 2165This option is not available on all ports, but is instead expected to be 2166offered on a port-by-port basis, after which some ports will commit to 2167using it by default. 2168See the files 2169.Pa /usr/include/uvm/uvm_param.h 2170for some implementation details, and 2171.Pa /usr/include/machine/vmparam.h 2172for port specific details including availability. 2173.It Cd options VMSWAP 2174Enable paging device/file support. 2175This option is on by default. 2176.It Cd options PDPOLICY_CLOCKPRO 2177Use CLOCK-Pro, an alternative page replace policy. 2178.El 2179.Ss Security Options 2180.Bl -ohang 2181.It Cd options INSECURE 2182Hardwires the kernel security level at \-1. 2183This means that the system 2184always runs in secure level \-1 mode, even when running multiuser. 2185See the manual page for 2186.Xr init 8 2187for details on the implications of this. 2188The kernel secure level may manipulated by the superuser by altering the 2189.Em kern.securelevel 2190.Xr sysctl 3 2191variable (the secure level may only be lowered by a call from process ID 1, 2192i.e., 2193.Xr init 8 ) . 2194See also 2195.Xr sysctl 8 2196and 2197.Xr sysctl 3 . 2198.It Cd options VERIFIED_EXEC_FP_MD5 2199Enables support for MD5 hashes in Veriexec. 2200.It Cd options VERIFIED_EXEC_FP_SHA1 2201Enables support for SHA1 hashes in Veriexec. 2202.It Cd options VERIFIED_EXEC_FP_RMD160 2203Enables support for RMD160 hashes in Veriexec. 2204.It Cd options VERIFIED_EXEC_FP_SHA256 2205Enables support for SHA256 hashes in Veriexec. 2206.It Cd options VERIFIED_EXEC_FP_SHA384 2207Enables support for SHA384 hashes in Veriexec. 2208.It Cd options VERIFIED_EXEC_FP_SHA512 2209Enables support for SHA512 hashes in Veriexec. 2210.It Cd options PAX_MPROTECT=value 2211Enables PaX MPROTECT, 2212.Xr mprotect 2 2213restrictions from the PaX project. 2214.Pp 2215The 2216.Ar value 2217is the default value for the 2218.Em global 2219knob, see 2220.Xr sysctl 3 . 2221If 0, PaX MPROTECT will be enabled only if explicitly set on programs 2222using 2223.Xr paxctl 1 . 2224If 1, PaX MPROTECT will be enabled to all programs, and exemption can 2225be done using 2226.Xr paxctl 1 . 2227.El 2228.Ss amiga-specific Options 2229.Bl -ohang 2230.It Cd options BB060STUPIDROM 2231When the bootloader (which passes 2232.Tn AmigaOS 2233.Tn ROM 2234information) claims we have a 68060 2235.Tn CPU 2236without 2237.Tn FPU , 2238go look into the Processor Configuration Register (PCR) to find out. 2239You need this with 2240.Tn Amiga 2241.Tn ROM Ns s 2242up to (at least) V40.xxx (OS3.1), 2243when you boot via the bootblocks and don't have a DraCo. 2244.It Cd options IOBZCLOCK=frequency 2245The IOBlix boards come with two different serial master clocks: older ones 2246use 24 MHz, newer ones use 22.1184 MHz. 2247The driver normally assumes the latter. 2248If your board uses 24 MHz, you can recompile your kernel with 2249options IOBZCLOCK=24000000 2250or patch the kernel variable 2251.Tn iobzclock 2252to the same value. 2253.It Cd options LIMITMEM=value 2254If there, limit the part of the first memory bank used by 2255.Nx 2256to value megabytes. 2257Default is unlimited. 2258.It Cd options NKPTADD=addvalue 2259.It Cd options NKPTADDSHIFT=shiftvalue 2260The 2261.Tn CPU 2262specific 2263.Tn MMU 2264table for the kernel is pre-allocated at kernel startup time. 2265Part of it is scaled with 2266.Va maxproc , 2267to have enough room to hold the user program 2268.Tn MMU 2269tables; the second part is a fixed amount for the kernel itself. 2270.Pp 2271The third part accounts for the size of the file buffer cache. 2272Its size is either 2273.Dv NKPTADD 2274pages (if defined) or memory size in bytes divided by two to 2275the power of 2276.Dv NKPTADDSHIFT . 2277The default is undefined 2278.Dv NKPTADD 2279and 2280.Dv NKPTADDSHIFT=24 , 2281allowing for 16 buffers per megabyte of main memory (while 2282a GENERIC kernel allocates about half of that). 2283When you get "can't get KPT page" panics, you should increase 2284.Dv NKPTADD 2285(if defined), or decrease 2286.Dv NKPTADDSHIFT 2287by one. 2288.It Cd options P5PPC68KBOARD 2289Add special support for Phase5 mixed 68k+PPC boards. 2290Currently, this only affects rebooting from 2291.Nx 2292and is only needed on 68040+PPC, not on 229368060+PPC; without this, affected machines will hang after 2294.Nx 2295has shut 2296down and will only restart after a keyboard reset or a power cycle. 2297.El 2298.Ss arm32-specific Options 2299.Bl -ohang 2300.It Cd options FRENCH_KBD 2301Include translation for French keyboards when using 2302.Em pccons 2303on a Shark. 2304.It Cd options FINNISH_KBD 2305Include translation for Finnish keyboards when using 2306.Em pccons 2307on a Shark. 2308.It Cd options GERMAN_KBD 2309Include translation for German keyboards when using 2310.Em pccons 2311on a Shark. 2312.It Cd options NORWEGIAN_KBD 2313Include translation for French keyboards when using 2314.Em pccons 2315on a Shark. 2316.El 2317.Ss amd64-specific Options 2318.Bl -ohang 2319.It Cd options POWERNOW_K8 2320Include support for AMD Athlon 64 PowerNow! and Cool`n'Quiet 2321Technology, used to change the cpu and voltage frequency 2322on the fly. 2323.El 2324.Ss atari-specific Options 2325.Bl -ohang 2326.It Cd options DISKLABEL_AHDI 2327Include support for AHDI (native Atari) disklabels. 2328.It Cd options DISKLABEL_NBDA 2329Include support for 2330.Nx Ns Tn /atari 2331labels. 2332If you don't set this option, it will be set automatically. 2333.Nx Ns Tn /atari 2334will not work without it. 2335.It Cd options FALCON_SCSI 2336Include support for the 5380-SCSI configuration as found on the Falcon. 2337.It Cd options RELOC_KERNEL 2338If set, the kernel will relocate itself to TT-RAM, if possible. 2339This will give you a slightly faster system. 2340.Em Beware 2341that on some TT030 systems, 2342the system will frequently dump with MMU-faults with this option enabled. 2343.It Cd options SERCONSOLE 2344Allow the modem1-port to act as the system-console. 2345A carrier should be active on modem1 during system boot to active 2346the console functionality. 2347.It Cd options TT_SCSI 2348Include support for the 5380-SCSI configuration as found on the TT030 2349and Hades. 2350.El 2351.Ss i386-specific Options 2352.Bl -ohang 2353.It Cd options I386_CPU,I486_CPU,I586_CPU,I686_CPU 2354Include support for a particular class of 2355.Tn CPU 2356.Po 2357.Tn i386 , 2358.Tn i486 , 2359.Tn Pentium , 2360or 2361.Tn Pentium Pro 2362.Pc . 2363If the appropriate class for your 2364.Tn CPU 2365is not configured, the kernel will use the highest class available 2366that will work. 2367In general, using the correct 2368.Tn CPU 2369class will result in the best performance. 2370At least one of these options must be present. 2371.It Cd options ENHANCED_SPEEDSTEP 2372Include support for the 2373.Tn Enhanced SpeedStep Technology 2374present in newer 2375.Tn CPU Ns s . 2376.It Cd options EST_FREQ_USERWRITE 2377Allow any user to change the frequency of an 2378.Tn Enhanced SpeedStep Technology 2379capable 2380.Tn CPU . 2381.It Cd options POWERNOW_K7 2382Include support for the AMD 2383.Tn PowerNow! Technology 2384present in AMD Athlon Mobile processors. 2385.It Cd options CPURESET_DELAY=value 2386Specifies the time (in millisecond) to wait before doing a hardware reset 2387in the last phase of a reboot. 2388This gives the user a chance to see error messages from the shutdown 2389operations (like NFS unmounts, buffer cache flush, etc ...). 2390Setting this to 0 will disable the delay. 2391Default is 2 seconds. 2392.It Cd options MATH_EMULATE 2393Include the floating point emulator. 2394This is useful only for 2395.Tn CPU Ns s 2396that lack an 2397internal Floating Point Unit 2398.Pq Tn FPU 2399or co-processor. 2400.It Cd options VM86 2401Include support for virtual 8086 mode, used by 2402.Tn DOS 2403emulators and X servers to run BIOS code, e.g., for some VESA routines. 2404.It Cd options USER_LDT 2405Include i386-specific system calls for modifying the local descriptor table, 2406used by Windows emulators. 2407.It Cd options REALBASEMEM=integer 2408Overrides the base memory size passed in from the boot block. 2409(Value given in kilobytes.) 2410Use this option only if the boot block reports the size incorrectly. 2411(Note that some 2412.Tn BIOS Ns es 2413put the extended 2414.Tn BIOS 2415data area at the top of base memory, and therefore report a smaller 2416base memory size to prevent programs overwriting it. 2417This is correct behavior, and you should not use the 2418.Em REALBASEMEM 2419option to access this memory). 2420.It Cd options REALEXTMEM=integer 2421Overrides the extended memory size passed in from the boot block. 2422(Value given in kilobytes. 2423Extended memory does not include the first megabyte.) 2424Use this option only if the boot block reports the size incorrectly. 2425.It Cd options FRENCH_KBD,FINNISH_KBD,GERMAN_KBD,NORWEGIAN_KBD 2426Select a non-US keyboard layout for the 2427.Em pccons 2428console driver. 2429.It Cd options CYRIX_CACHE_WORKS 2430Relevant only to the Cyrix 486DLC CPU. 2431This option is used to turn on the cache in hold-flush mode. 2432It is not turned on by default because it is known to have problems in 2433certain motherboard implementations. 2434.It Cd options CYRIX_CACHE_REALLY_WORKS 2435Relevant only to the Cyrix 486DLC CPU. 2436This option is used to turn on the cache in write-back mode. 2437It is not turned on by default because it is known to have problems in 2438certain motherboard implementations. 2439In order for this option to take effect, option 2440.Em CYRIX_CACHE_WORKS 2441must also be specified. 2442.It Cd options PCIBIOS 2443Enable support for initializing the 2444.Tn PCI 2445bus using information from the 2446.Tn BIOS . 2447See 2448.Xr pcibios 4 2449for details. 2450.It Cd options KSTACK_CHECK_DR0 2451Detect kernel stack overflow using DR0 register. 2452This option uses DR0 register exclusively so you can't use DR0 register for 2453other purpose (e.g., hardware breakpoint) if you turn this on. 2454.It Cd options MTRR 2455Include support for accessing MTRR registers from user-space. 2456See 2457.Xr i386_get_mtrr 2 . 2458.It Cd options BEEP_ONHALT 2459Make the system speaker emit several beeps when it is completely safe to 2460power down the computer after a 2461.Xr halt 8 2462command. 2463Requires 2464.Xr sysbeep 4 2465support. 2466.It Cd options BEEP_ONHALT_COUNT=times 2467Number of times to beep the speaker when 2468.Cd options BEEP_ONHALT 2469is enabled. 2470Defaults to 3. 2471.It Cd options BEEP_ONHALT_PITCH=hz 2472The tone frequency used when 2473.Cd options BEEP_ONHALT 2474option, in hertz. 2475Defaults to 1500. 2476.It Cd options BEEP_ONHALT_PERIOD=msecs 2477The duration of each beep when 2478.Cd options BEEP_ONHALT 2479is enabled, in milliseconds. 2480Defaults to 250. 2481.It Cd options MULTIBOOT 2482Makes the kernel Multiboot-compliant, allowing it to be booted through 2483a Multiboot-compliant boot manager such as GRUB. 2484See 2485.Xr multiboot 8 2486for more information. 2487.It Cd options MULTIBOOT_SYMTAB_SPACE=nbytes 2488Space (in bytes) reserved in memory to store the kernel's symbol table. 2489If the symbol table is bigger than this space, it will not be loaded; 2490if it is smaller, the unused memory will be claimed by the kernel and 2491used normally. 2492You shouldn't need to touch this variable. 2493Defaults to 1048576 bytes (one megabyte). 2494.El 2495.Ss isa-specific Options 2496Options specific to 2497.Xr isa 4 2498busses. 2499.Bl -ohang 2500.It Cd options PCIC_ISA_ALLOC_IOBASE=address, PCIC_ISA_ALLOC_IOSIZE=size 2501Control the section of IO bus space used for PCMCIA bus space mapping. 2502Ideally the probed defaults are satisfactory, however in practice 2503that is not always the case. 2504See 2505.Xr pcmcia 4 2506for details. 2507.It Cd options PCIC_ISA_INTR_ALLOC_MASK=mask 2508Controls the allowable interrupts that may be used for 2509.Tn PCMCIA 2510devices. 2511This mask is a logical-or of power-of-2s of allowable interrupts: 2512.Bd -literal -offset 04n 2513.Em "IRQ Val IRQ Val IRQ Val IRQ Val" 2514 0 0x0001 4 0x0010 8 0x0100 12 0x1000 2515 1 0x0002 5 0x0020 9 0x0200 13 0x2000 2516 2 0x0004 6 0x0040 10 0x0400 14 0x4000 2517 3 0x0008 7 0x0080 11 0x0800 15 0x8000 2518.Ed 2519.It Cd options PCKBC_CNATTACH_SELFTEST 2520Perform a self test of the keyboard controller before attaching it as a 2521console. 2522This might be necessary on machines where we boot on cold iron, and 2523pckbc refuses to talk until we request a self test. 2524Currently only the netwinder port uses it. 2525.It Cd options PCKBD_CNATTACH_MAY_FAIL 2526If this option is set the PS/2 keyboard will not be used as the console 2527if it cannot be found during boot. 2528This allows other keyboards, like USB, to be the console keyboard. 2529.It Cd options PCKBD_LAYOUT=layout 2530Sets the default keyboard layout, see 2531.Xr pckbd 4 . 2532.El 2533.Ss m68k-specific Options 2534.Bl -ohang 2535.It Cd options FPU_EMULATE 2536Include support for MC68881/MC68882 emulator. 2537.It Cd options FPSP 2538Include support for 68040 floating point. 2539.It Cd options M68020,M68030,M68040,M68060 2540Include support for a specific 2541.Tn CPU , 2542at least one (the one you are using) should be specified. 2543.It Cd options M060SP 2544Include software support for 68060. 2545This provides emulation of unimplemented 2546integer instructions as well as emulation of unimplemented floating point 2547instructions and data types and software support for floating point traps. 2548.El 2549.Ss powerpc-specific Options (OEA Only) 2550.Bl -ohang 2551.It Cd options PMAP_MEMLIMIT=value 2552Limit the amount of memory seen by the kernel to 2553.Ar value 2554bytes. 2555.It Cd options PTEGCOUNT=value 2556Specify the size of the page table as 2557.Ar value 2558PTE groups. 2559Normally, one PTEG is allocated per physical page frame. 2560.El 2561.Ss sparc-specific Options 2562.Bl -ohang 2563.It Cd options AUDIO_DEBUG 2564Enable simple event debugging of the logging of the 2565.Xr audio 4 2566device. 2567.It Cd options BLINK 2568Enable blinking of LED. 2569Blink rate is full cycle every N seconds for 2570N \*[Lt] then current load average. 2571See 2572.Xr getloadavg 3 . 2573.\" .It Cd options COLORFONT_CACHE 2574.\" What does this do? 2575.It Cd options COUNT_SW_LEFTOVERS 2576Count how many times the sw SCSI device has left 3, 2, 1 and 0 in the 2577sw_3_leftover, sw_2_leftover, sw_1_leftover, and sw_0_leftover 2578variables accessible from 2579.Xr ddb 4 . 2580See 2581.Xr sw 4 . 2582.It Cd options DEBUG_ALIGN 2583Adds debugging messages calls when user-requested alignment fault 2584handling happens. 2585.It Cd options DEBUG_EMUL 2586Adds debugging messages calls for emulated floating point and 2587alignment fixing operations. 2588.It Cd options DEBUG_SVR4 2589Prints registers messages calls for emulated SVR4 getcontext and 2590setcontext operations. 2591See 2592.Em options COMPAT_SVR4 . 2593.It Cd options EXTREME_DEBUG 2594Adds debugging functions callable from 2595.Xr ddb 4 . 2596The debug_pagetables, test_region and print_fe_map 2597functions print information about page tables for the SUN4M 2598platforms only. 2599.It Cd options EXTREME_EXTREME_DEBUG 2600Adds extra info to 2601.Em options EXTREME_DEBUG . 2602.It Cd options FPU_CONTEXT 2603Make 2604.Em options COMPAT_SVR4 2605getcontext and setcontext include floating point registers. 2606.It Cd options MAGMA_DEBUG 2607Adds debugging messages to the 2608.Xr magma 4 2609device. 2610.It Cd options RASTERCONS_FULLSCREEN 2611Use the entire screen for the console. 2612.It Cd options RASTERCONS_SMALLFONT 2613Use the Fixed font on the console, instead of the normal font. 2614.It Cd options SUN4 2615Support sun4 class machines. 2616.It Cd options SUN4C 2617Support sun4c class machines. 2618.It Cd options SUN4M 2619Support sun4m class machines. 2620.It Cd options SUN4_MMU3L 2621.\" XXX ??? 2622Enable support for sun4 3-level MMU machines. 2623.It Cd options V9 2624Enable SPARC V9 assembler in 2625.Xr ddb 4 . 2626.El 2627.Ss sparc64-specific Options 2628.Bl -ohang 2629.It Cd options AUDIO_DEBUG 2630Enable simple event debugging of the logging of the 2631.Xr audio 4 2632device. 2633.It Cd options BLINK 2634Enable blinking of LED. 2635Blink rate is full cycle every N seconds for 2636N \*[Lt] then current load average. 2637See 2638.Xr getloadavg 3 . 2639.El 2640.Ss x68k-specific Options 2641.Bl -ohang 2642.It Cd options EXTENDED_MEMORY 2643Include support for extended memory, e.g., TS-6BE16 and 060turbo on-board. 2644.It Cd options JUPITER 2645Include support for Jupiter-X MPU accelerator 2646.It Cd options ZSCONSOLE,ZSCN_SPEED=value 2647Use the built-in serial port as the system-console. 2648Speed is specified in bps, defaults to 9600. 2649.It Cd options ITE_KERNEL_ATTR=value 2650Set the kernel message attribute for ITE. 2651Value, an integer, is a logical or of the following values: 2652.Bl -tag -width 4n -compact -offset indent 2653.It 1 2654color inversed 2655.It 2 2656underlined 2657.It 4 2658bolded 2659.El 2660.El 2661.\" The following requests should be uncommented and used where appropriate. 2662.\" .Sh FILES 2663.\" .Sh EXAMPLES 2664.Sh SEE ALSO 2665.Xr config 1 , 2666.Xr gdb 1 , 2667.Xr ktrace 1 , 2668.Xr pmc 1 , 2669.Xr quota 1 , 2670.Xr vndcompress 1 , 2671.Xr gettimeofday 2 , 2672.Xr i386_get_mtrr 2 , 2673.Xr i386_iopl 2 , 2674.Xr msgctl 2 , 2675.Xr msgget 2 , 2676.Xr msgrcv 2 , 2677.Xr msgsnd 2 , 2678.Xr ntp_adjtime 2 , 2679.Xr ntp_gettime 2 , 2680.Xr semctl 2 , 2681.Xr semget 2 , 2682.Xr semop 2 , 2683.Xr shmat 2 , 2684.Xr shmctl 2 , 2685.Xr shmdt 2 , 2686.Xr shmget 2 , 2687.Xr sysctl 3 , 2688.Xr apm 4 , 2689.Xr ddb 4 , 2690.Xr inet 4 , 2691.Xr iso 4 , 2692.Xr lkm 4 , 2693.Xr md 4 , 2694.Xr ns 4 , 2695.Xr pcibios 4 , 2696.Xr pcmcia 4 , 2697.Xr ppp 4 , 2698.Xr userconf 4 , 2699.Xr vnd 4 , 2700.Xr wscons 4 , 2701.Xr config 5 , 2702.Xr edquota 8 , 2703.Xr init 8 , 2704.Xr mdsetimage 8 , 2705.Xr mount_cd9660 8 , 2706.Xr mount_fdesc 8 , 2707.Xr mount_kernfs 8 , 2708.Xr mount_lfs 8 , 2709.Xr mount_mfs 8 , 2710.Xr mount_msdos 8 , 2711.Xr mount_nfs 8 , 2712.Xr mount_ntfs 8 , 2713.Xr mount_null 8 , 2714.Xr mount_portal 8 , 2715.Xr mount_procfs 8 , 2716.Xr mount_udf 8 , 2717.Xr mount_umap 8 , 2718.Xr mount_union 8 , 2719.Xr mrouted 8 , 2720.Xr newfs_lfs 8 , 2721.Xr ntpd 8 , 2722.Xr quotaon 8 , 2723.Xr rpc.rquotad 8 , 2724.Xr sysctl 8 2725.Sh HISTORY 2726The 2727.Nm 2728man page first appeared in 2729.Nx 1.3 . 2730.Sh BUGS 2731The 2732.Em EON 2733option should be a pseudo-device, and is also very fragile. 2734