Mid-2012 13" Macbook Pro (MacBookPro9,2) TB1 -> RX 460 (AKiTiO Node) macOS 10.13.6+Win10+Linux Mint 19  

  RSS

nu_ninja
(@nu_ninja)
Trusted Member
Joined: 8 months ago
Posts: 78
September 15, 2018 7:03 am  

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.

System specs:

Mid-2012 13" Macbook Pro (MacBookPro9,2)
OS: macOS 10.13.6
CPU: Intel Core i7-3520M @ 2.9GHz
     -iGPU: Intel HD 4000
dGPU: None
RAM: 16GB DDR3 1600MHz
SSD: 525 GB Crucial SSD

eGPU hardware:

Enclosure: AKiTiO Node
eGPU: AMD Radeon RX 460 2GB
Connection: Apple TB2->TB3 Adapter, Apple 0.5m TB2 Male-Male cable
Display: Acer 19.5" LCD over HDMI (internal display also works)

Hardware pictures: 

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.

Installation steps:

macOS 10.13.6:
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.

Windows 10:
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.

Benchmarks:

https://browser.geekbench.com/v4/compute/2899773

Geekbench misidentifies the GPU as AMD Radeon Pro 555 Compute Engine, but it is in fact a Radeon RX 460.

Conclusions:

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.

Update 9/27/18:
I've upgraded to macOS 10.14 Mojave and the configuration remains working as before. After the update finished, simply running:

purge-wrangler

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.

Update 10/12/18:
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.

Update 10/21/18:
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.
Update 11/12/18:
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.

Mid-2012 13" Macbook Pro (MacBookPro9,2) TB1 -> RX 460 (AKiTiO Node)
+ macOS 10.14.1+Win10
+ Linux Mint 19


ReplyQuote
rackbreaker
(@rackbreaker)
New Member
Joined: 3 months ago
Posts: 1
September 21, 2018 4:08 pm  

Great write-up! I have the same computer and these instructions worked perfectly with my Sonnet Breakaway Box and AMD Radeon RX 580 as well. I love these old-but-still-upgradeable macs.

Soon I will add my system & eGPU details or a build link to this my signature to give context to my posts


ReplyQuote
nu_ninja
(@nu_ninja)
Trusted Member
Joined: 8 months ago
Posts: 78
September 22, 2018 10:14 pm  

I'm glad it worked. I hope to keep this computer running for a while longer so it's nice that it's still being supported in Mojave too.

Mid-2012 13" Macbook Pro (MacBookPro9,2) TB1 -> RX 460 (AKiTiO Node)
+ macOS 10.14.1+Win10
+ Linux Mint 19


ReplyQuote
tempuser
(@tempuser)
New Member
Joined: 2 months ago
Posts: 2
November 1, 2018 3:56 pm  

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?

Soon I will add my system & eGPU details or a build link to this my signature to give context to my posts


ReplyQuote
nu_ninja
(@nu_ninja)
Trusted Member
Joined: 8 months ago
Posts: 78
November 1, 2018 5:54 pm  

@tempuser
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.

Mid-2012 13" Macbook Pro (MacBookPro9,2) TB1 -> RX 460 (AKiTiO Node)
+ macOS 10.14.1+Win10
+ Linux Mint 19


tempuser liked
ReplyQuote
tempuser
(@tempuser)
New Member
Joined: 2 months ago
Posts: 2
November 1, 2018 10:51 pm  

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!

Soon I will add my system & eGPU details or a build link to this my signature to give context to my posts


ReplyQuote