From 44a4d91853c5c83f6ac32d16d16fab1c342d3b4e Mon Sep 17 00:00:00 2001 From: Chris Marusich Date: Mon, 19 Feb 2018 04:47:42 +0100 Subject: [PATCH] system: Allow customization of the initrd's Guile. * gnu/system/linux-initrd.scm (raw-initrd, base-initrd): Add the #:guile keyword argument. * doc/guix.texi (Initial Ram Disk) : Update their documentation. --- doc/guix.texi | 40 +++++++++++++++++++++++----------------- gnu/system/linux-initrd.scm | 27 ++++++++++++++++----------- 2 files changed, 39 insertions(+), 28 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 7ed39ff13..5e8c27486 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -18849,33 +18849,39 @@ here is how to use it and customize it further. @cindex initrd @cindex initial RAM disk @deffn {Monadic Procedure} raw-initrd @var{file-systems} @ + [#:linux linux-libre] [#:linux-modules '()] [#:mapped-devices '()] @ - [#:helper-packages '()] [#:qemu-networking? #f] [#:volatile-root? #f] -Return a monadic derivation that builds a raw initrd. @var{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 @code{--root}. address@hidden is a list of kernel modules to be loaded at boot time. address@hidden is a list of device mappings to realize before address@hidden are mounted (@pxref{Mapped Devices}). address@hidden is a list of packages to be copied in the initrd. It may -include @code{e2fsck/static} or other packages needed by the initrd to check -the root file system. + [#:helper-packages '()] [#:guile %guile-static-stripped] + [#:qemu-networking? #f] [#:volatile-root? #f] +Return a monadic derivation that builds a raw initrd, with kernel +modules taken from @var{linux}. @var{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 @code{--root}. address@hidden is a list of kernel modules to be loaded at boot +time. @var{mapped-devices} is a list of device mappings to realize +before @var{file-systems} are mounted (@pxref{Mapped Devices}). address@hidden is a list of packages to be copied in the +initrd. It may include @code{e2fsck/static} or other packages needed by +the initrd to check root partition. @var{guile} is the Guile to use in +the initrd. When @var{qemu-networking?} is true, set up networking with the standard QEMU -parameters. When @var{virtio?} is true, load additional modules so that the -initrd can be used as a QEMU guest with para-virtualized I/O drivers. +parameters. When @var{volatile-root?} is true, the root file system is writable but any changes to it are lost. @end deffn @deffn {Monadic Procedure} base-initrd @var{file-systems} @ - [#:mapped-devices '()] [#:qemu-networking? #f] [#:volatile-root? #f]@ + [#:linux linux-libre] + [#:mapped-devices '()] [#:guile %guile-static-stripped] + [#:qemu-networking? #f] [#:volatile-root? #f]@ [#:virtio? #t] [#:extra-modules '()] -Return a monadic derivation that builds a generic initrd. @var{file-systems} is -a list of file systems to be mounted by the initrd like for @code{raw-initrd}. address@hidden, @var{qemu-networking?} and @var{volatile-root?} -also behaves as in @code{raw-initrd}. +Return a monadic derivation that builds a generic initrd, with kernel +modules taken from @var{linux}. @var{file-systems} is a list of file +systems to be mounted by the initrd like for @code{raw-initrd}. address@hidden, @var{guile}, @var{qemu-networking?} and address@hidden also behave as in @code{raw-initrd}. When @var{virtio?} is true, load additional modules so that the initrd can be used as a QEMU guest with para-virtualized I/O drivers. diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm index 330438bce..301e6cffa 100644 --- a/gnu/system/linux-initrd.scm +++ b/gnu/system/linux-initrd.scm @@ -154,17 +154,18 @@ MODULES and taken from LINUX." (linux-modules '()) (mapped-devices '()) (helper-packages '()) + (guile %guile-static-stripped) qemu-networking? volatile-root? (on-error 'debug)) - "Return a monadic derivation that builds a raw 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'. LINUX-MODULES is a list of kernel -modules to be loaded at boot time. MAPPED-DEVICES is a list of device -mappings to realize before FILE-SYSTEMS are mounted. -HELPER-PACKAGES is a list of packages to be copied in the initrd. It may include -e2fsck/static or other packages needed by the initrd to check root partition. + "Return a monadic derivation that builds a raw 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'. LINUX-MODULES is a list of kernel modules to be +loaded at boot time. MAPPED-DEVICES is a list of device mappings to realize +before FILE-SYSTEMS are mounted. HELPER-PACKAGES is a list of packages to be +copied in the initrd. It may include e2fsck/static or other packages needed by +the initrd to check root partition. GUILE is the Guile to use in the initrd. When QEMU-NETWORKING? is true, set up networking with the standard QEMU parameters. @@ -223,7 +224,8 @@ upon error." #:qemu-guest-networking? #$qemu-networking? #:volatile-root? '#$volatile-root? #:on-error '#$on-error))) - #:name "raw-initrd")) + #:name "raw-initrd" + #:guile guile)) (define* (file-system-packages file-systems #:key (volatile-root? #f)) "Return the list of statically-linked, stripped packages to check @@ -246,6 +248,7 @@ FILE-SYSTEMS." #:key (linux linux-libre) (mapped-devices '()) + (guile %guile-static-stripped) qemu-networking? volatile-root? (virtio? #t) @@ -255,7 +258,8 @@ FILE-SYSTEMS." 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. +mappings to realize before FILE-SYSTEMS are mounted. GUILE is the Guile to +use in the initrd. QEMU-NETWORKING? and VOLATILE-ROOT? behaves as in raw-initrd. @@ -325,6 +329,7 @@ loaded at boot time in the order in which they appear." #:helper-packages helper-packages #:qemu-networking? qemu-networking? #:volatile-root? volatile-root? - #:on-error on-error)) + #:on-error on-error + #:guile guile)) ;;; linux-initrd.scm ends here -- 2.15.1