Jump to content

[SCRIPT] Automating the installation of eGPU on OS X (inc display output)


euqlaog

Recommended Posts

Quote

@BastiFH: Nice tiny Nano there!! :D

My script is already prepared for Fiji architecture, but the acceleration part is still missing from both the OS X 10.10.5 and OS X 10.11 GM. "Accelerator not found" error message means that exactly. However, the binary files do contain “Fiji”, so in theory you can try adding a block named “AMDFijiGraphicsAccelerator” in AMDRadeonX4000.kext, and then modify the line 58 as follows:

amd_x4000_codenames=(Bonaire Hawaii Pitcairn Tahiti Tonga Verde Fiji)


thanks for the advice. what about 10.10.4 ?

but what am I supposed to add on that new block?

        AMDFijiGraphicsAccelerator ..


most probably some value for IOPCIMatch and maybe some addition to sensor-properties, cail_properties, ..

IOPCIMatch would be 0x73001002 according to my screenshot^^ (device-id/manufacturer-id) I will try without the other *properties, I really don't know what they are for.

edit: alright.. ran into another bunch of errors. always the same cache/owner message.



tried uninstalling, reboot and install again, same error. did try another reboot with my Akitio attached and 'voilá'..

internal and external screen powered by AMD eGPU:

but no hardware acceleration, that kind of.. sucks :D retro-style

btw. @goalque: even after uninstalling your script, there's a message to open preferences Nvidia .. but there's no Nvidia anymore :D [URL="http://forum.techinferno.com/members/goalque.htm"] t[/URL]hanks for your support guys !! ;-)
  • Thumbs Up 1
Link to comment
Share on other sites

10.10.4 doesn’t even support R9 390. We likely have to wait for the final OS X El Capitan release.

The script will take care of IOPCIMatch and IOPCITunnelCompatible keys, don’t touch them. This would be my recipe:

1) Install OS X 10.11 El Capitan GM

2) sudo nano automate.eGPU.sh, add the “Fiji” codename at line 58

3) chmod +x automate-eGPU.sh

4) Take for instance AMDHawaiiGraphicsAccelerator as a basis for Fiji, and just replace the “Hawaii” with “Fiji”:

sudo nano /System/Library/Extensions/AMDRadeonX4000.kext/Contents/Info.plist

<dict><true><false>


<key>AMDFijiGraphicsAccelerator</key>
<dict>
<key>ATIEnableWideBlitSupport</key>
<true/>
<key>ATIUseTearingWideBlit</key>
<false/>
<key>CFBundleIdentifier</key>
<string>com.apple.AMDRadeonX4000</string>
<key>GpuDebugPolicy</key>
<integer>0</integer>
<key>IOClass</key>
<string>AMDFijiGraphicsAccelerator</string>

</key>

5) Save and run the script: sudo ./automate-eGPU.sh

6) Restart

I highly suggest taking a Time Machine backup or doing this on the external SSD.</false></true></dict></false></true></dict>

  • Thumbs Up 1
Link to comment
Share on other sites

10.10.4 doesn’t even support R9 390. We likely have to wait for the final OS X El Capitan release.

The script will take care of IOPCIMatch and IOPCITunnelCompatible keys, don’t touch them. This would be my recipe:

1) Install OS X 10.11 El Capitan GM

2) sudo nano automate.eGPU.sh, add the “Fiji” codename at line 58

3) chmod +x automate-eGPU.sh

4) Take for instance AMDHawaiiGraphicsAccelerator as a basis for Fiji, and just replace the “Hawaii” with “Fiji”:

sudo nano /System/Library/Extensions/AMDRadeonX4000.kext/Contents/Info.plist

<dict><true><false>


AMDFijiGraphicsAccelerator

ATIEnableWideBlitSupport

ATIUseTearingWideBlit

CFBundleIdentifier
com.apple.AMDRadeonX4000
GpuDebugPolicy
0
IOClass
AMDFijiGraphicsAccelerator


5) Save and run the script: sudo ./automate-eGPU.sh

6) Restart

I highly suggest taking a Time Machine backup or doing this on the external SSD.</false></true></dict></false></true></dict>

When i try to modify the Info.plist in Nano i get an error saying that the Opperation is not permitted. What gives?

