WEBVTT

00:00:00.240 --> 00:00:02.400
Okay, so imagine for a moment

00:00:02.400 --> 00:00:05.720
that I am a long time Mac user.

00:00:05.720 --> 00:00:07.320
I know it's a bit of a stretch,

00:00:07.320 --> 00:00:09.240
but just bear with me for a second here.

00:00:09.240 --> 00:00:14.240
Now, imagine that I've been putting off an upgrade for years

00:00:14.640 --> 00:00:18.000
because I just don't like what Apple's done

00:00:18.000 --> 00:00:19.800
with their pro hardware.

00:00:19.800 --> 00:00:22.120
What with the soldering all the components

00:00:22.120 --> 00:00:25.260
and minimal upgradeability.

00:00:25.260 --> 00:00:27.120
What am I to do?

00:00:27.120 --> 00:00:30.380
Well, I can just use old hardware

00:00:30.380 --> 00:00:32.120
that's losing support,

00:00:32.120 --> 00:00:36.820
or I can cobble together a hopefully compatible bundle

00:00:36.820 --> 00:00:38.920
of components to build a Hackintosh

00:00:38.920 --> 00:00:41.160
that even if it works perfectly today

00:00:41.160 --> 00:00:44.200
is liable to be borked by a future macOS update.

00:00:44.200 --> 00:00:47.360
But those options suck.

00:00:47.360 --> 00:00:50.720
Fortunately, I've got one of these.

00:00:50.720 --> 00:00:55.680
And Anthony, and he comes bearing another way.

00:00:55.680 --> 00:00:57.120
So come along with us

00:00:57.120 --> 00:01:00.380
because we are gonna be using the power of virtualization

00:01:00.380 --> 00:01:05.380
to build the no compromises and fully upgradable Mac Pro.

00:01:07.000 --> 00:01:09.000
And it looks like this.

00:01:09.000 --> 00:01:18.280
What?

00:01:18.280 --> 00:01:19.320
Before we get started,

00:01:19.320 --> 00:01:21.400
there are a few requirements we need to meet.

00:01:21.400 --> 00:01:23.980
We need to have a dedicated graphics card.

00:01:23.980 --> 00:01:25.140
Is that NVIDIA?

00:01:25.140 --> 00:01:25.980
Yup.

00:01:25.980 --> 00:01:27.400
Ooh, spicy.

00:01:27.400 --> 00:01:29.160
We'll also need a USB controller

00:01:29.160 --> 00:01:30.660
that we can pass through our virtual machine

00:01:30.660 --> 00:01:32.120
for hot plug support.

00:01:32.120 --> 00:01:34.500
We'll need to access to a real Mac.

00:01:34.500 --> 00:01:36.880
Got it.

00:01:36.880 --> 00:01:37.720
Cool.

00:01:37.720 --> 00:01:39.760
And finally, although this might seem obvious,

00:01:39.760 --> 00:01:42.060
we'll need a computer.

00:01:42.060 --> 00:01:45.180
One with virtualization, both supported and enabled.

00:01:45.180 --> 00:01:48.060
Intel calls this VTD and VTX

00:01:48.060 --> 00:01:51.460
and AMD calls this SVM for secure virtual machine.

00:01:51.460 --> 00:01:53.040
That's what we'll be using today.

00:01:53.040 --> 00:01:57.300
Wait, so we're gonna be running Ryzen 2?

00:01:57.300 --> 00:02:00.140
Not bad, love it.

00:02:00.140 --> 00:02:02.060
It's even spicier.

00:02:02.060 --> 00:02:05.360
Yeah, but before we can do that,

00:02:05.360 --> 00:02:07.240
we'll need to install Linux.

00:02:07.240 --> 00:02:09.980
Specifically one with QEMU 3.1 or newer.

00:02:10.360 --> 00:02:13.560
We used Manjaro because as a rolling release distro,

00:02:13.560 --> 00:02:15.980
its packages are typically more up-to-date,

00:02:15.980 --> 00:02:17.820
but you might prefer something lighter like Arch

00:02:17.820 --> 00:02:19.860
if you intend to ignore your Linux install

00:02:19.860 --> 00:02:22.560
and use your machine purely as a Mac.

00:02:22.560 --> 00:02:23.900
Regardless of the distro,

00:02:23.900 --> 00:02:25.560
you'll need the following software.

