Chapter 9. Configuring the FreeBSD Kernel

Updated and restructured by Jim Mock.
Originally contributed by Jake Hamby.
Table of Contents
9.1. Synopsis
9.2. Why Build a Custom Kernel?
9.3. Finding the System Hardware
9.4. Kernel Drivers, Subsystems, and Modules
9.5. Building and Installing a Custom Kernel
9.6. The Configuration File
9.7. If Something Goes Wrong

9.1. Synopsis

The kernel is the core of the FreeBSD operating system. It is responsible for managing memory, enforcing security controls, networking, disk access, and much more. While much of FreeBSD is dynamically configurable, it is still occasionally necessary to configure and compile a custom kernel.

After reading this chapter, you will know:

  • When to build a custom kernel.

  • How to customize a kernel configuration file.

  • How to use the kernel configuration file to create and build a new kernel.

  • How to install the new kernel.

  • How to troubleshoot if things go wrong.

All of the commands listed in the examples in this chapter should be executed as root.

All FreeBSD documents are available for download at

Questions that are not answered by the documentation may be sent to <>.

Send questions about this document to <>.