[SCRIPT] automate-eGPU.sh v1.0.1 - macOS eGPU installation tool
 
Notifications
Clear all

[SCRIPT] automate-eGPU.sh v1.0.1 - macOS eGPU installation tool  

 of  32
  RSS

NCPFMP
(@neecudaformacpro)
Active Member
Joined: 3 years ago
 

It works!!!

two steps I missed:

1. deactivate SIP
https://www.google.es/search?client=safari&rls=en&q=macos+dissble+sip&ie=UTF-8&oe=UTF-8&gfe_rd=cr&ei=3U2TWIDMBaisgAb334uwDA

2. bridge the external psu to make it work without a motherboard connected (I feel really stupid! . thanks @XIPRX for mentioning this)
http://www.instructables.com/id/How-to-power-up-an-ATX-Power-Supply-without-a-PC/step2/Connect/

 

Cabinet:

OWC Mercury Helios TB2 (a slight variation of the Atikio Thunder 2)

GPU:

Inno3D GTX 980 ti IChill X3
Using a FitHeadless to fake a hdmi screen

 

...and with a PCIE riser cable to avoid destroying the TB box before verifying that it works:
https://www.amazon.es/gp/product/B01J35UUAM/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1

Important. Remember to manually install the latest cuda drivers as well.

I am totally shocked how smooth the process is (once I figured out my  self provoked quirks- RTFM)

With a stock Macbook Air 2011 and 4gb ram and TB2 the GPU  scores 121.94 with the octane render (OSX 10.12.3)
With a nMP 6 core 3,5ghz, 32GB ram and TB2 the gnu scores 126.55 with the octane render (OSX 10.11.6)

The reference benchmark for this card is 126.

I have to say that I am a really happy man 😀

@goalque . you are a true hero!!!!

 

------

Tried with an Inno3D 980 ti + owc helios tb2 enclosure + external PSU +mac book air (OS X 10.12.3) and nMP (0sx 10.11.6).

No luck. Although the TB enclosure sees a connected card the script does not detect a gpu present.

The GPU has connection to the enclosure since it turns on each time the TB cable is connected (and system info detects a presence of a card)

I have to admit that I do use a riser cable since gpu is way to big for the enclosure. But I have tested with some black magic cards and they work just fin with the riser card.

No sure wether it is en OWC helios, the GPU or the riser card that messes things up. Too many variables.

It might be the INNO3D card not egpu friendly?

Or the enclosure?

 

UPDATE -

 

I disasembled the OWC Mercury Helios box to connect the GPU directly to the pcie board without the rider cable.
Same result. The GPU does not get recognised :-/
I will return the gpu.
And probably get an Atikio Node box for the next experiments

UPDATE 2
Seems like the OWC Mercury Helios is a rebranded Atikio Thunder 2 so it should work

UPDATE 3

I forgot to disable the SIP.
But that does not change anything either.

All feedback I get from the terminal is:
'Thunderbolt device is connected, but no GPU present"

I have tried on different mac. Same result.
Will definitely return the GPU 

 

 

 

 

 

 

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

.

ReplyQuote
NCPFMP
(@neecudaformacpro)
Active Member
Joined: 3 years ago
 

@XIPRX - your step2 solved things for me!!!

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

.

ReplyQuote
Phtoon
(@phtoon)
New Member
Joined: 3 years ago
 

Thanks a lot for the updated script. I am using a GTX980ti in Akitio2 on TH2 with my 2015 late 5k iMac retina. I am only using the CUDA render capability with DaVinci Resolve, so I do not use external display on the egpu.

I upgraded to OS X Sierra from El Capitan and used the v1.0 script. After the restart I got a half res monitor in the middle of the 5k screen. I remembered that something has to do with modifying the script in order to disable the external monitor output. Finally I have found it, so after uninstalling, I changed line 63 in the new script to this: 

config_board_ids=()

After reinstall and restart egpu works like before, Resolve can use it. 

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

.

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

@Phtoon, better way: sudo ./automate-eGPU.sh -skip-agdc

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]  


Phtoon and itsage liked
ReplyQuote
wondermike
(@wondermike)
Active Member
Joined: 3 years ago
 

Hello, first of all thank you goalque for this wonderful piece of software, I've run an nvidia before with success, but now I have to switch to a Gigabyte ATI Eyefinity X6 (HD 5870), because I wanna use 6 screens and I'm stuck.

My setup: Mac mini (End 2014), El Capitan 10.11.6, Sonnet ExpressCard to Thunderbolt Converter, Expresscard V8.0 EXP GDC Beast. I've tried the following steps:

1) run the script with -uninstall before in order to unsinstall the NVIDIA stuff (CUDA is still installed though)
2) shutdown
3) plugged in the  ATI
4) Booted and run your script

