aboutsummaryrefslogtreecommitdiffstats
path: root/vm
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2017-09-25 08:47:25 +0200
committerDmitry Vyukov <dvyukov@google.com>2017-09-25 08:47:48 +0200
commita0fdd2e7581e7402997f70e5bebf4ee6b826bc74 (patch)
tree18b4a6400297c016159472d62b6c7a15797086ac /vm
parente9c477a5b3a05a614d9a0c68ba9724762a363784 (diff)
vm/qemu: initial multi-OS support
Diffstat (limited to 'vm')
-rw-r--r--vm/qemu/qemu.go19
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")
}