-
Notifications
You must be signed in to change notification settings - Fork 356
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
Error on macOS aarch64 #206
Comments
This is upsetting. https://forums.macrumors.com/threads/if-you-disable-sip-all-you-ios-apps-will-stop-working-on-your-m1.2269661/ Turning off SIP just to run dtruss hoses apps permanently. You would have to link with a tracing glibc to get system calls. |
ls /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk//System/Library/Frameworks/Kernel.framework/Versions/Current/Headers/arm64
machine_cpuid.h machine_machdep.h These seem to be the arm64 headers to fix src/vmm/x86.c ? |
@jonmasters got Fedora to boot on M1 https://twitter.com/jonmasters/status/1331137023386800128 |
That's with Virtualization.framework, which is the easier-to-use library versus Hypervisor.framework (and may be more appropriate even?) The tweet references https://github.com/KhaosT/SimpleVM |
Right. I was trying to get something quick and dirty up and running, so I used the Virt framework. A full solution built using the Hypervisor framework would be nice to have since that would provide an ability to add/remove hardware and change the machine model, among many other things. |
To answer @chadbrewbaker original question. The build generates an x86_64 binary and Rosetta won’t work for virtualization which was made clear by Apple. This won’t work for arm64 until it is ported and if you are interested you should look at the architecture specific code in FreeBSD-UPB/freebsd:bhyvearm64-rebase for inspiration. While following this paper: https://papers.freebsd.org/2019/bsdcan/elisei-bhyvearm64_cpu_and_memory_virtualization_on_armv8.0_a/ |
I'm working on a stack of Hypervisor.framework patches here: https://android-review.googlesource.com/c/platform/external/qemu/+/1510277 |
@741g looks like that got merged. what are the next steps? :) https://gist.github.com/osy86/10d0ac0210f0eb99474ae31cf8d6dd9e#file-windows-10-arm-utm-zip for anybody else that lands on this |
You can pretty much follow those and incorporate into the xhyve implementation. It was quite straightforward compared to x86 support and as long as you have virtual firmware for setting up memory maps and routing interrupts, it should be doable. The key parts are:
You'll need to ensure that
There will be these types of Hypervisor.framework exits that you need to handle for ARM64:
|
Built from commit b7e589f .
Is this expected behavior or a bug?
The text was updated successfully, but these errors were encountered: