.. title: Gentoo 5.15.x generic kernel configuration
.. slug: gentoo-515x-generic-kernel-configuration
.. date: 2022-01-11 09:12:32 UTC+01:00
.. tags: gentoo, linux, kernel
.. category: 
.. link: 
.. description: A generic configuration file for building 5.15.x Linux kernels on Gentoo
.. type: text

The 5.15.11 Linux kernel has been marked as stable in Gentoo_ a few weeks ago
and I've wanted to put out a new generic kernel configuration but I kept
struggling with a really silly issue adapting it. As with my previous posts
this configuration is largely based on the Fedora kernel with some
Gentoo-specific tweaks. It supports practically every bit of hardware in
existence and enables a lot of bleeding-edge kernel functionality.

The only few notable changes compared to the Fedora kernel are the following:

- The ``binfmt_misc`` module is baked in for convenience
- The NVMe core modules are baked in so you can boot from an NVMe drive without
  having to use an initrd
- The ``CONFIG_ACPI_EXTLOG`` option is enabled. This is useful if you're using
  :doc:`rasdaemon to monitor ECC memory <monitoring-ecc-memory-on-linux-with-rasdaemon>`
- The boot logo is disabled
- Kernel debugging is disabled
- The ``CONFIG_GENTOO_KERNEL_SELF_PROTECTION`` option is enabled. This
  implicitly enables an additional set of security features for hardening the
  kernel
- The ``CONFIG_GENTOO_PRINT_FIRMWARE_INFO`` option is enabled, it prints out
  the firmwares that are loaded into various bits of hardware. This is useful
  if you want to reduce the amount of files installed
  ``sys-kernel/linux-firmware`` package

Note that the **RTC time based on NTP synchronization** is enabled (and it's
finally become the default in many other Linux distros) so you don't need the
**hwclock** service (but you can use **osclock** instead if some other service
requires the **clock** facility).

Additionally note that this kernel configuration is for use with OpenRC. If
you're using systemd you'll have to remove the
``CONFIG_GENTOO_LINUX_INIT_SCRIPT=y`` line from the configuration file and add
``CONFIG_GENTOO_LINUX_INIT_SYSTEMD=y`` instead.

For maximum compatibility I haven't enabled kernel compression in this
configuration, but I suggest using ``CONFIG_MODULE_COMPRESS_ZSTD=y`` as it
provides significant space savings while having effectively no impact on load
times. Just make sure that the ``sys-apps/kmod`` package has the **zstd**
``USE`` flag set so that it can handle the compressed modules.

To use this configuration file install the latest stable
``sys-kernel/gentoo-sources`` package (5.15.x), copy the configuration file
under ``/usr/src/linux/`` and rename it to ``.config`` then proceed to build
and install the kernel as usual.

`Gentoo 5.15.x kernel configuration file`_

.. _Gentoo: https://www.gentoo.org
.. _`Gentoo 5.15.x kernel configuration file`: https://www.setphaserstostun.org/config-5.15
