summary refs log tree commit diff
path: root/gnu/system
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-11-27 23:59:26 +0100
committerLudovic Courtès <ludo@gnu.org>2014-11-28 00:10:28 +0100
commit0e704a2d4ea9b65cde79240f4433296645c5a220 (patch)
treeed8e9489fdd5a8c547db6e59c924b75141424dae /gnu/system
parent600c285b6345d8b0cc04f9e92e47ad5bcd437948 (diff)
downloadguix-0e704a2d4ea9b65cde79240f4433296645c5a220.tar.gz
linux-boot: Load modules and their dependencies, à la 'modprobe'.
* gnu/build/linux-boot.scm: Use (gnu build linux-modules).
  (load-linux-module*): Remove.
  (boot-system): Add #:linux-module-directory parameter.
  [lookup-module]: New procedure.
  Call 'current-module-debugging-port'.  Pass #:lookup-module to
  'load-linux-module*'.  Map LOOKUP-MODULE on LINUX-MODULES.
* gnu/system/linux-initrd.scm (base-initrd): Adjust 'boot-system' call
  accordingly.  Adjust #:modules argument as well.
* gnu/system.scm (operating-system-activation-script)[%modules]: Likewise.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Likewise.
Diffstat (limited to 'gnu/system')
-rw-r--r--gnu/system/linux-initrd.scm9
-rw-r--r--gnu/system/vm.scm2
2 files changed, 7 insertions, 4 deletions
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index 71aba1e233..8129f9017b 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -236,14 +236,15 @@ loaded at boot time in the order in which they appear."
          (boot-system #:mounts '#$(map file-system->spec file-systems)
                       #:pre-mount (lambda ()
                                     (and #$@device-mapping-commands))
-                      #:linux-modules (map (lambda (file)
-                                             (string-append #$kodir "/" file))
-                                           '#$linux-modules)
+                      #:linux-modules '#$linux-modules
+                      #:linux-module-directory '#$kodir
                       #:qemu-guest-networking? #$qemu-networking?
                       #:volatile-root? '#$volatile-root?))
      #:name "base-initrd"
      #:modules '((guix build utils)
                  (gnu build linux-boot)
-                 (gnu build file-systems)))))
+                 (gnu build linux-modules)
+                 (gnu build file-systems)
+                 (guix elf)))))
 
 ;;; linux-initrd.scm ends here
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 07b13deeca..33ca396eb9 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -104,7 +104,9 @@
                                               '((gnu build vm)
                                                 (gnu build install)
                                                 (gnu build linux-boot)
+                                                (gnu build linux-modules)
                                                 (gnu build file-systems)
+                                                (guix elf)
                                                 (guix build utils)
                                                 (guix build store-copy)))
                                              (guile-for-build