00:02:25.560 --> 00:02:29.620
Libvirt, QEMU, OVMF, and Virtual Machine Manager

00:02:29.620 --> 00:02:31.200
via our Package Manager.

00:02:31.200 --> 00:02:33.980
So in Manjaro's case, that would be PAMAC.

00:02:33.980 --> 00:02:34.820
PAMAC?

00:02:34.820 --> 00:02:36.400
I think it's PAMAC, Package Manager.

00:02:36.400 --> 00:02:37.240
Cool.

00:02:37.240 --> 00:02:38.660
Then what we'll need to do is enable the KVM server,

00:02:38.660 --> 00:02:39.660
and then we'll need to do is enable the KVM server,

00:02:39.660 --> 00:02:40.820
and then we'll need to do is enable the KVM server,

00:02:40.820 --> 00:02:44.040
which for us can be achieved by firing up a terminal

00:02:44.040 --> 00:02:46.990
and typing these two commands.

00:02:46.990 --> 00:02:50.040
But I'm sure you're thinking to yourself,

00:02:50.040 --> 00:02:52.780
come on Linus, it can't be that simple.

00:02:52.780 --> 00:02:55.580
Surely Apple thought of virtual machines

00:02:55.580 --> 00:02:58.200
and locked down their OS in some way

00:02:58.200 --> 00:03:00.240
to keep this from working.

00:03:00.240 --> 00:03:03.540
And well, of course they did.

00:03:03.540 --> 00:03:05.500
Yeah, but thanks to some really amazing work

00:03:05.500 --> 00:03:07.800
by the team over at Pass Through Post,

00:03:07.800 --> 00:03:09.540
there's finally a workaround.

00:03:09.540 --> 00:03:10.920
It is a little bit tedious,

00:03:10.920 --> 00:03:12.580
but if you follow the steps carefully,

00:03:12.580 --> 00:03:13.920
it shouldn't take you more than an hour or two

00:03:13.920 --> 00:03:15.120
to do this at home.

00:03:15.120 --> 00:03:18.080
So first, we'll fire up the Linux terminal

00:03:18.080 --> 00:03:19.920
and type git clone,

00:03:19.920 --> 00:03:23.740
and paste the URL for the Hackintosh KVM repository,

00:03:23.740 --> 00:03:25.340
which will give us a folder

00:03:25.340 --> 00:03:28.120
with most of the files that we'll need.

00:03:28.120 --> 00:03:32.620
The last two that we'll need are ovmf__code.fd

00:03:32.620 --> 00:03:37.620
and ovmf__vars.fd from Kolya's OSX KVM Git repository.

00:03:39.740 --> 00:03:41.120
So as you guys can see,

00:03:41.120 --> 00:03:45.160
we are really getting into the weeds now.

00:03:45.160 --> 00:03:48.460
Our next step is then relatively simple,

00:03:48.460 --> 00:03:51.240
but the most legally problematic.

00:03:51.240 --> 00:03:56.240
See, downloading macOS is technically free.

00:03:57.540 --> 00:04:00.380
You just fire up the app store here,

00:04:00.380 --> 00:04:03.200
but only if it's going to be used

00:04:03.200 --> 00:04:07.160
according to the end user license agreement from Apple.

00:04:07.160 --> 00:04:08.200
So on a real Mac.

00:04:08.200 --> 00:04:09.500
So on a real Mac.

00:04:09.500 --> 00:04:10.380
So on a real Mac.

00:04:10.380 --> 00:04:12.260
Which means that technically,

00:04:12.260 --> 00:04:16.220
everything we do from this point on is piracy.

00:04:16.220 --> 00:04:17.540
Which means that whether or not

00:04:17.540 --> 00:04:20.580
you were to actually deploy a solution like this

00:04:20.580 --> 00:04:23.180
is up to your personal moral compass

00:04:23.180 --> 00:04:25.040
and your risk tolerance.

00:04:25.040 --> 00:04:26.220
So using our Mac,

00:04:26.220 --> 00:04:27.380
we're gonna download and run

00:04:27.380 --> 00:04:30.260
DOSDUDE1's High Sierra Patcher tool

00:04:30.260 --> 00:04:33.620
to download and create our installation media.

00:04:33.620 --> 00:04:35.380
Go ahead and fire this up here

