aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Ammerlaan <andrewammerlaan@gentoo.org>2024-05-17 10:19:31 +0200
committerAndrew Ammerlaan <andrewammerlaan@gentoo.org>2024-05-17 10:19:31 +0200
commitc64a05c51a237c6011b0d57d3739cb27e1927f3d (patch)
tree87039cb89479e365c7a3d0b5e6f2adebf7bd5fdc
parent2024-05-09-python3-12: Add (diff)
downloadgentoo-news-c64a05c51a237c6011b0d57d3739cb27e1927f3d.tar.gz
gentoo-news-c64a05c51a237c6011b0d57d3739cb27e1927f3d.tar.bz2
gentoo-news-c64a05c51a237c6011b0d57d3739cb27e1927f3d.zip
2024-05-17-dracut-ext-kmods: add news item
Signed-off-by: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
-rw-r--r--2024-05-17-dracut-ext-kmods/2024-05-17-dracut-ext-kmods.en.txt106
1 files changed, 106 insertions, 0 deletions
diff --git a/2024-05-17-dracut-ext-kmods/2024-05-17-dracut-ext-kmods.en.txt b/2024-05-17-dracut-ext-kmods/2024-05-17-dracut-ext-kmods.en.txt
new file mode 100644
index 0000000..ff2bdf6
--- /dev/null
+++ b/2024-05-17-dracut-ext-kmods/2024-05-17-dracut-ext-kmods.en.txt
@@ -0,0 +1,106 @@
+Title: Changes to dracut kernel module/microcode handling
+Author: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
+Posted: 2024-05-17
+Revision: 1
+News-Item-Format: 2.0
+Display-If-Installed: sys-kernel/dracut
+Display-If-Installed: virtual/dist-kernel
+Display-If-Installed: sys-kernel/linux-firmware
+Display-If-Installed: sys-firmware/intel-microcode
+
+
+Impact
+====================
+
+Several changes were made regarding out-of-tree kernel modules, CPU
+microcode, and how these are handled in initial RAM file systems
+(initramfs) generated by sys-kernel/dracut for distribution kernels.
+Depending on the local Dracut and USE flag configuration, some
+configuration adjustments may be required as a result of these changes.
+
+Background (the problem)
+====================
+
+Previously Dracut implicitly included all out-of-tree kernel modules
+it could find. This leads to several problems:
+- It unnecessarily increases the size of the initramfs
+- It creates a bit of a mess when using distribution kernels, consider
+ the following:
+ 1) Distribution kernel is upgraded
+ 2) Initramfs for the new kernel is generated, it does not include
+ any out-of-tree kernel modules.
+ 3) Portage triggers rebuild of the out-of-tree kernel modules
+ 4) If zfs is installed, its rebuild will trigger an initramfs
+ re-installation. Otherwise no rebuild is triggered.
+ Problem: What is and is not included in the initramfs is now
+ ambiguous. It depends on the emerge order of the kernel modules
+ when zfs is used. And will completely change if at some later stage
+ regeneration of the initramfs is triggered manually via e.g.:
+ emerge --config sys-kernel/gentoo-kernel
+ As a result, Dracut's "--reproducible" setting is not working. And
+ the functionality of the initramfs may change (seemingly) at random.
+
+Background (the fix)
+====================
+
+Several things have been changed:
+- Out-of-tree kernel modules installed by portage are explicitly omitted
+ from the initramfs generated by Dracut by default.
+- Packages that install a kernel module for which it might make sense to
+ have it in the initramfs, have gained the "initramfs" USE flag. When
+ this flag is enabled, Dracut is instructed to include the installed
+ kernel modules. Packages for which it is essential that its kernel
+ modules are included in the initramfs have this new flag enabled
+ by default.
+- When distribution kernels are used (USE=dist-kernel), and a module
+ that should be in the initramfs is installed (USE=initramfs) the
+ initramfs is always re-generated.
+- The packages installing CPU microcode (sys-kernel/linux-firmware
+ and sys-firmware/intel-microcode) have been adjusted to mirror the
+ above changes for out-of-tree kernel modules. Both packages
+ have gained the "dist-kernel" USE flag, and the "initramfs" flag is
+ now enabled by default. When both flags are enabled, Dracut is
+ configured to include the installed microcode in the initramfs, and
+ then the initramfs is regenerated. When the "dist-kernel" flag is
+ disabled, the "initramfs" flag behaves as it previously did.
+
+User Action Required
+====================
+
+Users should double check two things:
+1) Please ensure that you are *not* globally enabling or disabling
+ the "initramfs" USE flag. Enabling it globally might result in an
+ unnecessarily large initramfs. Disabling it globally might result
+ in missing functionality in the initramfs. Which could lead to boot
+ failure if, for example, the zfs module is missing while the root
+ partition is a zfs.
+2) Any add_drivers, or omit_drivers lines in /etc/dracut.conf or
+ /etc/dracut.conf.d/* may override the Dracut configuration snippets
+ installed by the kernel module packages in
+ /usr/lib/dracut/dracut.conf.d. Please review your Dracut
+ configuration files to ensure that you are not unintentionally
+ overriding the settings set by Portage.
+
+Frequently Asked Questions
+====================
+
+A package installing a kernel module I would like in my initramfs has
+not gained the "initramfs" USE flag. How do I proceed?
+
+ Please report a new bug on bugs.gentoo.org, requesting that the
+ package maintainer consider adding support to the package for
+ including the modules in the initramfs. In the meantime you can
+ locally override the configuration provided by the package (see
+ below). Note though that when distribution kernels are used,
+ regeneration of the initramfs must be triggered manually via e.g.:
+ emerge --config sys-kernel/gentoo-kernel
+
+How do I override the provided Dracut configuration snippets to
+include/exclude a custom list of modules?
+
+ To override the provided configuration snippet, create a new file
+ /etc/dracut.conf.d/10-PACKAGENAME.conf, replacing PACKAGENAME with
+ the name of the package providing the module. Add to this file:
+ omit_drivers+=" my list of drivers to omit "
+ and/or
+ add_drivers+=" my list of drivers to include "