Alternative: Using distribution kernels
Distribution Kernels are ebuilds that cover the complete process of unpacking, configuring, compiling, and installing the kernel. The primary advantage of this method is that the kernels are upgraded to new versions as part of @world upgrade without a need for manual action. Distribution kernels default to a configuration supporting the majority of hardware but they can be customized via /etc/portage/savedconfig.
There are other methods available to customize the kernel config such as config snippets.
Installing correct installkernel
Before using the distribution kernels, please verify that the correct installkernel package for the system is installed. When using systemd-boot (formerly gummiboot), install:
emerge --ask sys-kernel/installkernel-systemd-boot
When using a traditional /boot layout (e.g. GRUB, LILO, etc.), the gentoo variant should be installed by default. If in doubt:
emerge --ask sys-kernel/installkernel-gentoo
Installing a distribution kernel
To build a kernel with Gentoo patches from source, type:
emerge --ask sys-kernel/gentoo-kernel
System administrators who want to avoid compiling the kernel sources locally can instead use precompiled kernel images:
emerge --ask sys-kernel/gentoo-kernel-bin
Upgrading and cleaning up
Once the kernel is installed, the package manager will automatically upgrade it to newer versions. The previous versions will be kept until the package manager is requested to clean up stale packages. Please remember to periodically run:
to save space. Alternatively, to specifically clean up old kernel versions:
emerge --prune sys-kernel/gentoo-kernel sys-kernel/gentoo-kernel-bin
Distribution kernels are now capable of rebuilding kernel modules installed by other packages.
USE=dist-kernel which controls a subslot dependency on virtual/dist-kernel.
Manually rebuilding the initramfs
If required, manually trigger such rebuilds by, after a kernel upgrade, executing:
emerge --ask @module-rebuild
If any of these modules (e.g. ZFS) are needed at early boot, rebuild the initramfs afterward:
emerge --config sys-kernel/gentoo-kernel
emerge --config sys-kernel/gentoo-kernel-bin