-
Notifications
You must be signed in to change notification settings - Fork 625
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
Support using UTM's build of QEMU (for stability, GPU acceleration, sudo-less vmnet) #3033
Comments
Looks like sudo-less vmnet can be enabled too when UTM.app is signed |
Exactly, If the app have the network entitlement them we don't need sudo for vmnet. |
What entitlements would allow this? I thought it would require It was my understanding that it is impossible to get this entitlement if you want to distribute outside the app store; you are supposed to run as I guess UTM is distributed through the app store, and they may have been given the entitlement by Apple. I'm pretty sure we would need to be a GUI app to distribute Lima through the app store, and even then I wonder if we could get the entitlement as an open source project. |
The free version ( |
If we can get "com.apple.vm.networking" for lima we don't need socket_vmnet. We can use VZBridgedNetworkDeviceAttachment in lima. This is much faster (40 Gbits/s with iperf3 vs 2.5 Gbits/s) and consume no additional cpu in socket_vment and limactl. VZ does not support shared network like host mode socekt_vmnet, so we can keep socket_vment for this special case. |
This is the first time I hear about this "distributed through the app store" requirement, I'm only aware of the requirement that this is used by a virtualization program. |
I think it eventually comes from xhyve being used by Go console app… | Apple Developer Forums
It is great to hear that it will be granted to non-store apps. |
Update: this wrapper seems to work /*
clang -o qemu_wrapper qemu_wrapper.c \
-F/Applications/UTM.app/Contents/Frameworks \
-framework qemu-aarch64-softmmu \
-Wl,-rpath,/Applications/UTM.app/Contents/Frameworks
*/
extern int qemu_init(int argc, char **argv, char **envp);
extern void *qemu_main_loop(void);
extern void *qemu_cleanup(void);
int main(int argc, char **argv, char **envp) {
int rc = qemu_init(argc, argv, envp);
if (rc < 0) {
return rc;
}
qemu_main_loop();
qemu_cleanup();
} I still don't know how to use |
UTM's build of QEMU seems more stable and also supports GPU acceleration:
qemu-system-aarch64: Property 'host-arm-cpu.sme' not found
#3032Not sure how to launch it though
An alternative way is to push UTM's patches to Homebrew, but not sure whether Homebrew maintainers will like it.
The text was updated successfully, but these errors were encountered: