summary refs log tree commit diff
path: root/nixos/lib
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/lib')
-rw-r--r--nixos/lib/build-vms.nix2
-rw-r--r--nixos/lib/qemu-flags.nix11
-rw-r--r--nixos/lib/testing.nix2
3 files changed, 13 insertions, 2 deletions
diff --git a/nixos/lib/build-vms.nix b/nixos/lib/build-vms.nix
index 1a17a080ba45..4685fe6914a2 100644
--- a/nixos/lib/build-vms.nix
+++ b/nixos/lib/build-vms.nix
@@ -3,7 +3,7 @@
 let pkgs = import ../.. { inherit system config; }; in
 
 with pkgs.lib;
-with import ../lib/qemu-flags.nix;
+with import ../lib/qemu-flags.nix { inherit pkgs; };
 
 rec {
 
diff --git a/nixos/lib/qemu-flags.nix b/nixos/lib/qemu-flags.nix
index de355b08918c..fcdcbf1b0077 100644
--- a/nixos/lib/qemu-flags.nix
+++ b/nixos/lib/qemu-flags.nix
@@ -1,4 +1,5 @@
 # QEMU flags shared between various Nix expressions.
+{ pkgs }:
 
 {
 
@@ -7,4 +8,14 @@
       "-net vde,vlan=${toString nic},sock=$QEMU_VDE_SOCKET_${toString net}"
     ];
 
+  qemuSerialDevice = if pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64 then "ttyS0"
+        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}'");
 }
diff --git a/nixos/lib/testing.nix b/nixos/lib/testing.nix
index 532fff681d37..cf213d906f58 100644
--- a/nixos/lib/testing.nix
+++ b/nixos/lib/testing.nix
@@ -85,7 +85,7 @@ rec {
 
       testScript' =
         # Call the test script with the computed nodes.
-        if builtins.isFunction testScript
+        if lib.isFunction testScript
         then testScript { inherit nodes; }
         else testScript;