From a0fdd2e7581e7402997f70e5bebf4ee6b826bc74 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Mon, 25 Sep 2017 08:47:25 +0200 Subject: vm/qemu: initial multi-OS support --- vm/qemu/qemu.go | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'vm') diff --git a/vm/qemu/qemu.go b/vm/qemu/qemu.go index b623fc8cc..9049be8a0 100644 --- a/vm/qemu/qemu.go +++ b/vm/qemu/qemu.go @@ -65,27 +65,31 @@ type archConfig struct { } var archConfigs = map[string]archConfig{ - "amd64": { + "linux/amd64": { Qemu: "qemu-system-x86_64", QemuArgs: "-enable-kvm -usb -usbdevice mouse -usbdevice tablet -soundhw all", }, - "386": { + "linux/386": { Qemu: "qemu-system-i386", }, - "arm64": { + "linux/arm64": { Qemu: "qemu-system-aarch64", QemuArgs: "-machine virt -cpu cortex-a57", }, - "arm": { + "linux/arm": { Qemu: "qemu-system-arm", }, - "ppc64le": { + "linux/ppc64le": { Qemu: "qemu-system-ppc64", }, + "fuchsia/amd64": { + Qemu: "qemu-system-x86_64", + QemuArgs: "-enable-kvm", + }, } func ctor(env *vmimpl.Env) (vmimpl.Pool, error) { - archConfig := archConfigs[env.Arch] + archConfig := archConfigs[env.Arch+"/"+env.Arch] cfg := &Config{ Count: 1, Qemu: archConfig.Qemu, @@ -104,6 +108,9 @@ func ctor(env *vmimpl.Env) (vmimpl.Pool, error) { return nil, err } if env.Image == "9p" { + if env.OS != "linux" { + return nil, fmt.Errorf("9p image is supported for linux only") + } if cfg.Kernel == "" { return nil, fmt.Errorf("9p image requires kernel") } -- cgit mrf-deployment