1
00:00:00,240 --> 00:00:02,400
Okay, so imagine for a moment

2
00:00:02,400 --> 00:00:05,720
that I am a long time Mac user.

3
00:00:05,720 --> 00:00:07,320
I know it's a bit of a stretch,

4
00:00:07,320 --> 00:00:09,240
but just bear with me for a second here.

5
00:00:09,240 --> 00:00:14,240
Now, imagine that I've been putting off an upgrade for years

6
00:00:14,640 --> 00:00:18,000
because I just don't like what Apple's done

7
00:00:18,000 --> 00:00:19,800
with their pro hardware.

8
00:00:19,800 --> 00:00:22,120
What with the soldering all the components

9
00:00:22,120 --> 00:00:25,260
and minimal upgradeability.

10
00:00:25,260 --> 00:00:27,120
What am I to do?

11
00:00:27,120 --> 00:00:30,380
Well, I can just use old hardware

12
00:00:30,380 --> 00:00:32,120
that's losing support,

13
00:00:32,120 --> 00:00:36,820
or I can cobble together a hopefully compatible bundle

14
00:00:36,820 --> 00:00:38,920
of components to build a Hackintosh

15
00:00:38,920 --> 00:00:41,160
that even if it works perfectly today

16
00:00:41,160 --> 00:00:44,200
is liable to be borked by a future macOS update.

17
00:00:44,200 --> 00:00:47,360
But those options suck.

18
00:00:47,360 --> 00:00:50,720
Fortunately, I've got one of these.

19
00:00:50,720 --> 00:00:55,680
And Anthony, and he comes bearing another way.

20
00:00:55,680 --> 00:00:57,120
So come along with us

21
00:00:57,120 --> 00:01:00,380
because we are gonna be using the power of virtualization

22
00:01:00,380 --> 00:01:05,380
to build the no compromises and fully upgradable Mac Pro.

23
00:01:07,000 --> 00:01:09,000
And it looks like this.

24
00:01:09,000 --> 00:01:18,280
What?

25
00:01:18,280 --> 00:01:19,320
Before we get started,

26
00:01:19,320 --> 00:01:21,400
there are a few requirements we need to meet.

27
00:01:21,400 --> 00:01:23,980
We need to have a dedicated graphics card.

28
00:01:23,980 --> 00:01:25,140
Is that NVIDIA?

29
00:01:25,140 --> 00:01:25,980
Yup.

30
00:01:25,980 --> 00:01:27,400
Ooh, spicy.

31
00:01:27,400 --> 00:01:29,160
We'll also need a USB controller

32
00:01:29,160 --> 00:01:30,660
that we can pass through our virtual machine

33
00:01:30,660 --> 00:01:32,120
for hot plug support.

34
00:01:32,120 --> 00:01:34,500
We'll need to access to a real Mac.

35
00:01:34,500 --> 00:01:36,880
Got it.

36
00:01:36,880 --> 00:01:37,720
Cool.

37
00:01:37,720 --> 00:01:39,760
And finally, although this might seem obvious,

38
00:01:39,760 --> 00:01:42,060
we'll need a computer.

39
00:01:42,060 --> 00:01:45,180
One with virtualization, both supported and enabled.

40
00:01:45,180 --> 00:01:48,060
Intel calls this VTD and VTX

41
00:01:48,060 --> 00:01:51,460
and AMD calls this SVM for secure virtual machine.

42
00:01:51,460 --> 00:01:53,040
That's what we'll be using today.

43
00:01:53,040 --> 00:01:57,300
Wait, so we're gonna be running Ryzen 2?

44
00:01:57,300 --> 00:02:00,140
Not bad, love it.

45
00:02:00,140 --> 00:02:02,060
It's even spicier.

46
00:02:02,060 --> 00:02:05,360
Yeah, but before we can do that,

47
00:02:05,360 --> 00:02:07,240
we'll need to install Linux.

48
00:02:07,240 --> 00:02:09,980
Specifically one with QEMU 3.1 or newer.

49
00:02:10,360 --> 00:02:13,560
We used Manjaro because as a rolling release distro,

50
00:02:13,560 --> 00:02:15,980
its packages are typically more up-to-date,

51
00:02:15,980 --> 00:02:17,820
but you might prefer something lighter like Arch

52
00:02:17,820 --> 00:02:19,860
if you intend to ignore your Linux install

53
00:02:19,860 --> 00:02:22,560
and use your machine purely as a Mac.

54
00:02:22,560 --> 00:02:23,900
Regardless of the distro,

55
00:02:23,900 --> 00:02:25,560
you'll need the following software.