00:04:35.380 --> 00:04:37.220
from an unknown developer.

00:04:37.220 --> 00:04:38.380
Beware.

00:04:38.380 --> 00:04:39.580
Yeah, we know.

00:04:39.580 --> 00:04:41.280
So we get this little error that says

00:04:41.280 --> 00:04:43.620
your machine is natively supported by High Sierra.

00:04:43.620 --> 00:04:45.120
You don't need to use this patch.

00:04:45.120 --> 00:04:47.120
One of the other purposes of this patch

00:04:47.120 --> 00:04:50.000
is running the latest macOS software

00:04:50.000 --> 00:04:52.920
on outdated Macs that Apple no longer supports.

00:04:52.920 --> 00:04:54.200
Anyway, that's fine.

00:04:54.200 --> 00:04:55.040
We knew that.

00:04:55.040 --> 00:04:56.960
So all we do is go down into tools,

00:04:56.960 --> 00:04:58.700
download macOS High Sierra,

00:04:58.700 --> 00:05:00.120
and then we're gonna save that file

00:05:00.120 --> 00:05:01.540
to the applications folder.

00:05:01.540 --> 00:05:02.380
Once that's done,

00:05:02.380 --> 00:05:05.240
we just copy the create ISO High Sierra file

00:05:05.240 --> 00:05:09.310
over to our flash drive so we can bring it over to our Mac.

00:05:09.310 --> 00:05:10.150
Got it.

00:05:10.150 --> 00:05:13.150
Then we launch a Mac terminal

00:05:13.150 --> 00:05:16.110
and navigate to the folder containing that file.

00:05:16.110 --> 00:05:17.430
Before we run it though,

00:05:17.430 --> 00:05:21.010
we'll set the executable flag by typing this command

00:05:21.010 --> 00:05:22.230
and hitting enter.

00:05:22.230 --> 00:05:23.270
And then after that,

00:05:23.270 --> 00:05:26.010
we type dot slash create underscore ISO

00:05:26.010 --> 00:05:28.110
underscore High Sierra dot sh

00:05:28.110 --> 00:05:29.730
and hit enter again.

00:05:29.730 --> 00:05:31.730
The process will begin automatically.

00:05:31.730 --> 00:05:32.970
And once it's done,

00:05:32.970 --> 00:05:35.970
we're going to have a bootable High Sierra ISO

00:05:35.970 --> 00:05:37.470
on our Mac's desktop,

00:05:37.470 --> 00:05:39.110
which we will then copy,

00:05:39.310 --> 00:05:43.880
back onto our USB over to our Linux machine.

00:05:43.880 --> 00:05:46.540
I mean, we could copy it over the network as well.

00:05:46.540 --> 00:05:47.380
We could.

00:05:47.380 --> 00:05:49.680
I mean, we do have that 10 gigabit network.

00:05:49.680 --> 00:05:51.600
This seems simpler right now.

00:05:51.600 --> 00:05:52.420
Yeah.

00:05:52.420 --> 00:05:53.260
While we wait,

00:05:53.260 --> 00:05:55.100
we can set up our VM on our Linux host.

00:05:55.100 --> 00:05:58.260
So inside the Hackintosh KVM folder

00:05:58.260 --> 00:06:01.220
is a sub folder called example XML files,

00:06:01.220 --> 00:06:02.180
containing two files,

00:06:02.180 --> 00:06:04.800
helpfully labeled for AMD and Intel users.

00:06:04.800 --> 00:06:05.800
We're running Ryzen.

00:06:05.800 --> 00:06:07.560
So we'll copy the AMD file

00:06:07.560 --> 00:06:09.680
to the root of the Hackintosh KVM folder.

00:06:09.720 --> 00:06:13.480
And rename to something more useful like hackintosh.xml.

00:06:13.480 --> 00:06:15.680
Now at the time of writing,

00:06:15.680 --> 00:06:17.720
this file is partially corrupt.

00:06:17.720 --> 00:06:20.060
So Anthony is going to need to fix it

00:06:20.060 --> 00:06:22.140
by opening it in a text editor,

00:06:22.140 --> 00:06:23.800
scrolling to the very bottom

00:06:23.800 --> 00:06:27.800
and typing slash domain to finish the file.

00:06:27.800 --> 00:06:32.800
And then by removing all of the value equals dash object lines

