~ruther/guix-local

944d2b17b50b6e1890817d4724ed101bc2c4b0ef — Christopher Allan Webber 10 years ago 8b16a5e
vm: Only pass "-enable-kvm" to qemu if /dev/kvm is present.

Fixes <http://bugs.gnu.org/22633>.

* gnu/build/vm.scm (load-in-linux-vm): Only pass "-enable-kvm" flag to qemu
  if "/dev/kvm" is present.
* gnu/system/vm.scm (common-kvm-options): Same as above.
2 files changed, 23 insertions(+), 6 deletions(-)

M gnu/build/vm.scm
M gnu/system/vm.scm
M gnu/build/vm.scm => gnu/build/vm.scm +14 -5
@@ 1,5 1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 97,7 99,7 @@ the #:references-graphs parameter of 'derivation'."
    (_ #f))

  (unless (zero?
           (apply system* qemu "-enable-kvm" "-nographic" "-no-reboot"
           (apply system* qemu "-nographic" "-no-reboot"
                  "-m" (number->string memory-size)
                  "-net" "nic,model=virtio"
                  "-virtfs"


@@ 111,10 113,17 @@ the #:references-graphs parameter of 'derivation'."
                  "-initrd" initrd
                  "-append" (string-append "console=ttyS0 --load="
                                           builder)
                  (if make-disk-image?
                      `("-drive" ,(string-append "file=" image-file
                                                 ",if=virtio"))
                      '())))
                  (append
                   (if make-disk-image?
                       `("-drive" ,(string-append "file=" image-file
                                                  ",if=virtio"))
                       '())
                   ;; Only enable kvm if we see /dev/kvm exists.
                   ;; This allows users without hardware virtualization to still
                   ;; use these commands.
                   (if (file-exists? "/dev/kvm")
                       '("-enable-kvm")
                       '()))))
    (error "qemu failed" qemu))

  (if make-disk-image?

M gnu/system/vm.scm => gnu/system/vm.scm +9 -1
@@ 1,5 1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 457,7 459,13 @@ with '-virtfs' options for the host file systems listed in SHARED-FS."
                     "\" "))

  #~(string-append
     " -enable-kvm -no-reboot -net nic,model=virtio \
     ;; Only enable kvm if we see /dev/kvm exists.
     ;; This allows users without hardware virtualization to still use these
     ;; commands.
     #$(if (file-exists? "/dev/kvm")
           " -enable-kvm "
           "")
     " -no-reboot -net nic,model=virtio \
  " #$@(map virtfs-option shared-fs) " \
  -net user \
  -serial stdio -vga std \