56
00:02:25,560 --> 00:02:29,620
Libvirt, QEMU, OVMF, and Virtual Machine Manager

57
00:02:29,620 --> 00:02:31,200
via our Package Manager.

58
00:02:31,200 --> 00:02:33,980
So in Manjaro's case, that would be PAMAC.

59
00:02:33,980 --> 00:02:34,820
PAMAC?

60
00:02:34,820 --> 00:02:36,400
I think it's PAMAC, Package Manager.

61
00:02:36,400 --> 00:02:37,240
Cool.

62
00:02:37,240 --> 00:02:38,660
Then what we'll need to do is enable the KVM server,

63
00:02:38,660 --> 00:02:39,660
and then we'll need to do is enable the KVM server,

64
00:02:39,660 --> 00:02:40,820
and then we'll need to do is enable the KVM server,

65
00:02:40,820 --> 00:02:44,040
which for us can be achieved by firing up a terminal

66
00:02:44,040 --> 00:02:46,990
and typing these two commands.

67
00:02:46,990 --> 00:02:50,040
But I'm sure you're thinking to yourself,

68
00:02:50,040 --> 00:02:52,780
come on Linus, it can't be that simple.

69
00:02:52,780 --> 00:02:55,580
Surely Apple thought of virtual machines

70
00:02:55,580 --> 00:02:58,200
and locked down their OS in some way

71
00:02:58,200 --> 00:03:00,240
to keep this from working.

72
00:03:00,240 --> 00:03:03,540
And well, of course they did.

73
00:03:03,540 --> 00:03:05,500
Yeah, but thanks to some really amazing work

74
00:03:05,500 --> 00:03:07,800
by the team over at Pass Through Post,

75
00:03:07,800 --> 00:03:09,540
there's finally a workaround.

76
00:03:09,540 --> 00:03:10,920
It is a little bit tedious,

77
00:03:10,920 --> 00:03:12,580
but if you follow the steps carefully,

78
00:03:12,580 --> 00:03:13,920
it shouldn't take you more than an hour or two

79
00:03:13,920 --> 00:03:15,120
to do this at home.

80
00:03:15,120 --> 00:03:18,080
So first, we'll fire up the Linux terminal

81
00:03:18,080 --> 00:03:19,920
and type git clone,

82
00:03:19,920 --> 00:03:23,740
and paste the URL for the Hackintosh KVM repository,

83
00:03:23,740 --> 00:03:25,340
which will give us a folder

84
00:03:25,340 --> 00:03:28,120
with most of the files that we'll need.

85
00:03:28,120 --> 00:03:32,620
The last two that we'll need are ovmf__code.fd

86
00:03:32,620 --> 00:03:37,620
and ovmf__vars.fd from Kolya's OSX KVM Git repository.

87
00:03:39,740 --> 00:03:41,120
So as you guys can see,

88
00:03:41,120 --> 00:03:45,160
we are really getting into the weeds now.

89
00:03:45,160 --> 00:03:48,460
Our next step is then relatively simple,

90
00:03:48,460 --> 00:03:51,240
but the most legally problematic.

91
00:03:51,240 --> 00:03:56,240
See, downloading macOS is technically free.

92
00:03:57,540 --> 00:04:00,380
You just fire up the app store here,

93
00:04:00,380 --> 00:04:03,200
but only if it's going to be used

94
00:04:03,200 --> 00:04:07,160
according to the end user license agreement from Apple.

95
00:04:07,160 --> 00:04:08,200
So on a real Mac.

96
00:04:08,200 --> 00:04:09,500
So on a real Mac.

97
00:04:09,500 --> 00:04:10,380
So on a real Mac.

98
00:04:10,380 --> 00:04:12,260
Which means that technically,

99
00:04:12,260 --> 00:04:16,220
everything we do from this point on is piracy.

100
00:04:16,220 --> 00:04:17,540
Which means that whether or not

101
00:04:17,540 --> 00:04:20,580
you were to actually deploy a solution like this

102
00:04:20,580 --> 00:04:23,180
is up to your personal moral compass

103
00:04:23,180 --> 00:04:25,040
and your risk tolerance.

104
00:04:25,040 --> 00:04:26,220
So using our Mac,

105
00:04:26,220 --> 00:04:27,380
we're gonna download and run

106
00:04:27,380 --> 00:04:30,260
DOSDUDE1's High Sierra Patcher tool

107
00:04:30,260 --> 00:04:33,620
to download and create our installation media.

108
00:04:33,620 --> 00:04:35,380
Go ahead and fire this up here

