[GUIDE] MBP eGPU detection issues: delayed hotplugging, PERST# switch
 
Notifications
Clear all

[GUIDE] MBP eGPU detection issues: delayed hotplugging, PERST# switch  

 of  10
  RSS

nando4
(@nando4)
Noble Member Admin
Joined: 4 years ago
 
Preliminary steps
 
1. For TB3 enclosures, ensure you have the updated firmware on your enclosure that allows eGPU detection even on host systems that are not Intel eGFX certified. Refer to the  Buyer Guide  for updated firmware links.
 
 
2. Boot into MacOS with no eGPU connected, run the 'automate-eGPU.sh -a' . The "-a" flag explained as:
-a option does the same as hot plugging during the boot process. As of macOS Sierra, Apple changed kext loading mechanism significantly and I am not sure if this is required at present but it was necessary to turn on with Macs released after 2014. The -a mode is not supported on Macs released after 2015.
 
3. Per goalque:
You should use apple_set_os.efi and the correct TB3 port.
 
 4. With older 2011-2012 MBPs installing Windows in UEFI mode rather than MBR mode sees eGPU detection where there was none before. Example: 2012 13" MBP2011 17" & 15"MBP
 
 
Delayed eGPU hotplugging
 
With the detection problem try delayed TB cable hotplugging as follows to get eGPU detection while bypassing a black bootup screen when the powered eGPU is attached.  Once Windows loads do a Device Manager rescan. Is the eGPU detected in Device Manager?
 
1.  halt OS loading with OPTION key. At grey screen plug in TB cable and continue loading Windows. 
 
2. hit OPTION key.  At chime sound plug in TB cable and continue loading Windows. 
 
3. add a Windows bootmenu delay using EasyBCD.  At this new Windows bootmenu selection, hotplug the TB cable & load Windows.
 
4.  load Windows, hotplug the TB cable.
 
5.  load Windows, sleep system, plug in TB cable, resume Windows.
 
 
If still no get no detection then try these:
 
1. Unplug the video card PCIe power lead, boot Windows, Plug PCIe power lead back in. Do a Device Manager rescan. Is the eGPU detected in Device Manager?
 
2. Implement a manual PERST delay to bypass the black bootup screen and get eGPU detection as explained below. You can simulate this also by carefully hotplugging in the video card into the PCIe slot of the powered eGPU enclosure beforehand to see if it's worthwhile doing.
 
 

Implementing a manual PERST# ON/OFF switch to control eGPU detection

 

The problem of a delayed assertion being required was implemented in the old BPlus TH05 TB1 adapter. My testing with a 2012 13" MBP testing found it was necessary there to prevent the Apple firmware shutting the system down when booting Windows by hiding the eGPU until control was handed over to the OS.  

We can implement a manual PERST# on/off switch to allow/disallow eGPU detection. As Intel disallow such PERST# mechanisms on certified TB board we can create one with these steps.

As an example, just doing PERST# pin isolation on the video card was required for a 2012 11" MBA here, along with UEFI rather than MBR Win10 install to bypass a boot hang and get the eGPU detected and functioning in Windows. MBR mode Windows wouldn't allow eGPU detection.

 

 Requirements

  • hair-fine enamelled wire of 60cm length
  • a small resistor (eg: 100 ohm)
  • scotch tape and scissors

 

Create the PERST# wire

  • Singe 5mm of the enammelled wire to expose the copper core
  • Singe 10mm of the enammed wire on the other end to expose the copper core
  • Wrap the 10mm end around one leg of the 100 ohm resistor

 

Step 1. Switch OFF PERST# to prevent eGPU detection

Can use nail polish or sticky/scotch tape to isolate PERST# pin A11 as shown on the right picture below. This will be PERST# off, eGPU detection off.

 

Test this to confirm the eGPU doesn't appear in device manager but the Thunderbolt enclosure does appear.  @shadow confirms this does prevent eGPU detection on his GT650 MBP here. If this works then proceed to step 2.

 

 

Step 2. Switch ON PERST# to allow eGPU detection

We need to send a PERST# signal (GND) to the TB board to allow eGPU detection. So we need to attach the 5mm end of the PERST#  wire to the A11 pin. A couple of ways to do this on the AKiTiO Node TB board below:

- shove the wire into the A11 PCIe slot pin as seen below (A11 is marked)
- solder a little wire to the resistor that comes off A11 as seen below (A11 is marked)

 

The boot up process using the PERST# switch

1. The resistor end of the PERST# wire is left unconnected. PERST# is off, eGPU detection is off.

2. You'd boot your system to get past the Mac firmware, which would otherwise hang if it detects the eGPU.

3. halt Win10 loading [add a BCD timeout with EasyBCD to have a bootup menu to halt Windows loading], stick the resistor leg end of your PERST# wire to the  TB3 chassis (GND) and keep it attached there. PERST# will now be on and  eGPU will be detected.

4. Continue Win10 loading. Then check if the eGPU appears in Device Manager where I'd expect your eGPU will appear.

 

You could also try booting into Setup 1.35 (if using MBR/BIOS boot) and hit F5 to do a PCIe rescan after grounding the PERST# wire to be ON  to also do a test for eGPU detection.

If that all works then look at add a physical OFF/ON PERST# switch to make it easier to use.

 


Appendix:  BPlus TH05 Thunderbolt 1 circuitboard with PERST# delay

