From 57c35c94ca1982a797f37b79b2df0e89c5e9db2d Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 31 Jul 2013 14:53:27 +0200 Subject: [PATCH] Use the qemu-kvm wrapper --- lib/test-driver/Machine.pm | 2 +- lib/testing.nix | 5 ++--- modules/virtualisation/amazon-image.nix | 2 +- modules/virtualisation/nova-image.nix | 2 +- modules/virtualisation/qemu-opts | 4 ++++ modules/virtualisation/qemu-vm.nix | 9 ++++----- modules/virtualisation/virtualbox-image.nix | 4 ++-- 7 files changed, 15 insertions(+), 13 deletions(-) create mode 100644 modules/virtualisation/qemu-opts diff --git a/lib/test-driver/Machine.pm b/lib/test-driver/Machine.pm index f5bf40a1868e..615fe09bdfc6 100644 --- a/lib/test-driver/Machine.pm +++ b/lib/test-driver/Machine.pm @@ -30,7 +30,7 @@ sub new { if (!$startCommand) { # !!! merge with qemu-vm.nix. $startCommand = - "$ENV{'qemu'} -enable-kvm -m 384 " . + "qemu-kvm -m 384 " . "-net nic,model=virtio \$QEMU_OPTS "; my $iface = $args->{hdaInterface} || "virtio"; $startCommand .= "-drive file=" . Cwd::abs_path($args->{hda}) . ",if=$iface,boot=on,werror=report " diff --git a/lib/testing.nix b/lib/testing.nix index 653eaf3e9a67..9a72e1f4bd51 100644 --- a/lib/testing.nix +++ b/lib/testing.nix @@ -27,9 +27,8 @@ rec { cp ${./test-driver/Logger.pm} $libDir/Logger.pm wrapProgram $out/bin/nixos-test-driver \ - --prefix PATH : "${pkgs.qemu}/bin:${pkgs.vde2}/bin:${imagemagick}/bin:${coreutils}/bin" \ - --prefix PERL5LIB : "${lib.makePerlPath [ perlPackages.TermReadLineGnu perlPackages.XMLWriter perlPackages.IOTty ]}:$out/lib/perl5/site_perl" \ - --set qemu qemu-system-${if pkgs.stdenv.system == "x86_64-linux" then "x86_64" else "i386"} + --prefix PATH : "${pkgs.qemu_kvm}/bin:${pkgs.vde2}/bin:${imagemagick}/bin:${coreutils}/bin" \ + --prefix PERL5LIB : "${lib.makePerlPath [ perlPackages.TermReadLineGnu perlPackages.XMLWriter perlPackages.IOTty ]}:$out/lib/perl5/site_perl" ''; }; diff --git a/modules/virtualisation/amazon-image.nix b/modules/virtualisation/amazon-image.nix index dad071cc8e9a..30b06b9ef242 100644 --- a/modules/virtualisation/amazon-image.nix +++ b/modules/virtualisation/amazon-image.nix @@ -12,7 +12,7 @@ with pkgs.lib; '' mkdir $out diskImage=$out/nixos.img - ${pkgs.vmTools.kvm}/bin/qemu-img create -f raw $diskImage "4G" + ${pkgs.vmTools.qemu}/bin/qemu-img create -f raw $diskImage "4G" mv closure xchg/ ''; buildInputs = [ pkgs.utillinux pkgs.perl ]; diff --git a/modules/virtualisation/nova-image.nix b/modules/virtualisation/nova-image.nix index cc012ffc8a3f..59b88a54367d 100644 --- a/modules/virtualisation/nova-image.nix +++ b/modules/virtualisation/nova-image.nix @@ -12,7 +12,7 @@ with pkgs.lib; '' mkdir $out diskImage=$out/image - ${pkgs.vmTools.kvm}/bin/qemu-img create -f raw $diskImage "4G" + ${pkgs.vmTools.qemu}/bin/qemu-img create -f raw $diskImage "4G" mv closure xchg/ ''; buildInputs = [ pkgs.utillinux pkgs.perl ]; diff --git a/modules/virtualisation/qemu-opts b/modules/virtualisation/qemu-opts new file mode 100644 index 000000000000..f06a5136608a --- /dev/null +++ b/modules/virtualisation/qemu-opts @@ -0,0 +1,4 @@ + -device virtio-serial \ + -chardev socket,id=charconsole0,path=/tmp/nixos-socket,server,nowait \ + #-device virtconsole,chardev=charconsole0,id=console0 \ + -device virtserialport,chardev=chardev=charconsole0,id=serial0 diff --git a/modules/virtualisation/qemu-vm.nix b/modules/virtualisation/qemu-vm.nix index 6715b494dfb5..240a3e0b2a80 100644 --- a/modules/virtualisation/qemu-vm.nix +++ b/modules/virtualisation/qemu-vm.nix @@ -158,7 +158,7 @@ let NIX_DISK_IMAGE=$(readlink -f ''${NIX_DISK_IMAGE:-${config.virtualisation.diskImage}}) if ! test -e "$NIX_DISK_IMAGE"; then - ${pkgs.qemu}/bin/qemu-img create -f qcow2 "$NIX_DISK_IMAGE" \ + ${pkgs.qemu_kvm}/bin/qemu-img create -f qcow2 "$NIX_DISK_IMAGE" \ ${toString config.virtualisation.diskSize}M || exit 1 fi @@ -172,15 +172,14 @@ let idx=2 extraDisks="" ${flip concatMapStrings cfg.emptyDiskImages (size: '' - ${pkgs.qemu}/bin/qemu-img create -f raw "empty$idx" "${toString size}M" + ${pkgs.qemu_kvm}/bin/qemu-img create -f raw "empty$idx" "${toString size}M" extraDisks="$extraDisks -drive index=$idx,file=$(pwd)/empty$idx,if=virtio,werror=report" idx=$((idx + 1)) '')} # Start QEMU. # "-boot menu=on" is there, because I don't know how to make qemu boot from 2nd hd. - exec ${pkgs.qemu}/bin/qemu-system-${if pkgs.stdenv.system == "x86_64-linux" then "x86_64" else "i386"} \ - -enable-kvm \ + exec ${pkgs.qemu_kvm}/bin/qemu-kvm \ -name ${vmName} \ -m ${toString config.virtualisation.memorySize} \ ${optionalString (pkgs.stdenv.system == "x86_64-linux") "-cpu kvm64"} \ @@ -226,7 +225,7 @@ let '' mkdir $out diskImage=$out/disk.img - ${pkgs.qemu}/bin/qemu-img create -f qcow2 $diskImage "32M" + ${pkgs.qemu_kvm}/bin/qemu-img create -f qcow2 $diskImage "32M" ''; buildInputs = [ pkgs.utillinux ]; } diff --git a/modules/virtualisation/virtualbox-image.nix b/modules/virtualisation/virtualbox-image.nix index ff00ba7aee4b..2243d308c1b2 100644 --- a/modules/virtualisation/virtualbox-image.nix +++ b/modules/virtualisation/virtualbox-image.nix @@ -11,12 +11,12 @@ with pkgs.lib; '' mkdir $out diskImage=$out/image - ${pkgs.vmTools.kvm}/bin/qemu-img create -f raw $diskImage "10G" + ${pkgs.vmTools.qemu}/bin/qemu-img create -f raw $diskImage "10G" mv closure xchg/ ''; postVM = '' - ${pkgs.vmTools.kvm}/bin/qemu-img convert -f raw -O vdi $diskImage $out/disk.vdi + ${pkgs.vmTools.qemu}/bin/qemu-img convert -f raw -O vdi $diskImage $out/disk.vdi rm $diskImage ''; buildInputs = [ pkgs.utillinux pkgs.perl ];