109
00:04:35,380 --> 00:04:37,220
from an unknown developer.

110
00:04:37,220 --> 00:04:38,380
Beware.

111
00:04:38,380 --> 00:04:39,580
Yeah, we know.

112
00:04:39,580 --> 00:04:41,280
So we get this little error that says

113
00:04:41,280 --> 00:04:43,620
your machine is natively supported by High Sierra.

114
00:04:43,620 --> 00:04:45,120
You don't need to use this patch.

115
00:04:45,120 --> 00:04:47,120
One of the other purposes of this patch

116
00:04:47,120 --> 00:04:50,000
is running the latest macOS software

117
00:04:50,000 --> 00:04:52,920
on outdated Macs that Apple no longer supports.

118
00:04:52,920 --> 00:04:54,200
Anyway, that's fine.

119
00:04:54,200 --> 00:04:55,040
We knew that.

120
00:04:55,040 --> 00:04:56,960
So all we do is go down into tools,

121
00:04:56,960 --> 00:04:58,700
download macOS High Sierra,

122
00:04:58,700 --> 00:05:00,120
and then we're gonna save that file

123
00:05:00,120 --> 00:05:01,540
to the applications folder.

124
00:05:01,540 --> 00:05:02,380
Once that's done,

125
00:05:02,380 --> 00:05:05,240
we just copy the create ISO High Sierra file

126
00:05:05,240 --> 00:05:09,310
over to our flash drive so we can bring it over to our Mac.

127
00:05:09,310 --> 00:05:10,150
Got it.

128
00:05:10,150 --> 00:05:13,150
Then we launch a Mac terminal

129
00:05:13,150 --> 00:05:16,110
and navigate to the folder containing that file.

130
00:05:16,110 --> 00:05:17,430
Before we run it though,

131
00:05:17,430 --> 00:05:21,010
we'll set the executable flag by typing this command

132
00:05:21,010 --> 00:05:22,230
and hitting enter.

133
00:05:22,230 --> 00:05:23,270
And then after that,

134
00:05:23,270 --> 00:05:26,010
we type dot slash create underscore ISO

135
00:05:26,010 --> 00:05:28,110
underscore High Sierra dot sh

136
00:05:28,110 --> 00:05:29,730
and hit enter again.

137
00:05:29,730 --> 00:05:31,730
The process will begin automatically.

138
00:05:31,730 --> 00:05:32,970
And once it's done,

139
00:05:32,970 --> 00:05:35,970
we're going to have a bootable High Sierra ISO

140
00:05:35,970 --> 00:05:37,470
on our Mac's desktop,

141
00:05:37,470 --> 00:05:39,110
which we will then copy,

142
00:05:39,310 --> 00:05:43,880
back onto our USB over to our Linux machine.

143
00:05:43,880 --> 00:05:46,540
I mean, we could copy it over the network as well.

144
00:05:46,540 --> 00:05:47,380
We could.

145
00:05:47,380 --> 00:05:49,680
I mean, we do have that 10 gigabit network.

146
00:05:49,680 --> 00:05:51,600
This seems simpler right now.

147
00:05:51,600 --> 00:05:52,420
Yeah.

148
00:05:52,420 --> 00:05:53,260
While we wait,

149
00:05:53,260 --> 00:05:55,100
we can set up our VM on our Linux host.

150
00:05:55,100 --> 00:05:58,260
So inside the Hackintosh KVM folder

151
00:05:58,260 --> 00:06:01,220
is a sub folder called example XML files,

152
00:06:01,220 --> 00:06:02,180
containing two files,

153
00:06:02,180 --> 00:06:04,800
helpfully labeled for AMD and Intel users.

154
00:06:04,800 --> 00:06:05,800
We're running Ryzen.

155
00:06:05,800 --> 00:06:07,560
So we'll copy the AMD file

156
00:06:07,560 --> 00:06:09,680
to the root of the Hackintosh KVM folder.

157
00:06:09,720 --> 00:06:13,480
And rename to something more useful like hackintosh.xml.

158
00:06:13,480 --> 00:06:15,680
Now at the time of writing,

159
00:06:15,680 --> 00:06:17,720
this file is partially corrupt.

160
00:06:17,720 --> 00:06:20,060
So Anthony is going to need to fix it

161
00:06:20,060 --> 00:06:22,140
by opening it in a text editor,

162
00:06:22,140 --> 00:06:23,800
scrolling to the very bottom

163
00:06:23,800 --> 00:06:27,800
and typing slash domain to finish the file.

164
00:06:27,800 --> 00:06:32,800
And then by removing all of the value equals dash object lines

