Our great sponsors
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
virtualbox-org-svn-vbox-trunk
*UNOFFICIAL* mirror of the repository at http://www.virtualbox.org/svn/vbox/trunk (the first 30569 commits are courtesy of https://gitorious.org/virtualbox/mainlinemirror); Please **DO NOT** open pull requests against this repo
Took a little while to find the magic words in there: https://github.com/wimpysworld/quickemu/blob/af26f41440d63a0...
Neat. Something not to forget is that USB devices (host) passthrough can be tricky, as it's a passthrough of the device, not the port. In difficult situations, https://github.com/darkguy2008/hotplugger comes handy.
So my understanding – if you run VirtualBox on macOS, and you choose macOS as Guest OS type when creating your VM, it automatically turns GetKeyFromRealSMC on. That means you are using option (2) by default. You can always switch to option (1) instead if you want to, but if you are virtualising macOS-on-macOS, there is little reason to.
From reading the VirtualBox source code [0] – it also automatically enables GetKeyFromRealSMC if it detects Apple hardware, even if the host OS isn't macOS. So, if you install Windows on your Mac, and then create a macOS VM in VirtualBox, it will automatically select option (2) as well. (I think, they actually include the code to talk to the Apple SMC in their Windows and Linux kernel drivers too.)
(Note I haven't actually tried doing this myself, this is just what I gather from the source.)
[0] https://github.com/mdaniel/virtualbox-org-svn-vbox-trunk/blo...
I didn't use this, but a similar/related project that is for MacOS, https://github.com/knazarov/homebrew-qemu-virgl
Vagrant is an orthogonal tool to this, it is a VM orchestrator not an actual VM. What does this do: well, qemu doesn't have virgl support merged yet, so you need to go to some lengths to compile it for yourself.
All of the other stuff (spice, virtio) is for "it should be a nice user experience" above and beyond simply fast. In other words, you should be able to copy and paste between the host OS and the guest. You should be able to slide your mouse across the border of the VM window and do some clicking around then simply slide it back out and use your mouse with native host-OS windows again.
These things are all not granted when you use qemu out of the box. I have this intense 25-lines "qemu" script for invoking qemu-system properly. It was enlightening but I'm not sure how much I was enriched by the process of actually figuring all this out.
Quickemu is for making this easier (and on Linux.)
Yes! https://github.com/kingdonb/dot/blob/ubuntu-vm/bin/qemu
This expects you're using the special qemu from the prior link, compiled with homebrew. (else I think there will be no virtio-vga-gl video driver?)
The guest OS is an Ubuntu VM. I think the instructions say to use a recent Fedora/Silverblue for a reason (there are some things that don't quite work right around window resizing.)
Each time I start the VM, it shows up with tiny tiny pixels and the menubar does not work. I switch to another app, switch back, go to the menu and enable "zoom to fit" and it's off to the races. Other things to be aware of, if you resize the window it actually scales the pixels, (which is OK and doesn't even have any noticeable perf impact because OpenGL, I guess)