2014 13" MacBook Pro [4th,2C,U] + RX 580 @ 16Gbps-TB2 (AKiTiO Thunder2) + macOS 10.13.6 & Win10 1903 [sdedalus1]
I used this setup (originally with a Nvidia GTX 970) for a long time before finally switching to a quadcore Mac Mini for better performance. I eventually upgraded the MBP with a third-party NVME SSD (Sabrent Rocket 1TB; see the first post of the Macrumors thread "Upgrading 2013/2014 Macbook Pro SSD to M.2 NVMe" for a guide) and so wiped my Boot Camp install in the process. But I'm looking to upgrade and thought I'd reinstall Boot Camp and eGPU for some benchmarks before switching. It proved a lot more challenging than I remembered! Basic tools are: purge-wrangler (macOS) and apple_set_os.efi (Win10).
macOS (High Sierra 10.13.6)
Install purge-wrangler. Profit!
I actually didn't go back and install purge-wrangler the second time around with RX 580, but here are my notes from the first round: installed & ran purge wrangler, but the system froze (could move mouse/pointer but no refresh or response to any onscreen windows) at the “are you using an external monitor y/n” dialogue. This was perhaps b/c egpu was not connected to monitor? Uninstalled purge wrangler, reinstalled with eGPU connected to monitor via DP, and everything ran fine.
Hotplugging in windows (both on desktop and right after selecting Windows inOS chooser) resulted in no eGPU appearing in Device Manager. Thunder2 blue light was on but 580 fan would not spin up. But booting with eGPU plugged in resulted in black screen.
First time around: installed automate-egpu EFI to USB drive, first booting to automate-egpu EFI, then booting windows. After hotplug, card was then powered and recognized by AMD installer. Card was ejected on wake from sleep, but returned to laptop screen and iGPU w/no problems. I don't recall the plugging and boot order after it was set up, nor which version of Windows I was running.
Second time around with RX 580:
Installing Windows 10 without Boot Camp Assistant
I wasted a few hours with endless different errors trying to use Boot Camp Assistant ("could not partition disk," "could not locate ISO," "not enough space on USB drive" even though it was totally empty, "Windows support software not detected" even when it's already on USB drive, etc.) so I finally gave up and installed Windows 10 without it. This was so aggravating because after each different critical error in BCA that would stop the drive-creation or partition process, I would have to erase and re-create the USB install drive, which took forever to write to. However, the method below requires another Windows computer/installation/virtualization [EDIT: if you don't have a Windows install to use, you can use Unetbootin in macOS in place of the step using Rufus below]. I also have driver errors (more about that below), but I don't know if they're related to this non-BCA install method. This method doesn't create a separate Windows recovery partition, but it sounds like Boot Camp Assistant doesn't do that either. You're probably better off with BCA, but I just couldn't stand to wrestle with it any longer. Links to Windows downloads mentioned below are in the v1903 install guide.
1. In macOS, download Windows 10 v1903 .30 ISO from Techbench, save to FAT drive.
2. Run Boot Camp Assistant, go to Actions menu, select Download Windows Support Software, save to same drive.
3. Use Disk Utility to create new FAT partition that will host your Windows install—I named it BOOTCAMP. (If you have an APFS container, you need to create a partition—not a volume—outside of it. Note that earlier versions of macOS used to create a hybrid MBR/EFI partition, which needed to be changed to pure EFI before you could install Windows. This is no longer the case [starting in 10.13 High Sierra I believe]—you are good to go with just Disk Utility. If you get partition errors, see the Macrumors NVME thread for solutions.)
4. In Windows, download Rufus and use it to create Windows UEFI installer on a USB drive, using the ISO you downloaded in step 1. Once installer drive is created, copy the WindowsSupport folder to the flash drive.
5. Make sure MBP is connected to charger. Boot with flash drive plugged in, hold option to bring up startup chooser, boot from the flash drive. (Both your flash drive and Boot Camp partition may have same name of "EFI Boot"; unplug/plug flash drive to figure out which one it is.)
6. Install Windows. When you get to the menu of disk partitions, highlight BOOTCAMP (or whatever you named the FAT partition), click Format to reformat as NTFS, install to that partition. If you have a third-party SSD like mine, after most of the way through the install, you may get the error "The computer restarted unexpectedly"; the install has finished but the setup app has not exited cleanly, so do the following:
6a. Press SHIFT + F10
6b. Type regedit to launch it
6c. Navigate to HKEY_LOCAL_MACHINE\SYSTEM\Setup\Status\ChildCompletion
6d. Find setup.exe in the right section, double-click it and modify the value to 3
6e. Close regedit and restart.
7. Once rebooted back to Win desktop, navigate to your flash drive, WindowsSupport folder, click setup to install Apple drivers and software. Note that you won't yet be able to access the Apple control panel to set startup disk, change trackpad behavior, etc.. You need to run Apple Software Update (in Programsx86) for another update first. God forbid they update the Support software you download through BCA! Disable Windows automatic updates. Restart.
7a. If you're using a third-party SSD, you should also disable hibernation: type cmd in the search bar, right click, choose Run as administrator, type powercfg.exe /hibernate off
8. You can download Windows standalone installer to update v1903 to .295 if you wish.
1. Download 0xbb’s apple_set_os.efi (this is the original, NOT the later modification by @aa15032261 for T2 Macs, which does not work). Rename to bootx64.efi. Create folders EFI/Boot on a flash drive, copy bootx64.efi there. Download GPU drivers. Turn off internet and disable autoconnect. Shut down.
2. Cold plug eGPU. On reboot, hold option for startup chooser, choose the drive with apple_set_os. At windows desktop, egpu will appear yellow banged as basic display adapter in device manager. Install GPU drivers.
3. All subsequent boots should be through apple_set_os.
Trouble in Paradise
All seemed well: AMD XConnect worked well, I could easily switch between internal screen and external screen. I did notice the eGPU disappeared on sleep, although I could still wake to a screen powered by the iGPU; a reboot returned the eGPU. The fps I was getting in Heaven on the internal screen seemed remarkably close to those on the external.
Then, when running Heaven and getting ready for some benchmarks, I got a video driver crash with “thread stuck in device driver” BSOD. This is with the same mild overclock that was stable on my Mac Mini. Tried restoring to stock clocks and undervolting, on both external and internal monitor, but kept recurring with same error under GPU load. This suggests to me a gpu driver problem. I am using the latest AMD drivers.
Finally, on a reboot, the login screen froze: the mouse moved but the keyboard was unresponsive. A few seconds later, I got a BSOD with the error "critical process died." Multiple reboots have the same error. I actually had the same error on an earlier install attempt, when I installed both the Apple bootcamp software updates and the standalone Win .295 updater together without restarting between them, and prior to installing eGPU. I assumed it was a driver conflict; I then deleted the partition and reinstalled Win all over again. Now it was happening again even though I had installed the bootcamp software and Windows update in separate reboots. Once Win boots to recovery, I can change startup settings and reboot into safe mode, getting to desktop ok; again, suggesting a driver problem. Perhaps a conflict with the Apple keyboard driver? Or something to do with my NVME SSD? Did I not correctly turn off hibernation? Plus an (unrelated?) GPU driver issue too? I get the login BSOD even without apple_set_os and without the egpu plugged in.
Booting into MacOS and then back into Windows, I currently no longer have the BSOD at login and can get to desktop. This would require more testing to solve.
I was just firing this up in order to run some benchmarks before getting rid of the machine. But now that it's turning into a major headache, so I'll abandon it here. It seems eGPUs have gotten harder over the years, not easier!
EDIT: Since I was able to boot into Safe Mode with networking, that eliminated the network adapter as the problem and narrowed it down to devices whose drivers weren't loaded in Safe Mode, esp. video, sound, and audio. I noticed an HDAudio driver error in the log, so I disabled that device, but restarting still resulted in BSOD. So instead I used DDU to uninstall the Intel HD Graphics drivers, which include HD Audio. I restarted and reinstalled the Apple-provided Intel drivers from the Windows installer USB drive by running Setup.exe in WindowsSupport/BootCamp/Drivers/Intel/IntelWin10HswBdwGfx64. This has eliminated BSOD at boot and I can get to desktop with no problems. However, the video driver is still crashing when running Heaven, but now with just a black screen instead of the “thread stuck in device driver” BSOD . . .
I've got to say thank you so much for the effort in documenting all of this together,
the gpu is stable in Mac OS heaven works well stable for as long as I run it 20 30 min.
on the other hand windows is given me the pain of random freezes that I'm trying to figure out a way just to fix it, no BSOD whatsoever.
but a lot of freezing.