165
00:06:32,960 --> 00:06:34,560
and their subsequent input lines,

166
00:06:34,560 --> 00:06:37,920
because those are actually specific to the author's

167
00:06:37,920 --> 00:06:38,840
computer,

168
00:06:38,840 --> 00:06:39,680
not to us.

169
00:06:39,720 --> 00:06:40,680
Ours.

170
00:06:40,680 --> 00:06:41,640
Now that that's done,

171
00:06:41,640 --> 00:06:43,020
we can get back on track here.

172
00:06:43,020 --> 00:06:45,220
So at the top of the file,

173
00:06:45,220 --> 00:06:48,960
we want to edit the loader and the NBRAM lines

174
00:06:48,960 --> 00:06:52,840
to point to files that we got from Coleus Git earlier.

175
00:06:52,840 --> 00:06:55,260
Then we can save and close the file.

176
00:06:55,260 --> 00:06:57,960
So it's ready to import.

177
00:06:57,960 --> 00:06:58,800
Yeah.

178
00:06:58,800 --> 00:07:01,060
So I've got virtual machine manager right here.

179
00:07:01,060 --> 00:07:03,180
You can see that there's nothing there,

180
00:07:03,180 --> 00:07:07,380
but if I go into our Hackintosh folder

181
00:07:07,380 --> 00:07:08,840
and do ver.sh,

182
00:07:08,840 --> 00:07:09,680
define,

183
00:07:09,720 --> 00:07:15,590
hackintosh.

184
00:07:15,590 --> 00:07:16,910
There it is.

185
00:07:16,910 --> 00:07:19,210
Our Hackintosh VM.

186
00:07:19,210 --> 00:07:20,530
So from here,

187
00:07:20,530 --> 00:07:21,990
it's a GUI interface.

188
00:07:21,990 --> 00:07:24,070
So we can just open this puppy up

189
00:07:24,070 --> 00:07:26,210
and we can configure our Hackintosh

190
00:07:26,210 --> 00:07:27,990
however it is that we want.

191
00:07:27,990 --> 00:07:30,490
We can set our CPU core assignments,

192
00:07:30,490 --> 00:07:33,410
allocate however much memory we think we need

193
00:07:33,410 --> 00:07:35,070
and set up our storage media.

194
00:07:35,070 --> 00:07:36,170
So in this case,

195
00:07:36,170 --> 00:07:38,750
we're going to be booting from an NVMe SSD.

196
00:07:38,750 --> 00:07:40,070
One thing to watch out for here,

197
00:07:40,070 --> 00:07:41,510
every CPU is different,

198
00:07:41,510 --> 00:07:42,750
but for Ryzen 7,

199
00:07:42,750 --> 00:07:45,050
assigning eight cores in sequence from one to eight

200
00:07:45,050 --> 00:07:46,750
gives us exactly one CCX,

201
00:07:46,750 --> 00:07:48,710
which produces the on-chip communication overhead

202
00:07:48,710 --> 00:07:49,990
for better performance.

203
00:07:49,990 --> 00:07:52,950
Now next, in order to actually boot this thing,

204
00:07:52,950 --> 00:07:55,250
we'll need to add a virtual hard drive

205
00:07:55,250 --> 00:07:58,590
and point it to the clover.qcow2 file

206
00:07:58,590 --> 00:08:00,830
in our Hackintosh KVM folder.

207
00:08:00,830 --> 00:08:04,590
And we'll also need to add a virtual optical drive loaded

208
00:08:04,590 --> 00:08:08,090
with the High Sierra ISO that we created earlier.

209
00:08:08,090 --> 00:08:09,710
And theoretically,

210
00:08:09,710 --> 00:08:12,550
we are finally ready to install macOS.

211
00:08:12,750 --> 00:08:14,670
Before we pass the boot screen though,

212
00:08:14,670 --> 00:08:16,050
we're going to need to hit escape

213
00:08:16,050 --> 00:08:17,750
to go into the firmware settings

214
00:08:17,750 --> 00:08:21,590
and change the resolution to 1920 by 1080.

215
00:08:21,590 --> 00:08:24,010
This is the resolution that our Clover bootloader

216
00:08:24,010 --> 00:08:25,170
is set to use.

217
00:08:25,170 --> 00:08:26,870
And we're going to get garbled graphics

218
00:08:26,870 --> 00:08:29,050
if we don't change the setting.

219
00:08:29,050 --> 00:08:30,510
Once Clover is booted,

220
00:08:30,510 --> 00:08:32,750
we'll choose the macOS installer

221
00:08:32,750 --> 00:08:36,950
and everything from here on out should be

