runInLinuxVM: Use QEMU command line that works on other architectures
... by moving the existing definition to qemu-flags.nix and reusing that.
This commit is contained in:
parent
8c4f8c51a6
commit
71631a922b
@ -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}'");
|
||||
}
|
||||
|
@ -15,12 +15,6 @@ with import ../../lib/qemu-flags.nix { inherit pkgs; };
|
||||
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,gic-version=host -cpu host";
|
||||
}.${pkgs.stdenv.system};
|
||||
|
||||
vmName =
|
||||
if config.networking.hostName == ""
|
||||
@ -79,7 +73,7 @@ let
|
||||
'')}
|
||||
|
||||
# Start QEMU.
|
||||
exec ${qemuKvm} \
|
||||
exec ${qemuBinary qemu} \
|
||||
-name ${vmName} \
|
||||
-m ${toString config.virtualisation.memorySize} \
|
||||
-smp ${toString config.virtualisation.cores} \
|
||||
|
@ -23,8 +23,6 @@ rec {
|
||||
patches = [ ../../../nixos/modules/virtualisation/azure-qemu-220-no-etc-install.patch ];
|
||||
});
|
||||
|
||||
qemuProg = "${qemu}/bin/qemu-kvm";
|
||||
|
||||
|
||||
modulesClosure = makeModulesClosure {
|
||||
inherit kernel rootModules;
|
||||
@ -204,8 +202,7 @@ rec {
|
||||
|
||||
|
||||
qemuCommandLinux = ''
|
||||
${qemuProg} \
|
||||
${lib.optionalString (pkgs.stdenv.system == "x86_64-linux") "-cpu kvm64"} \
|
||||
${qemuBinary qemu} \
|
||||
-nographic -no-reboot \
|
||||
-device virtio-rng-pci \
|
||||
-virtfs local,path=${storeDir},security_model=none,mount_tag=store \
|
||||
|
Loading…
Reference in New Issue
Block a user