guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

30/62: vm: Make the device node procedure a parameter.


From: guix-commits
Subject: 30/62: vm: Make the device node procedure a parameter.
Date: Sat, 11 Apr 2020 11:35:50 -0400 (EDT)

janneke pushed a commit to branch wip-hurd-vm
in repository guix.

commit e39fcdaa9d3b26979c6ed698c69e8d2977fbe558
Author: Ludovic Courtès <address@hidden>
AuthorDate: Tue Apr 7 10:21:48 2020 +0200

    vm: Make the device node procedure a parameter.
    
    * gnu/build/vm.scm (root-partition-initializer): Add #:make-device-nodes
    parameter and use it.
    * gnu/system/vm.scm (qemu-image): Add #:device-node parameter.  Pass
     #:make-device-nodes to 'root-partition-initializer'.
    * gnu/system/hurd.scm (cross-hurd-image): Pass #:device-nodes 'hurd to
    'qemu-image'.
---
 gnu/build/vm.scm    |  4 +++-
 gnu/system/hurd.scm |  1 +
 gnu/system/vm.scm   | 12 ++++++++++++
 3 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm
index c062ab5..d2bf741 100644
--- a/gnu/build/vm.scm
+++ b/gnu/build/vm.scm
@@ -371,6 +371,8 @@ it, run its initializer, and unmount it."
                                      (register-closures? #t)
                                      system-directory
                                      (deduplicate? #t)
+                                     (make-device-nodes
+                                      make-essential-device-nodes)
                                      (extra-directives '()))
   "Return a procedure to initialize a root partition.
 
@@ -392,7 +394,7 @@ system that is passed to 'populate-root-file-system'."
                       target))
 
     ;; Populate /dev.
-    (make-essential-device-nodes target)
+    (make-device-nodes target)
 
     ;; Optionally, register the inputs in the image's store.
     (when register-closures?
diff --git a/gnu/system/hurd.scm b/gnu/system/hurd.scm
index 64ecffc..d5ed2b7 100644
--- a/gnu/system/hurd.scm
+++ b/gnu/system/hurd.scm
@@ -156,6 +156,7 @@ menuentry \"GNU\" {
               #:bootcfg-drv grub.cfg
               #:bootloader grub-bootloader
               #:register-closures? #f
+              #:device-nodes 'hurd
               #:extra-directives hurd-directives))
 
 ;; Return this thunk so one can type "guix build -f gnu/system/hurd.scm".
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 65e96d4..e8c2f6e 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -369,6 +369,7 @@ INPUTS is a list of inputs (as for packages)."
                      (disk-image-format "qcow2")
                      (file-system-type "ext4")
                      (file-system-options '())
+                     (device-nodes 'linux)
                      (extra-directives '())
                      file-system-label
                      file-system-uuid
@@ -397,6 +398,9 @@ the image.  By default, REGISTER-CLOSURES? is set to true 
only if a service of
 type GUIX-SERVICE-TYPE is present in the services definition of the operating
 system.
 
+When DEVICE-NODES is 'linux, create Linux-device block and character devices
+under /dev.  When it is 'hurd, do Hurdish things.
+
 EXTRA-DIRECTIVES is an optional list of directives to populate the root file
 system that is passed to 'populate-root-file-system'."
   (define schema
@@ -416,6 +420,9 @@ system that is passed to 'populate-root-file-system'."
        #~(begin
            (use-modules (gnu build bootloader)
                         (gnu build vm)
+                        ((gnu build linux-boot)
+                         #:select (make-essential-device-nodes
+                                   make-hurd-device-nodes))
                         (guix store database)
                         (guix build utils)
                         (srfi srfi-26)
@@ -453,6 +460,11 @@ system that is passed to 'populate-root-file-system'."
                                  #:register-closures? #$register-closures?
                                  #:system-directory #$os
 
+                                 #:make-device-nodes
+                                 #$(match device-nodes
+                                     ('linux #~make-essential-device-nodes)
+                                     ('hurd #~make-hurd-device-nodes))
+
                                  ;; Disable deduplication to speed things up,
                                  ;; and because it doesn't help much for a
                                  ;; single system generation.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]