From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 1DF471581D3 for ; Fri, 17 May 2024 12:05:09 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 45697E2AD3; Fri, 17 May 2024 12:05:08 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 158FDE2AD3 for ; Fri, 17 May 2024 12:05:08 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 0779F33BE19 for ; Fri, 17 May 2024 12:05:07 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 64972132F for ; Fri, 17 May 2024 12:05:05 +0000 (UTC) From: "Andrew Ammerlaan" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Andrew Ammerlaan" Message-ID: <1715933971.c64a05c51a237c6011b0d57d3739cb27e1927f3d.andrewammerlaan@gentoo> Subject: [gentoo-commits] data/gentoo-news:master commit in: 2024-05-17-dracut-ext-kmods/ X-VCS-Repository: data/gentoo-news X-VCS-Files: 2024-05-17-dracut-ext-kmods/2024-05-17-dracut-ext-kmods.en.txt X-VCS-Directories: 2024-05-17-dracut-ext-kmods/ X-VCS-Committer: andrewammerlaan X-VCS-Committer-Name: Andrew Ammerlaan X-VCS-Revision: c64a05c51a237c6011b0d57d3739cb27e1927f3d X-VCS-Branch: master Date: Fri, 17 May 2024 12:05:05 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 4580e783-0a77-4753-9ac9-91069a0c001c X-Archives-Hash: 5f5b1b4fab6dd1249309f4784480d128 commit: c64a05c51a237c6011b0d57d3739cb27e1927f3d Author: Andrew Ammerlaan gentoo org> AuthorDate: Fri May 17 08:19:31 2024 +0000 Commit: Andrew Ammerlaan gentoo org> CommitDate: Fri May 17 08:19:31 2024 +0000 URL: https://gitweb.gentoo.org/data/gentoo-news.git/commit/?id=c64a05c5 2024-05-17-dracut-ext-kmods: add news item Signed-off-by: Andrew Ammerlaan gentoo.org> .../2024-05-17-dracut-ext-kmods.en.txt | 106 +++++++++++++++++++++ 1 file changed, 106 insertions(+) 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 +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 "