|
|
|
|
@ -154,8 +154,20 @@ func (b *Builder) Prepare(raws ...interface{}) ([]string, error) {
|
|
|
|
|
if runtime.GOOS == "windows" {
|
|
|
|
|
b.config.Accelerator = "tcg"
|
|
|
|
|
} else {
|
|
|
|
|
b.config.Accelerator = "kvm"
|
|
|
|
|
// /dev/kvm is a kernel module that may be loaded if kvm is
|
|
|
|
|
// installed and the host supports VT-x extensions. To make sure
|
|
|
|
|
// this will actually work we need to os.Open() it. If os.Open fails
|
|
|
|
|
// the kernel module was not installed or loaded correctly.
|
|
|
|
|
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 == "" {
|
|
|
|
|
|