 Okay, so imagine for a moment that I am a longtime Mac user I know it's a bit of a stretch, but bear with me for a second here now imagine that I've been putting off an upgrade for years because I Just don't like what Apple's done with their pro hardware. What with the soldering all the components and minimal upgrade ability What am I to do? Well, I can just use old hardware that's losing support or I can cobble together a Hopefully compatible bundle of components to build a hackintosh that even if it works perfectly today is liable to be borked by a future Mac OS update, but those options suck Fortunately, I've got one of these Anthony and he comes bearing another way so come along with us because we are going to be using the power of virtualization to build the no compromises and fully upgradable Mac Pro and it looks like this Before we get started there are a few requirements we need to meet we need to have a dedicated graphics card Is that Nvidia? Yep. Ooh spicy We'll also need a USB controller that we can pass through our virtual machine for hot plug support We'll need to access to a real Mac. Got it Cool and finally, although this might seem obvious we'll need a computer One with virtualization both supported and enabled Intel calls this VTD and VTX and AMD calls this SVM for a secure virtual machine. That's what we'll be using today Wait, so we're gonna be running Ryzen 2 Not bad Love it. It's even spicier Yeah, but before we can do that We'll need to install Linux Specifically one with keymu 3.1 or newer We use manjaro because of as a rolling release distro its packages are typically more up-to-date But you might prefer something lighter like Arch if you intend to ignore your Linux install and use your machine purely as a Mac Regardless of the distro you'll need the following software libvert keymu OVMF and virtual machine manager via our package manager So in manjaro's case that would be PAMAC. I think it's PAMAC package manager Cool, then what we'll need to do is enable the KVM service Which for us can be achieved by firing up a terminal and typing these two commands but I'm sure you're thinking to yourself. Come on Linus It can't be that simple surely Apple fought a virtual machines and locked down their OS in some way to keep this from working and Well, of course they did Yeah, but thanks to some really amazing work by the team over at pass-through post There's finally a workaround it is a little bit tedious But if you follow the steps carefully it shouldn't take you more than an hour to do this at home So first we'll fire up the Linux terminal and type git clone and paste the URL for the hackintosh KVM repository which will give us a folder with most of the files that we'll need The last two that we'll need are OVMF underscore code dot FD and OVMF underscore VARS dot FD from Coleus OS X KVM git repository So as you guys can see we are Really getting into the weeds now Our next step is then relatively simple, but the most legally problematic see downloading Mac OS is technically free you just fire up the app store here, but only if it's going to be used according to the end user license agreement from Apple so on a real Mac which means that technically everything we do from this point on is Piracy which means that whether or not you were to actually deploy a solution like this is up to your personal moral compass and Your risk tolerance so using our Mac We're gonna download and run DOS dude ones high Sierra patcher tool to download and create our installation media Go ahead and fire this up here from an unknown developer Beware yeah, we know so we get this little error that says your machine is natively supported by high Sierra You don't need to use this patch one of the other purposes of this patch is running the latest Mac OS software on Outdated Macs that Apple no longer supports anyway. That's fine. We knew that so all we do is go down Into tools download Mac OS high Sierra, and then we're gonna save that file to the applications folder once that's done We just copy the create ISO high Sierra file over to our flash drive so we can bring it over to our Mac Got it then We launch a Mac terminal and navigate to the folder containing that file before we run it though We'll set the executable flag by typing this command and hitting enter and then after that we type dot slash create underscore ISO underscore high Sierra dot SH and hit enter again the process will begin automatically and once it's done We're going to have a bootable high Sierra ISO on our Mac's desktop Which we will then copy back onto our USB over to our Linux machine I mean we could copy it over the network as well. We could I mean we do have that 10 gigabit network This this seems simpler right now. Yeah, well we wait we can set up our VM on our Linux host So inside the hackintosh KVM folder is a subfolder called example XML files Containing two files helpfully labeled for AMD and Intel users We're running Ryzen so we'll copy the AMD file to the root of the hackintosh KVM folder and rename to something more useful like Hackintosh dot XML now at the time of writing this file is partially corrupt So Anthony is going to need to fix it by opening it in a text editor scrolling to the very bottom and typing slash domain to finish the file and then by removing all of the value equals dash object lines and their subsequent input lines because those are Actually specific to the author's computer not to ours now that that's done We can get back on track here So at the top of the file we want to edit the loader and the NB RAM lines to point to files that we got from Coleus get earlier then we can save and close the file so It's ready to import. Yeah, so I've got virtual machine manager right here. Mm-hmm. You can see that there's nothing there But if I go into our hackintosh folder and do for SH define Hackintosh There it is our hackintosh VM So from here, it's a GUI interface So we can just open this puppy up and we can configure our hackintosh However, it is that we want we can set our CPU core assignments allocate however much memory We think we need and set up our storage media So in this case, we're going to be booting from an NVMe SSD one thing to watch out for here Every CPU is different But for Ryzen 7 assigning eight cores in sequence from one to eight gives us exactly one CCX which produces the on chip communication Overhead for better performance now next in order to actually boot this thing we'll need to add a virtual hard drive and point it to the clover dot Q cow to file in our hackintosh KVM folder and We'll also need to add a virtual optical drive loaded with the high Sierra ISO that we created earlier and Theoretically, we are finally ready to install Mac OS before we pass the boot screen though We're gonna need to hit escape to go into the firmware settings and change the resolution to 1920 by 1080 This is the resolution that our clover bootloader is set to use and we're gonna get garbled graphics if we don't change this setting once clover is booted we'll choose the macOS installer and Everything from here on out should be as though it was on a real Mac It'll take a minute That it that's it that's it a functional Mac OS desktop on On AMD Ryzen and oh my god, it's slow It's very laggy Yeah, so we can fix that cool. It's just it's got all the patches and drivers we need except for our display, right? but Are we ready to install that yet? No, no, okay great, but wait, there's more so First we need to download and install clover to our main storage media We can then copy the configuration from the hackintosh KVM clover image and leave it as is Or we can use it as a starting point for more customization So using a tool called clover configurator you can actually do all kinds of fun things like modify the boot screen and Edit your serial number to get access to facetime and iMessage etc. Etc Now this is the point where we say goodbye to our slow built-in graphics and switch over to our dedicated card here So what we'll need to do is shut down our VM and then open up its configuration in virtual machine manager where we will Manually fully pass through this GPU So this is actually a GTX 1070 over here that's separate from the RTX 2060 That Linux is running on while we're at it We can also pass through a USB controller so that we can hot plug USB devices within our VM now if your motherboard has multiple USB controllers on it like an Intel one and an as media one you may be able to do this without a separate add-in card Otherwise macOS compatible USB cards are available for just a few bucks in order to make this work though We're gonna need to edit a couple of system files starting with etc slash default slash grub to tell Linux Which devices like which parts of the hardware here it should leave available for us to pass through and To enable support for splitting our devices into IOMMU groups that can be passed through to a VM now We're back in the command line and in both sections here. We're gonna add AMD underscore IOMMU equals on and VFIO-PCI.ids equals Followed by the IDs of the devices that we want to pass through which we can then check by loading up a terminal and typing LSPCI-NN and then looking for the devices That's our Turing there we go that one right there is our GPU And then the HDMI audio device that should be right under it is the audio controller for our GPU Now before you fully commit to this you may want to run this command to check and see if your IOMMU Groups are separated correctly if not you're gonna want to try different PCI Express slots Like maybe ones connected directly to the CPU instead of the chipset Which some motherboards will have labels for or else it'll be in the manual if that fails you can look into ACS overrides but Let me tell you That was an absolute nightmare when I was trying to figure out six workstations one CPU And even then it ultimately didn't solve the problem and we had to switch to a different motherboard outright So before undertaking a project like this I'd recommend seeing how well your board handles virtualization Some vendors do it better than others and some models do it better than others Now because Linux is using the video card and USB controller we need we had to do a system reboot Now we can go back to virtual machine manager remove our temporary display adapter double check that these devices you pass through are actually the right devices And boot it up Okay So let me just double check here just moving Everything over theoretically Okay, this is now a Mac and this is a Linux PC and They're both running off of this same box with half the CPU allocated to each and one graphics card for each We might want to go in oh yeah, that's this again gotta change our boot order can't control it delete do it Oh, so this was unexpected. This has never happened in a Linus Tech Tips video before we actually had some technical difficulties And for some reason it was not letting us select 1080p Over here with the Nvidia card passed through so that's fine We just took it off put back the garbage drivers, and then what we're gonna Do is install the Nvidia web driver ahead of time so that when we boot up with the Nvidia card It's ready to rock so all we need is a handy little script over at Benjamin Dobel's Nvidia dash update get repository which will grab the best Nvidia driver for our macOS version and Then we reboot okay, so let's try that again. We should be good to go now Now it may do that weird thing again it does it did yeah That's a good way to use a computer like this a little window right there human vision is like you know It's wide man. It's not tall man. So we got oh We're back to 16 by 9 like a like a loser like a loser running an AMD Processor with a higher performance graphics card than you can currently buy in a Mac Which I actually don't know is technically true because we were gonna run this with a 1080 Ti Whatever the point is don't worry about it. We could be running a 1080 Ti in macOS with GPU acceleration this is Something else There we go Blah-blah Holy Shiza Take that apple.com Yeah, you like that. Oh Show me your Mac option with Ryzen. Do you have one? Do you have one like that? Oh, oh you don't you don't have one like that Huh? Wow, what a bummer. Yeah, it's real bummer. Maybe they can put something in the Mac Pro Now there is more you can do to improve performance like setting up the VM does you statically assigned memory pages pinning and isolating? CPU cores and bypassing pulse audio on the host and if you don't plan on using Linux for anything Making your machine just boot macOS at startup You can also get FaceTime and iMessage running as we alluded to before but it seems to be a bit of a hit or miss thing so that might be a project for another day and actually I mean I think that's a perfect place for us to sign off here because I think We've accomplished what we set out to do today and while we can go much deeper Honestly, I'd like to kind of make this up to the audience what they want to see us do with this because Here's the thing you guys got to understand Because this is a VM just like two gamers one CPU seven gamers one CPU all those projects it will run on Any hardware that was part of the reason that an Nvidia GPU and AMD? CPU was chosen because those are specifically things along with the chipset here that are not Supported by Apple like not even weird bootleg Drivers that people ripped out of Mac OS and whatever like they are not supported so we could run this on like a thread ripper or a Zion w3175x with a Titan XP and huge amounts of memory so with this method We could basically create the Mac that Apple fans can currently only dream of one that doesn't thermal throttle For now though honestly After everything that especially you went through I'm happy this thing is just Running at all so maybe let us know in the comments guys Do you want to see us take a fatter machine for a spin with this method? Maybe like a hackintosh versus loaded up iMac Pro for content creation benchmark or maybe like Linux versus Mac versus Windows Gaming all at the same time on the same box. I mean, I don't know the possibilities are kind of endless here So thanks for watching guys if this video sucked You know what to do, but if it was awesome get subscribed hit that like button or check out the link to where to buy the Stuff we featured in the video description also down there is our merch store Which has cool shirts like this one and our community forum which you should totally join?