Jump to content

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


euqlaog

Recommended Posts

@goalque:

If I don't change any part of the configuration (starting Windows/changing from HDMI to DVI Monitor/changing the primary monitor/activating gfxCardStatus/...), it works 100% reliable. All issues that I ever observed are driver related (the background light of the Retina Display Turns off during iGPU/dGPU switches – also silverlight is a bitch but it has always been...).

So regarding the booting part only: I never observed any problems. The eGPU-Output actives during the Apple Logo Boot and the Login is already displayed on both internal and external screen.

  • Thumbs Up 1
Link to comment
Share on other sites

Hi goalque, thanks for the script, it made it really easy to install the nvidia drivers. Unfortunately, they didn't work for me. I think the nvidia card I have is too old. I have a newer Radeon card, so maybe I should try my luck with that. My question is how do I uninstall your script/modifications? Do I only need to uninstall the nvidia drivers? Are the kext changes benign?

And to your Radeon question, yes, I would like Radeon support :)

Thanks!

EDIT: Also, FYI, I have a 2015 macbook air 11"

Link to comment
Share on other sites

Hi goalque, thanks for the script, it made it really easy to install the nvidia drivers. Unfortunately, they didn't work for me. I think the nvidia card I have is too old. I have a newer Radeon card, so maybe I should try my luck with that. My question is how do I uninstall your script/modifications? Do I only need to uninstall the nvidia drivers? Are the kext changes benign?

And to your Radeon question, yes, I would like Radeon support :)

Thanks!

EDIT: Also, FYI, I have a 2015 macbook air 11"

There is no kext modification undo parameter, unfortunately. The script should back up the kexts, but that's in todo list as well as AMD support :)

Keep in mind that AKiTiO is not stable with the R9 200 series cards. I don't know yet how to implement this. Should it be a new parameter, Nvidia/AMD detection, or a completely new script. Too early to say about R9 300 series stability, but looks much more promising. The OpenCL performance amazed me in OS X, and 3DMark11 on Windows side, R9 390 was faster than a reference GTX 980:

http://forum.techinferno.com/diy-e-gpu-projects/7910-diy-egpu-macbook-experiences-127.html#post140552

Link to comment
Share on other sites