222
00:08:36,950 --> 00:08:41,410
as though it was on a real Mac, theoretically.

223
00:08:41,410 --> 00:08:42,230
It'll take a minute.

224
00:08:42,230 --> 00:09:02,360
Is that it?

225
00:09:02,360 --> 00:09:03,200
Yeah.

226
00:09:03,200 --> 00:09:04,020
That's it.

227
00:09:04,020 --> 00:09:04,860
That's it?

228
00:09:04,860 --> 00:09:09,560
A functional macOS desktop on AMD Ryzen

229
00:09:09,560 --> 00:09:13,380
and oh my God, it's slow.

230
00:09:13,380 --> 00:09:14,980
It's very laggy.

231
00:09:16,300 --> 00:09:17,140
Yeah.

232
00:09:17,140 --> 00:09:19,140
So we can fix that.

233
00:09:19,140 --> 00:09:19,980
Cool.

234
00:09:19,980 --> 00:09:22,020
It's just, it's got all the patches and drivers we need

235
00:09:22,020 --> 00:09:24,300
except for our display.

236
00:09:24,300 --> 00:09:25,720
Right.

237
00:09:25,720 --> 00:09:29,560
But are we ready to install that yet?

238
00:09:29,560 --> 00:09:30,400
No.

239
00:09:30,400 --> 00:09:31,360
No. Okay.

240
00:09:31,360 --> 00:09:32,220
Great.

241
00:09:32,220 --> 00:09:33,100
But wait.

242
00:09:33,100 --> 00:09:34,480
There's more.

243
00:09:34,480 --> 00:09:39,260
So first we need to download and install Clover

244
00:09:39,260 --> 00:09:41,560
to our main storage media.

245
00:09:41,560 --> 00:09:43,640
We can then copy the configuration

246
00:09:43,640 --> 00:09:47,980
from the Hackintosh KVM Clover image and leave it as is,

247
00:09:47,980 --> 00:09:52,020
or we can use it as a starting point for more customization.

248
00:09:52,020 --> 00:09:54,800
So using a tool called Clover Configurator,

249
00:09:54,800 --> 00:09:56,600
you can actually do all kinds of fun things

250
00:09:56,600 --> 00:09:59,940
like modify the boot screen and edit your serial number

251
00:09:59,940 --> 00:10:02,940
to get access to FaceTime and iMessage, et cetera, et cetera.

252
00:10:02,940 --> 00:10:06,700
Now, this is the point where we say goodbye

253
00:10:06,700 --> 00:10:08,900
to our slow built-in graphics

254
00:10:08,900 --> 00:10:13,280
and switch over to our dedicated card here.

255
00:10:13,280 --> 00:10:16,600
So what we'll need to do is shut down our VM

256
00:10:16,600 --> 00:10:18,820
and then open up its configuration

257
00:10:18,820 --> 00:10:20,320
in Virtual Machine Manager,

258
00:10:20,320 --> 00:10:25,320
where we will manually fully pass through this GPU.

259
00:10:25,320 --> 00:10:28,480
So this is actually a GTX 1070 over here

260
00:10:28,480 --> 00:10:32,480
that's separate from the RTX 2060 that Linux is running on.

261
00:10:32,480 --> 00:10:36,820
While we're at it, we can also pass through a USB controller

262
00:10:36,820 --> 00:10:40,560
so that we can hot plug USB devices within our VM.

263
00:10:40,560 --> 00:10:44,240
Now, if your motherboard has multiple USB controllers on it,

264
00:10:44,240 --> 00:10:47,440
like an Intel one and an As Media one,

265
00:10:47,440 --> 00:10:51,020
you may be able to do this without a separate add-in card.

266
00:10:51,020 --> 00:10:53,560
Otherwise, macOS compatible USB cards

267
00:10:53,560 --> 00:10:55,900
are available for just a few bucks.

268
00:10:55,900 --> 00:10:57,560
In order to make this work though,

269
00:10:57,560 --> 00:11:00,240
we're gonna need to edit a couple of system files,

270
00:11:00,240 --> 00:11:02,400
starting with etc slash default

271
00:11:02,480 --> 00:11:06,100
slash grub to tell Linux which devices,

272
00:11:06,100 --> 00:11:08,360
like which parts of the hardware here

273
00:11:08,360 --> 00:11:11,320
it should leave available for us to pass through

274
00:11:11,320 --> 00:11:14,400
and to enable support for splitting our devices

275
00:11:14,400 --> 00:11:18,280
into IOMMU groups that can be passed through to a VM.