00:06:32.960 --> 00:06:34.560
and their subsequent input lines,

00:06:34.560 --> 00:06:37.920
because those are actually specific to the author's

00:06:37.920 --> 00:06:38.840
computer,

00:06:38.840 --> 00:06:39.680
not to us.

00:06:39.720 --> 00:06:40.680
Ours.

00:06:40.680 --> 00:06:41.640
Now that that's done,

00:06:41.640 --> 00:06:43.020
we can get back on track here.

00:06:43.020 --> 00:06:45.220
So at the top of the file,

00:06:45.220 --> 00:06:48.960
we want to edit the loader and the NBRAM lines

00:06:48.960 --> 00:06:52.840
to point to files that we got from Coleus Git earlier.

00:06:52.840 --> 00:06:55.260
Then we can save and close the file.

00:06:55.260 --> 00:06:57.960
So it's ready to import.

00:06:57.960 --> 00:06:58.800
Yeah.

00:06:58.800 --> 00:07:01.060
So I've got virtual machine manager right here.

00:07:01.060 --> 00:07:03.180
You can see that there's nothing there,

00:07:03.180 --> 00:07:07.380
but if I go into our Hackintosh folder

00:07:07.380 --> 00:07:08.840
and do ver.sh,

00:07:08.840 --> 00:07:09.680
define,

00:07:09.720 --> 00:07:15.590
hackintosh.

00:07:15.590 --> 00:07:16.910
There it is.

00:07:16.910 --> 00:07:19.210
Our Hackintosh VM.

00:07:19.210 --> 00:07:20.530
So from here,

00:07:20.530 --> 00:07:21.990
it's a GUI interface.

00:07:21.990 --> 00:07:24.070
So we can just open this puppy up

00:07:24.070 --> 00:07:26.210
and we can configure our Hackintosh

00:07:26.210 --> 00:07:27.990
however it is that we want.

00:07:27.990 --> 00:07:30.490
We can set our CPU core assignments,

00:07:30.490 --> 00:07:33.410
allocate however much memory we think we need

00:07:33.410 --> 00:07:35.070
and set up our storage media.

00:07:35.070 --> 00:07:36.170
So in this case,

00:07:36.170 --> 00:07:38.750
we're going to be booting from an NVMe SSD.

00:07:38.750 --> 00:07:40.070
One thing to watch out for here,

00:07:40.070 --> 00:07:41.510
every CPU is different,

00:07:41.510 --> 00:07:42.750
but for Ryzen 7,

00:07:42.750 --> 00:07:45.050
assigning eight cores in sequence from one to eight

00:07:45.050 --> 00:07:46.750
gives us exactly one CCX,

00:07:46.750 --> 00:07:48.710
which produces the on-chip communication overhead

00:07:48.710 --> 00:07:49.990
for better performance.

00:07:49.990 --> 00:07:52.950
Now next, in order to actually boot this thing,

00:07:52.950 --> 00:07:55.250
we'll need to add a virtual hard drive

00:07:55.250 --> 00:07:58.590
and point it to the clover.qcow2 file

00:07:58.590 --> 00:08:00.830
in our Hackintosh KVM folder.

00:08:00.830 --> 00:08:04.590
And we'll also need to add a virtual optical drive loaded

00:08:04.590 --> 00:08:08.090
with the High Sierra ISO that we created earlier.

00:08:08.090 --> 00:08:09.710
And theoretically,

00:08:09.710 --> 00:08:12.550
we are finally ready to install macOS.

00:08:12.750 --> 00:08:14.670
Before we pass the boot screen though,

00:08:14.670 --> 00:08:16.050
we're going to need to hit escape

00:08:16.050 --> 00:08:17.750
to go into the firmware settings

00:08:17.750 --> 00:08:21.590
and change the resolution to 1920 by 1080.

00:08:21.590 --> 00:08:24.010
This is the resolution that our Clover bootloader

00:08:24.010 --> 00:08:25.170
is set to use.

00:08:25.170 --> 00:08:26.870
And we're going to get garbled graphics

00:08:26.870 --> 00:08:29.050
if we don't change the setting.

00:08:29.050 --> 00:08:30.510
Once Clover is booted,

00:08:30.510 --> 00:08:32.750
we'll choose the macOS installer

00:08:32.750 --> 00:08:36.950
and everything from here on out should be