Life will get tough with permanent rootless in GM though :((.

Yep, and kext-dev-mode is going away...

[ATTACH=CONFIG]15611[/ATTACH]

fortunately there is still a security configuration tool and enforce SIP checkbox in recovery partition, and I guess that when booted from recovery partition, you can modify kexts in terminal even if SIP is enabled. Automating this won't be easy...

Link to comment
Share on other sites

There is no kext modification undo parameter, unfortunately. The script should back up the kexts, but that's in todo list as well as AMD support :)

Keep in mind that AKiTiO is not stable with the R9 200 series cards. I don't know yet how to implement this. Should it be a new parameter, Nvidia/AMD detection, or a completely new script. Too early to say about R9 300 series stability, but looks much more promising. The OpenCL performance amazed me in OS X, and 3DMark11 on Windows side, R9 390 was faster than a reference GTX 980:

http://forum.techinferno.com/diy-e-gpu-projects/7910-diy-egpu-macbook-experiences-127.html#post140552

Thanks goalque. I'll try to walk the script backwards and undo the changes manually. I'm actually not using the Akitio. I bought an OSS Cube2 (Desktop PCIe Enclosures | One Stop Systems). It could be that the issue is with the Cube2, but I hope not. The Cube2 has it's own power supply, and it's supposed to have enough power to power any GPU (it came with the GPU power cables also).

Once I get the nvidia drivers removed, I'll try to find Radeon installation instructions. Hopefully it all works!

Link to comment
Share on other sites

So I took a look running a few games on the OSX side and found that unless I make my external monitor my "main monitor" it will be opening them on the internal screen running with the Intel Iris Pro. As soon as I set my external monitor to the main monitor in the displays tab "about this mac" it now has both monitors coming up as my gtx970. Unfortunately, mine does not revert back to the iGPU when I adjust settings, so I can't really comment on that :/. If you are simply trying to "turn off" the internal screen all you have to do is turn your brightness to 0 and your internal screen is off.

Normally, when you would close the lid, it goes into clamshell mode. But that doesn't seem to be working with eGPU. What I really want is for the internal screen to not be rendered at all, so turning down the brightness isn't really an option :/

When I say that it reverts back to the iGPU, all signs point to the fact that the dedicated card is working, except when I run heaven benchmark. Normally I get around 22fps on high settings with the GTX 960, but when I change any display settings (like mirroring the internal display to the external display), the benchmark goes down to 4fps. So yeah....

Link to comment
Share on other sites

Normally, when you would close the lid, it goes into clamshell mode. But that doesn't seem to be working with eGPU. What I really want is for the internal screen to not be rendered at all, so turning down the brightness isn't really an option :/

When I say that it reverts back to the iGPU, all signs point to the fact that the dedicated card is working, except when I run heaven benchmark. Normally I get around 22fps on high settings with the GTX 960, but when I change any display settings (like mirroring the internal display to the external display), the benchmark goes down to 4fps. So yeah....

Try starting the Macbook, immediately closing it after pressing the power button. My configuration shows the following behavior: the background light is activated and stays turned on, however the internal screen is not rendered. Neither does it show anything (staying in Apple Logo) nor does it appear in the system profiler / monitor settings. So I conclude that (though the display light is activated) that I can use something like a clamshell mode.

Link to comment
Share on other sites

Just an update. I got my P2415Q monitor today, and my assumptions were right this time. I got 4k60 SST from both the 2013 15" and the 2014 13", and I did nothing more than run @goalque's script. I am now going to return the 13" and wait for the next 13" with TB3 :)

Meanwhile, anyone want a spare 4k monitor? :P

  • Thumbs Up 1
Link to comment
Share on other sites

Try starting the Macbook, immediately closing it after pressing the power button. My configuration shows the following behavior: the background light is activated and stays turned on, however the internal screen is not rendered. Neither does it show anything (staying in Apple Logo) nor does it appear in the system profiler / monitor settings. So I conclude that (though the display light is activated) that I can use something like a clamshell mode.

Thanks for the suggestion! Just tried it and it doesn't work... Everything else is working so I guess I can just live with it for now.

Link to comment
Share on other sites

Thanks goalque. I'll try to walk the script backwards and undo the changes manually. I'm actually not using the Akitio. I bought an OSS Cube2 (Desktop PCIe Enclosures | One Stop Systems). It could be that the issue is with the Cube2, but I hope not. The Cube2 has it's own power supply, and it's supposed to have enough power to power any GPU (it came with the GPU power cables also).

Once I get the nvidia drivers removed, I'll try to find Radeon installation instructions. Hopefully it all works!

The next version has full AMD support, hardware detection and uninstalling/reinstalling works reliably with the aid of rsync. And there is more... :)

  • Thumbs Up 1
Link to comment
Share on other sites

Version 0.9.4 is ready. This is so far the biggest update and the script has grown to almost 1000 lines.

- Native AMD support, masks for any card if codename is found

- Possible to use Nvidia official driver for Kepler cards [-skipdriver]

- Detects Thunderbolt connection

- Detects GPU name by scraping device id from The PCI ID Repository

- Hot-plugging required

- Automatic backups with rsync

- Uninstalling with [-uninstall] parameter

- In theory this should work on OS X El Capitan 10.11 if SIP disabled (official web driver can’t be downloaded automatically yet).

And last but not least… OpenCL benchmarking (clpeak). The script will install everything automatically. Show your numbers with -clpeak parameter. :)

1) It’s compulsory to make a fresh Yosemite 10.10.4 install and preferably Time Machine backup before you try. This is because the script needs original kext files. Note that reinstalling preserves your user account files, but erase+install doesn’t.

2) Boot into OS X without Thunderbolt cable

3) Hot-plug and run the script as before without parameter. If you have a Kepler card, you can use [-skipdriver] parameter.

4) The script will detect your eGPU (AMD or Nvidia).

5) Restart and enjoy. Uninstalling is possible, switch to a different eGPU and reinstall at any time.

  • Thumbs Up 3
Link to comment
Share on other sites

Thank you, Goalque! Two questions for you. I have a 15" 2013 Mbpr with the Nvidia 750dgpu a Sonnet Express II Thunderbolt enclosure and either a Quadro K2000 or AMD R280 card. Firstly will hot plugging be supported by your script on this machine? I had thought egpu hot plugging didn't work for the 2013 Mb pros. Secondly is a reinstall keeping user settings sufficient or do I need to erase and install? Thanks again for making this available.

Link to comment
Share on other sites

Thank you, Goalque! Two questions for you. I have a 15" 2013 Mbpr with the Nvidia 750dgpu a Sonnet Express II Thunderbolt enclosure and either a Quadro K2000 or AMD R280 card. Firstly will hot plugging be supported by your script on this machine? I had thought egpu hot plugging didn't work for the 2013 Mb pros. Secondly is a reinstall keeping user settings sufficient or do I need to erase and install? Thanks again for making this available.

Quadro K2000 is Kepler based, so I would try first with -skipdriver option. AMD R9 280 is codenamed Tahiti and supported. Actually you can use any AMD card as long as it’s one of the following: Cypress, Redwood, Juniper, Caicos, Turks, Barts, Cayman, Verde, Pitcairn, Tahiti, Bonaire, Hawaii, Tonga.