276
00:11:18,280 --> 00:11:19,860
Now we're back in the command line

277
00:11:19,860 --> 00:11:21,480
and in both sections here,

278
00:11:21,480 --> 00:11:25,480
we're gonna add AMD underscore IOMMU equals on

279
00:11:25,480 --> 00:11:29,720
and VFIO dash PCI dot IDs equals

280
00:11:29,720 --> 00:11:32,180
followed by the IDs of the devices

281
00:11:32,480 --> 00:11:34,140
that we want to pass through,

282
00:11:34,140 --> 00:11:36,980
which we can then check by loading up a terminal

283
00:11:36,980 --> 00:11:41,980
and typing LSPCI dash NN and then looking for the devices.

284
00:11:43,940 --> 00:11:45,520
That's our Turing, there we go.

285
00:11:45,520 --> 00:11:48,280
That one right there is our GPU

286
00:11:48,280 --> 00:11:50,560
and then the HDMI audio device

287
00:11:50,560 --> 00:11:52,140
that should be right under it

288
00:11:52,140 --> 00:11:55,320
is the audio controller for our GPU.

289
00:11:55,320 --> 00:11:57,020
Now, before you fully commit to this,

290
00:11:57,020 --> 00:12:00,360
you may want to run this command to check and see

291
00:12:00,360 --> 00:12:01,940
if your IOMMU groups

292
00:12:01,940 --> 00:12:03,280
are separated correctly.

293
00:12:03,280 --> 00:12:07,240
If not, you're gonna wanna try different PCI express slots,

294
00:12:07,240 --> 00:12:09,900
like maybe ones connected directly to the CPU

295
00:12:09,900 --> 00:12:11,940
instead of the chip set,

296
00:12:11,940 --> 00:12:14,020
which some other boards will have labels for,

297
00:12:14,020 --> 00:12:16,140
or else it'll be in the manual.

298
00:12:16,140 --> 00:12:19,780
If that fails, you can look into ACS overrides,

299
00:12:19,780 --> 00:12:23,040
but let me tell you,

300
00:12:23,040 --> 00:12:24,460
that was an absolute nightmare

301
00:12:24,460 --> 00:12:27,380
when I was trying to figure out six workstations, one CPU,

302
00:12:27,380 --> 00:12:29,620
and even then it ultimately didn't solve the problem.

303
00:12:29,620 --> 00:12:31,880
And we had to switch to a different motherboard,

304
00:12:31,880 --> 00:12:34,720
and we had to make sure that it worked out right.

305
00:12:34,720 --> 00:12:36,920
So before undertaking a project like this,

306
00:12:36,920 --> 00:12:38,500
I'd recommend seeing

307
00:12:38,500 --> 00:12:41,180
how well your board handles virtualization.

308
00:12:41,180 --> 00:12:43,260
Some vendors do it better than others,

309
00:12:43,260 --> 00:12:46,000
and some models do it better than others.

310
00:12:46,000 --> 00:12:48,460
Now, because Linux is using the video card

311
00:12:48,460 --> 00:12:49,800
and USB controller we need,

312
00:12:49,800 --> 00:12:52,150
we had to do a system reboot.

313
00:12:52,150 --> 00:12:54,230
Now we can go back to virtual machine manager,

314
00:12:54,230 --> 00:12:55,770
remove our temporary display adapter,

315
00:12:55,770 --> 00:12:57,770
double check that these devices you pass through

316
00:12:57,770 --> 00:13:00,630
are actually the right devices, and boot it up.

317
00:13:00,630 --> 00:13:01,490
Okay.

318
00:13:02,330 --> 00:13:05,780
Double check here, just moving everything over.

319
00:13:05,780 --> 00:13:07,970
Theoretically.

320
00:13:07,970 --> 00:13:08,790
Okay.

321
00:13:08,790 --> 00:13:13,000
This is now a Mac, and this is a Linux PC.

322
00:13:13,000 --> 00:13:14,940
And they're both running off of this same box

323
00:13:14,940 --> 00:13:17,620
with half the CPU allocated to each

324
00:13:17,620 --> 00:13:21,650
and one graphics card for each.

325
00:13:21,650 --> 00:13:22,730
We might want to go in.

326
00:13:22,730 --> 00:13:24,190
Oh yeah, that's this again.

327
00:13:24,190 --> 00:13:25,610
Got to change our boot order.

328
00:13:25,610 --> 00:13:26,730
Can't control, delete, do it.

329
00:13:26,730 --> 00:13:28,030
Oh, nope.

330
00:13:28,030 --> 00:13:29,190
So this was unexpected.