Link to comment
Share on other sites

When i try to modify the Info.plist in Nano i get an error saying that the Opperation is not permitted. What gives?

The second Nano user :) First off, you have to disable SIP. Boot into recovery partition and type “csrutil disable”.

Link to comment
Share on other sites

Small changes in v0.9.6:

  • Support for 2015 Macs (-a mode is required for successful booting with a multi-slot enclosure)
  • Prepared for Fiji architecture

why not change the version number ?;-)

any chance coulb be more precise on the fiji improvements?

-- Gesendet von unterwegs @ iOS8

Link to comment
Share on other sites

@BastiFH:

I just added 2015 Mac board-ids and Fiji codename, no actually new functionality. The last patch number should be incremented even if there are minor changes or bug fixes, but if every small change increases the number, this is going to be v1.0 too soon… :D

@flyfree:

I guess you mean the Thunderbolt cable and “hot plugging”? 2014 Mac mini and 2015 Macs do support hot plugging and removing the TB cable on Windows. Connect the TB cable and the eGPU pops up in device manager and gives the screen output - if not, switch the cable to another TB port. Technically it should be possible to do the same on OS X. The only exception are storage devices. Regarding any other PCIe devices, Thunderbolt technology allows unplugging at any time, but drivers have to be aware of it. However this is a step more complicated programming task - maybe possible with a kernel extension. We could just wait for the TB3 :)

Script’s [-a] mode changes Intel’s Thunderbolt controller (156C) properties and is beneficial also when booting into Windows, no more black screens with 2015 Macs. But you have to circulate through OS X and turn on [-a] mode each time. Booting into OS X only preserves the value.

  • Thumbs Up 1
Link to comment
Share on other sites

@soularchive: Thanks for the feedback. The best information you can give for troubleshooting is the script’s output. From the given information I picked up these:

I was running the script on a clean install of OS X 10.10 Yosemite

OS X 10.10 was released almost a year ago, when GTX 980Ti didn’t exist. Maxwell support was just in the beginning and HDMI port was not supported at all. The script downloads the correct old driver that matches the operation system build version.

I have made an other clean install of OS X 10.10.4, did the same with NVRAM etc. The script installed the NVIDIA Web Driver 346.02.02f03. My computer was able this time to recognize my card as a GTX 980 TI

OS X 10.10.4 was the first build in which Nvidia decided to give support for dGPU graphics. The problem is not with the -a mode, that is confirmed by two 15” MBP 750M users. The latest OS X 10.10.5 is recommended.

I have hot plugged the DVI, it was very unstable too. I tried to launch Unigine in my internal screen and the result of the benchmark was very bad.

Avoid hot-plugging eGPU displays and run benchmarks on the eGPU screen.

- PCIe Riser with molex

Most of the powered risers are bad quality and cannot provide ~40W-75W (depending on the GPU) for the x16 connector, plus ~15W-20W for one TB controller & PCIe board as back powered. Throughput of the DC jack is said to be max 120W, so you can use a barrel adapter from the ATX PSU 8-pin/6-pin.

Link to comment
Share on other sites

Is there a way to check for the latest El Capitan driver?

El Capitan GM is not the final release. The script will download the new official driver automatically when it’s available from Nvidia. For 10.10.5, the package was available in the next day. In the meantime, you can run the script with [-skipdriver], meaning that Nvidia web driver downloading part will be skipped and it modifies the previous package. Between OS X’s Codename change, the only way is to use [-url] option and beta driver. Someone at Nvidia leaks beta drivers purposely. The script downloads automatically only those official ones.

AMD cards are easier since drivers are built-in by Apple and support for Fiji is coming. Official drivers for older Nvidia architecture is still there, so if you have Quadro NVS 295 or GTX 780 for instance, just run the script with [-skipdriver] option.

Please don’t use Nvidia’s update prompt for installing the new driver. The preferred way is to install is just by running the script again.

  • Thumbs Up 2
Link to comment
Share on other sites

What's new in 0.9.7:

  • SetIOPCIMatch() function which sets and appends device IDs (both the AMD and Nvidia)
  • Automatic NVIDIA Driver Manager uninstalling
  • Minor bug fixes

1) Download the new script

2) chmod +x automate-eGPU.sh