Fiji will be supported on OS X El Capitan and even though R9 390 was detected as Hawaii, I got it working only in 10.11.

By hot-plugging I meant only the installation process. When you press Command+R under System Report > Graphics/Displays after executing the script, you might see the eGPU correctly named, but restart is required with TB cable connected.

It’s quicker to do normal OS X reinstall without erase. For some reason I had a situation that required erase+install since one kext caused kernel panic. However, this might be due my first attempts of rsyncing backup kexts. Now -uninstall option should work fine.

It was a bit amusing to see that Nvidia removed the hardware check function row from the newest web driver. I am sure that they are aware of my script. I am not in the camp of AMD or Nvidia. Nvidia provides better frame rates, AMD better OpenCL performance.

FYI, AMD’s core software team is looking for a software engineer:

https://khronos.org/developers/jobs/detail/software-developer-mac-os-x-opencl

https://khronos.org/developers/jobs/detail/software-developer-mac-os-x-kernel-driver

This indicates that Apple favours more AMD than Nvidia. We will likely see performance improvements as currently Apple provides only OpenCL 1.2. Time will show if Metal API replaces older technologies, but since there are a plenty of OpenGL/OpenCL apps, I suppose that AMD wants to maintain older frameworks as well.

EDIT: I noticed that you have the 750M model + multi-slot enclosure. If you get a boot screen freeze, try [-a] option after running the script. AMDs probably won't need the -a.

EDIT2: Version 0.9.4 has some bugs including -a option, please wait for the next version.

  • Thumbs Up 1
Link to comment
Share on other sites

I have a problem wit Akitio + gtx 980 ti, macbook pro with 750m

Script 0.9.4 show me this message- Thunderbolt device is connected, but no external GPUs detected.

Akitio box exist in hardware + blue light, 3 pci-e cable with molex were tried

First time script started downloaded drivers and offer restart. After restart I catch kernel panic on mac and this issue.

Link to comment
Share on other sites

I have a problem wit Akitio + gtx 980 ti, macbook pro with 750m

Script 0.9.4 show me this message- Thunderbolt device is connected, but no external GPUs detected.

Akitio box exist in hardware + blue light, 3 pci-e cable with molex were tried

First time script started downloaded drivers and offer restart. After restart I catch kernel panic on mac and this issue.

Did you run the script after a fresh 10.10.4 install? If so, you can type “sudo ./automate-eGPU.sh -uninstall” and then again “sudo ./automate-eGPU.sh”. If still the same error, wait for the next version.

Link to comment
Share on other sites

Did you run the script after a fresh 10.10.4 install? If so, you can type “sudo ./automate-eGPU.sh -uninstall” and then again “sudo ./automate-eGPU.sh”. If still the same error, wait for the next version.

No, I run the script not on fresh installation of 10.10.4.

Yes, I have the same error after “sudo ./automate-eGPU.sh -uninstall”.

I hope I didn't burn Akitio`s pci-e slot or GTX 980 ti, any ideas how to check it? Could it be the problem with that? Can I burn Akitio`s PCB using power riser?

Akitio has blue and green lights and recognized in mac hardware, fans on GTX 980 ti start rotating after thunderbolt connected.

Link to comment
Share on other sites

No, I run the script not on fresh installation of 10.10.4.

Yes, I have the same error after “sudo ./automate-eGPU.sh -uninstall”.

I hope I didn't burn Akitio`s pci-e slot or GTX 980 ti, any ideas how to check it? Could it be the problem with that? Can I burn Akitio`s PCB using power riser?

Akitio has blue and green lights and recognized in mac hardware, fans on GTX 980 ti start rotating after thunderbolt connected.

Reinstall of 10.10.4 is a requirement for v.0.9.4.

If you use a powered riser, it must be quality made. If you don't see the gpu as display under system report and the script returns that "Thunderbolt device is connected, but no external GPUs detected", you have a hardware issue.

Link to comment
Share on other sites

Thanks @goalque again for the update. I wiped my SSD and installed your new script. I still have the weird problem where I get eGPU detection and output the first time I boot the laptop after installation and doesn't detect it at all after each reboot.

I also had the weird problem that bugged me last night which was every time I did reinstall the script, the eGPU was detected but there was no screen output whatsoever. I even tried swapping my Titan to a 780 Ti and the Sonnet to my Akitio, and even tried wiping + reinstalling everything, and using your 0.9.3 script (which I actually backed up), and nothing has happened! I managed to fix it however by using the HDMI port instead of the usual DP the first time.

I'm going back to using your 0.9.3 script for now and resetting the PRAM + reinstalling the script every time I want to use the eGPU. I'm going to give it another go when 10.10.5 comes out!

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.