331
00:13:29,190 --> 00:13:31,430
This has never happened in a Linus Tech Tips video before.

332
00:13:31,430 --> 00:13:33,850
We actually had some technical difficulties,

333
00:13:33,850 --> 00:13:35,030
and for some reason,

334
00:13:35,030 --> 00:13:38,870
it was not letting us select 1080p over here

335
00:13:38,870 --> 00:13:41,330
with the NVIDIA card passed through.

336
00:13:41,330 --> 00:13:42,830
So that's fine.

337
00:13:42,830 --> 00:13:45,990
We just took it off, put back the garbage drivers.

338
00:13:45,990 --> 00:13:46,950
And then what we're going to do

339
00:13:46,950 --> 00:13:50,530
is install the NVIDIA web driver ahead of time

340
00:13:50,530 --> 00:13:52,570
so that when we boot up with the NVIDIA card,

341
00:13:52,570 --> 00:13:54,190
it's ready to rock.

342
00:13:54,190 --> 00:13:56,830
So all we need is a handy little script

343
00:13:56,830 --> 00:14:00,730
over at Benjamin Dobell's NVIDIA-Update Git repository,

344
00:14:00,730 --> 00:14:02,530
which will grab the best NVIDIA driver

345
00:14:02,530 --> 00:14:04,330
for our macOS version.

346
00:14:05,030 --> 00:14:07,530
Then we reboot.

347
00:14:07,530 --> 00:14:08,370
Okay.

348
00:14:08,370 --> 00:14:09,190
So let's try that again.

349
00:14:09,190 --> 00:14:10,370
We should be good to go now.

350
00:14:14,680 --> 00:14:16,140
Now, it may do that weird thing again.

351
00:14:16,140 --> 00:14:16,960
It does.

352
00:14:16,960 --> 00:14:17,800
It did.

353
00:14:17,800 --> 00:14:18,640
Yep.

354
00:14:18,640 --> 00:14:20,260
That's a good way to use a computer.

355
00:14:20,260 --> 00:14:21,600
Like this.

356
00:14:21,600 --> 00:14:23,560
A little window right there.

357
00:14:23,560 --> 00:14:26,420
Human vision is like, you know, it's wide, man.

358
00:14:26,420 --> 00:14:27,720
It's not tall, man.

359
00:14:27,720 --> 00:14:30,760
So we got, oh, we're back to 16 by nine.

360
00:14:30,760 --> 00:14:32,960
Like a, like a loser.

361
00:14:32,960 --> 00:14:35,880
Like a loser running an AMD processor.

362
00:14:36,760 --> 00:14:39,600
With a higher performance graphics card

363
00:14:39,600 --> 00:14:42,920
than you can currently buy in a Mac,

364
00:14:42,920 --> 00:14:44,600
which I actually don't know is technically true

365
00:14:44,600 --> 00:14:46,720
because we were going to run this with a 1080 TI.

366
00:14:46,720 --> 00:14:48,140
Whatever the point is, don't worry about it.

367
00:14:48,140 --> 00:14:52,680
We could be running a 1080 TI in macOS

368
00:14:52,680 --> 00:14:54,840
with GPU acceleration.

369
00:14:54,840 --> 00:14:59,060
This is something else.

370
00:14:59,060 --> 00:15:01,560
Ah, there we go.

371
00:15:01,560 --> 00:15:04,450
Blah, blah, blah, blah.

372
00:15:04,450 --> 00:15:05,450
Holy shit.

373
00:15:06,950 --> 00:15:08,350
Ryza.

374
00:15:08,350 --> 00:15:12,160
Take that, apple.com.

375
00:15:12,160 --> 00:15:13,580
Yeah, you like that?

376
00:15:13,580 --> 00:15:16,000
Oh, show me your Mac option with Ryzen.

377
00:15:16,000 --> 00:15:16,960
Do you have one?

378
00:15:16,960 --> 00:15:18,080
Do you have one like that?

379
00:15:18,080 --> 00:15:19,920
Oh, oh, you don't.

380
00:15:19,920 --> 00:15:23,320
You don't have one like that, huh?

381
00:15:23,320 --> 00:15:24,740
Wow, what a bummer.

382
00:15:24,740 --> 00:15:25,560
Yeah, it's a real bummer.

383
00:15:25,560 --> 00:15:28,720
Maybe they can put something in the Mac Pro.

384
00:15:28,720 --> 00:15:30,900
Now, there is more you can do to improve performance,

385
00:15:30,900 --> 00:15:31,900
like setting up the VM

386
00:15:31,900 --> 00:15:33,800
to use statically assigned memory pages,

