1232950Stheraven#
2232950Stheraven# MINIMAL -- Mostly Minimal kernel configuration file for FreeBSD/i386
3232950Stheraven#
4232950Stheraven# Many definitions of minimal are possible. The one this file follows is
5232950Stheraven# GENERIC, minus all functionality that can be replaced by loading kernel
6232950Stheraven# modules.
7232950Stheraven#
8232950Stheraven# Exceptions:
9232950Stheraven# o While UFS is buildable as a module, the current module lacks
10232950Stheraven#   some features (ACL, GJOURNAL) that GENERIC includes.
11232950Stheraven# o acpi as a module has been reported flakey and not well tested, so
12232950Stheraven#   is included in the kernel.
13232950Stheraven# o (non-loaded) random is included due to uncertainty...
14232950Stheraven# o Many networking things are included
15232950Stheraven#
16232950Stheraven# For now, please run changes to these list past imp@freebsd.org
17232950Stheraven#
18232950Stheraven# For more information on this file, please read the config(5) manual page,
19232950Stheraven# and/or the handbook section on Kernel Configuration Files:
20232950Stheraven#
21232950Stheraven#    https://docs.freebsd.org/en/books/handbook/kernelconfig/#kernelconfig-config
22232950Stheraven#
23227972Stheraven# The handbook is also available locally in /usr/share/doc/handbook
24227972Stheraven# if you've installed the doc distribution, otherwise always see the
25227972Stheraven# FreeBSD World Wide Web server (https://www.FreeBSD.org/) for the
26227972Stheraven# latest information.
27227972Stheraven#
28227972Stheraven# An exhaustive list of options and more detailed explanations of the
29227972Stheraven# device lines is also present in the ../../conf/NOTES and NOTES files.
30227972Stheraven# If you are in doubt as to the purpose or necessity of a line, check first
31227972Stheraven# in NOTES.
32227972Stheraven#
33227972Stheraven
34227972Stheravencpu		I486_CPU
35227972Stheravencpu		I586_CPU
36227972Stheravencpu		I686_CPU
37227972Stheravenident		MINIMAL
38227972Stheraven
39227972Stheravenmakeoptions	DEBUG=-g		# Build kernel with gdb(1) debug symbols
40227972Stheravenmakeoptions	WITH_CTF=1		# Run ctfconvert(1) for DTrace support
41227972Stheraven
42227972Stheravenoptions 	SCHED_ULE		# ULE scheduler
43227972Stheravenoptions 	PREEMPTION		# Enable kernel thread preemption
44227972Stheravenoptions 	VIMAGE			# Subsystem virtualization, e.g. VNET
45227972Stheravenoptions 	INET			# InterNETworking
46227972Stheravenoptions 	INET6			# IPv6 communications protocols
47227972Stheravenoptions 	TCP_OFFLOAD		# TCP offload
48227972Stheravenoptions 	SCTP_SUPPORT		# Allow kldload of SCTP
49227972Stheravenoptions 	FFS			# Berkeley Fast Filesystem
50227972Stheravenoptions 	SOFTUPDATES		# Enable FFS soft updates support
51227972Stheravenoptions 	UFS_ACL			# Support for access control lists
52227972Stheravenoptions 	UFS_DIRHASH		# Improve performance on big directories
53227972Stheravenoptions 	UFS_GJOURNAL		# Enable gjournal-based UFS journaling
54227972Stheravenoptions 	QUOTA			# Enable disk quotas for UFS
55227972Stheravenoptions 	MD_ROOT			# MD is a potential root device
56227972Stheravenoptions 	GEOM_LABEL		# Provides labelization
57227972Stheravenoptions 	COMPAT_FREEBSD10	# Compatible with FreeBSD10
58227972Stheravenoptions 	COMPAT_FREEBSD11	# Compatible with FreeBSD11
59227972Stheravenoptions 	COMPAT_FREEBSD12	# Compatible with FreeBSD12
60227972Stheravenoptions 	COMPAT_FREEBSD13	# Compatible with FreeBSD13
61227972Stheravenoptions 	COMPAT_FREEBSD14	# Compatible with FreeBSD14
62227972Stheravenoptions 	SCSI_DELAY=5000		# Delay (in ms) before probing SCSI
63227972Stheravenoptions 	KTRACE			# ktrace(1) support
64227972Stheravenoptions 	STACK			# stack(9) support
65227972Stheravenoptions 	SYSVSHM			# SYSV-style shared memory
66227972Stheravenoptions 	SYSVMSG			# SYSV-style message queues
67227972Stheravenoptions 	SYSVSEM			# SYSV-style semaphores
68227972Stheravenoptions 	_KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
69227972Stheravenoptions 	PRINTF_BUFR_SIZE=128	# Prevent printf output being interspersed.
70227972Stheravenoptions 	KBD_INSTALL_CDEV	# install a CDEV entry in /dev
71227972Stheravenoptions 	HWPMC_HOOKS		# Necessary kernel hooks for hwpmc(4)
72227972Stheravenoptions 	AUDIT			# Security event auditing
73227972Stheravenoptions 	CAPABILITY_MODE		# Capsicum capability mode
74227972Stheravenoptions 	CAPABILITIES		# Capsicum capabilities
75227972Stheravenoptions 	MAC			# TrustedBSD MAC Framework
76227972Stheravenoptions 	KDTRACE_FRAME		# Ensure frames are compiled in
77227972Stheravenoptions 	KDTRACE_HOOKS		# Kernel DTrace hooks
78227972Stheravenoptions 	DDB_CTF			# Kernel ELF linker loads CTF data
79227972Stheravenoptions 	INCLUDE_CONFIG_FILE	# Include this file in kernel
80227972Stheraven
81227972Stheraven# Debugging support.  Always need this:
82227972Stheravenoptions 	KDB			# Enable kernel debugger support.
83227972Stheravenoptions 	KDB_TRACE		# Print a stack trace for a panic.
84227972Stheraven# For full debugger support use (turn off in stable branch):
85227972Stheraveninclude "std.debug"
86227972Stheraven
87227972Stheraven# Make an SMP-capable kernel by default
88227972Stheravenoptions 	SMP			# Symmetric MultiProcessor Kernel
89227972Stheravendevice		apic
90227972Stheraven
91227972Stheraven# CPU frequency control
92227972Stheravendevice		cpufreq
93227972Stheraven
94227972Stheraven# Bus support.
95227972Stheravendevice		acpi
96227972Stheravendevice		smbios
97227972Stheravendevice		pci
98227972Stheraven
99227972Stheraven# atkbdc0 controls both the keyboard and the PS/2 mouse
100227972Stheravendevice		atkbdc			# AT keyboard controller
101227972Stheravendevice		atkbd			# AT keyboard
102227972Stheravendevice		psm			# PS/2 mouse
103227972Stheraven
104227972Stheravendevice		kbdmux			# keyboard multiplexer
105227972Stheraven
106227972Stheraven# syscons is the legacy console driver, resembling an SCO console
107227972Stheravendevice		vga			# VGA video card driver
108227972Stheravendevice		splash			# Splash screen and screen saver support
109227972Stheravendevice		sc
110227972Stheravenoptions 	SC_PIXEL_MODE		# add support for the raster text mode
111227972Stheraven
112227972Stheraven# vt is the default video console driver
113227972Stheravendevice		vt
114227972Stheravendevice		vt_vga
115227972Stheravendevice		vt_efifb
116227972Stheravendevice		vt_vbefb
117227972Stheraven
118227972Stheravendevice		agp			# support several AGP chipsets
119227972Stheraven
120227972Stheraven# Serial (COM) ports
121227972Stheravendevice		uart			# Generic UART driver
122227972Stheraven
123227972Stheraven# Pseudo devices.
124227972Stheravendevice		loop			# Network loopback
125227972Stheravendevice		padlock_rng		# VIA Padlock RNG
126227972Stheravendevice		rdrand_rng		# Intel Bull Mountain RNG
127227972Stheravendevice		ether			# Ethernet support
128227972Stheraven
129227972Stheraven# The `bpf' device enables the Berkeley Packet Filter.
130227972Stheraven# Be aware of the administrative consequences of enabling this!
131227972Stheraven# Note that 'bpf' is required for DHCP.
132227972Stheravendevice		bpf			# Berkeley packet filter
133227972Stheraven
134227972Stheraven# VirtIO support
135227972Stheravendevice		virtio			# Generic VirtIO bus (required)
136227972Stheravendevice		virtio_pci		# VirtIO PCI device
137227972Stheravendevice		vtnet			# VirtIO Ethernet device
138227972Stheravendevice		virtio_blk		# VirtIO Block device
139227972Stheravendevice		virtio_balloon		# VirtIO Memory Balloon device
140227972Stheraven
141227972Stheraven# Linux KVM paravirtualization support
142227972Stheravendevice		kvm_clock		# KVM paravirtual clock driver
143227972Stheraven
144227972Stheraven# Xen HVM Guest Optimizations
145227972Stheraven# NOTE: XENHVM depends on xenpci and xentimer.
146227972Stheraven# They must be added or removed together.
147227972Stheravenoptions 	XENHVM			# Xen HVM kernel infrastructure
148227972Stheravendevice		xenpci			# Xen HVM Hypervisor services driver
149227972Stheravendevice		xentimer		# Xen x86 PV timer device
150227972Stheraven
151227972Stheraven# evdev interface
152227972Stheravenoptions 	EVDEV_SUPPORT		# evdev support in legacy drivers
153227972Stheravendevice		evdev			# input event device support
154227972Stheravendevice		uinput			# install /dev/uinput cdev
155227972Stheraven
156227972Stheraven# NVM Express (NVMe) support
157227972Stheravendevice		nvme			# base NVMe driver
158227972Stheraven
159227972Stheraven# ATA controllers
160227972Stheravendevice		ahci			# AHCI-compatible SATA controllers
161227972Stheraven
162227972Stheraven# CAM
163227972Stheravendevice		scbus			# SCSI bus (required for ATA/SCSI)
164227972Stheravendevice		da			# Direct Access (disks)
165227972Stheravendevice		cd			# CD
166227972Stheravendevice		pass			# Passthrough device (direct ATA/SCSI access)
167227972Stheraven