vm: 'expression->derivation-in-linux-vm' uses QEMU virtfs/9p.

* gnu/system/vm.scm (expression->derivation-in-linux-vm): Change #:qemu
  to default to QEMU-HEADLESS.  Use "-net nic,model=virtio".  Remove
  "-net user,smb=..." and add "-virtfs" options.  Change default initrd
  to include two 9p mounts.
This commit is contained in:
Ludovic Courtès 2014-04-09 12:13:22 +02:00
parent e1f88ff0ab
commit f200b03e06

View file

@ -70,7 +70,7 @@ (define* (expression->derivation-in-linux-vm name exp
(inputs '())
(linux linux-libre)
initrd
(qemu qemu/smb-shares)
(qemu qemu-headless)
(env-vars '())
(modules '())
(guile-for-build
@ -157,8 +157,13 @@ (define builder
(and (zero?
(system* qemu "-enable-kvm" "-nographic" "-no-reboot"
"-net" "nic,model=e1000"
"-net" (string-append "user,smb=" (getcwd))
"-net" "nic,model=virtio"
"-virtfs"
,(string-append "local,id=store_dev,path=" (%store-prefix)
",security_model=none,mount_tag=store")
"-virtfs"
,(string-append "local,id=xchg_dev,path=xchg"
",security_model=none,mount_tag=xchg")
"-kernel" linux
"-initrd" initrd
"-append" (string-append "console=ttyS0 --load="
@ -182,7 +187,9 @@ (define builder
(coreutils -> (car (assoc-ref %final-inputs "coreutils")))
(initrd (if initrd ; use the default initrd?
(return initrd)
(qemu-initrd #:guile-modules-in-chroot? #t)))
(qemu-initrd #:guile-modules-in-chroot? #t
#:mounts `((9p "store" ,(%store-prefix))
(9p "xchg" "/xchg")))))
(inputs (lower-inputs `(("qemu" ,qemu)
("linux" ,linux)
("initrd" ,initrd)
@ -304,7 +311,7 @@ (define (graph-from-file file)
(begin
(display "creating ext3 partition...\n")
(and (zero? (system* mkfs "-F" "/dev/sda1"))
(let ((store (string-append "/fs" ,%store-directory)))
(let ((store (string-append "/fs" ,(%store-prefix))))
(display "mounting partition...\n")
(mkdir "/fs")
(mount "/dev/sda1" "/fs" "ext3")