system: Take kernel modules from the user-specified kernel.
authorAndy Wingo <wingo@pobox.com>
Sun, 5 Apr 2015 20:47:16 +0000 (22:47 +0200)
committerLudovic Courtès <ludo@gnu.org>
Sun, 5 Apr 2015 21:15:20 +0000 (23:15 +0200)
* gnu/system/linux-initrd.scm (base-initrd): Add #:linux option to
  specify the linux kernel to use.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Propagate
  #:linux to base-initrd.
* gnu/system.scm (operating-system-initrd-file): Pass #:linux to
  'make-initrd'.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
gnu/system.scm
gnu/system/linux-initrd.scm
gnu/system/vm.scm

index 0d510b6..ece61ad 100644 (file)
@@ -737,6 +737,7 @@ we're running in the final root."
     (operating-system-initrd os))
 
   (mlet %store-monad ((initrd (make-initrd boot-file-systems
+                                           #:linux (operating-system-kernel os)
                                            #:mapped-devices mapped-devices)))
     (return #~(string-append #$initrd "/initrd"))))
 
index 9feb8f7..0e5334c 100644 (file)
@@ -143,16 +143,17 @@ initrd code."
 
 (define* (base-initrd file-systems
                       #:key
+                      (linux linux-libre)
                       (mapped-devices '())
                       qemu-networking?
                       virtio?
                       volatile-root?
                       (extra-modules '()))
-  "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
-the root file system specified on the kernel command line via '--root'.
-MAPPED-DEVICES is a list of device mappings to realize before FILE-SYSTEMS are
-mounted.
+  "Return a monadic derivation that builds a generic initrd, with kernel
+modules taken from LINUX.  FILE-SYSTEMS is a list of file-systems to be
+mounted by the initrd, possibly in addition to the root file system specified
+on the kernel command line via '--root'.  MAPPED-DEVICES is a list of device
+mappings to realize before FILE-SYSTEMS are mounted.
 
 When QEMU-NETWORKING? is true, set up networking with the standard QEMU
 parameters.  When VIRTIO? is true, load additional modules so the initrd can
@@ -224,7 +225,7 @@ loaded at boot time in the order in which they appear."
              (open source target)))
          mapped-devices))
 
-  (mlet %store-monad ((kodir (flat-linux-module-directory linux-libre
+  (mlet %store-monad ((kodir (flat-linux-module-directory linux
                                                           linux-modules)))
     (expression->initrd
      #~(begin
index c93e26d..e194ed6 100644 (file)
@@ -149,6 +149,7 @@ made available under the /xchg CIFS share."
        (initrd       (if initrd                   ; use the default initrd?
                          (return initrd)
                          (base-initrd %linux-vm-file-systems
+                                      #:linux linux
                                       #:virtio? #t
                                       #:qemu-networking? #t))))