2012 13" MacBook Pro [3rd,2C,M] + RX 460 @ 10Gbps-TB1>TB3 (AKiTiO Node) + macOS 10.13.6 & Linux Mint 19 & Win10 [nu_ninja]
Got an AKiTiO Node for gaming/work/fun and figured I should make a guide for this setup (even though it was fairly painless) since there isn't one for this exact combination yet.
Mid-2012 13" Macbook Pro (MacBookPro9,2)
OS: macOS 10.13.6
CPU: Intel Core i7-3520M @ 2.9GHz
-iGPU: Intel HD 4000
RAM: 16GB DDR3 1600MHz
SSD: 525 GB Crucial SSD
Hardware setup is as simple as connecting the cables. In hindsight, the 0.5m cable was a little shorter than I would have wanted. Note the USB hub/audio output. This is required to get audio in Windows boot, see installation steps and conclusion.
1. Follow install instructions for mac_editor's purge-wrangler.sh script (Thank you mac_editor!) and run enable AMD eGPUs from the menu.
2. Let computer reboot.
3. eGPU now works perfectly when starting up with eGPU connected and turned on. Hot-plugging doesn't seem to work for me.
1. Start with a UEFI installation of windows. This is NOT the way Bootcamp Assistant installs windows on these macs so a manual installation has to be done. Use Bootcamp Assistant to create an install disk but don't use it to do the full installation. Instead, partition the drive in disk utility (make sure the partition table is GUID format and create bootcamp partition in FAT format) then boot to the windows install disk or USB drive (hold option when starting up and select the install disk) to install windows. You can check if an installation is UEFI vs BIOS by running msinfo32 in the windows run prompt (Win+R). The BIOS mode should be UEFI.
- You will notice that the headphone/mic jack won't work in the windows installation this way. This is a hardware issue with the Cirrus Logic sound card that can only really be worked around with a USB audio device such as this.
Update 10/12/18: internal sound card can be re-enabled using a DSDT override. I followed Step 1: Option 1 and Step 2: Option 2 using Clover installed to its own 1GB Fat32 partition. Booting windows through clover (which I can start from rEFInd) fixes the sound issue and doesn't seem to impact the eGPU or other computer functions. However, this is probably overkill for such a small issue and given the risks associated with this hack, I still recommend using a USB audio device instead of this method.
2. Install the standard AMD drivers from their website and restart with the eGPU connected and turned on.
3. The eGPU should work now. I also couldn't hot-plug in windows.
Geekbench misidentifies the GPU as AMD Radeon Pro 555 Compute Engine, but it is in fact a Radeon RX 460.
Thanks to increased native support and hard work from this community this build went very smoothly. Only a few things to note:
- In retrospect, skimping on the length of the TB wasn't worth it
- The UEFI windows setup is a pain, but necessary. In addition to the audio issue, this installation also prevented me from using display adapters such as TB -> HDMI in windows so the only way to physically attach a display is now through the eGPU.
- Safe disconnecting the eGPU works in macOS and windows, but hot-plugging doesn't work in either. I believe this is a fundamental limitation of the TB1 port in windows, but this should work in macOS. I will continue testing this.
I've upgraded to macOS 10.14 Mojave and the configuration remains working as before. After the update finished, simply running:
in the terminal and re-installing the patch was all that was needed. After this update, you can also right-click on any app, click "Get Info" and then check the box next to "Prefer External GPU". This ensures the eGPU is being used (as much as possible) for the app even if it's on the internal display.
I also installed Linux Mint 19 (a distro based on Ubuntu 18.04 with Linux kernel 4.15) on this computer*.
To use the eGPU in this OS all I had to do was create an xorg config file in the folder /etc/X11/xorg.conf.d/
called 20-amdgpu.conf and give it the following contents:
Section "Device" Identifier "AMD" Driver "amdgpu" BusID "PCI:10:0:0" ##ID in decimal, convert from hex if necessary Option "AllowEmptyInitialConfiguration" Option "AllowExternalGpus" EndSection
Restart with eGPU connected and it works for me with only the external display active. If planning to boot without the eGPU, I just comment out all the lines of the configuration file and it should boot normally without the eGPU.
Since this is TB1 I didn't need to use the tbtadm utility to authenticate the device.
* Installing Linux Mint with the normal installer broke my windows 10 installation by creating a hybrid MBR and corrupting my windows bootloader (I think). After fixing these two problems with this and this method I was able to boot all three of these OSes normally but I wouldn't recommend it.
Hot-plugging in macOS is spotty as of 10.14 Mojave. I can occasionally get it to work without doing anything, however sometimes the eGPU fails to connect on hot-plug. Using the kextunload then kextload commands from this post by mac_editor works to connect it when hot-plugging doesn't connect it automatically.
New x config file used in Linux. See this post. Now logging in normally starts with iGPU and logging in with console (Ctrl-Alt-F1) and running the command: "startx -- -layout egpu" starts with eGPU. This allows booting with or without eGPU attached.
I wrote a more complete build guide for my linux setup here. I also started using the automate eGPU EFI. Purge-wrangler still works as of 10.14.1, however, the EFI setup works better with the DSDT override and seems to have no problems for me.
Thank you for this write up! I'm using essentially the same setup (only difference being a RX 580) - and have been racking my brain about some of the issues I'm having with it. It usually takes me 5 boots to get into windows but last night it took me about half an hour of restarting through blue-tinged login screens, system diagnostics > attempted repairs, etc. Have you experienced any failed starts on Windows?
I've only had boot problems from 1) Windows Updates and 2) messing up my bootloader. The windows update issue solved itself after an automatic windows restore but to solve my bootloader issue I had to do two things, first, I had a hybrid MBR that I had to get rid of (see this) then I had to repair the windows bootloader by following these steps.
But if you haven't been doing anything to mess up that stuff and are consistently having problems I'd look at a hardware issue. I had to replace the HDD ribbon cable in this mac because of weird performance/behavior issues. That little cable seems to be a weirdly common failure point on this specific model.
Oh yeah. I work on MacBooks daily and that HDD flex is one of the most common jobs, they're insanely frail; thanks Apple. I'm on #3 haha! I'm hoping that somehow the bootloader got messed up, otherwise I guess it might be the TB port/board (I recall having temporary blackouts from a regular PNY HDMI adapter) OR another bs dual drive problem. I appreciate the quick reply, more ends to check!