Unfortunately, it doesn't seem to properly install the card. I can see output on two monitors (can't test more monitors for now), but it is slow as hell: Login already builds up the screen almost row-by-row and HD videos are not working or only with a big lag.  System information shows the card, but even only with one monitor, although two are being used. 

I'd be happy for any advice you can give me. Thank you in advance!

Here's the output of your script:

bash-3.2# ./automate-eGPU.sh
***      automate-eGPU.sh v1.0.0      ***
* (c) 2016, 2017 by Goalque & FricoRico *
*****************************************
Detected eGPU
 Cypress XT [Radeon HD 5870]
Current OS X
 10.11.6 15G1217
Previous OS X
 10.11.6 15G31
Latest installed Nvidia web driver
 Version: 346.03.15f06
 Source: 3rd Party
 Install Date: 02.02.17, 19:49

Checking IOPCITunnelCompatible keys...

Accelerator not found.

 

Screenshot 2017 02 06 215358 MEZ

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
 

@wondermike: script v1.0.0 doesn't support x3000 codenames anymore, only x4000 and x4100. You have to modify SetIOPCITunnelCompatible() function. It may work with v0.9.9.

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
wondermike
(@wondermike)
Active Member
Joined: 3 years ago
 

I haven't found version 0.9.9 neither on git nor elsewhere on the web, but I've found 0.9.8.

Now I get a spinning wheel at boot time, the two screens flicker up for a fraction of a second and the loop resumes at the spinning wheel.

The output of script 0.9.8 looked promising though. I would try the other route what you suggested (modify SetIOPCITunnelCompatible), but I have to admit I have no clue. But: now I cannot try that route anymore, because the Mac mini won't boot anymore with the card attached.

bash-3.2# ./automate-eGPU.sh
*** automate-eGPU.sh v0.9.8 - (c) 2015 by Goalque ***
-------------------------------------------------------
Detected eGPU
 Cypress XT [Radeon HD 5870]
Current OS X
 10.11.6 15G1217
Previous OS X
 10.11.6 15G31
Latest installed Nvidia web driver
 Version: 346.03.15f06
 Source: 3rd Party
 Install Date: 02.02.17, 19:49

Checking IOPCITunnelCompatible keys...

Missing IOPCITunnelCompatible keys.
SetIOPCIMatch() appended device ID 0x68981002 in /System/Library/Extensions/AMDRadeonX3000.kext/Contents/Info.plist
IOPCITunnelCompatible mods done.
All ready. Please restart the Mac.

I have looked inside /System/Library/Extensions/AMDRadeonX3000.kext/Contents/Info.plist and I've found 0x68981002 twice. Shall I remove those matches? 

                <key>AMDBartsGraphicsAccelerator</key>
                <dict>
                        <key>ATIEnableWideBlitSupport</key>
                        <true/>
                        <key>ATIUseTearingWideBlit</key>
                        <false/>
                        <key>CFBundleIdentifier</key>
                        <string>com.apple.AMDRadeonX3000</string>
                        <key>GpuDebugPolicy</key>
                        <integer>0</integer>
                        <key>IOClass</key>
                        <string>AMDBartsGraphicsAccelerator</string>
                        <key>IODVDBundleName</key>
                        <string>AMDRadeonVADriver</string>
                        <key>IOKitDebug</key>
                        <integer>0</integer>
                        <key>IOMatchCategory</key>
                        <string>IOAccelerator</string>
                        <key>IOPCIMatch</key>
                        <string>0x67381002 0x67391002 0x67201002 0x67221002 0x68981002</string>
                        <key>IOPCITunnelCompatible</key>
                        <true/>
                        <key>IOProbeScore</key>
                        <integer>200</integer>
                        <key>IOProviderClass</key>
                        <string>IOPCIDevice</string>
                        <key>IOSourceVersion</key>
                        <string>0.0.0.0.0</string>
                        <key>IOVARendererID</key>
                        <integer>16908288</integer>
                </dict>

and

                <key>AMDCypressGraphicsAccelerator</key>
                <dict>
                        <key>ATIEnableWideBlitSupport</key>
                        <true/>
                        <key>ATIUseTearingWideBlit</key>
                        <false/>
                        <key>CFBundleIdentifier</key>
                        <string>com.apple.AMDRadeonX3000</string>
                        <key>GpuDebugPolicy</key>
                        <integer>0</integer>
                        <key>IOClass</key>
                        <string>AMDCypressGraphicsAccelerator</string>
                        <key>IODVDBundleName</key>
                        <string>AMDRadeonVADriver</string>
                        <key>IOKitDebug</key>
                        <integer>0</integer>
                        <key>IOMatchCategory</key>
                        <string>IOAccelerator</string>
                        <key>IOPCIMatch</key>
                        <string>0x68981002 0x68991002</string>
                        <key>IOProbeScore</key>
                        <integer>200</integer>
                        <key>IOProviderClass</key>
                        <string>IOPCIDevice</string>
                        <key>IOSourceVersion</key>
                        <string>0.0.0.0.0</string>
                        <key>IOVARendererID</key>
                        <integer>16908288</integer>
                </dict>

 

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
 