387
00:15:33,800 --> 00:15:35,680
pinning and isolating CPU cores,

388
00:15:35,680 --> 00:15:37,440
and bypassing pulse audio on the host.

389
00:15:37,560 --> 00:15:40,320
And if you don't plan on using Linux for anything,

390
00:15:40,320 --> 00:15:43,020
making your machine just boot macOS at startup.

391
00:15:43,020 --> 00:15:44,900
You can also get FaceTime and iMessage running

392
00:15:44,900 --> 00:15:46,220
as we alluded to before,

393
00:15:46,220 --> 00:15:48,060
but it seems to be a bit of a hit or miss thing.

394
00:15:48,060 --> 00:15:50,140
So that might be a project for another day.

395
00:15:50,140 --> 00:15:53,480
And actually, I mean, I think that's a perfect place

396
00:15:53,480 --> 00:15:55,100
for us to sign off here

397
00:15:55,100 --> 00:15:58,590
because I think we've accomplished

398
00:15:58,590 --> 00:16:00,090
what we set out to do today.

399
00:16:00,090 --> 00:16:02,790
And while we can go much deeper,

400
00:16:02,790 --> 00:16:05,410
honestly, I'd like to kind of make this up to the audience,

401
00:16:05,410 --> 00:16:06,830
what they want to see us do with this,

402
00:16:06,830 --> 00:16:08,130
because here's the thing.

403
00:16:08,130 --> 00:16:11,930
You guys got to understand because this is a VM,

404
00:16:11,930 --> 00:16:14,750
just like two gamers, one CPU, seven gamers, one CPU,

405
00:16:14,750 --> 00:16:19,430
all those projects, it will run on any hardware.

406
00:16:19,430 --> 00:16:22,470
That was part of the reason that an NVIDIA GPU

407
00:16:22,470 --> 00:16:24,470
and AMD CPU was chosen

408
00:16:24,470 --> 00:16:26,170
because those are specifically things

409
00:16:26,170 --> 00:16:27,710
along with the chip set here

410
00:16:27,710 --> 00:16:30,550
that are not supported by Apple,

411
00:16:30,550 --> 00:16:33,550
like not even weird bootleg drivers

412
00:16:33,550 --> 00:16:35,930
that people ripped out of macOS and whatever,

413
00:16:35,930 --> 00:16:37,430
like they are not supported.

414
00:16:38,130 --> 00:16:41,370
So we can run this on like a Threadripper

415
00:16:41,370 --> 00:16:46,370
or a Xeon W3175X with a Titan XP and huge amounts of memory.

416
00:16:46,830 --> 00:16:51,050
So with this method, we could basically create the Mac

417
00:16:51,050 --> 00:16:53,970
that Apple fans can currently only dream of,

418
00:16:53,970 --> 00:16:56,260
one that doesn't thermal throttle.

419
00:16:56,260 --> 00:16:58,100
For now though, honestly,

420
00:16:58,100 --> 00:17:01,680
after everything that especially you went through,

421
00:17:01,680 --> 00:17:05,720
I'm happy this thing is just running at all.

422
00:17:05,720 --> 00:17:08,100
So maybe let us know in the comments, guys,

423
00:17:08,100 --> 00:17:11,180
do you wanna see us take a fatter machine

424
00:17:11,180 --> 00:17:13,060
for a spin with this method?

425
00:17:13,060 --> 00:17:17,760
Maybe like a Hackintosh versus loaded up iMac Pro

426
00:17:17,760 --> 00:17:19,980
for content creation benchmark,

427
00:17:19,980 --> 00:17:24,980
or maybe like Linux versus Mac versus Windows gaming

428
00:17:25,560 --> 00:17:27,900
all at the same time on the same box.

429
00:17:27,900 --> 00:17:28,800
I mean, I don't know.

430
00:17:28,800 --> 00:17:33,020
The possibilities are kind of endless here.

431
00:17:33,020 --> 00:17:34,020
So thanks for watching guys.

432
00:17:34,020 --> 00:17:35,800
If this video sucked, you know what to do,

433
00:17:35,800 --> 00:17:37,800
but if it was awesome, get subscribed, hit that like button,

434
00:17:37,800 --> 00:17:40,340
or check out the link to where to buy the stuff

435
00:17:40,340 --> 00:17:42,100
we featured in the video description.

436
00:17:42,100 --> 00:17:43,600
Also down there is our merch store,

437
00:17:43,600 --> 00:17:45,220
which has cool shirts like this one

438
00:17:45,220 --> 00:17:48,220
and our community forum, which you should totally join.
