diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2017-09-25 08:47:25 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2017-09-25 08:47:48 +0200 |
| commit | a0fdd2e7581e7402997f70e5bebf4ee6b826bc74 (patch) | |
| tree | 18b4a6400297c016159472d62b6c7a15797086ac /vm | |
| parent | e9c477a5b3a05a614d9a0c68ba9724762a363784 (diff) | |
vm/qemu: initial multi-OS support
Diffstat (limited to 'vm')
| -rw-r--r-- | vm/qemu/qemu.go | 19 |
1 files changed, 13 insertions, 6 deletions
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") } |
