diff --git a/drivers/qemu/qemu.go b/drivers/qemu/qemu.go index 02e48db..f3efa01 100644 --- a/drivers/qemu/qemu.go +++ b/drivers/qemu/qemu.go @@ -45,6 +45,7 @@ type Driver struct { NetVlan bool Nographic bool VirtioDrives bool + HVF bool Network string PrivateNetwork string Boot2PodmanURL string @@ -109,6 +110,10 @@ func (d *Driver) GetCreateFlags() []mcnflag.Flag { Name: "qemu-virtio-drives", Usage: "Use virtio for drives (cdrom and disk)", }, + mcnflag.BoolFlag{ + Name: "qemu-hvf", + Usage: "Use the macOS Hypervisor.framework", + }, mcnflag.StringFlag{ Name: "qemu-network", Usage: "Name of network to connect to (user, tap, bridge)", @@ -208,6 +213,7 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error { d.NetVlan = flags.Bool("qemu-net-vlan") d.Nographic = flags.Bool("qemu-nographic") d.VirtioDrives = flags.Bool("qemu-virtio-drives") + d.HVF = flags.Bool("qemu-hvf") d.Network = flags.String("qemu-network") d.Boot2PodmanURL = flags.String("qemu-boot2podman-url") d.NetworkInterface = flags.String("qemu-network-interface") @@ -502,6 +508,11 @@ func (d *Driver) Start() error { startCmd = append(startCmd, "-daemonize") + if d.HVF { + startCmd = append(startCmd, "-accel", "hvf") + startCmd = append(startCmd, "-cpu", "host") + } + // other options // "-enable-kvm" if its available if _, err := os.Stat("/dev/kvm"); err == nil {