We can see the PERST# switch options settings silkscreened on the circuitboard. This product was recalled and then discontinued by BPlus in 2013 due to legal threats by Intel.

 

eGPU Setup 1.35    •    eGPU Port Bandwidth Reference Table

 
2015 15" Dell Precision 7510 (Q M1000M) [6th,4C,H] + GTX 1080 Ti @32Gbps-M2 (ADT-Link R43SG) + Win10 1803 [build link]  


ReplyQuote
Matt
 Matt
(@matt)
Active Member
Joined: 4 years ago
 

Hi,

Im using a 2015 13" Macbook pro retina. I can boot into MacOS and hot plug the egpu but getting into Windows is a pain. Is there a guide for MBPr specifically for this?

Summary of detection methods by Mac model

 Model Detection method needed Src
2013-15 15" MBP GT750M Disconnect TB cable. Boot the laptop until POST/Apple symbol, then connect the TB cable here

 

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
 

Is it a 13” 2015 MBP? If so, I guess the system hangs in POST or the firmware blocks certain Nvidia cards, and therefore the startup manager will not show anything.

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]  


Matt liked
ReplyQuote
Matt
 Matt
(@matt)
Active Member
Joined: 4 years ago
 

Yeah the 13" MBPr.

So previously I've had it working in OSX and Windows. 

Windows was always a pain to get loaded. I had to keep all the cables connected but pull out the power of the Akitio2. Then when I get to the boot manager plug it back in, wait a few seconds and hope it doesn't freeze. Then boot to Windows. This works 1 in 10 times. I was looking for an easier way.

Just wondering if there's an official solution as rebooting into Windows can take me 30mins+

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

.

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

Your Mac model is one of the most problematic. Assuming that you've already installed my automate-eGPU.sh and running Windows 8/10 in UEFI (installed via Boot Camp Assistant):

1) Boot into macOS/OS X and turn on the -a mode: sudo ./automate-eGPU.sh -a

2) Select "BOOTCAMP" as startup disk, and restart

The eGPU will stay invisible during POST (power-on self test), but you may have better success rate to boot into Windows. Steps 1&2 are required after each Windows boot.

Let me know if this helps.

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]  


Matt and nando4 liked
ReplyQuote
Matt
 Matt
(@matt)
Active Member
Joined: 4 years ago
 

I'll try it @goalque . Thanks!

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

.

Matt liked
ReplyQuote
nando4
(@nando4)
Noble Member Admin
Joined: 4 years ago
 

I concur with @goalque. This bootup/detection issue the least publicly documented problem across Macbook models.  To complicate matters even more:

* Apple firmware initialization if different if using MBR or EFI mode.  
* squinks reported variation by video cards with  EVGA cards were the least problematic.
* there is no PERST# delay switch on the TB hardware.  

The best scenario is to hide the eGPU from the Apple firmware. How to do that?

1. Play with timing the following;

i.  just after halting Windows loading with F8/F12
ii. hit OPTION key and when select windows 

For either of these, test:

*  From off position, poweron your PSU
* having  had the TB cable unplugged, plug it in
* having had the AKiTiO yellow/black cable disconnected,  attach it
* having had one PCIe video card power cable unplugged, plug it in.

Then proceed loading your OS.  The last two above the closest to a PERST# workaround.

eGPU Setup 1.35    •    eGPU Port Bandwidth Reference Table

 
2015 15" Dell Precision 7510 (Q M1000M) [6th,4C,H] + GTX 1080 Ti @32Gbps-M2 (ADT-Link R43SG) + Win10 1803 [build link]  


Matt liked
ReplyQuote
Matt
 Matt
(@matt)
Active Member
Joined: 4 years ago
 

I'll try again tonight.

Previously the best way to get it to work was:

 

1. Boot into MacOS with no eGPU connected

2. Run the automate eGPU script with the -a flag.

3. Shutdown

4. Unplug the power to the eGPU THEN plug the TB cable into the Mac. 

5. Boot to the boot manager screen

6. When the mouse becomes free to move (takes around 5 seconds) plug the power into the eGPU

7. if it doesn't freeze continue to boot into Windows.

8. This will work more often than other techniques I've tried. 

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

.

JDiggyDawg and Matt liked
ReplyQuote
itsage
(@itsage)
Illustrious Member Admin
Joined: 4 years ago
 

@matt I follow a similar process as what you laid out. There's a small difference in step 6 for me though. I would not plug the eGPU in while on the Boot Manager screen. I'd select Windows then wait until the spinning circles on Windows load screen show up then plug the TB3 cable in immediately (power cable in your approach). It works rather consistently for me.

external graphics card builds
best laptops for external GPU
eGPU enclosure buyer's guide

 
2020 13" MacBook Pro [10th,4C,G] + RTX 2080 Ti @ 32Gbps-TB3 (AORUS Gaming Box) + Win10 2004 [build link]  


JDiggyDawg and Matt liked
ReplyQuote
Matt
 Matt
(@matt)
Active Member
Joined: 4 years ago
 

Success! I decided to try out the automate-efi that Goalque put on their Git. Well it's working like a charm every time. Boot into boot manager with out the egpu plugged in. Select the EFI boot (from the USB I made). When it says no eGPU.rom found plug in the eGPU. Then it carrys on into Windows Smile

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

.

nando4 and itsage liked
ReplyQuote
 of  10