Documentation to set up a simple macOS VM in QEMU, accelerated by KVM
github.com
github.com
I have a fantasy that I'll go back to Snow Leopard some day and live the rest of my life there, but then I remember hardware support is basically nonexistent. A very lightweight VM with GPU passthrough could work around that problem.
https://www.patrickmin.com/linux/tip.php?name=epson4490
The iscan-plugin-gt-x750 package referenced there was all I needed to get vuescan (https://www.hamrick.com/) to use the scanner on 64-bit Linux.
Guess that's what I get for buying a weird $10 canon laser printer from Goodwill.
Why is that? Do you prefer the older macOSes? (I'm sympathetic to that viewpoint, but would like to know what about Snow Leopard specifically is what you like.)
A Mac OS X app is just a particular type of file. You don't "install" apps any more than you'd install a photo or a PDF. Sure, standard practice is to copy apps to your /Applications folder, but in Snow Leopard, this directory didn't have any unique behavior. A Stack for the /Applications folder was placed on your Dock by default, but users were expected to modify the Dock's contents. I was free to organize my apps as I would would any type of file, and the OS felt built to encourage this. If I dragged an app from /Applications to my Desktop, the app got moved. If I dragged iTunes to the trash, iTunes got deleted.
You can certainly do this in later releases, but the OS will fight you! Dragging apps out of /Applications creates an alias, unless you remember to hold down the ⌘ key. Whereas I used to "install" most apps by dragging them to the same Stack I used to launch apps, doing the same with Launchpad just creates a shortcut, which will break if the original is removed.
Lion is when Apple began trying to make macOS more consistent with iOS, regardless of whether the changes were also consistent with the Mac's original UI paradigm. I realize I'm nitpicking, and to be clear, I'm mostly okay with everything through Mavericks, before they switched to an ugly and low-contrast visual style.
Snow Leopard was also my first experience with Mac OS X, so I don't know how much that affects my opinion. But my god, the first day I booted up Snow Leopard and settled into using it over the next few hours... as dumb as it sounds, I just recall a feeling of pure ecstasy.
It's not just rose coloured glasses... I've used all of the classic Mac OS version and OS X from about 10.3 up to snow leopard, there were good, bad and ok versions, none terrible, all the way through there. But 10.6 was the best of the OS X in terms of stability and simplicity, from that point on it really felt like the whole system was being taken in a different direction, no more tick-tock feature-stability release schedule, and no more refinements, just more pseudo features to flash at prospective buyers, more bugs, more cruft, more unforgivable security mistakes, more bloat and far, far less control - basically turning into a bad iPhone as far as I was concerned.
I retreated to 10.6 for as long as I safely could then moved to a Linux desktop when they officially ended support for my machine deeming it obsolete.
I really like that. Feels intuitive and "sticky".
Note also that software support is now pretty weak for these old releases - you struggle to find any modern web browsers that still run, for example.
In my fantasy land, I would browse the web with Firefox ESR 45.9.0, which as of this moment is recent enough to be mostly usable.
Other than that, I feel like software support would be a mixed bag. Newer apps wouldn't work, but I'd gain compatibility with older apps that are broken on modern macOS. And since it looks like more and more future apps are just going to be bizarre iOS ports with alien UIs...
They're "unsupported", but, uh, so is Snow Leopard in 2019.
Massive kudos to the developers maintaining this stuff, it's all lovely!
I imagine the underlying tech would (hopefully?) work, but I find the automatic script very appealing.
With the AMD GPU, I had trouble resetting the GPU between VM starts/stops without restarting the whole computer. This appears to be a problem with a consumer AMD cards.
It could be specific to AMD Ryzen IOMMU Groups, but it was also pretty annoying to passthrough the PCI devices and still leave the appropriate hardware for the host machine. There aren't any native virtio drivers in OSX so you really need to pass through your sata controller/ethernet card for full performance. Might have been easier with a server motherboard with cleaner IOMMU groups, though.
I ended up just building a bare-metal Intel Hackintosh which was less of a hassle.
I think we need a new word to describe VM-hosted MacOS to distinguish from hardware hosted: QEMU + hack + Macintosh = Quackintosh ?
I could have sworn that macOS is supported as a guest under VMWare Fusion and/or ESXi hosts (when on Mac hardware), using some virtio drivers.
I would pay a significant premium to install MacOS on a machine without violating their ToS.
It's very frustrating to a lot of people that macOS VMs aren't easy (licensing/ToS-wise) to spin up on non-Apple hardware, especially since Apple doesn't sell high-end servers any longer. Yes, that calculus will be different when the new Mac Pro begins to sell, but a lot of IT departments would rather add Apple VMs for testing/build/dev to their on existing on-premise compute clouds (vSphere/etc.) than spin up brand new ones on Apple hardware.
Additionally, there's a lot of demand for local Apple VMs on Windows machines. Microsoft makes a lot of money from software that's running on my Mac - especially Office and Windows (via Parallels Desktop or Boot Camp). Why shouldn't Apple make money from VMs running on Windows and Linux machines?
It would be ... well, kind of them to offer IT solutions they use internally to other IT departments tasked to support work on Apple platforms. At the very minimum, they could license a version of macOS (or "serverOS") tuned for server workloads, VM deployments, and Apple Remote Desktop sessions.
I have to run a bunch of VMs for builds, and I really wish I could be running Linux instead.
Furthermore, there's a longstanding (3 year) bug where the kernel would (very rarely) fail to execute a process. This would manifest as "/bin/sh: fail to execute binary file", because the posix_spawn() call returns an error (this is the actual bug), the libc interprets this as trying to execute a script, and falls back to running it through /bin/sh (this is standard Unix behavior), which can't execute it either because it's not a script.
That such a bug would persist for so long doesn't inspire confidence in the quality of the kernel.
That says more about Apple's current priorities than anything else. Sure, Linux is more mature, but if Apple were to release serverOS for specific types of workloads that are needed, you can bet any bugs that would interfere significantly would be prioritized up.
(Also, if someone can find a maintainable method for it, I'd love to support someone who maintains a cross-compiler toolchain that targets macOS, making it possible to build Rust and C apps for macOS without having macOS installed. But that's not a complete substitute for having an actual macOS cloud build server, on which the compiled applications can run as part of the build process.)
How hard would it be to integrate something like that into rustup, to make it easy to install a capable cross-compiler backend?
> They could even make it a subscription.
Yes, my only point is that it would have to cost a lot more than the margin of a single iMac.
But like I said, I would pay an outrageous fee to use MacOS on a non-Apple machine without violating the EULA. And I only want it for professional use, where I can justify certain expenses (like a $500 software license + yearly renewal for updates), but can't justify spending $2-5k on an Apple machine that won't give me the performance, maintenance, or upgrade path available from off the shelf components.
It's such a weird business calculus to develop for MacOS. I genuinely love their products and software, but it constantly feels like developers get screwed every generation (especially smaller shops that do heavy lifting on MacOS).
The slickness of Mac OS X is partially because it's only deployed on high-end, well known hardware.
(The nice thing about Veertu using HVF was that it could ship a virtualization product in the App Store.)
Violating a contract is not "illegal", but is a civil offense, and requires the other party to sue you to recover damages. Copyright infringement is also not "illegal", but is a civil offense (however, i do believe that a lot of copyright lobbies want to change copyright violations to be a criminal offence, so they won't need to sue, but instead use public prosecution to recover their damages).
> The unauthorized reproduction or distribution of a copyrighted work is illegal. Criminal copyright infringement, including infringement without monetary gain, is investigated by the FBI and is punishable by fines and federal imprisonment. [0]
[0]: https://www.fbi.gov/investigate/white-collar-crime/piracy-ip...
(iii) to install, use and run up to two (2) additional copies or instances of the Apple Software within virtual operating system environments on each Mac Computer you own or control that is already running the Apple Software, for purposes of: (a) software development; (b) testing during software development; (c) using macOS Server; or (d) personal, non-commercial use.
Also, following these instructions doesn’t necessarily violate Apple’s license. You can run Linux on Apple hardware, and install Mac OS X on top of it, can’t you?
Finally, IANAL, but software licenses likely aren’t enforceable to consumers in large parts of the world (a shrink-wrap “take it or leave it” probably wouldn’t be considered an agreement between parties in many courts, and that’s what you need to call something a license)
(Source: I'm the author of both that driver and the Qemu patch but I've not been able to spend much time on macOS virtualisation lately so it's possible things have started breaking again.)
Also thank you for the driver. :)
I'm really looking forward to running this later.
[1] I could be wrong on this, but from my previous research into gpu passthrough made it seem as though NVidias consumer cards aren't generally allowed to do it because they're driver locked.
Intel igpus
Nvidia
AmdATI
https://megous.com/dl/tmp/nbfcbjbdceowrvuepvoj.mp4
Software rendering. Not terrible. Ivy Bridge.
I did not even consider about messing with GPU passthrough.
Is this a viable option to have running on a Linux box so that you can use it as a CI for testing iOS apps?
Or to be specific, what kind of specs, i.e. the amount of RAM would be needed to have a reasonable performance?
Thanks
If I use this at work I'd be risking my job on if Apple decides to sue my work for not following MacOS licensing for our build pipelines. If I use this in OSS / private software, I risk them suing me directly.
Shame, all I want to do is streamline providing software for Apples customers. You'd think Apple would want that more than some small money from a hypothetical non-Apple user merely trying to deliver products, functionality and improved UX to Apples customers. I feel like our (my and Apples) incentives are aligned. /shrug
These days I don't think that argument holds up though, back in the early days of x86 hardware and peripherals it made more sense.
In a past life we used mac minis sitting on a shelf in a datacenter to run builds off of, it worked well enough.
I'd like to build a hackintosh box with amd 3900x and amd rx5700 xt GPU - for video editing etc.
KVM seems like the only choice for AMD cpus. Will the GPU work with KVM? What mobo should I get?