From 6908fd9bf436540c8d6cfdf136bef416ac00f503 Mon Sep 17 00:00:00 2001 From: Wolfgang Bumiller Date: Mon, 12 Nov 2018 14:10:37 +0100 Subject: [PATCH] use qemu-system-aarch64 for arm machines Signed-off-by: Wolfgang Bumiller --- PVE/QemuServer.pm | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 79eeb34..3d9329c 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -2838,7 +2838,7 @@ sub check_cmdline { my @param = split(/\0/, $line); my $cmd = $param[0]; - return if !$cmd || ($cmd !~ m|kvm$| && $cmd !~ m|qemu-system-x86_64$|); + return if !$cmd || ($cmd !~ m|kvm$| && $cmd !~ m@(?:^|/)qemu-system-[^/]+$@); for (my $i = 0; $i < scalar (@param); $i++) { my $p = $param[$i]; @@ -3292,6 +3292,19 @@ sub get_ovmf_files($) { return @$ovmf; } +my $Arch2Qemu = { + aarch64 => '/usr/bin/qemu-system-aarch64', + x86_64 => '/usr/bin/qemu-system-x86_64', +}; +sub get_command_for_arch($) { + my ($arch) = @_; + return '/usr/bin/kvm' if is_native($arch); + + my $cmd = $Arch2Qemu->{$arch} + or die "don't know how to emulate architecture '$arch'\n"; + return $cmd; +} + sub config_to_command { my ($storecfg, $vmid, $conf, $defaults, $forcemachine) = @_; @@ -3335,7 +3348,7 @@ sub config_to_command { my $cpuunits = defined($conf->{cpuunits}) ? $conf->{cpuunits} : $defaults->{cpuunits}; - push @$cmd, '/usr/bin/kvm'; + push @$cmd, get_command_for_arch($arch); push @$cmd, '-id', $vmid; -- 2.39.2