Jump to content

2015 13" MBA + RX460@16Gbps-TB2 (AKiTiO Thunder2) + 108W Adaptor + OSX 10.2 [Hedge]


Hedge

Recommended Posts

Easy Budget eGPU for OSX

 

My objective for this build was to make a plug-and-play eGPU that was cheaper than a console and suitable for casual 1080p eSport gaming. Sadly, this wasn't quite plug and play and with a total project cost of ~$350 after extended store warrantees and rebates the 'cheaper than a console' objective is only true if you include console accessories or look at the release pricing. Still, I have a working eGPU that can play Paladins on at least medium settings at 1080p that didn't require any power supply modifications.

 

Hardware

> AKiTiO Thunder2

> This 5.5mm x 2.5mm 108W DC adaptor (anything 90-120W should work)

> A Gigabyte RX 460 Windforce 2GB

 

Tools

> Philips screw driver

>  Wire Cutters

 

Software

> MacOS 10.12.2

> Terminal

 

Known Issues

> An external display is required for acceleration, but if the display is connected before the GPU is recognized the macOS will crash during startup.

> If FileVault is on then system startup will occur after log in, which prevents one from using the external display to log in.

> If FileVault is on then the computer may crash if the display goes to sleep.

 

Hardware Installation

My 7.5" GPU was within a half-inch of being a simple drop-in. Making it fit required removing the enclosure fan, which I then screwed back into the same orientation the the other side of the ventilation cutout. That required some physical effort since the fan holes on that side were not pre-threaded for the screws, but it wasn't much harder than driving a screw into wood. (I skipped the 4th inside corner screw since the board was in the way). The wire cutter was used to carefully snip the zip-tie holding the fan/LED wire bundle. I would have skipped reinstalling the fan except I couldn't get the fan connector to disconnect and didn't want to cut any actual wires.

 

Almost.jpg FanRelocated.jpg

 

The power adaptor was a simple swap in. No wiring modifications required. The plug sticks out a little but otherwise it just plugged right in.

 

Kext Mods

> Step 0: Have a backup.

> Step 1:  Disable SIP.

> Step 2: Use an editor, PlistBuddy, or a script to add IOPCITunnelCompatible to the AMDRadeonX4100 and AMD9500Controller kexts. The former is required for the RX 460 to be recognized in the AKiTiO enclosure, the latter to enable acceleration. AMDSupport.kext might also need to be updated. 

 

