summaryrefslogtreecommitdiff
path: root/gnu/system/linux-initrd.scm
diff options
context:
space:
mode:
authorLiliana Marie Prikler <liliana.prikler@gmail.com>2024-03-09 07:46:25 +0100
committerLiliana Marie Prikler <liliana.prikler@gmail.com>2024-03-09 07:46:25 +0100
commit058532bdd8953feefbd84fd7514822886c7f1a7e (patch)
treedd29b23b04df1e30a03b93d53a339f6fcd817285 /gnu/system/linux-initrd.scm
parent19fc252ab7e86ad1443a8d16f68467c61bf23179 (diff)
parent1bc05c6f6d56ad9e0e31d7f1cc75545a65e3d0f3 (diff)
Merge branch 'master' into emacs-team
Diffstat (limited to 'gnu/system/linux-initrd.scm')
-rw-r--r--gnu/system/linux-initrd.scm14
1 files changed, 13 insertions, 1 deletions
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index 58e95a1312..6236d25b9d 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -132,15 +132,27 @@ MODULES and taken from LINUX."
#~(begin
(use-modules (gnu build linux-modules)
(guix build utils)
+ (rnrs io ports)
(srfi srfi-1)
(srfi srfi-26))
(define module-dir
(string-append #$linux "/lib/modules"))
+ (define builtin-modules
+ (call-with-input-file
+ (first (find-files module-dir "modules.builtin$"))
+ (lambda (port)
+ (map file-name->module-name
+ (string-tokenize
+ (get-string-all port))))))
+
+ (define modules-to-lookup
+ (lset-difference string=? '#$modules builtin-modules))
+
(define modules
(let* ((lookup (cut find-module-file module-dir <>))
- (modules (map lookup '#$modules)))
+ (modules (map lookup modules-to-lookup)))
(append modules
(recursive-module-dependencies
modules