summary refs log tree commit diff
path: root/nixos/modules/virtualisation/qemu-vm.nix
diff options
context:
space:
mode:
authorTuomas Tynkkynen <tuomas.tynkkynen@iki.fi>2017-11-24 14:35:03 +0200
committerTuomas Tynkkynen <tuomas.tynkkynen@iki.fi>2017-11-26 11:13:21 +0200
commit43cb964e1773db2b8f01ccaeaaada3a641365e91 (patch)
tree00255b8e4d507e522aa4ff79421f8a2565644bd9 /nixos/modules/virtualisation/qemu-vm.nix
parent3b2056536c45c70e817e805b2b7f12b7ab468386 (diff)
downloadnixlib-43cb964e1773db2b8f01ccaeaaada3a641365e91.tar
nixlib-43cb964e1773db2b8f01ccaeaaada3a641365e91.tar.gz
nixlib-43cb964e1773db2b8f01ccaeaaada3a641365e91.tar.bz2
nixlib-43cb964e1773db2b8f01ccaeaaada3a641365e91.tar.lz
nixlib-43cb964e1773db2b8f01ccaeaaada3a641365e91.tar.xz
nixlib-43cb964e1773db2b8f01ccaeaaada3a641365e91.tar.zst
nixlib-43cb964e1773db2b8f01ccaeaaada3a641365e91.zip
nixos/qemu-vm: Set QEMU command line depending on architecture
Diffstat (limited to 'nixos/modules/virtualisation/qemu-vm.nix')
-rw-r--r--nixos/modules/virtualisation/qemu-vm.nix9
1 files changed, 7 insertions, 2 deletions
diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix
index 3c89ca68113b..22fa35964503 100644
--- a/nixos/modules/virtualisation/qemu-vm.nix
+++ b/nixos/modules/virtualisation/qemu-vm.nix
@@ -14,6 +14,12 @@ with lib;
 let
 
   qemu = config.system.build.qemu or pkgs.qemu_test;
+  qemuKvm = {
+    "i686-linux" = "${qemu}/bin/qemu-kvm";
+    "x86_64-linux" = "${qemu}/bin/qemu-kvm -cpu kvm64";
+    "armv7l-linux" = "${qemu}/bin/qemu-system-arm -enable-kvm -machine virt -cpu host";
+    "aarch64-linux" = "${qemu}/bin/qemu-system-aarch64 -enable-kvm -machine virt -cpu host";
+  }.${pkgs.stdenv.system};
 
   vmName =
     if config.networking.hostName == ""
@@ -72,11 +78,10 @@ let
       '')}
 
       # Start QEMU.
-      exec ${qemu}/bin/qemu-kvm \
+      exec ${qemuKvm} \
           -name ${vmName} \
           -m ${toString config.virtualisation.memorySize} \
           -smp ${toString config.virtualisation.cores} \
-          ${optionalString (pkgs.stdenv.system == "x86_64-linux") "-cpu kvm64"} \
           ${concatStringsSep " " config.virtualisation.qemu.networkingOptions} \
           -virtfs local,path=/nix/store,security_model=none,mount_tag=store \
           -virtfs local,path=$TMPDIR/xchg,security_model=none,mount_tag=xchg \