>> I used a combination of modified scripts and vi while learning my way around the kexts, but copy/pasting PlistBuddy commands is the simplest explanation. (Exact sequence not verified. I'll confirm when 10.12.2 comes out of beta and I have to remod the kexts)

sudo /usr/libexec/PlistBuddy -c "Add :IOKitPersonalities:AMDBaffinGraphicsAccelerator:IOPCITunnelCompatible bool true" /System/Library/Extensions/AMDRadeonX4100.kext/Contents/Info.plist 2>/dev/null

sudo /usr/libexec/PlistBuddy -c "Add :IOKitPersonalities:Controller:IOPCITunnelCompatible bool true" /System/Library/Extensions/AMD9500Controller.kext/Contents/Info.plist 2>/dev/null

sudo /usr/libexec/PlistBuddy -c "Add :IOKitPersonalities:ATI\ Support:IOPCITunnelCompatible bool true" /System/Library/Extensions/AMDSupport.kext/Contents/Info.plist 2>/dev/null

sudo touch /System/Library/Extensions

>> Alternatively modify one of @goalque's scripts. This script can be used as-is if your hard drive is named "Macintosh HD" and the famous automate-eGPU script can be used with the RX460 if all AMDRadeonX4000 references are replaced with AMDRadeonX4100. (But note that the renaming will break the script for eGPUs use with older x4000 Radeon cards)

 

> Step 3: Restart with the eGPU (but not the external display) plugged in.

 

> Step 4: Plug in the external display and set the external display as primary by going to [System Preferences]->Displays->Arrangement, deselecting mirroring, and dragging the white bar from the internal display outline to the external.

 

And now, Heaven Benchmarks for Internal_HD_6000, Internal_RX460, External_RX460

 

Screen Shot 2016-11-12 at 9.59.22 PM.png Screen Shot 2016-11-18 at 8.48.30 PM.png Screen Shot 2016-11-18 at 8.53.28 PM.png

 

 

 

 

 

Alternative GPU choices: The GTX-750 ti (not the SC) and Mini-GTX-950 where the other two cards that caught my eye when looking for <75W options. However I decided I wanted something newer than the 750 and the 950 mini was too pricy for my budget. No promises that either would actually work, but they might be worth looking into if anyone had a strong preference for Nvidea on OSX mixed with a strong aversion to power supply splitters or wiring converters.

 

 

 

 

Edited by Hedge
Deleted adware links, colored my links green
  • Thumbs Up 3
Link to comment
Share on other sites

Not yet. Currently graphical acceleration on any display only occurs when an external display is selected as primary.

There ought to be some way to directly specify which GPU is being used for display rendering but I haven't figured that trick out yet. If anyone has any software/setting/kext ideas for enabling acceleration without an external display connected I'd be happy to test them.

Link to comment
Share on other sites

Hello. Could are you help me? I noticed that there is difference between Akitio and Sonnet III and Highpoint Rocketstor 6361A

This difference visible between   PCIe Lane Width:    x4 or   PCIe Lane Width:    x8. Is there really difference? And Does it affects on speed? Thank you. 

Link to comment
Share on other sites

@pataca, Sorry, I do not have spare windows license to test.

 

@ao39 Speed is bottlenecked by the thunderbolt connection to PCIe2.0x4 for TB2 or PCIe3.0x4 for TB3. The big difference is physical compatibility. PCIE cards cannot be installed in a smaller slot. A PCIE x16 card would not run in a PCIE x8 slot, nor would a PCIE x8 card run in a PCIE x4 slot.

Link to comment
Share on other sites

4 hours ago, Hedge said:

@pataca, Sorry, I do not have spare windows license to test.

 

@ao39 Speed is bottlenecked by the thunderbolt connection to PCIe2.0x4 for TB2 or PCIe3.0x4 for TB3. The big difference is physical compatibility. PCIE cards cannot be installed in a smaller slot. A PCIE x16 card would not run in a PCIE x8 slot, nor would a PCIE x8 card run in a PCIE x4 slot.

 

 

You can use the trial version.

 

https://www.microsoft.com/en-us/evalcenter/evaluate-windows-10-enterprise?OCID=WIP_r_Win10_Body_Ent_Eval

Link to comment
Share on other sites

Interesting. I'll have to give that a try if for no other reason than testing out windows 10. It might be a few months before I get around to that however. 'Test eGPU with iMac' currently has a higher priority, which in turn in on hold until macOS 10.12.2 is released and I finish end of semester projects for grad school.

Link to comment
Share on other sites

The Sonnet Echo Express III-D is a lot easier to get working, sure. But is by far not the best choice for an eGPU enclosure. For starters it is way expensive, being almost 3 times the price of a Thunder 2. Granted, you get a 300W power supply inside the enclosure, but it does not provide 6-pin/8-pin PCIe power connectors meaning you still have to go modding yourself. But worst of all is the introduction of extra latency because of the extra PCIe slots (even though they are not being used), this is quite noticeable in the end.

 

The Akitio Thunder 2 is the cheapest of them all, thus the pick for many users but it has a design flaw: the PCIe slot (even though physically being a 16x lane) is not capable of providing a 75W of power, which is specification for 16x PCIe slots. This is especially bad news for RX480's, as these suffer from terrible power management (which has been fixed in Windows drivers and now also fixed in Mac OS 10.12.2 kexts). Getting the Akitio to work also requires soldering, and using an RX480 requires extra soldering so that the PCIe lane can provide 75W of power.

 

The type of PCIe slot (4x, 8x, 16x) makes no difference in terms of performance for Thunderbolt 2 devices, as the max throughput of Thunderbolt 2 will be the bottleneck

Link to comment
Share on other sites

@FricoRico @HedgeHow does your setup perform overall, would you say it is stable, any random crashes?  How about gaming in OSX?  

 

As you mentioned earlier due to power management issues with these Polaris cards, i'm still thinking whether if I should get the GTX 1070, the downside it isn't supported in OSX yet. I would really prefer a setup that allows me to switch from gaming to desktop use without booting in and out of different types operating systems, so the RX 480 looks like a better choice. But I would like to hear from you if your RX 460 setup is stable for daily normal and gaming use, or should I go for the GTX 1070 instead ?

Edited by jagung
Link to comment
Share on other sites

@jagung The RX480 is actually a really good option for both Mac OS and Windows. Windows has full support thanks to AMD's XConnect in the drivers. Mac OS will also properly support the RX480 in 10.12.2, which I'm using right now in beta. I can do infinite benchmark runs without crashes or hiccups and play some games under Mac OS with both Metal and OpenGL support, and some games in Windows as well (even used it for VR, Oculus Rift). With the latest drivers and kexts power issues are no longer existent though modding of an eGPU enclosure might still be needed in order to hit PCIe specifications (not that hard to do usually).

 

So yes the RX480 is very stable for daily usage, but keep in mind that it will always be a 'hack' and not officially supported by both Apple or Microsoft/AMD they may change anything they want and that might render your eGPU useless. Which of course is also the case for Nvidia graphic cards.

Edited by FricoRico
Link to comment
Share on other sites

@jagung My RX 460 setup has been as stable as any eGPU. Granted I've only had time to put ~10 gaming hours on it so far, but no random crashes. However the RX 460 is at best comparable to a GTX 1050 so my setup may not have power you want.

Link to comment
Share on other sites

460 is better bet long term if it uses the existing device id for Apple's 460.

 

For a sad example, look up history of HD6970 and the R9 290X/390X. Those cards had good OS support at pone time, but now only work with extra hacking/fiddling, etc. Support got WORSE in newer OSs.

 

Sonnett may have latency issues but in terms of booting and getting same result 10/10 it beats Akitio which is like 6/10. Very hard to diagnose what's going on when 4/10 boots will fail no matter what due to the device/OS interaction. I found a Netstor on Amazon used for less than $400. Same deal, much more stable. Also it is an x8 slot. No faster perhaps but nice anyway.

Link to comment
Share on other sites

@Hedge have you encountered issue with external display graphics staggering when on eGPU?

 

I have a similar setup with MSI RX460 (which fits into Thunder2 w/o any additional screwdriving), seems to be running w/o a different PSU as well. The issue however is that when I boot with external display connected through eGPU (and as main display), the internal retina display renders just fine, while external has visible rendering issues all over (e.g. dragging a window leaves a trail). Since the external has actual resolution lower, I'd thought cable would be an issue, but I tried both HDMI and Display port - same result.

Screen Shot 2016-12-05 at 10.23.12 PM.png

Link to comment
Share on other sites

Hi Hedge, I'm trying a similar thing but having some issues getting Sierra to "see" the egpu.  I'm slightly different in that I'm running off the Touch bar MacBook Pro. Currently I have the card hooked up to an akitio thunder 2 through an apple thunderbolt 3 to 2 adapter. For whatever reason, I still cannot get the card to show up in about this Mac. It's like the OS doesn't see it.  I followed your plistbuddy suggestions.  Still no luck.  I feel like I may be missing a step. 

 

After having no luck with plist buddy, I tried modding the automate-eGPU script as per your suggestion.  when I run that it finds the thunder 2 but says no eGPU found. is it possible this is a bad card?  I have used the thunder with a few other computers and a few other cards but just seem to be having a really tough time with this one.  I have confirmed SIP is disabled, 

Link to comment
Share on other sites

@bulletstormer What did you do differently than me that allows startup with the external monitor connected? I have to keep disconnecting my external display whenever booting to avoid a startup freeze. Anyway, I haven't seen any instances of windows leaving trails or other major rendering issues. The worst I've seen was a minor vsync like glitch that occurred periodically while demoing the before/after to family while using Heaven on the highest settings I found tolerable. I also haven't tried using the original Akitio power adaptor since I never considered that that could work. I'll try running the eGPU off of that the next time I have time for gaming to see what effect if any under powering has.

 

@edgefox Just to start with the obvious, have you restarted you computer yet? The GPU won't show up in about this mac until you reboot with the eGPU plugged in.  Also which GPU card/manufacturer are you using?

 

As for the automate-egpu errors I had the same ones originally with the unmodified script. Either I missed a step in explaining how that tool needed to be modified or you are still running the original. The script also installs and registers a copy of itself so it can be later rerun from anywhere on the mac, so if that copy was made before your edits then terminal may be defaulting to the unedited script. Try rerunning the script with the path specified Ex: 'sudo ./automate-egpu.sh'

 

If all else fails this is the link to the thread where I was going through similar errors. Good luck. https://www.techinferno.com/index.php?/forums/topic/10798-rx-460-macbook-air-solved/

Edited by Hedge
Grammer.
Link to comment
Share on other sites

@Hedge unfortunately can't tell for sure, I'm still a bit curious myself, but this way there're rendering issues all over and the booting took way longer to complete so it's far from ideal to thrive. Can't tell for sure because I was playing with setup and connecting the monitor either to macbook or to the akito or to both via HDMI/mDP and seeing what will change. Also this happened only with double thunderbolt connection from akito to mac. It can also be different per monitor cause mine is still identified on both mac and video card when it's powered down via button (but connected to a power outlet).

 

I think I've found the issue and it's clearly the low default akito PSU output (60W I believe). Unfortunately I was being casual about this and got myself a regular PSU expecting to use a graphic card with additional power, but the one I got actually didn't have extra power pins and I don't have a different PSU suitable for akito with higher output on hand.

Internal display actually always runs on native graphics (I've confirmed with running benchmarks), that's why I didn't see any glitches with it. When I do disconnect display from everywhere prior bootup and connect after - I do get it connected via the eGPU, runs smoothly for regular work, but crashes on benchmarks/games (hopefully solvable with another PSU).

 

Anyway thanks a lot for insights really helped me to have a basic setup working over the evening and still had some enthusiasm left to play with it a bit w/o screwing up my schedule =D

 

Link to comment
Share on other sites

Thanks @Hedge and @FricoRico , i've finally got my egpu up and running...  

 

How do you guys update the AMD drivers ? I would just like to make sure i'm always on the latest AMD drivers available.

 

And big thanks to @euqlaog for the awesome script!

 

Here's my setup specs

- MBP 13 i5 2.6 Late 2013

- Akitio Thunder 2

- MSI Gaming X RX480

- Leadex 550w Gold

- Barrel plug that power the Akitio Board

 

 

IMG_1657.jpg

Edited by jagung
Link to comment
Share on other sites

YES ! YES ! YES ! YES ! 

 

Thanks @Hedge it's finally working ! In my case this pieces of code paste in the terminal after use automate-eGPU scripts do magic ! 

 

On 20.11.2016 at 3:03 AM, Hedge said:

sudo /usr/libexec/PlistBuddy -c "Add :IOKitPersonalities:AMDBaffinGraphicsAccelerator:IOPCITunnelCompatible bool true" /System/Library/Extensions/AMDRadeonX4100.kext/Contents/Info.plist 2>/dev/null

sudo /usr/libexec/PlistBuddy -c "Add :IOKitPersonalities:Controller:IOPCITunnelCompatible bool true" /System/Library/Extensions/AMD9500Controller.kext/Contents/Info.plist 2>/dev/null

sudo /usr/libexec/PlistBuddy -c "Add :IOKitPersonalities:ATI\ Support:IOPCITunnelCompatible bool true" /System/Library/Extensions/AMDSupport.kext/Contents/Info.plist 2>/dev/null

sudo touch /System/Library/Extensions

 

Extended monitors plug into RX480 works fine, with acceleration, it also resolve problem with my software (resolume arena 5). Before using script it say there is a problem with graphic card ... and crash. Now it WORKs fine ! 

 

My setup is: 
-Echo Sonet III D 

-Asus RX480 4G Dual 

-MBP15 (mid 2015) 

 

Thanks one more time ! 

Edited by DenisGrusz
Link to comment
Share on other sites

  • 1 month later...

@dfgged Sorry, I'd forgotten that promise. Is it too late to renege? No? If people still need results I can try to test windows 10 this weekend.

 

General Update:

• eGPU with iMac: The dGPU iMac test was a success and proved to be slightly more stable than running with the Air. For example, with my dGPU iMac I was able to successfully boot while an external display was connected to the eGPU.

 

• Benchmarking suggests the RX 460 is only ~10% slower if run over Thunderbolt-1 vs Thunderbolt-2.

 

• My original low-bid 108W power adaptor overheated and blew a thermal fuse /popped a capacitor 6-hours into a Cities: Skylines marathon. I'd recommend either taking care to purchase an adaptor of above average quality or else going with a 120W rated unit to provide greater margin. 

Edited by Hedge
Clarified thermal vs electrical fuse
  • Thumbs Up 1
Link to comment
Share on other sites

Bad news. I was unable to test this out on Windows 10. I've spent all day downloading/installing/attempting-to-install OSs, disk images, etc and all I've learned is that Bootcamp cannot/will not install to an external drive. Since I have the 128GB Air an external installations is required if I am going to test W10.

As for the adapter mine should would have worked if it performed as advertised, and it did work up until the 6th hour of the most strainous game in my library. The problem with mine wasn't insufficient wattage but poor thermal quality: it overheated. If I had shut everything down so it could have cooled off instead of mistakenly assuming the scent of hot plastic was coming from the furnace it might still be running.

  • Thumbs Up 1
Link to comment
Share on other sites

  • 5 months later...

@Hedge Did you ever try to connect 2 displays to your eGPU? I have Problems with my rig, what is similar to yours.

I start with one Display connected on my HDMI out and it works fine, but then i connect a second Display via DVI and the OSX 10.12.5 crashes.

Or if i have a single Display connected via DVI i cant see the mouse at all on that Display.

 

cheers

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.