00:08:36.950 --> 00:08:41.410
as though it was on a real Mac, theoretically.

00:08:41.410 --> 00:08:42.230
It'll take a minute.

00:08:42.230 --> 00:09:02.360
Is that it?

00:09:02.360 --> 00:09:03.200
Yeah.

00:09:03.200 --> 00:09:04.020
That's it.

00:09:04.020 --> 00:09:04.860
That's it?

00:09:04.860 --> 00:09:09.560
A functional macOS desktop on AMD Ryzen

00:09:09.560 --> 00:09:13.380
and oh my God, it's slow.

00:09:13.380 --> 00:09:14.980
It's very laggy.

00:09:16.300 --> 00:09:17.140
Yeah.

00:09:17.140 --> 00:09:19.140
So we can fix that.

00:09:19.140 --> 00:09:19.980
Cool.

00:09:19.980 --> 00:09:22.020
It's just, it's got all the patches and drivers we need

00:09:22.020 --> 00:09:24.300
except for our display.

00:09:24.300 --> 00:09:25.720
Right.

00:09:25.720 --> 00:09:29.560
But are we ready to install that yet?

00:09:29.560 --> 00:09:30.400
No.

00:09:30.400 --> 00:09:31.360
No. Okay.

00:09:31.360 --> 00:09:32.220
Great.

00:09:32.220 --> 00:09:33.100
But wait.

00:09:33.100 --> 00:09:34.480
There's more.

00:09:34.480 --> 00:09:39.260
So first we need to download and install Clover

00:09:39.260 --> 00:09:41.560
to our main storage media.

00:09:41.560 --> 00:09:43.640
We can then copy the configuration

00:09:43.640 --> 00:09:47.980
from the Hackintosh KVM Clover image and leave it as is,

00:09:47.980 --> 00:09:52.020
or we can use it as a starting point for more customization.

00:09:52.020 --> 00:09:54.800
So using a tool called Clover Configurator,

00:09:54.800 --> 00:09:56.600
you can actually do all kinds of fun things

00:09:56.600 --> 00:09:59.940
like modify the boot screen and edit your serial number

00:09:59.940 --> 00:10:02.940
to get access to FaceTime and iMessage, et cetera, et cetera.

00:10:02.940 --> 00:10:06.700
Now, this is the point where we say goodbye

00:10:06.700 --> 00:10:08.900
to our slow built-in graphics

00:10:08.900 --> 00:10:13.280
and switch over to our dedicated card here.

00:10:13.280 --> 00:10:16.600
So what we'll need to do is shut down our VM

00:10:16.600 --> 00:10:18.820
and then open up its configuration

00:10:18.820 --> 00:10:20.320
in Virtual Machine Manager,

00:10:20.320 --> 00:10:25.320
where we will manually fully pass through this GPU.

00:10:25.320 --> 00:10:28.480
So this is actually a GTX 1070 over here

00:10:28.480 --> 00:10:32.480
that's separate from the RTX 2060 that Linux is running on.

00:10:32.480 --> 00:10:36.820
While we're at it, we can also pass through a USB controller

00:10:36.820 --> 00:10:40.560
so that we can hot plug USB devices within our VM.

00:10:40.560 --> 00:10:44.240
Now, if your motherboard has multiple USB controllers on it,

00:10:44.240 --> 00:10:47.440
like an Intel one and an As Media one,

00:10:47.440 --> 00:10:51.020
you may be able to do this without a separate add-in card.

00:10:51.020 --> 00:10:53.560
Otherwise, macOS compatible USB cards

00:10:53.560 --> 00:10:55.900
are available for just a few bucks.

00:10:55.900 --> 00:10:57.560
In order to make this work though,

00:10:57.560 --> 00:11:00.240
we're gonna need to edit a couple of system files,

00:11:00.240 --> 00:11:02.400
starting with etc slash default

00:11:02.480 --> 00:11:06.100
slash grub to tell Linux which devices,

00:11:06.100 --> 00:11:08.360
like which parts of the hardware here

00:11:08.360 --> 00:11:11.320
it should leave available for us to pass through

00:11:11.320 --> 00:11:14.400
and to enable support for splitting our devices

00:11:14.400 --> 00:11:18.280
into IOMMU groups that can be passed through to a VM.

