Two new eGPU solutions on macOS 10.13.4: pure EFI and hybrid
 
Notifications
Clear all

Two new eGPU solutions on macOS 10.13.4: pure EFI and hybrid  

 of  68
  RSS

Noah Leon
(@noah_leon)
Eminent Member
Joined: 2 years ago
 

This is very important folks. Another thing is how to deploy this solution. Working on ways to do it. Patience shall bring one an elegant solution 😉

I'm following this post with great interest. I'm on a MBP Late 2013 with 750m. I'm excited to see how this all comes together.

Macbook Pro 15" 2013 with NVIDIA 750m and Akito Thunder2 and MSI AMD 560 OC, Mojave 10.14


ReplyQuote
goalque
(@goalque)
Noble Member Admin
Joined: 4 years ago
 
Posted by: mac_editor
Posted by: goalque

@unknownsolo What I am doing here is very low-level programming in EFI C. Nobody will be happy if we rush and your MBP becomes an unbootable brick. We want to minimize all the risks.

This is very important folks. Another thing is how to deploy this solution. Working on ways to do it. Patience shall bring one an elegant solution 😉

Correct. We have a warning example:

I screwed up my EFI partition with Clover, resulted bricking my MBP ( black screen+ no response with all the Startup key combinations).

https://egpu.io/forums/mac-setup/problem-with-mbp-15-2016-asus-rx480-akitio-node/#post-2712

EFI app does not write into boot rom, but it can write into nv memory areas that may become corrupted.

I once bricked my 2014 Mac mini by writing an incorrect ACPI path, executed from an USB stick - a local Mac repair service had to replace the logic board since it did not respond to any key combinations on startup, neither through the USB or wirelessly.

Instead, they could have replaced the well hidden battery, clearing non-volatile settings (not all visible when you type nvram -p).

automate-eGPU EFIapple_set_os.efi

Mid 2015 15-inch MacBook Pro eGPU Master Thread

 
2018 13" MacBook Pro [8th,4C,U] + Radeon VII @ 32Gbps-TB3 (ASUS XG Station Pro) + Win10 1809 [build link]  


Daelin, itsage and nanoBit liked
ReplyQuote
unknownsolo
(@unknownsolo)
Trusted Member
Joined: 3 years ago
 
Posted by: Chippy McChipset

Take your time and do it right. Everyone here pestering you guys for the update will survive if they have to wait several weeks / a few months to get an elegant solution to this problem. Millennials think they're entitled to everything they want now or they've been wronged somehow.

