The kernel is the core of the operating system. Containing most of the device drives, the kernel offers interfaces for programs to access system hardware such as memory, graphic cards, and block devices.
Although Gentoo is a free operating system based on either Linux or FreeBSD and FreeBSD has its own kernel, for practical reasons, this article refers exclusively to the Linux kernel.
To create a kernel, it is necessary to install the kernel source code first. The Gentoo recommended kernel sources for a desktop system are, of course, sys-kernel/gentoo-sources. These are maintained by the Gentoo developers, and patched to fix security vulnerabilities, functional problems, as well as to improve compatibility with rare system architectures.
USE flags for sys-kernel/gentoo-sources Full sources including the Gentoo patchset for the 5.10 kernel tree
||!!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used for creating build images and the first half of bootstrapping [make stage1]|
||Apply experimental patches; for more information, see "https://wiki.gentoo.org/wiki/Project:Kernel/Experimental".|
||Force kernel ebuilds to automatically update the /usr/src/linux symlink|
Now install sys-kernel/gentoo-sources:
emerge --ask sys-kernel/gentoo-sources
The Kernel sources overview article provides details on most, if not all, of the kernel sources packages available in Gentoo.
Searching all alternatives
A full list of kernel sources with short descriptions can be found by searching with emerge:
emerge --search "%@^sys-kernel/.*sources"
- Automatic configuration
- genkernel is a tool used to automate the build process of the kernel and initramfs. The goal of genkernel is to help users through the kernel building process.
- Manual configuration
- Manual configuration enables the user, with some effort, to create a custom-fit kernel configuration.
- Gentoo kernel configuration guide
- Gentoo's kernel configuration guide.
- Kernel security
- Instructions for securing the kernel.
- Kernel Seeds
- Like the option above, Kernels Seeds help the user, with some effort, create a custom-fit kernel configuration using an existing .config as a base.
- Steps to upgrade to a new kernel using an existing configuration.
- 2.4 to 2.6 Migration
- Migration guide from Linux 2.4 to Linux 2.6. Since the Linux kernel codebase has significantly moved past 2.6, these migration steps are no longer relevant, but may be useful for helping administrators understand.
- Steps to completely remove old kernels.
In-kernel configuration support
See the IKCONFIG support sub-article.
Kernel command-line parameters
When booting from a bootloader, the Linux kernel can accept command-line parameters to change its behavior. This can aid in troubleshooting the kernel at boot time, to blacklist a certain module that should not loading, etc.
Kernel.org has a nicely formatted list of available kernel command-line parameters to review.
Specifically, the following command-line parameters may be helpful when booting Gentoo:
- Linux firmware — is a package distributed alongside the Linux kernel that contains firmware binary blobs necessary for partial or full functionality of certain hardware devices.
- The kernel category - All the kernel related articles on the wiki.
- The hardware category - Lists of hardware stacks with associated kernel configurations.
- planet.kernel.org - Blogs related to the Linux kernel.
- kernelnewbies.org - A "community of aspiring Linux kernel developers who work to improve their Kernels and more experienced developers willing to share their knowledge".
- kernel.org/doc/ - Official comprehensible documentation for the Linux kernel.