summary refs log tree commit diff
path: root/nixos/lib/qemu-flags.nix
diff options
context:
space:
mode:
authorTuomas Tynkkynen <tuomas.tynkkynen@iki.fi>2017-12-06 20:26:22 +0200
committerTuomas Tynkkynen <tuomas@tuxera.com>2018-01-30 16:57:27 +0200
commit71631a922b4005497fe3b93fdfe5899e2f6d7a2c (patch)
treef894da583f2973a0959df8da2bc28d114db5efe3 /nixos/lib/qemu-flags.nix
parent8c4f8c51a640e169484e4513b62d50844b2ed779 (diff)
runInLinuxVM: Use QEMU command line that works on other architectures
... by moving the existing definition to qemu-flags.nix and reusing
that.
Diffstat (limited to 'nixos/lib/qemu-flags.nix')
-rw-r--r--nixos/lib/qemu-flags.nix6
1 files changed, 6 insertions, 0 deletions
diff --git a/nixos/lib/qemu-flags.nix b/nixos/lib/qemu-flags.nix
index fb00c3183fbfc..fcdcbf1b00770 100644
--- a/nixos/lib/qemu-flags.nix
+++ b/nixos/lib/qemu-flags.nix
@@ -12,4 +12,10 @@
         else if pkgs.stdenv.isArm || pkgs.stdenv.isAarch64 then "ttyAMA0"
         else throw "Unknown QEMU serial device for system '${pkgs.stdenv.system}'";
 
+  qemuBinary = qemuPkg: {
+    "i686-linux" = "${qemuPkg}/bin/qemu-kvm";
+    "x86_64-linux" = "${qemuPkg}/bin/qemu-kvm -cpu kvm64";
+    "armv7l-linux" = "${qemuPkg}/bin/qemu-system-arm -enable-kvm -machine virt -cpu host";
+    "aarch64-linux" = "${qemuPkg}/bin/qemu-system-aarch64 -enable-kvm -machine virt,gic-version=host -cpu host";
+  }.${pkgs.stdenv.system} or (throw "Unknown QEMU binary for '${pkgs.stdenv.system}'");
 }