runInLinuxVM: Use QEMU command line that works on other architectures

... by moving the existing definition to qemu-flags.nix and reusing
that.

authored by Tuomas Tynkkynen and committed by Tuomas Tynkkynen 71631a92 8c4f8c51

+8 -11
+6
nixos/lib/qemu-flags.nix
··· 12 12 else if pkgs.stdenv.isArm || pkgs.stdenv.isAarch64 then "ttyAMA0" 13 13 else throw "Unknown QEMU serial device for system '${pkgs.stdenv.system}'"; 14 14 15 + qemuBinary = qemuPkg: { 16 + "i686-linux" = "${qemuPkg}/bin/qemu-kvm"; 17 + "x86_64-linux" = "${qemuPkg}/bin/qemu-kvm -cpu kvm64"; 18 + "armv7l-linux" = "${qemuPkg}/bin/qemu-system-arm -enable-kvm -machine virt -cpu host"; 19 + "aarch64-linux" = "${qemuPkg}/bin/qemu-system-aarch64 -enable-kvm -machine virt,gic-version=host -cpu host"; 20 + }.${pkgs.stdenv.system} or (throw "Unknown QEMU binary for '${pkgs.stdenv.system}'"); 15 21 }
+1 -7
nixos/modules/virtualisation/qemu-vm.nix
··· 15 15 let 16 16 17 17 qemu = config.system.build.qemu or pkgs.qemu_test; 18 - qemuKvm = { 19 - "i686-linux" = "${qemu}/bin/qemu-kvm"; 20 - "x86_64-linux" = "${qemu}/bin/qemu-kvm -cpu kvm64"; 21 - "armv7l-linux" = "${qemu}/bin/qemu-system-arm -enable-kvm -machine virt -cpu host"; 22 - "aarch64-linux" = "${qemu}/bin/qemu-system-aarch64 -enable-kvm -machine virt,gic-version=host -cpu host"; 23 - }.${pkgs.stdenv.system}; 24 18 25 19 vmName = 26 20 if config.networking.hostName == "" ··· 79 73 '')} 80 74 81 75 # Start QEMU. 82 - exec ${qemuKvm} \ 76 + exec ${qemuBinary qemu} \ 83 77 -name ${vmName} \ 84 78 -m ${toString config.virtualisation.memorySize} \ 85 79 -smp ${toString config.virtualisation.cores} \
+1 -4
pkgs/build-support/vm/default.nix
··· 23 23 patches = [ ../../../nixos/modules/virtualisation/azure-qemu-220-no-etc-install.patch ]; 24 24 }); 25 25 26 - qemuProg = "${qemu}/bin/qemu-kvm"; 27 - 28 26 29 27 modulesClosure = makeModulesClosure { 30 28 inherit kernel rootModules; ··· 204 202 205 203 206 204 qemuCommandLinux = '' 207 - ${qemuProg} \ 208 - ${lib.optionalString (pkgs.stdenv.system == "x86_64-linux") "-cpu kvm64"} \ 205 + ${qemuBinary qemu} \ 209 206 -nographic -no-reboot \ 210 207 -device virtio-rng-pci \ 211 208 -virtfs local,path=${storeDir},security_model=none,mount_tag=store \