guix-patches
[Top][All Lists]
Advanced

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

[bug#29932] [PATCH v2 1/2] system: Split up operating-system-kernel-argu


From: Danny Milosavljevic
Subject: [bug#29932] [PATCH v2 1/2] system: Split up operating-system-kernel-arguments into operating-system-boot-kernel-arguments and operating-system-user-kernel-arguments.
Date: Fri, 12 Jan 2018 11:59:53 +0100

* gnu/system.scm (operating-system-kernel-arguments): Remove.
(operating-system-boot-kernel-arguments): New variable.  Export it.
(bootable-kernel-arguments): Remove.
(boot-kernel-arguments): Remove.
(operating-system-boot-parameters): Adapt to the above.
---
 gnu/system.scm    | 35 ++++++++++++++++-------------------
 gnu/system/vm.scm |  3 ++-
 2 files changed, 18 insertions(+), 20 deletions(-)

diff --git a/gnu/system.scm b/gnu/system.scm
index 40e259f43..51f45f6ac 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -73,7 +73,8 @@
             operating-system-hosts-file
             operating-system-kernel
             operating-system-kernel-file
-            operating-system-kernel-arguments
+            operating-system-boot-kernel-arguments
+            operating-system-user-kernel-arguments
             operating-system-initrd
             operating-system-users
             operating-system-groups
@@ -90,7 +91,6 @@
             operating-system-activation-script
             operating-system-user-accounts
             operating-system-shepherd-service-names
-            operating-system-user-kernel-arguments
 
             operating-system-derivation
             operating-system-profile
@@ -126,10 +126,9 @@
 ;;;
 ;;; Code:
 
-(define (bootable-kernel-arguments kernel-arguments system.drv root-device)
-  "Prepend extra arguments to KERNEL-ARGUMENTS that allow SYSTEM.DRV to be
-booted from ROOT-DEVICE"
-  (cons* (string-append "--root="
+(define (boot-kernel-arguments system.drv root-device)
+  "Kernel-arguments that allow SYSTEM.DRV to be booted from ROOT-DEVICE"
+  (list (string-append "--root="
                         (if (uuid? root-device)
 
                             ;; Note: Always use the DCE format because that's
@@ -138,8 +137,7 @@ booted from ROOT-DEVICE"
                             (uuid->string (uuid-bytevector root-device) 'dce)
                             root-device))
          #~(string-append "--system=" #$system.drv)
-         #~(string-append "--load=" #$system.drv "/boot")
-         kernel-arguments))
+         #~(string-append "--load=" #$system.drv "/boot")))
 
 ;; System-wide configuration.
 ;; TODO: Add per-field docstrings/stexi.
@@ -201,12 +199,11 @@ booted from ROOT-DEVICE"
   (sudoers-file operating-system-sudoers-file     ; file-like
                 (default %sudoers-specification)))
 
-(define (operating-system-kernel-arguments os system.drv root-device)
-  "Return all the kernel arguments, including the ones not specified
-directly by the user."
-  (bootable-kernel-arguments (operating-system-user-kernel-arguments os)
-                             system.drv
-                             root-device))
+(define* (operating-system-boot-kernel-arguments os)
+  "Kernel arguments that allow OS (only) to be booted."
+  (let* ((root-file-system (operating-system-root-file-system os))
+         (root-device (file-system-device root-file-system)))
+    (boot-kernel-arguments os root-device)))
 
 
 ;;;
@@ -319,8 +316,7 @@ The object has its kernel-arguments extended in order to 
make it bootable."
     (if params
       (boot-parameters
         (inherit params)
-        (kernel-arguments (bootable-kernel-arguments kernel-arguments
-                                                     system root)))
+        (kernel-arguments (append (boot-kernel-arguments system root) 
kernel-arguments)))
       #f)))
 
 (define (boot-parameters->menu-entry conf)
@@ -940,9 +936,10 @@ kernel arguments for that derivation to <boot-parameters>."
              (root-device root-device)
              (kernel (operating-system-kernel-file os))
              (kernel-arguments
-              (if system.drv
-                (operating-system-kernel-arguments os system.drv root-device)
-                (operating-system-user-kernel-arguments os)))
+              (append (if system.drv
+                        (operating-system-boot-kernel-arguments os)
+                        '())
+                      (operating-system-user-kernel-arguments os)))
              (initrd initrd)
              (bootloader-name bootloader-name)
              (store-device (ensure-not-/dev (fs->boot-device store)))
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 496f2ac4e..6ba76142b 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -716,7 +716,8 @@ it is mostly useful when FULL-BOOT?  is true."
                                 #:disk-image-size disk-image-size)))
     (define kernel-arguments
       #~(list #$@(if graphic? #~() #~("console=ttyS0"))
-              #+@(operating-system-kernel-arguments os os-drv "/dev/vda1")))
+              #+@(append (operating-system-boot-kernel-arguments os)
+                         (operating-system-user-kernel-arguments os))))
 
     (define qemu-exec
       #~(list (string-append #$qemu "/bin/" #$(qemu-command (%current-system)))





reply via email to

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