Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
CONFIG(5)		    BSD	File Formats Manual		     CONFIG(5)

     config -- kernel configuration file format

     A kernel configuration file specifies the configuration of	a FreeBSD ker-
     nel.  It is processed by config(8)	to create a build environment where a
     kernel may	be built using make(1).

   Lexical Structure
     A kernel configuration file comprises a sequence of specification direc-

     A specification directive starts with a keyword at	the beginning of the
     line and is followed by additional	parameters.

     A specification directive may be terminated by a semicolon	`;' or by a
     newline.  Long input lines	may be broken into shorter lines by starting
     the second	and subsequent lines with a white space	character.

     Case is significant, "machine" and	"MACHINE" are different	tokens.

     A double quote character `"' starts a quoted string.  All characters up
     to	the next quote character form the value	of the quoted string.  A `"'
     character may be inserted into a quoted string by using the sequence

     Numbers are specified using C-style syntax.

     A `#' character starts a comment; all characters from the `#' character
     till the end of the current line are ignored.

     Whitespace	between	tokens is ignored, except inside quoted	strings.
     Whitespace	following a comment line is ignored.

   Configuration Directives
     Kernel configuration directives may appear	in any order in	a kernel con-
     figuration	file.  Directives are processed	in order of appearance with
     subsequent	directive lines	overriding the effect of prior ones.

     The list of keywords and their meanings are as follows:

     cpu cputype
	     Specify the CPU this kernel will run on.  There can be more than
	     one cpu directive in a configuration file.	 The allowed list of
	     CPU names is architecture specific	and is defined in the file

     device name [, name [...]]
     devices name [, name [...]]
	     Configures	the specified devices for inclusion into the kernel
	     image.  Devices that are common to	all architectures are defined
	     in	the file sys/conf/files.  Devices that are specific to archi-
	     tecture arch are defined in the file sys/conf/files.<arch>.

     env filename
	     Specifies a filename containing a kernel environment definition.
	     The kernel	normally uses an environment prepared for it at	boot
	     time by loader(8).	 This directive	makes the kernel ignore	the
	     boot environment and use the compiled-in environment instead, un-
	     less the boot environment contains	static_env.disabled=1.

	     This directive is useful for setting kernel tunables in embedded
	     environments that do not start from loader(8).

     files filename
	     Specifies a file containing a list	of files specific to that ker-
	     nel configuration file (a la files.<arch>).

     hints filename
	     Specifies a file to load a	static device configuration specifica-
	     tion from.	 From FreeBSD 5.0 onwards, the kernel reads the	sys-
	     tem's device configuration	at boot	time (see device.hints(5)).
	     This directive configures the kernel to use the static device
	     configuration listed in filename, unless the boot environment
	     contains static_hints.disabled=1.	The file filename must conform
	     to	the syntax specified by	device.hints(5).  Multiple hints lines
	     are allowed.  The resulting hints will be the files concatenated
	     in	the order of appearance.

     ident name
	     Set the kernel name to name.  At least one	ident directive	is re-

     include filename
	     Read subsequent text from file filename and return	to the current
	     file after	filename is successfully processed.

     machine arch [cpuarch]
	     Specifies the architecture	of the machine the kernel is being
	     compiled for.  Legal values for arch include:

	     alpha    The DEC Alpha architecture.
	     arm      The ARM architecture.
	     amd64    The AMD x86-64 architecture.
	     i386     The Intel	x86 based PC architecture.
	     mips     The MIPS architecture.
	     pc98     The PC98 architecture.
	     powerpc  The IBM PowerPC architecture.
	     sparc64  The Sun Sparc64 architecture.

	     If	argument cpuarch is specified, it points config(8) to the cpu
	     architecture of the machine.  Currently the pc98 architecture re-
	     quires its	cpu architecture to be set to i386.  When cpuarch is
	     not specified, it is assumed to be	the same as arch.  arch	corre-
	     sponds to MACHINE.	 cpuarch corresponds to	MACHINE_ARCH.

	     A kernel configuration file may have only one machine directive.

     makeoption	options
     makeoptions options
	     Add options to the	generated makefile.

	     The options argument is a comma separated list of one or more op-
	     tion specifications.  Each	option specification has the form


	     and results in the	appropriate make(1) variable definition	being
	     inserted into the generated makefile.  If only the	name of	the
	     make(1) variable is specified, value is assumed to	be the empty

		   makeoptions MYMAKEOPTION="foo"
		   makeoptions MYMAKEOPTION+="bar"
		   makeoptions MYNULLMAKEOPTION

     maxusers number
	     This optional directive is	used to	configure the size of some
	     kernel data structures.  The parameter number can be 0 (the de-
	     fault) or an integer greater than or equal	to 2.  A value of 0
	     indicates that the	kernel should configure	its data structures
	     according to the size of available	physical memory.  If auto con-
	     figuration	is requested, the kernel will set this tunable to a
	     value between 32 and 384.

	     As	explained in tuning(7),	this tunable can also be set at	boot
	     time using	loader(8).

     nocpu cputype
	     Remove the	specified CPU from the list of previously selected
	     CPUs.  This directive can be used to cancel the effect of cpu di-
	     rectives in files included	using include.

     nodevice name [, name [...]]
     nodevices name [, name [...]]
	     Remove the	specified devices from the list	of previously selected
	     devices.  This directive can be used to cancel the	effects	of
	     device or devices directives in files included using include.

     nomakeoption name
     nomakeoptions name
	     Removes previously	defined	make(1)	option name from the kernel
	     build.  This directive can	be used	to cancel the effects of
	     makeoption	directives in files included using include.

     nooption name [, name [...]]
     nooptions name [, name [...]]
	     Remove the	specified kernel options from the list of previously
	     defined options.  This directive can be used to cancel the	ef-
	     fects of option or	options	directives in files included using

     option optionspec [, optionspec [...]]
     options optionspec	[, optionspec [...]]
	     Add compile time kernel options to	the kernel build.  Each	option
	     specification has the form


	     If	value is not specified,	it is assumed to be NULL.  Options
	     common to all architectures are specified in the file
	     sys/conf/options.	Options	specific to architecture arch are
	     specified in the file sys/conf/options.<arch>.

     profile number
	     Enables kernel profiling if number	is non-zero.  If number	is 2
	     or	greater, the kernel is configured for high-resolution profil-
	     ing.  Kernels can also be built for profiling using the -p	option
	     to	config(8).

   Obsolete Directives
     The following kernel configuration	directives are obsolete.

     config  This directive was	used to	specify	the device to be used for the
	     root file system.	From FreeBSD 4.0 onwards, this information is
	     passed to a booting kernel	by loader(8).

     sys/compile/NAME	     Compile directory created from a kernel configu-
     sys/conf/Makefile.arch  Makefile fragments	for architecture arch.
     sys/conf/files	     Devices common to all architectures.
     sys/conf/files.arch     Devices for architecture arch.
     sys/conf/options	     Options common to all architectures.
     sys/conf/options.arch   Options for architecture arch.

     kenv(1), make(1), device.hints(5),	loader.conf(5),	config(8), kldload(8),

     Samuel J. Leffler and Michael J. Karels, Building 4.4BSD Kernels with

     The config(8) utility first appeared in 4.1BSD, and was subsequently re-
     vised in 4.4BSD.

     The kernel	configuration mechanism	changed	further	in FreeBSD 4.0 and
     FreeBSD 5.0, moving toward	an architecture	supporting dynamic kernel con-

BSD			       February	21, 2016			   BSD


Want to link to this manual page? Use this URL:

home | help