Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hypervisor.framework driver : xhyve #10

Open
ghost opened this issue Aug 14, 2019 · 9 comments
Open

Hypervisor.framework driver : xhyve #10

ghost opened this issue Aug 14, 2019 · 9 comments

Comments

@ghost
Copy link

ghost commented Aug 14, 2019

Hello,
For Mac and to have a more native and powerful solution, Xhyve can be great
Regards

@afbjorklund
Copy link
Contributor

I wanted someone else (Mac user) to do it, but have found I could use xgo to build. Agree that it (and hyperv for the Dark Side) would be nice

@otaviof
Copy link

otaviof commented Aug 26, 2019

@afbjorklund, @Colundrum would be great to have Mac support, as a Mac user I volunteer to help on this task. I've tried to setup a docker-machine based VM to achieve that, but it's far from trivial and I'm not finished over there. So, would be great to centralized this effort here. :-)

@afbjorklund
Copy link
Contributor

Both virtualbox and qemu are supposed to work on a Mac, this is about having a better driver.

@afbjorklund
Copy link
Contributor

@otaviof not sure what your issues with docker-machine were, but some are inherited by podman-machine (since it is more or less the exact same code, even though the ISO image is different...)

@otaviof
Copy link

otaviof commented Sep 4, 2019

@afbjorklund I mean, aside of VirtualBox support, I would love to have xhyve based VM.

@tonyjames
Copy link

QEMU has support for the Hypervisor framework on macOS. I've had success using podman-machine on macOS with QEMU installed from homebrew [1].

I replace qemu-system-x86_64 in my $PATH with a bash script that adds "-accel hvf -cpu host" to the qemu command line. Seems to be working quite well.

[1] https://formulae.brew.sh/formula/qemu

@chadbrewbaker
Copy link

Bump. Virtualbox is dead in the water for Apple arm64 according to Oracle. If anyone wants to help port xhyve to arm64 the thread is here machyve/xhyve#206. IBM could beat Docker to Apple M1 support with Podman - this should be a huge priority.

@afbjorklund
Copy link
Contributor

afbjorklund commented Nov 21, 2020

IBM could beat Docker to Apple M1 support with Podman - this should be a huge priority.

Sorry but the boot2podman project (and boot2docker) share that same unsupported state...

https://boot2podman.github.io/2020/11/03/boot2podman-project.html

Podman only runs remotely now, there is no Podman that works "locally" on Mac or Windows.

Red Hat has not been able to support such a project, neither "Toolbox" (i.e. this) nor "Desktop"

https://boot2podman.github.io/2018/12/04/introducing-podman-machine.html

If you want to discuss this, I suggest: https://podman.io/community/meeting/


The included QEMU driver should work with Hypervisor.framework, unless too much changed:

#5 (comment)

On Linux we use -accel kvm, on the Mac it is -accel hvf and on Win it is -accel hax

Running with --accel hvf takes about 40s to start the machine compared to almost 7 minutes taken without any accelerator.

Otherwise the recommendation is to use some other means to set up the Linux VM.

For instance by using Vagrant, which should have provisioners for e.g. Parallels ?

https://boot2podman.github.io/2020/07/22/machine-replacement.html

See also https://www.redhat.com/sysadmin/podman-clients-macos-windows

@741g
Copy link

741g commented Nov 25, 2020

Hi, I'm a developer on the Android Emulator, which currently uses Hypervisor.framework in a fork fo QEMU for x86 Android guests.

We're looking into both Virtualization.framework and Hypervisor.framework, and I'm in the process of adding Hypervisor.framework support here: https://android-review.googlesource.com/c/platform/external/qemu/+/1510245

which is loosely based on the KVM kernel code (https://elixir.bootlin.com/linux/v4.6/source/arch/arm64/kvm/handle_exit.c). So that's the implementation strategy.

As I'm implementing this while also learning the ARM64 ISA as I go along, help is appreciated :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants