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...
2017 13" MacBook Pro Touch Bar
GTX1060 + AKiTiO Thunder3 + Win10
GTX1070 + Sonnet Breakaway Box + Win10
GTX1070 + Razer Core V1 + Win10
Vega 56 + Razer Core V1 + macOS + Win10
Vega 56 + Mantiz Venus + macOS + W10
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...
@kingbri Not released as of now.
@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. 😉
Thanks! I haven't had time to test Bootcamp.
Yesterday evening, I figured out how to get it working with a TB3 MBP as well.