00:11:18.280 --> 00:11:19.860
Now we're back in the command line

00:11:19.860 --> 00:11:21.480
and in both sections here,

00:11:21.480 --> 00:11:25.480
we're gonna add AMD underscore IOMMU equals on

00:11:25.480 --> 00:11:29.720
and VFIO dash PCI dot IDs equals

00:11:29.720 --> 00:11:32.180
followed by the IDs of the devices

00:11:32.480 --> 00:11:34.140
that we want to pass through,

00:11:34.140 --> 00:11:36.980
which we can then check by loading up a terminal

00:11:36.980 --> 00:11:41.980
and typing LSPCI dash NN and then looking for the devices.

00:11:43.940 --> 00:11:45.520
That's our Turing, there we go.

00:11:45.520 --> 00:11:48.280
That one right there is our GPU

00:11:48.280 --> 00:11:50.560
and then the HDMI audio device

00:11:50.560 --> 00:11:52.140
that should be right under it

00:11:52.140 --> 00:11:55.320
is the audio controller for our GPU.

00:11:55.320 --> 00:11:57.020
Now, before you fully commit to this,

00:11:57.020 --> 00:12:00.360
you may want to run this command to check and see

00:12:00.360 --> 00:12:01.940
if your IOMMU groups

00:12:01.940 --> 00:12:03.280
are separated correctly.

00:12:03.280 --> 00:12:07.240
If not, you're gonna wanna try different PCI express slots,

00:12:07.240 --> 00:12:09.900
like maybe ones connected directly to the CPU

00:12:09.900 --> 00:12:11.940
instead of the chip set,

00:12:11.940 --> 00:12:14.020
which some other boards will have labels for,

00:12:14.020 --> 00:12:16.140
or else it'll be in the manual.

00:12:16.140 --> 00:12:19.780
If that fails, you can look into ACS overrides,

00:12:19.780 --> 00:12:23.040
but let me tell you,

00:12:23.040 --> 00:12:24.460
that was an absolute nightmare

00:12:24.460 --> 00:12:27.380
when I was trying to figure out six workstations, one CPU,

00:12:27.380 --> 00:12:29.620
and even then it ultimately didn't solve the problem.

00:12:29.620 --> 00:12:31.880
And we had to switch to a different motherboard,

00:12:31.880 --> 00:12:34.720
and we had to make sure that it worked out right.

00:12:34.720 --> 00:12:36.920
So before undertaking a project like this,

00:12:36.920 --> 00:12:38.500
I'd recommend seeing

00:12:38.500 --> 00:12:41.180
how well your board handles virtualization.

00:12:41.180 --> 00:12:43.260
Some vendors do it better than others,

00:12:43.260 --> 00:12:46.000
and some models do it better than others.

00:12:46.000 --> 00:12:48.460
Now, because Linux is using the video card

00:12:48.460 --> 00:12:49.800
and USB controller we need,

00:12:49.800 --> 00:12:52.150
we had to do a system reboot.

00:12:52.150 --> 00:12:54.230
Now we can go back to virtual machine manager,

00:12:54.230 --> 00:12:55.770
remove our temporary display adapter,

00:12:55.770 --> 00:12:57.770
double check that these devices you pass through

00:12:57.770 --> 00:13:00.630
are actually the right devices, and boot it up.

00:13:00.630 --> 00:13:01.490
Okay.

00:13:02.330 --> 00:13:05.780
Double check here, just moving everything over.

00:13:05.780 --> 00:13:07.970
Theoretically.

00:13:07.970 --> 00:13:08.790
Okay.

00:13:08.790 --> 00:13:13.000
This is now a Mac, and this is a Linux PC.

00:13:13.000 --> 00:13:14.940
And they're both running off of this same box

00:13:14.940 --> 00:13:17.620
with half the CPU allocated to each

00:13:17.620 --> 00:13:21.650
and one graphics card for each.

00:13:21.650 --> 00:13:22.730
We might want to go in.

00:13:22.730 --> 00:13:24.190
Oh yeah, that's this again.

00:13:24.190 --> 00:13:25.610
Got to change our boot order.

00:13:25.610 --> 00:13:26.730
Can't control, delete, do it.

00:13:26.730 --> 00:13:28.030
Oh, nope.

00:13:28.030 --> 00:13:29.190
So this was unexpected.

