From 7b017250d937e08137dcb33dd67c97d6332534b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20Pastor=20P=C3=A9rez?= Date: Mon, 20 Jul 2026 10:21:51 +0200 Subject: gnu: linux: Use package properties to modularize initrd build. * doc/guix.texi (operating-system Reference): Document initrd-modules change. (Initial RAM Disk): Inform about deprecation of '%base-initrd-modules' and document 'base-initrd-modules'. * gnu/packages/linux.scm (make-linux*): New argument 'produced-modules'. Handle GEXP in 'defconfig' arguments. (virtio-modules, default-linux-libre-initrd-modules): New variable. (make-linux-libre*): Adjust to instruct 'make-linux*' which modules a Debian configuration will produce. * gnu/system.scm (): Compute default operating systems initrd modules with 'base-initrd-modules'. * gnu/system/linux-initrd.scm (default-initrd-modules): Remove in favor of 'base-initrd-modules' which takes a mandatory kernel argument from which to extract the initrd-modules from the package properties. (base-initrd-modules): New procedure. (%base-initrd-modules): Deprecate in favor of 'base-initrd-modules'. --- doc/guix.texi | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'doc') diff --git a/doc/guix.texi b/doc/guix.texi index 49ae745d83e..19be19c6d20 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -19080,7 +19080,7 @@ Window}, for information on how to specify the keyboard layout used by the X Window System. @end quotation -@item @code{initrd-modules} (default: @code{%base-initrd-modules}) +@item @code{initrd-modules} (default: @code{(base-initrd-modules (operating-system-kernel this-operating-system))}) @cindex initrd @cindex initial RAM disk The list of Linux kernel modules that need to be available in the @@ -49834,16 +49834,25 @@ file system, you would write: @lisp (operating-system ;; @dots{} - (initrd-modules (cons "megaraid_sas" %base-initrd-modules))) + (initrd-modules (cons "megaraid_sas" + (base-initrd-modules (operating-system-kernel + this-operating-system))))) @end lisp Other useful kernel modules include those necessary for a @code{raid-device-mapping}, e.g. @code{raid1}, @code{raid456} and @code{raid10} (@pxref{Mapped Devices}). -@defvar %base-initrd-modules -This is the list of kernel modules included in the initrd by default. -@end defvar +@vindex %base-initrd-modules +@deffn {Procedure} base-initrd-modules kernel [system] +Return a list of modules tailored to @var{kernel} for @var{system} to +include in the initrd by default. +@end deffn + +@quotation Deprecation notice +This was formerly known as @var{%base-initrd-modules}. It is recommended +that you switch to using @code{(base-initrd-modules linux-libre)}. +@end quotation Furthermore, if you need lower-level customization, the @code{initrd} field of an @code{operating-system} declaration allows -- cgit v1.2.3