diff --git a/builder/qemu/builder.go b/builder/qemu/builder.go index 59490049c..e1c2dc059 100644 --- a/builder/qemu/builder.go +++ b/builder/qemu/builder.go @@ -154,8 +154,16 @@ func (b *Builder) Prepare(raws ...interface{}) ([]string, error) { if runtime.GOOS == "windows" { b.config.Accelerator = "tcg" } else { - b.config.Accelerator = "kvm" + if fp, err := os.Open("/dev/kvm"); err != nil { + b.config.Accelerator = "tcg" + } else { + fp.Close() + b.config.Accelerator = "kvm" + } } + log.Printf("use detected accelerator: %s", b.config.Accelerator) + } else { + log.Printf("use specified accelerator: %s", b.config.Accelerator) } if b.config.MachineType == "" {