00:13:29.190 --> 00:13:31.430
This has never happened in a Linus Tech Tips video before.

00:13:31.430 --> 00:13:33.850
We actually had some technical difficulties,

00:13:33.850 --> 00:13:35.030
and for some reason,

00:13:35.030 --> 00:13:38.870
it was not letting us select 1080p over here

00:13:38.870 --> 00:13:41.330
with the NVIDIA card passed through.

00:13:41.330 --> 00:13:42.830
So that's fine.

00:13:42.830 --> 00:13:45.990
We just took it off, put back the garbage drivers.

00:13:45.990 --> 00:13:46.950
And then what we're going to do

00:13:46.950 --> 00:13:50.530
is install the NVIDIA web driver ahead of time

00:13:50.530 --> 00:13:52.570
so that when we boot up with the NVIDIA card,

00:13:52.570 --> 00:13:54.190
it's ready to rock.

00:13:54.190 --> 00:13:56.830
So all we need is a handy little script

00:13:56.830 --> 00:14:00.730
over at Benjamin Dobell's NVIDIA-Update Git repository,

00:14:00.730 --> 00:14:02.530
which will grab the best NVIDIA driver

00:14:02.530 --> 00:14:04.330
for our macOS version.

00:14:05.030 --> 00:14:07.530
Then we reboot.

00:14:07.530 --> 00:14:08.370
Okay.

00:14:08.370 --> 00:14:09.190
So let's try that again.

00:14:09.190 --> 00:14:10.370
We should be good to go now.

00:14:14.680 --> 00:14:16.140
Now, it may do that weird thing again.

00:14:16.140 --> 00:14:16.960
It does.

00:14:16.960 --> 00:14:17.800
It did.

00:14:17.800 --> 00:14:18.640
Yep.

00:14:18.640 --> 00:14:20.260
That's a good way to use a computer.

00:14:20.260 --> 00:14:21.600
Like this.

00:14:21.600 --> 00:14:23.560
A little window right there.

00:14:23.560 --> 00:14:26.420
Human vision is like, you know, it's wide, man.

00:14:26.420 --> 00:14:27.720
It's not tall, man.

00:14:27.720 --> 00:14:30.760
So we got, oh, we're back to 16 by nine.

00:14:30.760 --> 00:14:32.960
Like a, like a loser.

00:14:32.960 --> 00:14:35.880
Like a loser running an AMD processor.

00:14:36.760 --> 00:14:39.600
With a higher performance graphics card

00:14:39.600 --> 00:14:42.920
than you can currently buy in a Mac,

00:14:42.920 --> 00:14:44.600
which I actually don't know is technically true

00:14:44.600 --> 00:14:46.720
because we were going to run this with a 1080 TI.

00:14:46.720 --> 00:14:48.140
Whatever the point is, don't worry about it.

00:14:48.140 --> 00:14:52.680
We could be running a 1080 TI in macOS

00:14:52.680 --> 00:14:54.840
with GPU acceleration.

00:14:54.840 --> 00:14:59.060
This is something else.

00:14:59.060 --> 00:15:01.560
Ah, there we go.

00:15:01.560 --> 00:15:04.450
Blah, blah, blah, blah.

00:15:04.450 --> 00:15:05.450
Holy shit.

00:15:06.950 --> 00:15:08.350
Ryza.

00:15:08.350 --> 00:15:12.160
Take that, apple.com.

00:15:12.160 --> 00:15:13.580
Yeah, you like that?

00:15:13.580 --> 00:15:16.000
Oh, show me your Mac option with Ryzen.

00:15:16.000 --> 00:15:16.960
Do you have one?

00:15:16.960 --> 00:15:18.080
Do you have one like that?

00:15:18.080 --> 00:15:19.920
Oh, oh, you don't.

00:15:19.920 --> 00:15:23.320
You don't have one like that, huh?

00:15:23.320 --> 00:15:24.740
Wow, what a bummer.

00:15:24.740 --> 00:15:25.560
Yeah, it's a real bummer.

00:15:25.560 --> 00:15:28.720
Maybe they can put something in the Mac Pro.

00:15:28.720 --> 00:15:30.900
Now, there is more you can do to improve performance,

00:15:30.900 --> 00:15:31.900
like setting up the VM

00:15:31.900 --> 00:15:33.800
to use statically assigned memory pages,

