4.4 KiB
The Linux-libre dist-kernel
This overlay provides a dist-kernel (based on
sys-kernel/vanilla-kernel
) using the Linux-libre kernel sources, and
an accompanying updated version of virtual/dist-kernel
. It is
maintained and tested for my personal use on amd64. The Linux-libre
kernel removes the ability for the Linux kernel to load firmware that
is not Free Software. The ebuild roughly follows the
current stable 5.15.x gentoo-kernel for amd64.
The libre kernel can be installed alongside other dist-kernels, and
works with the dist-kernel
and initramfs
USE flags. The ebuild
does NOT fail if non-free firmware (i.e. sys-kernel/linux-firmware
with redistributable
USE flag set) is installed, but it will warn
you if this is the case. It will also warn you if the linux-firmware
package is not found at all, like normal dist-kernel ebuilds.
The kernel installed by this ebuild has the version suffix
-gnu-dist
, making it easy to determine which kernel it is.
Quick Setup
This is a quick guide for setting up the system to properly install the Linux-libre Kernel. It assumes you have set up the overlay as described in the README.
In /etc/portage/package.use
:
# Install only libre firmware
sys-kernel/linux-firmware -redistributable -unknown-license
# libre kernel with gentoo kernel patches applied
sys-kernel/libre-kernel verify-sig
# or, if you do not want gentoo patches applied
sys-kernel/libre-kernel verify-sig -gentoo
In /etc/portage/package.unmask
:
sys-kernel/libre-kernel::projectmoon
virtual/dist-kernel::projectmoon
virtual/linux-sources::projectmoon
sec-keys/openpgp-keys-linux-libre::projectmoon
In /etc/portage/package.accept_keywords
:
sys-kernel/librem-ec-acpi::projectmoon
sys-kernel/libre-kernel::projectmoon ~amd64
virtual/dist-kernel::projectmoon
virtual/linux-sources::projectmoon
In /etc/portage/package.mask
:
# stay on libre kernel
sys-kernel/gentoo-kernel
sys-kernel/gentoo-kernel-bin
sys-kernel/vanilla-kernel
Detailed Instructions
The rest of this documentation covers the quick steps above in detail, and extra information about the Linux firmware package, the Librem EC ACPI module, etc.
Signature Verification
It is recommended to enable GPG signature verification of
sys-kenrel/libre-kernel
by adding the USE flag to
o/etc/portage/package.use
:
sys-kernel/libre-kernel verify-sig
Keeping the Linux-libre Kernel Installed
Portage will sometimes try to install sys-kernel/gentoo-kernel
or
another dist-kernel if there is a newer stable version than
sys-kernel/libre-kernel
. This happens because of a version bump to
virtual/dist-kernel
before this overlay has updated its own copy of
virtual/dist-kernel
.
To prevent portage from attempting to install another dist-kernel
instead of the Linux-libre kernel, you should mask other dist-kernels in
/etc/portage/package.mask
:
# stay on libre kernel
sys-kernel/gentoo-kernel
sys-kernel/gentoo-kernel-bin
sys-kernel/vanilla-kernel
Linux Firmware
Note: If you are running the Linux-libre kernel, it is unlikely (though
not impossible) that you need to install sys-kernel/linux-firmware
.
To install only the Linux firmware that meets the Free Software
Definition, configure /etc/portage/package.use
accordingly:
# Install only libre firmware
sys-kernel/linux-firmware -redistributable -unknown-license
You can also edit /etc/portage/profile/package.use.mask
to prevent
the linux-firmware package from ever installing the closed-source
firmware by adding this line:
# forcibly stop non-free firmware installation
sys-kernel/linux-firmware redistributable unknown-license
Using the Librem EC ACPI kernel module
The Librem EC ACPI kernel module should install and be automatically
available (via modprobe) after installation, using emerge sys-kernel/librem-ec-acpi
. The module is currently installed to
/lib/modules/<kernel>/librem/
.
This ebuild supports the dist-kernel
USE flag, and the module will
automatically be rebuilt when installing a new dist-kernel if that
flag is enabled.
If you are not using a dist-kernel, you will need to do emerge @modules-rebuild
to install the module after you upgrade or install a
new kernel.