linux-initrd: Make the virtio kernel modules optional.
* gnu/system/linux-initrd.scm (qemu-initrd): Add #:virtio? parameter. Use it. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Pass 'qemu-initrd' #:virtio?. (virtualized-operating-system): Likewise.
This commit is contained in:
parent
cafc3f5ad7
commit
24e0160a4a
@ -203,16 +203,18 @@ initrd code."
|
|||||||
|
|
||||||
(define* (qemu-initrd file-systems
|
(define* (qemu-initrd file-systems
|
||||||
#:key
|
#:key
|
||||||
guile-modules-in-chroot?
|
|
||||||
(qemu-networking? #t)
|
(qemu-networking? #t)
|
||||||
volatile-root?)
|
virtio?
|
||||||
|
volatile-root?
|
||||||
|
guile-modules-in-chroot?)
|
||||||
"Return a monadic derivation that builds an initrd for use in a QEMU guest
|
"Return a monadic derivation that builds an initrd for use in a QEMU guest
|
||||||
where the store is shared with the host. FILE-SYSTEMS is a list of
|
where the store is shared with the host. FILE-SYSTEMS is a list of
|
||||||
file-systems to be mounted by the initrd, possibly in addition to the root
|
file-systems to be mounted by the initrd, possibly in addition to the root
|
||||||
file system specified on the kernel command line via '--root'.
|
file system specified on the kernel command line via '--root'.
|
||||||
|
|
||||||
When QEMU-NETWORKING? is true, set up networking with the standard QEMU
|
When QEMU-NETWORKING? is true, set up networking with the standard QEMU
|
||||||
parameters.
|
parameters. When VIRTIO? is true, load additional modules so the initrd can
|
||||||
|
be used as a QEMU guest with para-virtualized I/O drivers.
|
||||||
|
|
||||||
When VOLATILE-ROOT? is true, the root file system is writable but any changes
|
When VOLATILE-ROOT? is true, the root file system is writable but any changes
|
||||||
to it are lost.
|
to it are lost.
|
||||||
@ -221,6 +223,11 @@ When GUILE-MODULES-IN-CHROOT? is true, make core Guile modules available in
|
|||||||
the new root. This is necessary is the file specified as '--load' needs
|
the new root. This is necessary is the file specified as '--load' needs
|
||||||
access to these modules (which is the case if it wants to even just print an
|
access to these modules (which is the case if it wants to even just print an
|
||||||
exception and backtrace!)."
|
exception and backtrace!)."
|
||||||
|
(define virtio-modules
|
||||||
|
;; Modules for Linux para-virtualized devices, for use in QEMU guests.
|
||||||
|
'("virtio.ko" "virtio_ring.ko" "virtio_pci.ko"
|
||||||
|
"virtio_balloon.ko" "virtio_blk.ko" "virtio_net.ko"))
|
||||||
|
|
||||||
(define cifs-modules
|
(define cifs-modules
|
||||||
;; Modules needed to mount CIFS file systems.
|
;; Modules needed to mount CIFS file systems.
|
||||||
'("md4.ko" "ecb.ko" "cifs.ko"))
|
'("md4.ko" "ecb.ko" "cifs.ko"))
|
||||||
@ -235,8 +242,9 @@ exception and backtrace!)."
|
|||||||
|
|
||||||
(define linux-modules
|
(define linux-modules
|
||||||
;; Modules added to the initrd and loaded from the initrd.
|
;; Modules added to the initrd and loaded from the initrd.
|
||||||
`("virtio.ko" "virtio_ring.ko" "virtio_pci.ko"
|
`(,@(if (or virtio? qemu-networking?)
|
||||||
"virtio_balloon.ko" "virtio_blk.ko" "virtio_net.ko"
|
virtio-modules
|
||||||
|
'())
|
||||||
,@(if (find (file-system-type-predicate "cifs") file-systems)
|
,@(if (find (file-system-type-predicate "cifs") file-systems)
|
||||||
cifs-modules
|
cifs-modules
|
||||||
'())
|
'())
|
||||||
|
@ -154,6 +154,7 @@ made available under the /xchg CIFS share."
|
|||||||
(initrd (if initrd ; use the default initrd?
|
(initrd (if initrd ; use the default initrd?
|
||||||
(return initrd)
|
(return initrd)
|
||||||
(qemu-initrd %linux-vm-file-systems
|
(qemu-initrd %linux-vm-file-systems
|
||||||
|
#:virtio? #t
|
||||||
#:guile-modules-in-chroot? #t))))
|
#:guile-modules-in-chroot? #t))))
|
||||||
|
|
||||||
(define builder
|
(define builder
|
||||||
@ -349,7 +350,9 @@ of the GNU system as described by OS."
|
|||||||
"Return an operating system based on OS suitable for use in a virtualized
|
"Return an operating system based on OS suitable for use in a virtualized
|
||||||
environment with the store shared with the host."
|
environment with the store shared with the host."
|
||||||
(operating-system (inherit os)
|
(operating-system (inherit os)
|
||||||
(initrd (cut qemu-initrd <> #:volatile-root? #t))
|
(initrd (cut qemu-initrd <>
|
||||||
|
#:volatile-root? #t
|
||||||
|
#:virtio? #t))
|
||||||
(file-systems (cons* (file-system
|
(file-systems (cons* (file-system
|
||||||
(mount-point "/")
|
(mount-point "/")
|
||||||
(device "/dev/vda1")
|
(device "/dev/vda1")
|
||||||
|
Loading…
Reference in New Issue
Block a user