bootloader: Add bootloader name to boot-parameters record.

* gnu/system.scm (<boot-parameters>)[name]: New field.
(boot-parameters-boot-name): Ditto.
(operating-system-boot-parameters-file): Add new field.
(operating-system-boot-parameters): Ditto.
(read-boot-parameters): Ditto.
This commit is contained in:
Mathieu Othacehe 2017-04-02 15:10:52 +02:00
parent 9121ce553d
commit bcaf67c44f
No known key found for this signature in database
GPG key ID: 8354763531769CA6

View file

@ -104,6 +104,7 @@ (define-module (gnu system)
boot-parameters?
boot-parameters-label
boot-parameters-root-device
boot-parameters-boot-name
boot-parameters-store-device
boot-parameters-store-mount-point
boot-parameters-kernel
@ -214,6 +215,7 @@ (define-record-type* <boot-parameters>
;; exactly to the device field of the <file-system> object representing the
;; OS's root file system, so it might be a device path like "/dev/sda3".
(root-device boot-parameters-root-device)
(boot-name boot-parameters-boot-name)
(store-device boot-parameters-store-device)
(store-mount-point boot-parameters-store-mount-point)
(kernel boot-parameters-kernel)
@ -232,6 +234,11 @@ (define (read-boot-parameters port)
(label label)
(root-device root)
(boot-name
(match (assq 'boot-name rest)
((_ args) args)
(#f 'grub))) ; for compatibility reasons.
;; In the past, we would store the directory name of the kernel instead
;; of the absolute file name of its image. Detect that and correct it.
(kernel (if (string=? linux (direct-store-path linux))
@ -869,6 +876,9 @@ (define (operating-system-boot-parameters os system.drv root-device)
(mlet* %store-monad
((initrd (operating-system-initrd-file os))
(store -> (operating-system-store-file-system os))
(bootloader -> (bootloader-configuration-bootloader
(operating-system-bootloader os)))
(boot-name -> (bootloader-name bootloader))
(label -> (kernel->boot-label (operating-system-kernel os))))
(return (boot-parameters
(label label)
@ -879,6 +889,7 @@ (define (operating-system-boot-parameters os system.drv root-device)
(operating-system-kernel-arguments os system.drv root-device)
(operating-system-user-kernel-arguments os)))
(initrd initrd)
(boot-name boot-name)
(store-device (fs->boot-device store))
(store-mount-point (file-system-mount-point store))))))
@ -904,6 +915,7 @@ (define* (operating-system-boot-parameters-file os #:optional (system.drv #f))
(kernel-arguments
#$(boot-parameters-kernel-arguments params))
(initrd #$(boot-parameters-initrd params))
(boot-name #$(boot-parameters-boot-name params))
(store
(device #$(boot-parameters-store-device params))
(mount-point #$(boot-parameters-store-mount-point params))))