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