You probably found a bug Smile The device id 0x6898 should be in AMDCypressGraphicsAccelerator section only, plus the IOPCITunnelCompatible key. I've discontinued this project but I hope that @FricoRico or another programmer can give some guidance.

v0.9.9 is available from the GitHub, not sure if that's better.

https://raw.githubusercontent.com/goalque/automate-eGPU/18666e1ed6e95dc9272b9d2c287c28c4ce553241/automate-eGPU.sh

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
wondermike
(@wondermike)
Active Member
Joined: 3 years ago
 

Hi, thanks for the link to the 0.9.9, I've uninstalled 0.9.8 as cleanly as possible, I've manually traced all steps in the Uninstall() procedure, then rebooted, then shut down, then connected the HD 5870 and installed 0.9.9

Unfortunately, I have the same effect than above, flickering, boot loop. Before I did that, I saw tha HD5870 in the system information, but without acceleration. What else can I do?

Here's some diagnostics/logs:

bash-3.2# ./automate-eGPU.sh
*** automate-eGPU.sh v0.9.9 - (c) 2016 by Goalque ***
-------------------------------------------------------
Detected eGPU
 Cypress XT [Radeon HD 5870]
Current OS X
 10.11.6 15G1217
Previous OS X
 10.11.6 15G31
Latest installed Nvidia web driver
 Version: 346.03.15f06
 Source: 3rd Party
 Install Date: 02.02.17, 19:49

Checking IOPCITunnelCompatible keys...

Missing IOPCITunnelCompatible keys.
SetIOPCIMatch() appended device ID 0x68981002 in /System/Library/Extensions/AMDRadeonX3000.kext/Contents/Info.plist
IOPCITunnelCompatible mods done.
All ready. Please restart the Mac.
bash-3.2# ls /Library/Application\ Support/Automate-eGPU/backup/15G1217/
AMD2400Controller.kext		AMD3800Controller.kext		AMD4800Controller.kext		AMD6000Controller.kext		AMD8000Controller.kext		AMDRadeonX3000.kext		AMDSupport.kext			IONDRVSupport.kext
AMD2600Controller.kext		AMD4600Controller.kext		AMD5000Controller.kext		AMD7000Controller.kext		AMD9000Controller.kext		AMDRadeonX4000.kext		AppleGraphicsControl.kext	NVDAStartup.kext
bash-3.2# cd /Library/Application\ Support/Automate-eGPU/backup/15G1217/
bash-3.2# for i in *
> do
> diff -r /System/Library/Extensions/$i /Library/Application\ Support/Automate-eGPU/backup/15G1217/$i
> done
diff -r /System/Library/Extensions/AMDRadeonX3000.kext/Contents/Info.plist /Library/Application Support/Automate-eGPU/backup/15G1217/AMDRadeonX3000.kext/Contents/Info.plist
46,48c46
< 			<string>0x67381002 0x67391002 0x67201002 0x67221002 0x68981002</string>
< 			<key>IOPCITunnelCompatible</key>
< 			<true/>
---
> 			<string>0x67381002 0x67391002 0x67201002 0x67221002</string>
diff -r /System/Library/Extensions/AMDSupport.kext/Contents/Info.plist /Library/Application Support/Automate-eGPU/backup/15G1217/AMDSupport.kext/Contents/Info.plist
59,60d58
< 			<key>IOPCITunnelCompatible</key>
< 			<true/>
diff -r /System/Library/Extensions/IONDRVSupport.kext/Info.plist /Library/Application Support/Automate-eGPU/backup/15G1217/IONDRVSupport.kext/Info.plist
57,58d56
< 			<key>IOPCITunnelCompatible</key>
< 			<true/>
74,75d71
< 			<key>IOPCITunnelCompatible</key>
< 			<true/>
91,92d86
< 			<key>IOPCITunnelCompatible</key>
< 			<true/>

Edit: In /System/Library/Extensions/AMDRadeonX3000.kext/Contents/Info.plist, I've taken 0x68981002 out of  AMDBartsGraphicsAccelerator, so that it is only in AMDCypressGraphicsAccelerator, plus I've set the IOPCITunnelCompatible to true in ...Cypress...lerator. Same effect. 🙁 Is there anything else I could test/see?

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
 

I don’t know about El Capitan 10.11.6 but 0x6898 device id is natively supported on macOS (both AMD5000Controller.kext and AMDRadeonX3000.kext). Script should not append the device id. You just have to add IOPCITunnelCompatible key-value pair into those plist files. Try reinstalling OS X, and see if the 0x68981002 is missing from the AMDRadeonX3000.kext.

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  32