summary refs log tree commit diff
path: root/gnu/system/linux-initrd.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-01-31 12:21:10 +0100
committerLudovic Courtès <ludo@gnu.org>2014-01-31 12:52:13 +0100
commit4919d68432c69d386300053b0de178f9efb0334f (patch)
tree335ee5f200ac3662972a5fea30f4e651e0bd227a /gnu/system/linux-initrd.scm
parent217b862f0e8dfac18874f9c6ec8cafdb2471b4fb (diff)
downloadguix-4919d68432c69d386300053b0de178f9efb0334f.tar.gz
gnu: linux-initrd: Recognize 9p file systems.
* gnu/system/linux-initrd.scm (qemu-initrd)[virtio-9p-modules]: New
  variable.
  [linux-modules]: Append VIRTIO-9P-MODULES when a 9p file system is in
  MOUNTS.
* guix/build/linux-initrd.scm (mount-qemu-9p): New procedure.
  (boot-system): Recognize '9p' in MOUNTS, and use 'mount-qemu-9p'.
Diffstat (limited to 'gnu/system/linux-initrd.scm')
-rw-r--r--gnu/system/linux-initrd.scm15
1 files changed, 12 insertions, 3 deletions
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index 408fb9f211..1cc1d3b147 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -207,11 +207,20 @@ exception and backtrace!)."
     ;; Modules needed to mount CIFS file systems.
     '("md4.ko" "ecb.ko" "cifs.ko"))
 
+  (define virtio-9p-modules
+    ;; Modules for the 9p paravirtualized file system.
+    '("9pnet.ko" "9p.ko" "9pnet_virtio.ko"))
+
   (define linux-modules
     ;; Modules added to the initrd and loaded from the initrd.
-    (if (assoc-ref mounts 'cifs)
-        cifs-modules
-        '()))
+    `("virtio.ko" "virtio_ring.ko" "virtio_pci.ko"
+      "virtio_balloon.ko" "virtio_blk.ko" "virtio_net.ko"
+      ,@(if (assoc-ref mounts 'cifs)
+            cifs-modules
+            '())
+      ,@(if (assoc-ref mounts '9p)
+            virtio-9p-modules
+            '())))
 
   (expression->initrd
    `(begin