Two new eGPU solutions on macOS 10.13.4: pure EFI and hybrid
v1.0.0 - 1.0.4 do not support any 2018 MBPs or iMac Pro due to T2 chip's encryption (even if FileVault is turned off). You have to wait for v1.0.5.
Instructions in short:
1) Follow the steps of the installer
2) Check that FileVault is disabled
3) Select "EFI Boot" by holding down the Option key on startup
Latest version 1.0.4
- added support for all TB1 Macs
- dropped support for MacBookPro 11,3 (also other Nvidia dGPU equipped models not recommended, please use 1.0.3)
- AMD dGPU + Nvidia eGPU framebuffer conflict solved
This special version introduces three new Hybrid modes:
1) Hybrid (iGPU)
2) Hybrid (AMD dGPU)
3) Hybrid (closed-clamshell) -> black internal screen, neither iGPU nor AMD dGPU show "Color LCD" under Graphics/Displays
You should always hot plug the eGPU when using any of these Hybrid modes, AFTER logged into macOS. The app logs you out automatically and enables eGPU screen output.
What's new in 1.0.3
- fixed "Invalid Nvidia kext found" error message if web drivers are not installed (1.0.2 didn't check the kext existence)
What's new in 1.0.2
- added support for GeForce GTX 780 Ti
- SkipSetupDataForOSX=false setting now works (primarily meant to be used with "Pure EFI" if you want eGPU screen output)
- deletes unnecessary automate-eGPU.kext from the install location
UPDATE: 01.07.2018 automate-eGPU EFI v1.0.1 released: https://egpu.io/wp-content/uploads/2018/07/automate-eGPU-EFI-v1.0.1.pkg_.zip
What's new in 1.0.1
- added support for GeForce GTX 780 3GB, GeForce GTX Titan, GeForce GTX 780 6GB, GeForce GTX 750 Ti, GeForce GTX 1060 3GB, Quadro P2000 5GB
- ValidateNvidiaKexts() and ValidateOtherKexts() in the preinstall stage (modified kexts not allowed)
- config.plist ForceIntegrated changed to MuxSetting [0, (do nothing), 1 (integrated), 2 (dedicated)]
- AMD dGPU equipped MBPs have MuxSetting 1 automatically
- DefaultVolume EFI logic refactored
- The installer asks to disconnect the eGPU enclosure to avoid kernel panics during cache rebuilding
- config.plist CsrActiveConfig value is now 0x67 (disabled)
Known issues with this pkg: Pure EFI doesn't produce eGPU screen output due to simplified boot.efi chain loading
UPDATE: 23.06.2018 automate-eGPU EFI v1.0.0 released: https://egpu.io/wp-content/uploads/2018/06/automate-eGPU.pkg_.zip
More info: https://egpu.io/forums/mac-setup/two-new-egpu-solutions-on-macos-10-13-4-pure-efi-and-hybrid/paged/2/#post-38566
The most observant readers may have noticed my recent investigation on the EFI side, making possible to use both Nvidia and AMD cards out of the box, without needing to backup kexts because Apple's system files stay untouched.
EFI approach provides more reliable Nvidia eGPU screen output but lacks hot plugging support because it bypasses Thunderbolt layers. The eGPU is detected as if it was installed internally. See the screenshots below.
The "Disconnect" menu bar item is not visible. What happens when we combine EFI with our earlier discoveries? The EFI and
yifanlu's kext codeless automate-eGPU.kext operating in "hybrid" mode?'' Boot into macOS, hot plug the eGPU on the login screen, and boom:
Multiple eGPU support might be a bonus side effect. The "Type" column says "External GPU". This is all done without modifying system files. The EFI is executed from the USB stick in my test scenario, but it can be run from any media.
The EFI does it on the fly. No magic, it will be all open source. My next goal is to set the iGPU as the primary device, resolving the sluggish AMD dGPU and Nvidia eGPU cooperation. It seems to work manually, but we want automation. Stay tuned.
Pure EFI approach may resolve problems for macs with NVIDIA dGPUs using AMD eGPUs - just how it was on Sierra. Basically the same approach, except IOPCITunnelCompatible mods not needed (already there). Excellent.
Hybrid solution would be the way to go overall, it would seem. As always, fantastic work @goalque. Do keep us posted when you try this on 10.14.
Exciting times. I remember when folks were not sure if Nvidia could ever work and now you guys have multiple methods! Let’s hope WWDC doesn’t throw and curve balls...
Both ways have their own advantages/disadvantages. Since the "hybrid" mode requires yifanlu's kext, you may need to logout/login or hot plug the display cable in order to have eGPU display output with an Nvidia card. Pure EFI possibly works with SIP enabled.
It is good to keep in mind that these are still hacks, even if done on the fly. And only TB2 is supported at present, TB3 firmware has some fundamental issues in executing the EFI. I had similar issue earlier on Linux environment, but the same code compiled in Windows Visual Studio worked.
Will there ever be a time when we'll have eGPU utopia - AMD+NVIDIA support, optimizations, bootcamp support, etc.? I'm counting the days till we won't need hacks lol.
eGPU should be as simple as pen drives. High Sierra is close for a very narrow configuration of hardware, and Windows (non-mac hardware) already has it really, but then you have limited lanes, yada-yada...
What are the steps for doing this method?
@goalque, Incredible! Well done, sir!
I have a question about Bootcamp, because I use Bootcamp for gaming and I still dont have info on this:
Will EFI solution work for Bootcamp just as of now?
If that's a yes, I will try and check if EFI solution makes newer drivers for 750M + 970GTX work, since the problem was paired with EGPUSupport kext. 😉
I'd love this to effect Error 12 issues with AMD cards, I tried mine again last night, disabling things (PCIe lanes?) including iSIght camera as some users have done and still ran into Error 12 as per usual..
This sounds like great progress! Any idea whether this works better for OpenGL and metal games in high Sierra?
Also, would something like this work on a 2012 retina MBP with TB1? Happy to test if needed.
@ozzy while this is not ready for use, have you gone through my step by step located at https://egpu.io/forums/mac-setup/gt650m-gt750m-mbp-nvidia-egpu-378-10-10-10-25-106-not-387-xx-egpu-accelerated-macos-apps-opengl-metal/ ?
That will probably help you to get OpenGL and Metal in Games under High Sierra with your TB1 Setup.
Yes, I did. Using the older NVIDIA drivers makes OpenGL work again. Metal games still don’t work for me (although benchmarks interestingly do)
My next goal is to set the iGPU as the primary device, resolving the sluggish AMD dGPU and Nvidia eGPU cooperation. It seems to work manually, but we want automation.
Each day seems to come up with new ideas. yifanlu's kext is not necessary anymore, the "hybrid" mode can use a codeless kext.
Both EFI & hybrid modes confirmed on macOS 10.13.5.
So when you guys say there will be something to test after WWDC do you mean after the entire event is done or just the first day announcements? Guessing the former, that there's some session or class you want to attend to see if there are framework changes or if Apple engineer can help with something.
Thunderbolt 3 Macs, Sonnet and OWC eGPUs, 4K Displays, etc
Sorry guys, but do you use UEFI shell with the following commands in your UEFI method to disable dGPU? Or you use a totally different method? I am asking it because i use exactly this method to disable dGPU on Windows side to improve battery life/less heat
mm 7C2 1 ;IO :1 mm 7D4 1 ;IO :50 mm 7C2 1 ;IO :0 mm 7D4 1 ;IO :50
It has been a field day with @goalque's solution and my testing results for NVIDIA eGPUs are "generally positive". Lots to think about in terms of easy deployment. The nicest solutions are the hardest to deploy lol.
One day soon, maybe we can say "All your NVIDIA GPU are belong to us!" and mean it. I'm optimistic. These guys are relentless in searching for solutions. That's always a good sign. Maybe too someone at a WWDC Metal session will get word on whether Apple is actively working with NVIDIA to make this work. If they care as much about pro users as they claim to, it's a no-brainer. Not to mention about 8000 people in various pro communities have been begging them to do this for years, so they are 100% aware of the situation. (read: if they don't support NVIDIA it's because they chose not to, and perhaps don't care quite as much as their PR efforts lead us to believe).
Thunderbolt 3 Macs, Sonnet and OWC eGPUs, 4K Displays, etc
Unfortunately the release will be delayed.
WHAT? Why? 🙁 You can't tease something this HUGE and not share more info 😥 (Just kidding - I just really want this)
Late 2019 MacBook Pro 16-inch with AMD 5500m dGPU - Razer Core X Chroma - AMD RX 5700 XT
Just saw this and am interested in seeing this develop. In theory this would work then with a 2013 nMP as well? If this could work with Windows 10/Bootcamp that would be amazing! Could drop down to just one computer and boot in between! 😀
Looking forward to more information.
Update - I am blind, missed that nMP was in the OP. So, yay! Even better if Windows will see it. Even if hot plug isn't supported, would be an option.
@goalque @leoleal @fr34k thank you for the hard work. I also cant wait to use the new method. I use a TB2 mid 2014 mbp with dgpu nvidia 750M, and a TB3 sonnet, waiting for a GPU to plug in. I am actually waiting for the new script to know what GPU to buy, will Nvidia's 1080 provide rendering power to Adobe after effects, and gaming on windows, or should I stick to Rx 580 for rendering on os x (no cuda support = does it mean no benefit at all from using an eGpu?), for gaming on win also. 🙄
MBPr Mid 2014, dGPU: Nvidia750M ■ Sonnet eGFX 350 ■ AMD RX 580 8gb ■ TB3-TB2 adapter ■ Dell U2518d ■ high sierra 10.13.5
@goalque - you are making fantastic progress. Looking forward to the release once you're ready.
2013 MacPro 2xD700 [email protected] (AKiTiO Thunder2) + macOS 10.13.3
2017 TB MBP 2xGTX1080Ti-TB3 (Akitio Node) + macOS 10.13.4
@goalque I hope that you can manage to come out with this kind of solution. It seems to be a lot more interesting and predictable that the present ones (which are also outstanding). I'll be on the first line to test it.
Just want to say thank you to you guys for ALL your HARD WORK! It's been absolutely HUGE for me to be able to use eGPU's on my nMP and it's all because of the dedication and passion you all have for solving this problem. So just wanted to say thanks and I look forward to whatever you guys are cooking...
I am really looking forwards as well to test this solution, great job!!!
PS: What about the disconnect functionality with the NVDIA eGPU in hybrid mode, does it work or it is still a bugger ?
I tested @goalque‘s EFI solution yesterday with 10.14. The good news is macOS could see and treat my GTX 980 Ti eGPU as a graphics card. The bad news is the patched Nvidia web driver was not working (driver version is 3188.8.131.52.106 for 10.13.5). Once Nvidia releases proper web drivers in the fall, EFI solution should work.