From fa16f84502d769dc04f80ec4598df3d4cbd176c1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludo@gnu.org>
Date: Sun, 13 Jul 2014 23:43:00 +0200
Subject: [PATCH] linux-initrd: Allow extra modules to be passed to
 'base-initrd'.

* gnu/system/linux-initrd.scm (base-initrd): Add #:extra-modules
  parameter.
---
 gnu/system/linux-initrd.scm | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index 99df8cd185a..afbfc692d3a 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -206,6 +206,7 @@ (define* (base-initrd file-systems
                       qemu-networking?
                       virtio?
                       volatile-root?
+                      (extra-modules '())
                       guile-modules-in-chroot?)
   "Return a monadic derivation that builds a generic initrd.  FILE-SYSTEMS is
 a list of file-systems to be mounted by the initrd, possibly in addition to
@@ -218,6 +219,11 @@ (define* (base-initrd file-systems
 When VOLATILE-ROOT? is true, the root file system is writable but any changes
 to it are lost.
 
+The initrd is automatically populated with all the kernel modules necessary
+for FILE-SYSTEMS and for the given options.  However, additional kernel
+modules can be listed in EXTRA-MODULES.  They will be added to the initrd, and
+loaded at boot time in the order in which they appear.
+
 When GUILE-MODULES-IN-CHROOT? is true, make core Guile modules available in
 the new root.  This is necessary is the file specified as '--load' needs
 access to these modules (which is the case if it wants to even just print an
@@ -252,7 +258,8 @@ (define linux-modules
             '())
       ,@(if volatile-root?
             '("fuse.ko")
-            '())))
+            '())
+      ,@extra-modules))
 
   (define helper-packages
     ;; Packages to be copied on the initrd.
-- 
GitLab