3) sudo ./automate-eGPU.sh -uninstall (Nvidia Driver Manager should prompt restart)

4) sudo ./automate-eGPU.sh

5) sudo ./automate-eGPU.sh -a

6) Restart the Mac

Step 5 is optional. Let me know how it works with a 15” MBP 750M. Keep “Automatic graphics switching” turned on in Energy Saver settings.

Link to comment
Share on other sites

What's new in 0.9.7:

  • SetIOPCIMatch() function which sets and appends device IDs (both the AMD and Nvidia)
  • Automatic NVIDIA Driver Manager uninstalling
  • Minor bug fixes

1) Download the new script

2) chmod +x automate-eGPU.sh

3) sudo ./automate-eGPU.sh -uninstall (Nvidia Driver Manager should prompt restart)

4) sudo ./automate-eGPU.sh

5) sudo ./automate-eGPU.sh -a

6) Restart the Mac

Step 5 is optional. Let me know how it works with a 15” MBP 750M. Keep “Automatic graphics switching” turned on in Energy Saver settings.

Hey, is this something you'd like me to test with the 2015 R9 M370x mbpr?

Link to comment
Share on other sites

CrshOv3ride:Desktop Muadi$ sudo ./automate-eGPU.sh -uninstall

./automate-eGPU.sh: line 4: syntax error near unexpected token `newline'

./automate-eGPU.sh: line 4: `<doctype html="">'(doctpe html)'

I get this error when i try to run eGPU.sh..</doctype>

Link to comment
Share on other sites

I have tried the new script with the -a mode and i can notice several bugs with my macbook pro :

- In the case i don't plug the egpu at startup the 750m is attributed in system preference as the main graphic card but my retina internal screen is recognized as a 47inches screen and it is not handled properly (glitches at startup, very slow etc...).

post-36254-14495000822256_thumb.png

post-36254-14495000822496_thumb.png

47inch retina + gt750m.txt

- If i plug my egpu with external monitor, it do the same glitches but it doesn't cause a kernel panic. The gtx 980 ti is recognized by the Nvidia Web Driver, and it's written in "about this mac" "monitors" that both screen as driven by the egpu.

post-36254-14495000822858_thumb.png

But when i go to the system report i can see that in fact the dgpu is driving the internal monitor et the gtx 980 ti the external.

post-36254-14495000823108_thumb.png

Like always, when i try to launch the benchmark, it cause a kernel panic.

47inch retina + gtx 980 ti + gt750m as main GC.txt

Whether i put the script in -a or -m mode (plug or not the egpu) my internal screen is not recognized anymore, i have to -uninstall the script so that everything come back to normal.

ps: i've made a custom connector between my PSU and the DC Plug of the akitio, so it's not the issue.

I hope this feedback can help and thank you again for your work.

  • Thumbs Up 1
Link to comment
Share on other sites

@Muadi: Please read the first post of this thread how to download the script.

Hey, is this something you'd like me to test with the 2015 R9 M370x mbpr?

Not necessary with the Nvidia eGPU. If you have an AMD eGPU, it should work fine with the M370X and you can mix eGPUs any way you want.

Link to comment
Share on other sites

In the casei don't plug the egpu at startup the 750m is attributed in system preference as the main graphic card but my retina internal screen is recognized as a 47inches screen and it is not handled properly (glitches at startup, very slow etc...).

The problem is that you still have 750M activated for internal screen (maybe due to gfxCardStatus, please uninstall it) but as now NVDAStartup.kext is isolated to match only Nvidia eGPUs, the 750M won’t give any acceleration which appears as very slow internal screen. So you have to find a way to switch back to Iris Pro only (currently, the script doesn't change the gmux state). Your gpu-policy value <01> seems to be correct.

ps: i've made a custom connector between my PSU and the DC Plug of the akitio, so it's not the issue.

What kind of custom connector? We cannot rule out that part yet. I’ve learned this a year ago. At that time, I tried also two PSUs, back-powered and non-back-powered risers - a wrong power configuration resulted in immediate system crash when launching Unigine Valley. Do you have the same problem in Windows Boot Camp? If "sudo ./automate-eGPU.sh -clpeak" command causes system crash too, the power issue is double confirmed.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.