-
options MEMORY_DISK_DYNAMIC
-
This option makes the md(4) RAM disk size dynamically sized. It is incompatible with mdsetimage(8).
-
options MEMORY_DISK_HOOKS
-
This option allows for some machine dependent functions to be called when the md(4) RAM disk driver is configured. This can result in automatically loading a RAM disk from floppy on open (among other things).
-
options MEMORY_DISK_IS_ROOT
-
Forces the md(4) RAM disk to be the root device. This can only be overridden when the kernel is booted in the 'ask-for-root' mode.
-
options MEMORY_DISK_ROOT_SIZE=integer
-
Allocates the given number of 512 byte blocks as memory for the md(4) RAM disk, to be populated with mdsetimage(8).
-
options MEMORY_DISK_SERVER=0
-
Do not include the interface to a userland memory disk server process. Per default, this option is set to 1, including the support code. Useful for install media kernels.
-
options MEMORY_DISK_RBFLAGS=value
-
This option sets the reboot(2) flags used when booting with a memory disk as root file system. Possible values include RB_AUTOBOOT (boot in the usual fashion - default value), and RB_SINGLE (boot in single-user mode).
-
options MODULAR
-
Enables the framework for kernel modules (see module(7)).
-
options VND_COMPRESSION
-
Enables the vnd(4) driver to also handle compressed images. See vndcompress(1), vnd(4) and vnconfig(8) for more information.
-
options SPLDEBUG
-
Help the kernel programmer find bugs related to the interrupt priority level. When spllower() or splraise() changes the current CPU's interrupt priority level to or from IPL_HIGH, record a backtrace. Read return_address(9) for caveats about collecting backtraces. This feature is experimental, and it is only available on i386. See sys/kern/subr_spldebug.c.
-
options TFTPROOT
-
Download the root memory disk through TFTP at root mount time. This enables the use of a root RAM disk without requiring it to be embedded in the kernel using mdsetimage(8). The RAM disk name is obtained using DHCP's filename parameter. This option requires MEMORY_DISK_HOOKS, MEMORY_DISK_DYNAMIC, and MEMORY_DISK_IS_ROOT. It is incompatible with MEMORY_DISK_ROOT_SIZE.
-
options MALLOC_NOINLINE
-
Time critical fixed size memory allocation is performed with MALLOC() and FREE(). Normally these expand to inline code, but with MALLOC_NOINLINE these call the normal malloc() and free() functions. Useful for install media kernels, small memory systems and embedded systems.
-
options HZ=integer
-
On ports that support it, set the system clock frequency (see hz(9)) to the supplied value. Handle with care.
-
options NTP
-
Turns on in-kernel precision timekeeping support used by software implementing NTP (Network Time Protocol, RFC 1305). The NTP option adds an in-kernel Phase-Locked Loop (PLL) for normal NTP operation, and a Frequency-Locked Loop (FLL) for intermittently-connected operation. ntpd(8) will employ a user-level PLL when kernel support is unavailable, but the in-kernel version has lower latency and more precision, and so typically keeps much better time.
The interface to the kernel NTP support is provided by the ntp_adjtime(2) and ntp_gettime(2) system calls, which are intended for use by ntpd(8) and are enabled by the option. On systems with sub-microsecond resolution timers, or where (HZ / 100000) is not an integer, the NTP option also enables extended-precision arithmetic to keep track of fractional clock ticks at NTP time-format precision.
-
options PPS_SYNC
-
This option enables a kernel serial line discipline for receiving time phase signals from an external reference clock such as a radio clock. (The NTP option (which see) must be on if the PPS_SYNC option is used). Some reference clocks generate a Pulse Per Second (PPS) signal in phase with their time source. The PPS line discipline receives this signal on either the data leads or the DCD control lead of a serial port.
NTP uses the PPS signal to discipline the local clock oscillator to a high degree of precision (typically less than 50 microseconds in time and 0.1 ppm in accuracy). PPS can also generate a serial output pulse when the system receives a PPS interrupt. This can be used to measure the system interrupt latency and thus calibrate NTP to account for it. Using PPS usually requires a gadget box to convert from TTL to RS-232 signal levels. The gadget box and PPS are described in more detail in the HTML documentation for ntpd(8) in /usr/share/doc/html/ntp.
NetBSD currently supports this option in com(4) and zsc(4).
-
options SETUIDSCRIPTS
-
Allows scripts with the setuid bit set to execute as the effective user rather than the real user, just like binary executables.
NOTE: Using this option will also enable options FDSCRIPTS
-
options FDSCRIPTS
-
Allows execution of scripts with the execute bit set, but not the read bit, by opening the file and passing the file descriptor to the shell, rather than the filename.
NOTE: Execute only (non-readable) scripts will have argv[0] set to /dev/fd/*. What this option allows as far as security is concerned, is the ability to safely ensure that the correct script is run by the interpreter, as it is passed as an already open file.
-
options PUCCN
-
Enables treating serial ports found on PCI boards puc(4) as potential console devices. The method for choosing such a console device is port dependent.
-
options RTC_OFFSET=integer
-
The kernel (and typically the hardware battery backed-up clock on those machines that have one) keeps time in UTC (Universal Coordinated Time, once known as GMT, or Greenwich Mean Time) and not in the time of the local time zone. The RTC_OFFSET option is used on some ports (such as the i386) to tell the kernel that the hardware clock is offset from UTC by the specified number of minutes. This is typically used when a machine boots several operating systems and one of them wants the hardware clock to run in the local time zone and not in UTC, e.g. RTC_OFFSET=300 means the hardware clock is set to US Eastern Time (300 minutes behind UTC), and not UTC. (Note: RTC_OFFSET is used to initialize a kernel variable named rtc_offset which is the source actually used to determine the clock offset, and which may be accessed via the kern.rtc_offset sysctl variable. See sysctl(8) and sysctl(3) for details. Since the kernel clock is initialized from the hardware clock very early in the boot process, it is not possible to meaningfully change rtc_offset in system initialization scripts. Changing this value currently may only be done at kernel compile time or by patching the kernel and rebooting).
NOTE: Unfortunately, in many cases where the hardware clock is kept in local time, it is adjusted for Daylight Savings Time; this means that attempting to use RTC_OFFSET to let NetBSD coexist with such an operating system, like Windows, would necessitate changing RTC_OFFSET twice a year. As such, this solution is imperfect.
-
options KMEMSTATS
-
The kernel memory allocator, malloc(9), will keep statistics on its performance if this option is enabled. Unfortunately, this option therefore essentially disables the MALLOC() and FREE() forms of the memory allocator, which are used to enhance the performance of certain critical sections of code in the kernel. This option therefore can lead to a significant decrease in the performance of certain code in the kernel if enabled. Examples of such code include the namei() routine, the ccd(4) driver, and much of the networking code.
-
options MAXUPRC=integer
-
Sets the soft RLIMIT_NPROC resource limit, which specifies the maximum number of simultaneous processes a user is permitted to run, for process 0; this value is inherited by its child processes. It defaults to CHILD_MAX, which is currently defined to be 160. Setting MAXUPRC to a value less than CHILD_MAX is not permitted, as this would result in a violation of the semantics of IEEE Std 1003.1-1990 (“POSIX.1”).
-
options NOFILE=integer
-
Sets the soft RLIMIT_NOFILE resource limit, which specifies the maximum number of open file descriptors for each process; this value is inherited by its child processes. It defaults to OPEN_MAX, which is currently defined to be 64.
-
options MAXFILES=integer
-
Sets the default value of the kern.maxfiles sysctl variable, which indicates the maximum number of files that may be open in the system.
-
options DEFCORENAME=string
-
Sets the default value of the kern.defcorename sysctl variable, otherwise it is set to %n.core. See sysctl(8) and sysctl(3) for details.
-
options RASOPS_CLIPPING
-
Enables clipping within the rasops raster-console output system. NOTE: only available on architectures that use rasops for console output.
-
options RASOPS_SMALL
-
Removes optimized character writing code from the rasops raster-console output system. NOTE: only available on architectures that use rasops for console output.
-
options INCLUDE_CONFIG_FILE
-
Embeds the kernel config file used to define the kernel in the kernel binary itself. The embedded data also includes any files directly included by the config file itself, e.g. GENERIC.local or std.$MACHINE. The embedded config file can be extracted from the resulting kernel with config(1) -x, or by the following command:
strings netbsd | sed -n 's/^_CFG_//p' | unvis
-
options INCLUDE_JUST_CONFIG
-
Similar to the above option, but includes just the actual config file, not any included files.
-
options PIPE_SOCKETPAIR
-
Use slower, but smaller socketpair(2)-based pipe implementation instead of default faster, but bigger one. Primarily useful for installation kernels.
-
options USERCONF
-
Compiles in the in-kernel device configuration manager. See userconf(4) for details.
-
options PERFCTRS
-
Compiles in kernel support for CPU performance-monitoring counters. See pmc(1) for details. NOTE: not available on all architectures.
-
options SYSCALL_STATS
-
Count the number of times each system call number is called. The values can be read through the sysctl interface and displayed using systat(1). NOTE: not yet available on all architectures.
-
options SYSCALL_TIMES
-
Count the time spent (using cpu_counter32()) in each system call. NOTE: Using this option will also enable options SYSCALL_STATS.
-
options SYSCALL_TIMES_HASCOUNTER
-
Force use of cpu_counter32() even if cpu_hascounter() reports false. Useful for systems where the cycle counter doesn't run at a constant rate (e.g. Soekris boxes).
-
options XSERVER_DDB
-
A supplement to XSERVER that adds support for entering ddb(4) while in X11.
-
options FILEASSOC
-
Support for fileassoc(9).
-
options FILEASSOC_NHOOKS=integer
-
Number of storage slots per file for fileassoc(9). Default is 4.
-
options I2C_SCAN
-
Scan each i2c bus to determine which addresses respond.
WARNING! Using this option can access some devices in such a manner as to leave them in an unstable or unuseable state, and can prevent those devices from being properly matched and/or attached. It can also lock up the entire iic(4) bus and even prevent a machine from completing the boot process. Don't use this option unless you know what you're doing and can accept all sorts of unforeseen consequences.