00:15:33.800 --> 00:15:35.680
pinning and isolating CPU cores,

00:15:35.680 --> 00:15:37.440
and bypassing pulse audio on the host.

00:15:37.560 --> 00:15:40.320
And if you don't plan on using Linux for anything,

00:15:40.320 --> 00:15:43.020
making your machine just boot macOS at startup.

00:15:43.020 --> 00:15:44.900
You can also get FaceTime and iMessage running

00:15:44.900 --> 00:15:46.220
as we alluded to before,

00:15:46.220 --> 00:15:48.060
but it seems to be a bit of a hit or miss thing.

00:15:48.060 --> 00:15:50.140
So that might be a project for another day.

00:15:50.140 --> 00:15:53.480
And actually, I mean, I think that's a perfect place

00:15:53.480 --> 00:15:55.100
for us to sign off here

00:15:55.100 --> 00:15:58.590
because I think we've accomplished

00:15:58.590 --> 00:16:00.090
what we set out to do today.

00:16:00.090 --> 00:16:02.790
And while we can go much deeper,

00:16:02.790 --> 00:16:05.410
honestly, I'd like to kind of make this up to the audience,

00:16:05.410 --> 00:16:06.830
what they want to see us do with this,

00:16:06.830 --> 00:16:08.130
because here's the thing.

00:16:08.130 --> 00:16:11.930
You guys got to understand because this is a VM,

00:16:11.930 --> 00:16:14.750
just like two gamers, one CPU, seven gamers, one CPU,

00:16:14.750 --> 00:16:19.430
all those projects, it will run on any hardware.

00:16:19.430 --> 00:16:22.470
That was part of the reason that an NVIDIA GPU

00:16:22.470 --> 00:16:24.470
and AMD CPU was chosen

00:16:24.470 --> 00:16:26.170
because those are specifically things

00:16:26.170 --> 00:16:27.710
along with the chip set here

00:16:27.710 --> 00:16:30.550
that are not supported by Apple,

00:16:30.550 --> 00:16:33.550
like not even weird bootleg drivers

00:16:33.550 --> 00:16:35.930
that people ripped out of macOS and whatever,

00:16:35.930 --> 00:16:37.430
like they are not supported.

00:16:38.130 --> 00:16:41.370
So we can run this on like a Threadripper

00:16:41.370 --> 00:16:46.370
or a Xeon W3175X with a Titan XP and huge amounts of memory.

00:16:46.830 --> 00:16:51.050
So with this method, we could basically create the Mac

00:16:51.050 --> 00:16:53.970
that Apple fans can currently only dream of,

00:16:53.970 --> 00:16:56.260
one that doesn't thermal throttle.

00:16:56.260 --> 00:16:58.100
For now though, honestly,

00:16:58.100 --> 00:17:01.680
after everything that especially you went through,

00:17:01.680 --> 00:17:05.720
I'm happy this thing is just running at all.

00:17:05.720 --> 00:17:08.100
So maybe let us know in the comments, guys,

00:17:08.100 --> 00:17:11.180
do you wanna see us take a fatter machine

00:17:11.180 --> 00:17:13.060
for a spin with this method?

00:17:13.060 --> 00:17:17.760
Maybe like a Hackintosh versus loaded up iMac Pro

00:17:17.760 --> 00:17:19.980
for content creation benchmark,

00:17:19.980 --> 00:17:24.980
or maybe like Linux versus Mac versus Windows gaming

00:17:25.560 --> 00:17:27.900
all at the same time on the same box.

00:17:27.900 --> 00:17:28.800
I mean, I don't know.

00:17:28.800 --> 00:17:33.020
The possibilities are kind of endless here.

00:17:33.020 --> 00:17:34.020
So thanks for watching guys.

00:17:34.020 --> 00:17:35.800
If this video sucked, you know what to do,

00:17:35.800 --> 00:17:37.800
but if it was awesome, get subscribed, hit that like button,

00:17:37.800 --> 00:17:40.340
or check out the link to where to buy the stuff

00:17:40.340 --> 00:17:42.100
we featured in the video description.

00:17:42.100 --> 00:17:43.600
Also down there is our merch store,

00:17:43.600 --> 00:17:45.220
which has cool shirts like this one

00:17:45.220 --> 00:17:48.220
and our community forum, which you should totally join.