If it were me I'd not even waste time reading these forum comments and replying (although it's nice of you to do that), and just pop in 1 day a week for 10 minutes, post a weekly update and use the rest of the time (that you would've spent reading and replying) for coding and testing. We'll survive. 😉

I truly hope you are not this uptight all the time

Late 2019 MacBook Pro 16-inch with AMD 5500m dGPU - Razer Core X Chroma - AMD RX 5700 XT

 
2017 15" MacBook Pro (RP560) [7th,4C,H] + GTX 1080 Ti @ 32Gbps-TB3 (ASUS XG Station 2) + macOS 10.13.1 [build link]  


ReplyQuote
Chippy McChipset
(@chippy-mcchipset)
Reputable Member
Joined: 3 years ago
 
Posted by: unknownsolo
Posted by: Chippy McChipset

Take your time and do it right. Everyone here pestering you guys for the update will survive if they have to wait several weeks / a few months to get an elegant solution to this problem. Millennials think they're entitled to everything they want now or they've been wronged somehow.

If it were me I'd not even waste time reading these forum comments and replying (although it's nice of you to do that), and just pop in 1 day a week for 10 minutes, post a weekly update and use the rest of the time (that you would've spent reading and replying) for coding and testing. We'll survive. 😉

I truly hope you are not this uptight all the time

Settle down, grasshopper. All I told him was to not worry about rushing and always responding here, to take his time and do it right. If you have a problem with that perhaps you are more uptight than you think? I think my suggestion was pretty reasonable but your mileage may vary.

PS: for the definitionally challenged, there's a difference between someone who is "uptight" and someone who is mature enough to know this stuff is complicated, takes time, that people working on it have real jobs, and that us constantly telling them how much we want stuff to happen, won't make it available any sooner (and may actually slow their progress). Every hour spent in here is an hour not spent working on their solution, right? Or is my math incorrect on that one?

Don't take my comment personally because it wasn't intended that way. The good news is time flies and in a couple months we'll probably be enjoying our NVIDIA GPUs and forget this thread and a half dozen others. Meantime, go get some fresh air and unwind. ; )

Thunderbolt 3 Macs, Sonnet and OWC eGPUs, 4K Displays, etc


ReplyQuote
psonice
(@psonice)
Estimable Member
Joined: 3 years ago
 

@goalque Do you have a devblog or twitter? Would love to learn a bit more about this... i've written low level code but never touched EFI.

To do: Create my signature with system and expected eGPU configuration information to give context to my posts. I have no builds.

.

ReplyQuote
goalque
(@goalque)
Noble Member Admin
Joined: 4 years ago
 
Posted by: psonice

@goalque Do you have a devblog or twitter? Would love to learn a bit more about this... i've written low level code but never touched EFI.

Nope. If you know C, it is pretty straight forward. Apple's firmware consists of multiple EFI executables, some are proprietary but most of them follow the standard:

http://www.uefi.org/sites/default/files/resources/UEFI%20Spec%202_6.pdf

The hardest part is to know, what you really want to do with it. Start with UEFI Shell. As a simple example, to see all GOP supported handles on the system, type dh -p GraphicsOutput. Initializing the card in EFI is not required unless you want to show something through the eGPU.

My old automate-eGPU EFI 0.1 demonstrated on-the-fly screen output switching between the eGPU and iGPU. All I had to do was to switch ConOut pointer to eGPU. Switched to another, and Apple's logo appeared on the eGPU monitor, with a regular UEFI PC card.

The main reason why Apple's firmware rejects the GOP driver is due to version validation in the beginning of the UEFI ROM:

if (SystemTable->Hdr.Revision < _gUefiDriverRevision) {
return EFI_INCOMPATIBLE_VERSION;
}

Change the Hdr.Revision in your app, or the _gUefiDriverRevision on the card ROM, and the GOP usually loads fine. Keep in mind that UEFI does not provide any acceleration, and seems that Apple has slowed down the simple text output protocol through the eGPU in recent firmwares. It was super fast earlier. Maybe something to do with the console splitter driver.

What I am doing now, is not about boot screens because holding down the option key already gives that through the iGPU/dGPU, even when your MBP is in closed-clamshell mode.

What I do is based on Clover project, a hugely stripped down version of it. I am working on an UI installer and will include an appropriate license file. I am not a fan of making workarounds, but this is closest to native experience with Nvidia.

automate-eGPU EFIapple_set_os.efi

Mid 2015 15-inch MacBook Pro eGPU Master Thread

 
2018 13" MacBook Pro [8th,4C,U] + Radeon VII @ 32Gbps-TB3 (ASUS XG Station Pro) + Win10 1809 [build link]  


Shrapnl and itsage liked
ReplyQuote
Shrapnl
(@shrapnl)
Eminent Member
Joined: 3 years ago
 

I can hardly wait to try this  😎 

Will there be a manual install option available or only installer?

2018 MacBook Pro 15" - Sonnet 550 - NVidia Titan X (Pascal)


ReplyQuote
goalque
(@goalque)
Noble Member Admin
Joined: 4 years ago
 

Manual Nvidia web driver installation (at this point), then run the UI installer, choose "EFI Boot" on next startup and that's all. You may need to edit the config file for your needs as the installer is not yet smart enough.

When I've cleaned up the code, this will be all open source.

automate-eGPU EFIapple_set_os.efi

Mid 2015 15-inch MacBook Pro eGPU Master Thread

 
2018 13" MacBook Pro [8th,4C,U] + Radeon VII @ 32Gbps-TB3 (ASUS XG Station Pro) + Win10 1809 [build link]  


kingjans liked
ReplyQuote
Shrapnl
(@shrapnl)
Eminent Member
Joined: 3 years ago
 

If this is some Clover fork so to speak, will it support booting to other OS's (Windows for Bootcamp, or Linux) as well or hand off straight to an APFS/HPFS Mac Volume to boot?

Thanks again for all your work on this effort!

2018 MacBook Pro 15" - Sonnet 550 - NVidia Titan X (Pascal)


ReplyQuote
goalque
(@goalque)
Noble Member Admin
Joined: 4 years ago
 
Posted by: Shrapnl

If this is some Clover fork so to speak, will it support booting to other OS's (Windows for Bootcamp, or Linux) as well or hand off straight to an APFS/HPFS Mac Volume to boot?

Thanks again for all your work on this effort!

Yes, Windows in the future (already possible with yifanlu's compilation but doesn't work with TB3). As we are using a real Mac, this doesn't change any SMBIOS or add extra nvram variables. It does only the necessary parts. Clover is designed for PCs, this is only for Macs. I've tested booting into Windows Boot Camp (includes apple_set_os.efi), both TB3 ports worked well with a non-touch 2016 13" MBP. With Windows, you can also use your own modified DSDT easily.

This uses Apple's native boot.efi to boot into APFS. "EFI Boot" selection is a prerequisite for filtering on the fly. The default volume can be changed.

automate-eGPU EFIapple_set_os.efi

Mid 2015 15-inch MacBook Pro eGPU Master Thread

 
2018 13" MacBook Pro [8th,4C,U] + Radeon VII @ 32Gbps-TB3 (ASUS XG Station Pro) + Win10 1809 [build link]  


ReplyQuote
 of  68