Due to a db thread corruption problem affecting this thread has been manually reconstructed from Google cache entries. Here were the user replies in order, inc date:

Rastafabi March 1, 2017 5:53 pm

Well, I did. And circumventing the kext modification procedure altogether would be marvellous (something costumer-ready in the pipe?). My simple driver doesn't actually do anything different than modifying the kext, but it does so on the fly (kext keep their signing certificate). Right now this procedure is an extremely simple way to avoid system update dependent (automatic) rerunning of the script.

BTW: The exact same technique to force loading the NVIDIA driver, though it is not natively qualified for PCI tunneling, should work to inject the needed modifications into the AppleGraphicsDevicePolicy.kext as well as any ATI/AMD driver. The kext generation itself could even be automated using a script, as the kext actually does not include any code itself. That being said I failed to enable display out. (Apart of one try which was not accelerated, but which I lost after adding additional modifications and which I did not backup.) However it IS possible somehow.

The pro side of this Dummy.kext injection technique obviously is, that it is persistent across reboot, with the only letdown right now, that disabling SIP (partially) is still required.

PS: NVIDIA Web Driver installer repacking is not needed ever since NVIDIA introduced "experimental MacBook Pro and iMac support".

I assume, that your EFI application works in a similar way as my driver, doesn't it? I also experimented with pre-boot kext-patching using clover, but I disliked that way due to all the negative clover related side-effects on legit Apple hardware. Also I haven't been able to compile clover reduced to being refit with kext patching.

highpass March 1, 2017 7:44 pm

Hello again, Do either of your methods allow for use without an external monitor? I suppose that is my main concern with this idea: I simply need the GPU for 3D horsepower. If this is possible I suppose my next question is would any 3D app see the eGPU or do other factors depend on that? The apps in question are: Cinema4D, After Effects, Substance Painter, vRay, Thea Render. Thank you very much.

Rastafabi March 2, 2017 8:51 am

The procedure in post 1 discribes exactly what you need. It allows the use of the eGPU for rendering and other GPU related CUDA and OpenCL task for applications which support selecting a specific renderer (like Premiere/Aftereffects and similar). It does not allow the use of external monitor.

goalque March 2, 2017 9:49 am

Yep, it is a codeless kext: https://developer.apple.com/library/content/documentation/Darwin/Conceptual/KEXTConcept/KEXTConceptAnatomy/kext_anatomy.html#//apple_ref/doc/uid/20002364-SW8 I have done something similar. If I had no fulltime job, I would surely devote my time to EFI and kext programming. UEFI doesn't allow writing on Apple's HFS+ partition (it returns error code EFI_WRITE_PROTECTED) so a kernel extension or in-memory substitution are the only ways to make kexts IOPCITunnelCompatible, SIP enabled. As it seems that Apple has made it much more difficult to get TB3 AMD eGPUs working in Sierra, forced the Internet recovery to 10.12.3 and new firmwares, and they plan to release APFS as a bootable filesystem this year, I don't expect that we would see 3rd party software eGPU solutions in the pipeline near future.

Rastafabi March 2, 2017 2:14 pm

I like the idea of enabling the eGPU with a codeless kext, because all the edits required can be joined into a single plist file. Once someone has the time and is willing to write a fullfledged codeless kext injecting all the necessary values this should turn out to be an easily maintainable solution.

If the EFI prohibits writing to the HFS+ partition, (and later on to the AFS partition, if any driver will be written anyway) how does the clover kext-patching work, which even injects the code into the kernelcache as far as I know. Also the Clover kext injection might be an interesting starting point. A rather "simple" EFI chainloader with those functionalities could be useful. If I got it right, your implementation goes far further. (Just to mention the EFI-ROM loading.)

goalque March 8, 2017 2:11 pm

HFS+ partition is not writable, but it is readable from EFI. The startup manager and bootloader are EFI binaries among others. AFAIK, Clover uses customized kexts, utilizes the kernel cache and then Apple's boot.efi takes care of the rest. Apart from ACPI table installation, I've not yet looked at Clover source code more in-depth. Another way is to emulate the process of boot.efi and modify/load kexts on the fly but that involves lots of reverse engineering.

I don't like hacks. A codeless kext is a good approach because it doesn't modify any system files. Instead of "Kext Utility.app", I would just place the kext into /Library/Extensions/ and set the proper permissions/ownership from the Terminal. I've not tried out your kext, but I am sure that it works. As you said, it doesn't do anything different than plist modding, doesn't solve TB3 problems, but is much cleaner way.

highpass March 23, 2017 9:22 am

Just want to update this: this simple method works perfectly so far! Very happy with the results: all CUDA apps see the eGPU except the Adobe suite, which I'm sure just needs further tinkering.

That's great! Keeps to be seen how it works after the 10.12.4 update as this one seems to shake up the graphics stack quiet a bit (even build-unlocked NVIDIA drivers do not work, though they usually do). Let's hope everything will be up and running just fine. Rasafabi March 23, 2017 9:37 am

Oh that's a bit worrying. I'm sure someone'll figure out a workaround sooner or later... at least bloody hope so! I suppose my next quandary is: if I get another Node+Titan X, can an iMac handle two of them? Is the bus shared? Thanks very much for the script. Life saver. highpass March 23, 2017 9:48 am

Since Apple didn't came up with significant blockers for Thunderbolt 1 & 2 eGPUs until now, I doubt they ever will - even less likely with a minor OS update rather than a release. While external displays eGPU has not been available in early 10.12.4 betas (related to NVIDIAs drivers) output hat been available though. Haven't checked Cuda back then - nor I have tried any recent betas at all. Keeping the fingers crossed. About your Adobe Suite issue: If I remember correctly it's possible to assign "unsupported" Cuda renderers - just google it. It might involve some terminal magic but last time I needed this (pre eGPU times) it wasn't too hard. Having dual eGPU should work unrelated to having multiple Thunderbolt controllers. Even bandwidth could be a minor issue, as non is used for out screen output. With output doubled bandwidth with Thunderbolt 3 isn't an improvement in terms of benchmark scores so dual Cuda could work without major performance drops on Thunderbolt 2. If you can't find any reference to such a setup online testing is up to you. Rastafabi March 23, 2017 9:56 am

highpass March 28, 2017 7:47 am

Of course the next questions are: Can a Mac Pro Trashcan handle 6 eGPUs + the built-in FirePros? And is that really the best option we have for lots of GPUs? ...also, I feel this thread ought be stickied somewhere so that other people that simply need CUDA on existing setups can find it easily. Cheers

itsage March 28, 2017 8:02 am

There are 3 Thunderbolt buses in the Mac Pro trashcan. Therefore, it's best to cap the number of eGPUs to 3. We can move this thread to Pro Applications forum and sticky it.

highpass March 28, 2017 9:10 am

Two further questions: 1. What are the repercussions of running more than one eGPU per bus? My layman understanding of this barefeats article makes me believe having two units per bus would not cause significant performance loss (in CUDA apps at least). 2. Is there a limit to what MacOS can handle? This appears uncharted territory but I'm certain someone somewhere has been running multiple GPUs using a PCIe expander on the old 4,1 and 5,1 models.

itsage March 28, 2017 9:33 am

I've seen 4+ GPU setup with the older Mac Pro towers via an PCIe expander. Mac OS had no problem detecting them. There's a point of diminishing returns though. IMO if you'd need multiple GPUs, eGPU is not the best solution. I'm currently running my main Mac Pro tower with 3x RX 480s. This is an older photo with an RX 470 on top.

highpass March 28, 2017 10:31 am

Rastafabi: Great! I will give this a shot when I've mustered the courage.

Itsage: That is interesting. How are those RX's cooled? Would 3x Titans work in the same setup (in the context of keeping them cool, that is).

itsage March 28, 2017 10:35 am

Posted by: Rastafabi Using my driver you need to run the following Terminal command and reboot after the 10.12.4 update to reflect the build number changes: export BuildVersion="$(sw_vers -buildVersion)" | plutil -replace IOKitPersonalities.NVDAStartUpWeb.NVDARequiredOS -string $BuildVersion /System/Library/Extensions/eGPU.kext/Contents/Info.plist If it still does not work after rebooting you might need to rebuild the kernelcache. Just run the recommended application from post 2 to do this. Edit: Updated the command to be universal and future proof. Could be added to a launchd script bundled with a installer coping the the kext, setting permission and rebuilding the kernelcache. Or does anybody know a way to use variables in Info.plist files? @Rastafabi thank you for your contribution! If you can work with Goalque to further develop automate-eGPU script into an installer of some sort, that would be wonderful for the Mac eGPU community.

Rastafabi March 28, 2017 11:09 am

We have been in contact some moths ago but nether actually talked about joining forces, especially as he handed over the script work to focus on EFI development. Also my work so far focused on a different approach but indeed could reuse some other his scripts data. So far I still experience problems injecting patches into the AppleGraphicsDevicePolicy.kext which handles the eGPU screen output. Also the above issue remains to be solved because a non-static info.plist would prevent the kext from ever being signed and "just work", though a solution close to that (disable SIP, install once and just forget because it will work) could be achieved. The total implementation effort for this even is rather basic but extremely time-consuming. Time most of us here do not have. Also my programming knowledge is at the best basic when it goes further than scripting and bash. Apart from that, the recent 10.12.4 update could turn out to be bigger news than expected, because apple just enabled support VT-d for (Thunderbolt) Macs (~PCI virtualisation support, supposedly elementary for AMDs XConnect and NVIDIAs eGPU hot-plug solution; VT-d was supported by Mac Pro, Xserve [and iMac?] since a decade, while at least MacBooks and Mac Minis weren't). Even without I already managed to enable screen output without having to restart, but I couldn't get acceleration, nor unload the eGPU without crashing the system. That being said DO NOT expect any macOS eGPU hot-plug related development within the community anyway, as this would need proper driver implementation, thus being Apples, NVIDIAs (and AMDs) part.

goalque March 28, 2017 12:00 pm

@Rastafabi, I've linked your post as an alternative method in my automate-eGPU.sh thread starting post. A good starting point for those who are willing to integrate this into the automate-eGPU.sh script and simplify it. Remember that Nvidia drivers are tied to macOS build number and if the underlying dependency kexts have changed after macOS upgrade, replacing the NVDARequiredOS might not be sufficient. Security updates can also break driver functionality. It's recommended to wait for the new web driver release. The Internet recovery brings a completely new build 16D30 (at the time of macOS 10.12.3). Apple doesn't say anything about this. It is missing from Wikipedia's build list ( https://en.wikipedia.org/wiki/MacOS_Sierra ). The script doesn't find it because Nvidia is not aware of this build number. However, by replacing the NVDARequiredOS, the web driver meant for macOS 10.12.3 works in the initial macOS Sierra environment.

Rastafabi March 28, 2017 12:11 pm

@Goalque, thank you for linking this to your thread, though it might be better to add, that it's not supposed to get screen output, yet. I know that the NVIDIAs drivers build dependencies have a purpose, of course, but the injection I'm currently doing is not supposed to circumvent this (it's just side-effect). However I had kernelcache corruption issues injection only selected values rather than the whole IOKitPersonalities blog. That's why this is included in my codeless kext, although it is complicating the approach to write a universal tool.

EDIT: I tried again without injecting the build number values and so far it runs stable. This might work out to be a final solution to make the kext OS update independent ("just works"). So to test this you can execute this command in Terminal: plutil -remove IOKitPersonalities.NVDAStartUpWeb.NVDARequiredOS /System/Library/Extensions/eGPU.kext/Contents/Info.plist Edit 2: Obsolete – Driver has been updated.

hypernurd March 31, 2017 1:29 pm

Seeing as certain apps behave differently depending on the type of GPU they can recognise (i.e. AMD best for FCPX and Nvidia for CUDA, etc) I have a question regards the use of dual eGPU set-ups. I have a MacPro trashcan and thus theoretically could run up to three eGPUs (one per bus as per itsage's post above). If I do, will the Apps automatically detect the right card for them or is some other manual intervention required? i.e. if I have monitors attached, say one on an R9 Fury and one on a 980Ti, will I need to launch the app on the relevant display? and, if I don't have monitors attached, will some form of script be required in order to get the app to recognise the card - like Rastafabi's solutions in Post 1?

Rastafabi April 1, 2017 5:00 am

Right now it IS NOT posible with muy solution to connect monitors! It's only supposed to be used as an OpenCL and/or CUDA accelerator. And currently not for AMD grafics but only for current NVIDIA GPUs.

Concerning application support it really depends on the software your using. Best thing would be to ask the developer wether it is possible to manually select a/multiple GPU/s for acceleration. While some applications default to the the default screens current accelerator others default to the most powerful one while some applications just use everything they get which is OpenCL enabled. There is no pattern to determine the software's capabilities.

(Shouldn't we start a thread for software support and possible workarounds.)

hypernurd April 2, 2017 3:54 am

@Rastafabi, Good call. I would appreciate knowing how best to configure host systems for various differing usage cases. Very useful response though - many thanks. Can't wait to get my Venus and get cracking. That said, does anyone know if the 'shipping' version will have resolved the issue of 1/2 speed CUDA performance?

Lazer April 4, 2017 9:38 pm

I recently purchased a Razer core and a 980ti. After searching and sifting through a lot of threads I think this aligns to what I want to do. I just want to be clear before I start running scripts etc. This solution is for users who want to use an internal display to boost applications like adobe CC and using nivida cards? Thanks for your time and apologies for the noob question. I switched from PC to Mac and don't want to go back to windows 10

highpass April 5, 2017 10:03 am

Here are my steps for upgrading a system that already uses Rastafabi's eGPU.kext to 10.12.4.

Upgrade to 10.12.4 Upgrade Nvidia and CUDA drivers Run Rastafabi's terminal command in this post Reinstall existing eGPU.kext using Kextutility Done

...I have no idea which of these steps are necessary, but it works, and is necessary (the eGPU was not seen after upgrading). Perhaps someone can write a concise guide we can put in the original post.

Lazer: Whilst this implementation works great for the apps I need it for (Octane etc), there appears to be issues with the CC suite. I would do more research on the matter prior to purchase if this is your intent.

goalque April 5, 2017 11:01 am

@Lazer: please notice what is already said: "My simple driver doesn’t actually do anything different than modifying the kext, but it does so on the fly (kext keep their signing certificate)."

"Concerning application support it really depends on the software your using. Best thing would be to ask the developer wether it is possible to manually select a/multiple GPU/s for acceleration."

You can either choose this or automate-eGPU.sh for Nvidia CUDA/OpenCL accelerated apps. Don't mix them.

SaturnV April 7, 2017 4:10 pm

I too am very interested in this application of an eGPU.

I have a Late 2014 5k iMac, that I would like to use to accelerate inside the Adobe Suite as well. Specifically Premiere, and Element 3D within After Effects.

In your expert opinions, will the release of NVIDIA Mac drivers for the 10xx series of cards this month, make this process easier/possible?

Rastafabi April 10, 2017 8:52 am

Drivers do not have that much to do with third party software, and not anything at all concerning additional features (in nearly every cases).

It is still valid that you would need to ask the software developers about possible options.

Also it remains to be seen, wether the new driver will introduce any structural changes and what it would take to reflect them in goalques script and my driver. (If possible at all!)

kotlos April 10, 2017 10:06 am

@SaturnV, after using the automate-eGPU.sh script I had to also install the latest CUDA drivers for Premiere to use the eGPU. It was really easy and I think it will be as easy with the latest NVIDIA drivers with 10XX support.

SaturnV April 10, 2017 9:14 pm

Thanks Kotlos! Are you running Windows or MacOS? And when you're in Premiere, under File -> Project Settings -> General, you are able to select CUDA/the eGPU as your rendering engine?

I'm curious.... in After Effects if you can see the same thing. File -> Project Settings, and be able to choose your eGPU in there?

Rastafabi April 11, 2017 2:36 pm

Good news! The new Pascal enabled driver keep working for Maxwell cards (GTX 750, 950, 960, 970,980 and their Ti editions) without any (additional) modification(s)! - What's especially great, is that the driver asks for an upgrade, you upgrade and restart once and you are ready to go - no eGPU related interaction (scripts etc.) whatsoever if you are using my driver. If you happen do be one of them I strongly recommend running this command to keep it this way! I cannot test Pascal cards (GTX 1050 and up) as I simply cannot even afford an GTX 1050 as I'm a student. Sorry.

PS: I updated post 1 (guide)

Edit:

Pascal GPUs should work without further modifications.

C4DMan April 13, 2017 7:43 pm

If I understand this process correctly and some of the comments that followed it, in theory I should be able to use this to get a Titan or other Pascal card to run as a headless CUDA-beast on a nMP running 10.12.4 (directly, not Boot Camp), right? And also if I choose I can manually install the file noted at Step 3 if needed? Also do I understand correctly that in Step 2, that entails both the standard driver and the latest CUDA driver (i.e. 2 separate installs as part of that step)?

Rastafabi April 14, 2017 1:33 am

True. You got it right! Of course you can install my driver manually, but this requires some terminal commands as well as manual system directory access. Regarding the average user I generally recommend the linked app to simplify the process. Concerning the NVIDIA drivers it has always been a problem that the device and the CUDA acceleration drivers has been separate ones. This was once even mentioned at a keynote addressing users concerns about limited acceleration on some devices.

C4Dman April 15, 2017 1:54 pm

Thanks "Rasta;" I'm going this route. I need CUDA power more than anything else.

If I wanted to later use it for OpenGL / gaming type stuff, I'd have to uninstall the eGPU kext file and then run the standard eGPU automation script people on this site use, correct?

Rastafabi April 15, 2017 5:50 pm

Currently yes, but in the coming days I have some updates to write about.

That said I want to clarify that CUDA is compatible with the script solution, too.

Rastafabi April 16, 2017 2:02 pm

HUGH NEWS! Now my driver also supports external displays! Check out the updated guide from post #2. Credits for the new features go here: lvs1947 and vit9696 Copyright © 2016-2017 lvs1974 (NvidiaGraphicsFixup.kext) Copyright © 2016-2017 vit9696 (AppleALC.kext, Lilu.kext)

goalque April 16, 2017 2:48 pm

Awesome work! It’s not a codeless kext anymore. I recognized these kexts: Copyright © 2016-2017 lvs1974 (NvidiaGraphicsFixup.kext)

Copyright © 2016-2017 vit9696 (AppleALC.kext, Lilu.kext, PinConfigs.kext) Does it support all Mac board-ids? "Fixes an issue in AppleGraphicsDevicePolicy.kext so that we could use a MacPro6,1 board-id/model combination, without the usual hang with a black screen. Boot-arg "-ngfxoff" disables kext loading Boot-arg "-ngfxdbg" turns on debugging output Boot-arg "-ngfxbeta" enables loading under unsupported osx version" AppleGraphicsDevicePolicy.kext fix is originally discovered by Pike R. Alpha. It's pretty trivial, didn’t expect it would require this much code.

Rastafabi April 16, 2017 3:06 pm

While I do not know, how the driver actually works, it does not to rely on board-id injection into plist. (I learned the hard way that this just can't work, as the injection only permits the driver to load at first but does not influence other kexts reading from the original plist, which prevents this to work.) I assume the included driver rely on on-the-fly binary patching eliminating the need for reading the board-ids altogether. While these drivers thus aren't codeless mine still is, with the only change being the inclusion of the plugins directory. Thank you for the correct quotes.

C4Dman April 16, 2017 4:37 pm

Nice. Unrelated question. Your disclaimer mentions you're not responsible for data security... not clear why this would be relevant to a eGPU kext file. If it's related to a download from a .ru domain, could the file be scanned and hosted here?

Rastafabi April 16, 2017 4:40 p

I mention this, because the guide involves disabling SIP [Step 1]. Currently any eGPU implementation requires this, but I wanted to note anyway. (Any of my uploads are hosted on egpu.io.)

goalque April 16, 2017 5:45 pm

I am a bit concerned running binaries if I don’t know what they do precisely, so I took a closer look at source: https://sourceforge.net/p/nvidiagraphicsfixup/svn/1/tree//trunk/NvidiaGraphicsFixup/kern_ngfx.cpp const char *find = "board-id";

const char *replace = "board-ix"; It’s based on Pike R. Alpha’s more generic hack (Nov 23, 2015): https://pikeralpha.wordpress.com/2015/11/23/patching-applegraphicsdevicepolicy-kext Have heard he had a copyright conflict with hackintosh forums. If turns out that Pike finds NvidiaGraphicsFixup.kext to be against his modified CC license, please contact egpu.io admins. Our forum ensures that the original discoverer will get the proper acknowledgment.

Rastafabi Apri 16, 2017 5:55pm

Thank you for the information. I contacted Pike to check.

DANgerous25 April 17, 2017 6:08 am

Hi all, I successfully got this working on my late 2014 iMac 27" 5k, + Akitio Node + 980 TI using an external Dell 4k monitor. However, my internal iMac screen stays put on the progress bar bootup screen (which is quite weird). I can't restore my original iMac screen, even when switching to the original OSX driver. See attached screenshot.

Anyone know how to uninstall the new kext and/or get back to square 1? Also, if anyone knows how to make the iMac screen come back to life while using the eGPU, that would be even more awesome.

Photo of situation:

Rastafabi April 17, 2017 7:10 am

There are a few things you can try: Chance the resolution in the system preferences to any other and than back to the native one. Put the iMac to sleep and make it up, once it had fully entered sleep mode. Try adjusting the internal GPU settings using gfxCardStatus (change from Integrated to dedicated) or cpu-swich. You should also try multiple of those at a time. The source of the issue is, that with one kext being manipulated using my driver it does not load the correct configuration anymore (which is unloading the integrated graphics and injecting an EDID string, if I'm correct). Try it and report back please.

DANgerous25 April 17, 2017 9:25 am

Thank you for all your work, Rastafabi. Here's the status:

1) Had no effect

2) Worked, it brought back the internal screen - after which everything works beautifully with the eGPU working on the external screen. However, after rebooting it's back as it was.

3) These appear to be MacBook Pro tools (I installed gpu-switch and it complains that it's not a MacBook Pro) - gfxCardSwitch appears to be similar?

Any idea how I can fix part 2 above, so that I don't need to sleep/wake every time? If it wasn't for that it'd be perfect and I would pretty much love you for solving something that has plagued me (and no doubt countless other iMac users) for months!

goalque April 17, 2017 10:31 am

Posted by: DANgerous25 2) Worked, it brought back the internal screen - after which everything works beautifully with the eGPU working on the external screen. However, after rebooting it's back as it was. The same effect as with my script (without -skip-agdc option). And it is 4K on the internal screen, right?

DANgerous25 April 17, 2017 6:16 pm

hey @goalque, nope not the same. This method doesn't break the iMac screen resolution, it remains at 5k and is full screen, with the external screen working correctly and accelerated. So this method is actually usable, although the sleep wake is annoying.

goalque April 17, 2017 7:21 pm

You said earlier (regarding the script): "Sleep & wake: Yes, my viewable screen now fills the iMac display. However as you say, it looks to be 4k and doesn’t have the correct default resolutions. However, it’s much better than where I was." The same sleep & wake helped, so therefore similar effect. I thought Pike’s newer hack would work correspondingly. I am happy to hear this generic hack produced native 5K internal screen.

C4Dman April 17, 2017 10:36 pm

OK. I saw a .ru link on one of the files earlier in an earlier post, but probably wasn't associated. Thanks.

DANgerous25 April 17, 2017 10:37 pm

So I have two questions remaining at this point: 1) is there a way to avoid the need for sleep/wake 2) how to uninstall Rastafabi's solution (for reference)

Rastafabi April 18, 2017 4:59 am

I recommend the KextUtitlity.app by cvad, which indeed is hosted in russia, as he himself is a russian developer.

Egor.M April 18, 2017 7:46 am

Good afternoon, sorry for the trouble, but the question is, did everything as you described and everything works, but the problem I have with final cut pro x version 10.3.3. Very slow when dealing with external egpu, what could be the problem, do not tell you solutions? Everything else works flawlessly. My lelect this macbook pro md 101, 12 gb ram, ssd, 10.12.4 mac os, akitio 2, zotac gtx 960 2gb. I would be very grateful for the help, installed the driver if you feature the latest designs and cuda

DANgerous25 April 18, 2017 8:26 am

Thanks, I have the tool because I used it to install your solution. But how do I use it to undo it?

btw. I have one more update: I have experienced some crashing when using the iMac and eGPU using your solution. I am running a cycling game called Zwift on the accelerated screen (which is OpenGL rendered), and iTunes movie on the internal iMac screen. After a few minutes the machine crashes and appears to power off. The eGPU is hot, I wonder if it is overheating (although the fans were running). Does anyone know how I can diagnose why the system crashed? It crashed twice out of two attempts.

Note that use of the same application on my MacBook Pro TB 13" using the same eGPU but via ThunderBolt 3 and goalque's script does not exhibit the crashing, and I've been using it a lot.

Egor.M April 19, 2017 4:27 am

Surely no one can suggest why there may be problems with final cut pro x, and what solutions are there to improve the situation, because the external eGPU was purchased specifically for this purpose

ed_co April 19, 2017 5:37 am

I am just speaking loud, allright? Even just for 3D professional applications (which I am a professional user as well), why not to configure your laptop with the full capabilities instead doing an small patch to fix just that thing? What are the beneficts? There is more performance maybe? If not, why not trying to have a complete solution, rather than stop here?

Maybe I am a bit confuse here.

Thanks.

Rastafabi April 19, 2017 12:12 pm

@DANgerous25

1) is there a way to avoid the need for sleep/wake

Currently not. What you can try though is to sleep the display only. This can be done by setting up a hot corner in System Preferences for example.

2) how to uninstall Rastafabi's solution (for reference)

I upgraded the guide with some instructions to do so.

@Egor.M

[…] everything works, but the problem I have with final cut pro x version 10.3.3. Very slow when dealing with external egpu, what could be the problem, do not tell you solutions?

FinalCut Pro is greatly optimised for the use with AMD graphics using the OpenCL Framework instead of CUDA. While NVIDIA GPUs also feature OpenCL support they never have been designed specifically for it as NVIDIA obviously want to push it's own solution. Apple might have optimised FinalCut for their factory equipped NVIDIA Macs like your's which could explain why it's faster internally than with the eGPU. If your main purpose of using an eGPU is to use it for FinalCut I would recommend using an AMD GPU. Depending on your needs you should use a RX460, RX470 or RX480. Check other threads of this forum, as there are some AMD focused guides (using @goalques script solution, as my driver (currently) does not support AMD graphics.

I am just speaking loud, allright? Even just for 3D professional applications (which I am a professional user as well), why not to configure your laptop with the full capabilities instead doing an small patch to fix just that thing? What are the beneficts? There is more performance maybe? If not, why not trying to have a complete solution, rather than stop here?

First it's important to say that the main purpose of eGPU is to optionally accelerate Laptops and not Desktops.

If you about to purchase a new MacBook Pro it's an good advice to go for the AMD Pro 460 as it's the strongest graphics available. However it's still quiet a bit behind the power a desktop GPU provides. This is especially true for people with older hardware (like myself) who can't or do not want to buy a new MacBook. With an AKiTiO Thunder 2 PCI expansion box (with an upgraded 8A power supply) and an NVIDIA GTX 1050(Ti) or an AMD RX460 they can greatly accelerate their setup for about 300-400€/£/$.

flight3 April 19, 2017 8:18 pm

Posted by: goalque You said earlier (regarding the script): "Sleep & wake: Yes, my viewable screen now fills the iMac display. However as you say, it looks to be 4k and doesn’t have the correct default resolutions. However, it’s much better than where I was." The same sleep & wake helped, so therefore similar effect. I thought Pike’s newer hack would work correspondingly. I am happy to hear this generic hack produced native 5K internal screen. I'm curious how you put your display to sleep while it is stuck at the booting screen? Does holding the power button for a second or two work?

DANgerous25 April 19, 2017 9:15 pm

If you look at the screenshot in my earlier post you can see that the left screen functions normally, and that the system actually boots up. So the iMac screen just displays that it is only partially through the boot sequence. So I can sleep/wake from the external screen, which brings everything back to how one would expect.

Very odd!

Posted by: Rastafabi @DANgerous25 1) is there a way to avoid the need for sleep/wake Currently not. What you can try though is to sleep the display only. This can be done by setting up a hot corner in System Preferences for example. 2) how to uninstall Rastafabi's solution (for reference) I upgraded the guide with some instructions to do so. Thank you for your answers. Re 1, please could you explain what you mean? I don't understand your suggestion. Re 2, thank you, the uninstall by removing the eGPU.kext works perfectly. Today I used the updated nVidia web driver (378.05.05.05f02) to see if it would prevent the crashing problem I have on the iMac 5k using the eGPU.kext solution. Unfortunately it doesn't help. I also updated the web driver on my MacBook Pro 13" TB to see if it had the same problem, no problems (my laptop does eGPU using goalque's script). So there's still something wrong with the iMac 5k / kext solution. The whole machine crashes after a few mins usage in a 3D app whilst playing an iTunes video. Does anyone know how I can diagnose why the system crashed, from some kind of system logs or something? I can easily reproduce the problem, I just don't know how. Thanks very much, Dan.

Rastafabi April 21, 2017 1:45 pm

Here you are:

Remember that it's nor for sure that it works.

DANgerous25 April 21, 2017 7:22 pm

Ah I get what you mean now. It works, but it doesn't work on the login screen (it's no big deal). It's a nice suggestion though. If only it could be automated somehow?

Update on the crashing issue: I have a feeling it's nothing to do with the eGPU.kext method, I've done an overnight test and I've managed to keep my 3d app (Zwift) running all night. I believe the issue might be an Ant+ issue between my stationary bike and a software conflict with Garmin Express. I haven't proved it yet but I'm still working on it. I'm sure those things will be lost on most of you, but for those fitness bods out there you might know what I'm talking about.

Rastafabi April 22, 2017 3:15 am

The crashing are related to the NVIDIA drivers or the fact that it is an eGPU setup. (Mine is mostly stable but tends to crash if I do "excessive" [literally] Safari scrolling.) However there is nothing anyone in the forum can do something about. Additionally there may be other circumstances on your iMac which can result into kernel panics. However I've got no idea how to solve those as I do not know or use any of the software you mentioned.

EDIT:

Obsolete, see opening post

DANgerous25 April 22, 2017 4:06 am

You're a genius, Rastafabi! Using your scripts it's now almost perfect using an iMac 5k with an external monitor. The only real improvement would be if the sleep/wake could be avoided altogether or if your sleep/wake script could run before the initial login screen rather than after logging in. As is though, it's a minor inconvenience and one that I can say I will live with and continue with this setup.

As for the crashing, I'm pretty sure I've got a different hardware issue. About to do a test now and will report back later.

Super job, Rastafabi.

Rastafabi April 22, 2017 11:59 am

Would you try the new installer please?

DANgerous25 April 22, 2017 11:56 pm

The new installer seems to work, in that I have eGPU working. However the sleep/wake still doesn't happen before the initial login on system restart. Hence I still have the previous fix as a login item, to sleep/wake after initial login (of course meaning one has to login twice).

Is it possible that previous parts of the installation (before your handy installer package) are somehow preventing this one from working? If so, any suggestions for how to proceed?

Rastafabi April 23, 2017 9:03 pm

Finally it works!

kekemarc April 24, 2017 11:30 p

Rastafabi, thanks so much for this installer! It worked without a hiccup for me on my late-2012 15" MacBook Pro + Akitio Node and an EVGA 1080. Cinema 4D & Octane picked it up immediately, and there wasn't as much of a performance decrease as I was expecting due to the old TB1 port when compared to the same card in a PC.

Thanks for making the procedure completely painless

smooth_operator April 24, 2017 11:44 pm

Alright folks, another 5K iMac user here.

What setting should the Nvidia driver in System Preferences be set to? Should it be "use Nvidia driver" or "use OS X default driver"?

I'm also having a hard time getting the card to show as connected at all. I'm using an Akitio 2 enclosure. I can get it to show in the thunderbolt chain, and sometimes I can get an entry to show in the "graphics & displays" in system report, but it will just say "Nvidia" and "kext not loaded".

Any ideas?

I haven't done this in a couple years, but I used to do it all by hand editing the kexts, etc. I love that there are these nice installers now! However I have to say I didn't have this much trouble getting things to work reliably on this same iMac back then.

Oh, one more thing I forgot to ask. Should I be booting the Mac with the eGPU connected or disconnected?

DANgerous25 April 25, 2017 12:32 am

@Rastafabi, Sorry mate, haven't had a chance to test yet. Hopefully tonight.

@smooth_operator, what exactly is your system including os ver and external monitor? I will need to check tonight but I'm not sure if it does say there is a card in the system report, the real test is if your screen and egpu works. Btw yes you can boot macOS with egpu in.

jamesgrean April 25, 2017 12:42 am

Hi guys,

Sorry if this is a dumb Q - I am going to try this method as I cannot get my 2x 980TI to work on my 2011 iMac 10.12.4 using the automate-eGPU.sh script. Been trying for 2 days, it works once then never again (each time with fresh install, done this 3x now). So will try this.

But, as with the .sh script, do I need to run this twice for each GPU? With the script I have to run, -a, turn off one gpu, boot up, turn on the other, run again, then -a, shutdown, then boot up and turn both on mid way through boot loading.

With this method from Rastafabi, is the same procedure of twice needed?

At what point in the install should the eGPU(s) be one?

Thanks

James

Update, 2x980Ti via Rocketstor TB2 to iMac2011, same issue as the .sh script, namely, that the first time you run the installer and reboot, Mac comes back up with 2.980Ti detected. All subsequent boots it either doesn't boot (endlessly restarts itself mid way though loading MacOS) or it loads into OSX 10.12.4 with "Nvidia Chip Model" and Octane render does not accept this as a valid option for CUDA processing, says no GPUs found.

Since many reports of people using 10.12.4 with eGPUS, and specifically successes with 2 x 980TIs from other people, I don't know why this won't work for me.

Is there a specific time during OS loading that the cards need to be powered, with this method or with the .sh script?

As with the /sh script, after it works the first time, it never works again, even after uninstall/install. I have to restore my HDD from backup (clone) to try again, only to have it work once and then never again. Going slowly insane

ed_co April 25, 2017 4:41 am

Rastafabi, I think you didn't undersand what I said, maybe I explained it wrong. What I was trying to say, is HAVING an eGPU setup, why you could want just to have partial support for 3D apps, and not the whole support for everything... maybe having partial support it improves the performance of the 3D apps, and if not, why not having the whole thing!!

Rastafabi April 25, 2017 5:05 am

Posted by: jamesgrean […] 2x980Ti via Rocketstor TB2 […] For eGPU solutions with Multi-PCI cases you should try running goalques script with an -a option: /[PATH]/[TO]/automated-eGPU.sh -a Posted by: smooth_operator Alright folks, another 5K iMac user here. What setting should the Nvidia driver in System Preferences be set to? Should it be "use Nvidia driver" or "use OS X default driver"? I'm also having a hard time getting the card to show as connected at all. I'm using an Akitio 2 enclosure. I can get it to show in the thunderbolt chain, and sometimes I can get an entry to show in the "graphics & displays" in system report, but it will just say "Nvidia" and "kext not loaded". Any ideas? I haven't done this in a couple years, but I used to do it all by hand editing the kexts, etc. I love that there are these nice installers now! However I have to say I didn't have this much trouble getting things to work reliably on this same iMac back then. How are you powering the AKiTiO? Remember, that the original power supply is NOT compatible for eGPU purpose. You will need an 8-10A dedicated power supply for the box to provide 75W to the PCI port and an additional PSU for the GPU itself. You could also wire a PSU to provide power to the GPU and the AKiTiO PCI expansion box. Also set the driver-panel to use NVIDIA ones. Posted by: ed_co […] I think you didn't undersand what I said, maybe I explained it wrong. What I was trying to say, is HAVING an eGPU setup, why you could want just to have partial support for 3D apps, and not the whole support for everything... maybe having partial support it improves the performance of the 3D apps, and if not, why not having the whole thing!! Now I get it. I think you refer to my previous approach, back when I did not support display output. Well back when I have not been able to get display-out working, but wanted to be somehow update independent (OS and NVIDIA) anyway, so that it just works and I wouldn't have to run goalque's script again (thought it launches itself if needed if you like).

jamesgrean April 25, 2017 5:21 a

Yes, I have tried automate-egpu.sh that multiple times under Sierra with no luck to get it working - same result as your pkg, that it works once, and then any reboots after that it never works again, it either reboots endlessly (if eGPU is on and plugged in when booting iMac) or it boots (using a timing trick) but says Nvidia device, and is not detected as a proper card. I thought I had a successful installation with this pkg until the same happened.

Note this is not 2 GPUs in one enclosure, it's 2 x eGPU, one per enclosure, so 2 TB cables plugged into the iMac. They run off the one 1600w PSU so I can turn them on at the same time.

The weird thing is I had these working 100% of the time, using a timing trick (specific progress bar point when booting to Mac, I don't ever use WIN on this) under 10.10.5, but to use the newest Octane Render I need CUDA 8 etc so I have had to update. Now I can't get it to work using either Goalque's script or your package.

Rastafabi April 25, 2017 5:46 am

@jamesgrean: Actually I do not have any other idea. Mostly just the usual "debugging" test: booting with verbose and safe mode. You could also try daisy-chainig your PCI boxes for testing purpose. Posted by: DANgerous25 Posted by: Rastafabi Finally it works! Sorry mate, haven't had a chance to test yet. Hopefully tonight. @smooth_operator, what exactly is your system including os ver and external monitor? I will need to check tonight but I'm not sure if it does say there is a card in the system report, the real test is if your screen and egpu works. Btw yes you can boot macOS with egpu in. No problem! Thank you very much for your voluntary help!

jamesgrean April 25, 2017 6:32 am

Rastafabi, have you yourself ever had this working with more than one gpu? Just curious. More than one seems to be a rare case, though I have seen reports of it working, I have the feeling most of the development is done with a use case of only one eGPU. Just asking to seek verification of whether this could actually reliably work or not, or to help narrow down the problem, or if the other people I have seen using 2x or 3x GPU are fluke cases. I suspect something in Sierra must be to blame - as I said, I could get this working 100% of the time in 10.10.5 with my timing trick. I just do not know where to look!

Rastafabi April 25, 2017 7:02 am

Posted by: jamesgrean Rastafabi, have you yourself ever had this working with more than one gpu? Just curious. More than one seems to be a rare case, though I have seen reports of it working, I have the feeling most of the development is done with a use case of only one eGPU. No, I haven't, as I only own one.The reason the development "focuses" on this is rather a financial one I think. Me, I'm working on a 2012 13" entry-MacBook Pro and I purchased the eGPU (NVIDIA GTX 750Ti) for some basic CAD acceleration for my university work, as the internal one isn't even cable of running the required software properly. Just asking to seek verification of whether this could actually reliably work or not, or to help narrow down the problem, or if the other people I have seen using 2x or 3x GPU are fluke cases. I suspect something in Sierra must be to blame - as I said, I could get this working 100% of the time in 10.10.5 with my timing trick. I just do not know where to look! It "could" work reliable and there are variable support, that it does. But there are many factors which lead to possible issues. Certain software, the very specific firmware of your machine, or of the GPU itself (brand dependent), other external peripheral devices and so on.

jamesgrean April 25, 2017 7:16 am

Thanks for the response, appreciate it.

Yes, totally understand the financial commitment to GPUs. They are expensive!

I guess to me though it seems most users trying to get an eGPU going are wanting it for gaming rather than professional apps. More than 1 for gaming is not really necessary, but rendering and other pro apps, 1 is never enough. I am going to try yet another complete fresh install on a wiped drive now.

Rastafabi April 25, 2017 7:22 am

I couldn't think of a reason the NVIDIA driver gets deactivated, but you might want to try running this terminal command anyway: sudo nvram nvda_drv=1 reboot afterwards. If this does not help either please send the output of the command kextstat as an attachment. (While having my driver installed and the GPUs attached.)

jamesgrean April 25, 2017 7:47 am

Hmm, well, 1 of 2 things might have occurred just now. Either it's worked or I think it's worked... I removed all installation of the pkg and Nvidia, cleared PRAM, rebooted clean, installed Nvidia drivers, then without rebooting, installed the pgk as instructed.

Once the installer finished, I powered on 1 gpu (before rebooting) and allowed the machine to restart. It did so, without failing, and the 1x 980Ti shows in system information.

Then, tempting fate, hotplugged the 2nd GPU, and rebooted... the mac booted without failing and shows 2 980Tis. So, either

a) the sudo nvram command has worked, or

b) this is where I get to and the next reboot will fail, now that I have sucessfully had 2 GPUs detected. On Sierra, the past few days, this is as far as I have ever gotten, having 2 detected it then always fails the next reboot. I am leaning towards a) because it rebooted successfully after detecting the 1st 908Ti. Using the sh script, I would never be able to get full boot if a GPU was plugged in from the start, I would have to time it right. This booted 1st to 1 GPU and then rebooted to 2 GPUs without needing to time the switch-on of any of them. BUT

Now that they are running, I am not going to turn this machine off or reboot just yet! I have heaps of rendering to do, and will be proceeding until forced to reboot. However, I have saved the kextstat of 1 GPU and now 2 GPUs and if reboot fails again, I will save kextstat of any failure for comparison of all 3. I expect you'll hear back from me here in a few days! Until then, thankyou so much for the replies and comments, and best wishes to you.

DANgerous25 April 27, 2017 8:25 am

@Rastafabi, Sorry for the delay, I've finally tested this. Unfortunately it doesn't work for me, in that a) it doesn't do sleep/wake before login, although I think you mentioned somewhere it's not going to happen, 2) after initial login nothing happens unless I sleep wake manually.

In fact the solution I'm using is to put your earlier eGPU kext fix in the login items, so after logging in that does sleep/wake and after another login it's back in business.

Rastafabi April 27, 2017 1:39 pm

@DANgerous25

That is strange. Could you send me the output of the kextstat command and your iMac model identifier as a pm?

newish April 30, 2017 1:23 a

hi, great work Rastafabi! I have a few questions, if using Nvidia Pascal 10xx cards, is it required to install the web driver first before running the pkg, or after? Also, I'm on the late 2014 retina iMac, after installing the pkg and restarting, I too have to perform sleep + wake before it reaches my desktop.

kekemarc May 2, 2017 7:52 am

This is maybe a question that belongs in another thread but... Do any of you Cinema4D/Octane users out there have the GPU temperatures/usage % displayed in the live-viewer window? Mine are just two empty grey blocks next to the GPU name, which makes me wonder if my system isn't actually able to properly control the fans/temps for the card.

Rastafabi May 2, 2017 11:05 am

Posted by: newbish hi, great work Rastafabi! I have a few questions, if using Nvidia Pascal 10xx cards, is it required to install the web driver first before running the pkg, or after? should work either way Also, I'm on the late 2014 retina iMac, after installing the pkg and restarting, I too have to perform sleep + wake before it reaches my desktop. I'm currently investigating this. Posted by: kekemarc This is maybe a question that belongs in another thread but... Do any of you Cinema4D/Octane users out there have the GPU temperatures/usage % displayed in the live-viewer window? I haven't found a way to display those information either. However I think the same is valid if you run a PC-graphics-card in a Mac Pro internally, so it's "normal". Mine are just two empty grey blocks next to the GPU name, which makes me wonder if my system isn't actually able to properly control the fans/temps for the card. You are right, that the OS does not handles the GPU's powermanagement, however it's thermal control like fan speed, throttling and so on is handled by itself using it's BIOS.

kekemarc May 2, 2017 8:33 pm

Great to know, thanks! Do you use anything in particular to monitor GPU temps and usage?

Jeysimac May 4, 2017 10:45 am

I am very confused about the Imac 5K (late2015) issues. I am not a technical expert. What solution with full gaming/MacOS 10.12.4. with internal Monitor is there? I want to perform the LAMINAR X Plane 11 better. It is a WinLiMac-Multplatform. But my wish is to play on MacOS. I can by my Akitio Node in Germany for example. And i plan to buy the 1080ti. Help! Please!

Rastafabi May 4, 2017 10:55 am

You can do so, if you launch the game on the external screen and move it to the internal one. You might not be able to render the game in 5k resolution if the external monitor does not support it (either natively or virtually scaled). That depends on the way the game is written. It's important to note however, that some games do not support being moved to another display at all, or automatically switch to the GL renderer of the screen they are moved to. This is especially true for some games being ported with wine, wine lib or derivats. I already filled a bug report in wine but it's not going to be fixed as this theoretically is the supposed behaviour in macOS development guidelines, though non native game/application I know of works this way.

Jeysimac May 4, 2017 12:46 pm

Hi there, i am glad to have help. I don't need the full 5K for X plane 11. I have the REQ for X plane 11: CPU: Intel Core i5 6600K at 3.5 ghz or faster

Memory: 16-24 GB RAM or more

Video Card: a DirectX 12-capable video card from NVIDIA, AMD or Intel with at least 4 GB VRAM (GeForce GTX 1070 or better or similar from AMD) Supported Video Cards: NVIDIA: NVIDIA GeForce 420 or newer (600 or newer recommended)

AMD: AMD HD5000 or newer (HD7000 with GCN core or newer recommended)

Intel: Intel HD 2000 or newer (HD4000 or newer recommended) But in my practice the iMac needs much more than the M395X. It can play only lower-medium settings with only one Antialias in 2550 pix. The I CORE 7 is ok. 4K will be enough on the 5K intern Display (in the moment 4K are optical great for X Plane, but a DIASHOW, less than 19 fps). X Plane 11 allows a high number of Displays (perhaps see Specs on X-plane.com, but X plane 11, not 10). It allows all resolutions from 1 to 9K! What did you said about "move back to the internal"? Must i have an external Display on the table in any case? Then i buy a Wall-E-14inch-Monitor and hide him behind my iMac.

Rastafabi May 4, 2017 12:54 pm

Jep, that is how it currently works. You will need a second monitor either way. (The hdmi dongle trick won't work on iMac 5k [it might if you login blindly after boot, but it's not certain]) concering internal frame rate I would recommend setting the games resolution to 2560*1600 and see if it works for you. This specific resolution scales very well on iMac 5k as it's what the macs GUI actually renders to. It would be like non-5k 27" iMac resolution.

mattburrito May 4, 2017 1:39 pm

Hey everybody. Special thanks to Rastafabi for his work. An iMac 27" 5K user myself, I have been experiencing similar issues to other people on here. I am currently up and running, however I have to make sure my computer stays on because if it powers down or crashes, I have to reboot and try to plug in the Akitio via thunderbolt at the precise moment after the Apple logo comes up on the screen. If I connect moments too early or late, my NVIDIA GTX 1080 Ti is only identified as Nvidia Chipset. I started down this eGPU road because I need to use Octane inside of Cinema 4D for work. I will continue to stay up to date here and share any more experiences. Thank you again!

Jeysimac May 4, 2017 1:45 pm

The iMac works fine in x plane 11 with the lower-medium settings with 2550x1440. It is my standard setting in X plane 11. I will test it with 1600. And the dongle trick can't solve in the future? All Problems began with the Imac5K. I can't set my retired 2010/11 Imac27 as 2. Monitor on a 4000 USD Machine. I believe the performance is with a 1080ti and Thunderbolt 2 better than now, or not? By the way: Is there e new MacOS Firmware for the Akitio Node 400w? Or is another enclosure better of me?

Thank you, Mattburrito and Rastafabi. I see, i don't start this expensive adventure not in the moment. I am not sure, how is the reaction of the X plane 11-game, to move back in the intern iMac-Display. Can you use the F3 Key change Desktop 1 to 2? I must look in the X plane Community, too. But your frames with 1080 ti are ok? Have you a game too?

mattburrito May 4, 2017 4:17 pm

I do not game, but both displays behave normally when I have it working

Shittyjazz May 5, 2017 12:04 am

Hi, I've got this to work successfully on a 2015 15" MBP. I'm having a hard time with the 5K iMac.

iMac 5k:

1. Updated OS

2. Restarted in recovery mode to type "csrutil enable && reboot"

3. Installed Nvidia drivers

4. Ran Rastafabi’s eGPU Enabler.pkg.zip

5. The results are I can't even boot the machine with the Akitio Node plugged in. When it is unplugged the machine boots although I need to use the sleep method to log in and it's in a dumb resolution. Of course, when I plug in the Akito Node afterwards it just sees a generic Nvidia card, not the 1080.

6. I've added eGPU.kext into the system/library/extensions folder. The eGPU.kext iMac 5K display fix app doesn't open, I get this dialogue "The command exited with a non-zero status.". I'm guessing this app was just to add the kext file into the right place?

7. The results are when the Node is disconnected the iMac resolution is correct again, and doesn't require the sleep fix. Unfortunately when I connect the Node the computer will not start up. The screen remains off. This happens with and without a screen plugged into the Node.

8. Actually if I leave the iMac on long enough it eventually gives me a message saying "System extension cannot be used" for the eGPU.kext as it was installed improperly.

I've tried following this thread for the iMac but it's difficult to understand what the correct process is. Any help would be much appreciated.

Thanks

Jeysimac May 5, 2017 5:01 am

I am afraid the wish to play Games with IMac 5K+eGPU with the intern Monitor is not possible.

I have not the expertise, but Apple want to sell new Macs in late 2017 and is not interested about eGPU.

Shittyjazz May 5, 2017 5:47 am

I am trying to get a GPU installed solely as a render node. So, I don't require the screen to be driven, or an external monitor to be driven by the gfx card. It looked from the previous posts this was possible? Looking for Redshift rendering on an iMac 5k.

Jeysimac May 5, 2017 7:59 am

Redshift is fine. But i need full OpenGL Support and DIREKT12 for the x plane Application. In the moment the risk is me too high to screw in a fully functional iMac 5K.

mattburrito May 5, 2017 9:13 am

Shittyjazz, I was having similar issues. I ran the pkg and the monitor wasn't behaving properly and the Nvidia card was only being read as Nvidia Chipset. I decided to follow this line of Rastafabi's original solution on top of his pkg: Install my driver (eGPU.kext) using Kext Utility.app (drag'n'drop onto the app icon). My Akitio prevents my machine from booting up or shutting down so I unplugged it and rebooted it. Right after the chime and the Apple logo appears, I plug in the Akitio via thunderbolt. The computer powers on, and the internal monitor at first is black. After a few moments, it recognizes everything and powers on at normal resolution. System Profile confirms that the computer is properly recognizing the Nvidia card. So my question for you would be have you both installed the pkg and the .kext using the Kext Utility.app? Additionally, as silly as it sounds..I am pretty sure the timing trick is vital to getting it work as well.

Shittyjazz May 5, 2017 9:33 pm

Ah, thanks. That did the trick. Is there any future possibility we won't have to do this plug in while on the apple logo method? Or is it simply something dumb about the iMac?

DANgerous25 May 5, 2017 10:17 pm

Posted by: Shittyjazz Ah, thanks. That did the trick. Is there any future possibility we won't have to do this plug in while on the apple logo method? Or is it simply something dumb about the iMac? It's very strange that you guys have to do this plug in thing. I don't have that problem at all, my setup is almost natural,/native. Is there done way that we can compare configs that might help you? I am using late 2014 iMac 5k, using tb2->3 adapter to akitio node.

DANgerous25 May 6, 2017 12:19 am

Given that this is the only way I've found for this to work on iMac 5k, shouldn't it also be linked in the install guides?

Rastafabi May 6, 2017 2:50 am

Posted by: Shittyjazz I am trying to get a GPU installed solely as a render node. So, I don't require the screen to be driven, or an external monitor to be driven by the gfx card. It looked from the previous posts this was possible? Looking for Redshift rendering on an iMac 5k. If you need it for rendering only you will find an additional linked file at the end of my old guide (the lower part). This will prevent any iMac issues, but only offers CUDA, OpenCL and OpenGL acceleration if the application your using (I don't now about Redshift) supports "external" renderes (Ones which do not drive the monitor they are running on). The install procedure are the 5 steps from the old guide (requiring all previous installations to be removed - you can do it with the uninstalled included in the .pkg installer). (If you know what you do you can still use the old one without the external monitor support. - DO NOT install both.) @Shittyjazz & mattburrito: Regarding to hot plug-issue on boot affecting iMac 5k users you are currently out of luck... my solution does not feature a workaround for this. Goalque's script solution does, but does not feature iMac5k support... What you could try, though it might not work is running my .pkg installer following it's steps, or if you don't need monitor support refer, and afterwards run goalque's script like this: /[PATH]/[TO]/automate-eGPU.sh -a -skip-agdc -skip-web-driver Posted by: Jeysimac Thank you, Mattburrito and Rastafabi. I see, i don't start this expensive adventure not in the moment. I am not sure, how is the reaction of the X plane 11-game, to move back in the intern iMac-Display. Can you use the F3 Key change Desktop 1 to 2? I must look in the X plane Community, too. But your frames with 1080 ti are ok? Have you a game too? You can use the internal monitor for rendering a game. Check this guide. However with iMac 5k you either need a external monitor (you won't have a login screen else), login blindly or enable Apple FileVault hard drive encryption, as this moves the login to an earlier stage in the boot process.

Rastafabi

Posted by: DANgerous25 Posted by: Shittyjazz […] It's very strange that you guys have to do this plug in thing. I don't have that problem at all, my setup is almost natural,/native. Is there done way that we can compare configs that might help you? I am using late 2014 iMac 5k, using tb2->3 adapter to akitio node.

Your approch of using the TB3 adapter might be the reason it works for you, as this could delay initialisation automatically if it's not initialised during EFI stage.

Posted by: DANgerous25

Posted by: highpass […] Also while I'm at it, given that this is the only way I've found for this to work on iMac 5k, shouldn't it also be linked in the install guides?

The guide is already linked if you select "Installation software" at the top right of the website.

http://egpu.io/wp-content/uploads/wpforo/attachments/867/1321-IMG8168.PNG

philw May 6, 2017 9:08 am

Had great success whilst my iMac was in for a new screen at Apple with an Akitio Node and GTX 970 on my Macbook Pro 2014 (with Apple TTB2-TB3 adapter). GPU acceleration worked like a charm in my various renderers. Couldn't wait to get it plugged into my 5k 2015 iMac 27" and use it how I intended. I've followed all the updated steps in the first post with the enabler but my iMac now hangs with the Apple logo on boot and about 3/4 progress bar - even with no thunderbolt devices connected. Currently restoring from a Time Machine backup as I've got work to do.... any ideas on what I've done wrong? MacOS Sierra 10.12.4 installed. Many thanks!

DANgerous25 May 6, 2017 9:23 am

Hi philw - are you using an external screen? I'm assuming yes. When your progress bar appears to stop, you'll find that your external screen should work. If it isn't and it's connected to your eGPU, connect it instead to your iMac and reboot. Then you should see the completed apple logo/progress bar on the external screen, quickly followed by the login screen. If you then do sleep/wake, your iMac screen will be restored.

Try that, that should save you doing a system restore. Then we can try the next step to get the eGPU working.

philw May 6, 2017 12:09 pm Thank you. No screen connected - I do have one but it hadn't been hooked up yet since getting the iMac back from repair. Time machine restore all done so back to where I was... pondering my next move

Thanks DANgerous25 for that pointer... Just reinstalled everything - this time with my external display plugged in and the progress bar switched exactly like you said Not sure why it acted the way it did on the last attempt - but all good now! Many thanks..

DANgerous25 May 6, 2017 8:26 pm

@philw - glad you're up and running, welcome to the club! @all iMac users - I've been doing some testing offline under @Rastafabi's guidance, and one suggestion made that has now given my setup near-perfection is to change the "require password" threshold from "immediately" to "5 seconds (System Preferences -> Security & Privacy). This means that the sleep/wake (which is now automated in Rastafabi's solution) happens in a flash and doesn't require an additional login. So my system is working without any manual interventions as of now. If I power off and/or reboot then I have both my iMac screen working and my external monitor working (which is accelerated by the eGPU), I don't need to do anything other than log in normally. Super job Rastafabi!

SaturnV May 6, 2017 9:43 pm

Posted by: DANgerous25 @all iMac users - I've been doing some testing offline under @Rastafabi's guidance, and one suggestion made that has now given my setup near-perfection is to change the "require password" threshold from "immediately" to "5 seconds (System Preferences -> Security & Privacy). This means that the sleep/wake (which is now automated in Rastafabi's solution) happens in a flash and doesn't require an additional login. So my system is working without any manual interventions as of now. If I power off and/or reboot then I have both my iMac screen working and my external monitor working (which is accelerated by the eGPU), I don't need to do anything other than log in normally. Super job Rastafabi! Most excellent! Refresh my memory... are you running with filevault enabled? Curious if the password delay would help/matter with that.

DANgerous25 May 6, 2017 9:45 pm

@Saturn V: Nope, I'm not running FileVault, and I've no idea if helps/hinders matters if it is on.

SaturnV May 6, 2017 11:05 pm

Posted by: DANgerous25 @Saturn V: Nope, I'm not running FileVault, and I've no idea if helps/hinders matters if it is on. Interesting to know this as I'm getting ready to try this. I decided to wait until I get the proper adapters to test with my external monitor on Monday. @Rastafabi , does filevault enabled make a difference here? Can the script still run the sleep/wake function?

Rastafabi May 7, 2017 2:21 am

iMac 5k only: Having FileVault enabled helps insofar that you won't need an external display to login while having a login GUI anyway. Case 1 - no FileVault To see the login screen you need an external display. However you could log in blindly or enable automatic user login for your account (both not recommended). Explanation: to allow monitor out speed some system files are patched. The patches result in the iMac internal screen being disabled. This can be fixed by reinitialisation, which (due to my testing) however is only possible after user login. Case 2 - FileVault enabled With FileVault enabled the user login will be displayed earlier during boot. It is available on the internal screen even if you have the eGPU enabled. Explanation: Whe login takes place before the OS boots up, using the underlying EFI system. At this stage the iMac's internal screen still is unaffected by the eGPU patches and thus remains functional as usual. I would always recommend enabling FileVault, as it protects your files by encryption. This is never bad. Also it works instant and seemlessly, so that you won't have any lags related to encryption times while using the OS (in my experience). Important note for iMac5k eGPU users: Some of the patches injected are not dependent on the actual presence of the eGPU. This means, that even if the eGPU is disconnected the login screen is not available. My next release will make sure that the monitor is reinitialised anyway, but still in that case the only way to get a login screen would be enabling FileVault.

Username May 7, 2017 6:31 am

I have a FileVault enabled Mac mini with one monitor connected to the egpu. When i ran the GTX 970 both cold starts and reboots worked perfectly displaying the FV login window on boot. When I later upgraded to the 1070 the login screen is not displayed during FV boot. For reboots I use the server/headless command authrestart instead, which works like a charm. The mac is caching the password on reboot and security is kept and you get passed the non visible login window. sudo fdesetup authrestart My guess is that apple have drivers for 970 in efi boot sequence but not pascal support as they don't yet have any hardware supporting that yet

Rastafabi May 9, 2017 4:05 pm

Guide updated! Including minor driver update.

SaturnV May 9, 2017 6:58 pm

Posted by: Rastafabi Guide updated! Including minor driver update. Great! How does one 'update' to the newest version? Do we need to uninstall first?

DANgerous25 May 10, 2017 8:30 am

Hi Rastafi, both myself and SaturnV have a strange resolution issue (see here). Seems that after installing eGPU enabler, the iMac screen thinks it is a 3840 x 2160 display instead of 5120 x 2880. Any ideas?

Rastafabi May 10, 2017 9:27 am

Posted by: DANgerous25 Hi Rastafi, both myself and SaturnV have a strange resolution issue (see here). Seems that after installing eGPU enabler, the iMac screen thinks it is a 3840 x 2160 display instead of 5120 x 2880. Any ideas? This means that in the end my package introduces the exact same problem to the iMac like goalque's script does. Like he already suspected, before it was said, that the iMac features nativ resolution. To be sure all patches are applied properly you should open System Profiler and search for AppleGraphicsDevicePolicy under the Software/Extension section, and check wether the system recognises this driver as being signed. If it does so, there's nothing I can currently do, but to clarify that also my solution only features limited iMac 5k support. If that is the case you can only get either external monitor support or full internal resolution (with the eGPU only being available to certain supported applications). You might also be able to apply the 5120*2880 resolution manually using this tool, though I doubt it will work. Last thing to try to get back internal 5k and external monitor is this script (CoreDisplay-patcher.command). Use it at your own risk.

DANgerous25 May 10, 2017 9:40 am

Thanks @Rastafabi. Below is a screenshot of what I think you are suggesting I look at. I assume this means it's the end of the road? Actually it doesn't matter for me, because I have the resolutions that I need/want. I should note that @goalque's script didn't achieve this although as you allude to the symptoms are similar, the set of possible resolutions was different.

I'll have a look at that script, I've had a cursory look and can't say I understand what it does - or more importantly how to back out if it doesn't work!

https://egpu.io/wp-content/uploads/wpforo/attachments/643/1390-policy.png

Thanks as always. I've updated the guide with this potential limitation already.

Rastafabi May 10, 2017 9:50 am

Have you/are you willing to try the suggestions below the line of my last post? The similarity is that the maximimum resolution is reduced to 4K. As my installer does not modify the files physically but injects the properties instead they appear to be unchanged when read by the system, thus allowing the default system scaling options.

DANgerous25 May 10, 2017 9:54 am

Yes I am, but I want to ensure that I can get out of it if it breaks. My wife has cleverly disconnected and hidden my Time Machine (which is my absolute last option) so I'm trying to find it.

Do you think though, that either of these solutions will change how MacOS reports the screen resolution in the display properties? I ask because I can use SwitchResX to change the resolution to whatever I want, including 5K. But switching it to the 5K, it just doesn't look as sharp - but it's hard to compare as I don't have anything to compare it to.

SaturnV May 10, 2017 10:02 am

Posted by: DANgerous25 I ask because I can use SwitchResX to change the resolution to whatever I want, including 5K. But switching it to the 5K, it just doesn't look as sharp - but it's hard to compare as I don't have anything to compare it to. I can confirm this as well, along with using Disable Monitor, same result. The resulting resolution is not 'retina' as in it's not as crisp on the edges around icons in the dock for instance. As I'm sure you know, proper Retina display is a double of a resolution (the DPI) while retaining the same size, i.e. 2560 x 1440 will appear to have the sharpness of 5120 x 2880, but not nearly as small on screen. 2560 x 1440 is most definitely possible and does run OK, it just doesn't have that last 25% of sharpness to it.

goalque May 10, 2017 10:02 am

@DANgerous25: you confirmed full 5K resolution earlier by Rastafabi's method: What is changed?

Rastafabi May 10, 2017 10:09 am

@DANgerous25, Saturn V As DisableMonitor is somehow similar to SwitchResX, I'm not surprised that it does not work either. The other method linked however could make a difference. @goalque I think he was fouled by the fact that the 2560*1440 scaled resolution was available using my method, whereas seemingly it's not using your script. (Maybe due to changes to the Info.plist?)

DANgerous25 May 10, 2017 10:12 am

Posted by: goalque @DANgerous25: you confirmed full 5K resolution earlier by Rastafabi's method: What is changed? Hi @goalque, it's quite possible I was mistaken (most likely), unless it was full 5k but was then changed somehow by a subsequent update. As I don't actually use that resolution it's quite possible I didn't notice. However, the resolution set using eGPU enabler as it appears right now appears to give a very close set of resolution options (which appear to be "retina-like" excluding the 5k one, whereas using your script the equivalent 2560 x 1440 appeared fuzzy and was not usable on the iMac screen.

@Saturn V, what's interesting is that you and I have slightly different results. If you look at your screenshot in this post compared to mine in the post below, the resolution "looks like" in the second from left option on your screen is completely different to mine. Also, above you mention that your 2560*1440 resolution doesn't look sharp - I don't see this. Maybe it's my eye sight, but it looks damn near perfect to me. However when I was testing with automate-EGPU some time back, the 2560*1440 resolution (achievable after the similar sleep/wake) was very fuzzy indeed, so much so that I'm sure that nobody with a Retina screen would accept.

SaturnV May 10, 2017 10:31 am

Posted by: DANgerous25 @Saturn V, what's interesting is that you and I have slightly different results. If you look at your screenshot in this post compared to mine in the post below, the resolution "looks like" in the second from left option on your screen is completely different to mine. The second from the left is 1920 x 1080, middle is 2560 x 1440, and the 4th one over, the new 'default', is 3008 x 1692. I didn't do a good job of taking that screenshot. Is yours also 1920 x 1080 in the second from the left?

goalque May 10, 2017 2:09 pm

Posted by: DANgerous25 Hi @goalque, it's quite possible I was mistaken (most likely), unless it was full 5k but was then changed somehow by a subsequent update. As I don't actually use that resolution it's quite possible I didn't notice. However, the resolution set using eGPU enabler as it appears right now appears to give a very close set of resolution options (which appear to be "retina-like" excluding the 5k one, whereas using your script the equivalent 2560 x 1440 appeared fuzzy and was not usable on the iMac screen. Very possible. I've been reported that after awaken from sleep (with the script), the resolution is 4K and no word about "fuzzy". Unfortunately, I don't have possibility to test the 5K iMac. Did you try SMC & NVRAM reset? Very likely WindowServer's default values became incorrect. -skip-agdc option should keep the native 5K resolution, without eGPU screen output. Note that "About this Mac" or the system profiler don't tell the current resolution as many people think. It is the maximum possible resolution. In other words, panel's native resolution. Not easy to distinguish between actual and drawable resolutions, especially if working with the 5K panel, HiDPI modes and system preferences says "looks like". Shift + Cmd + 4 is a shortcut to see the largest selectable area by mouse, but how to determine the real active resolution behind it, drawable by Core Graphics framework? /usr/libexec/PlistBuddy -c "Print :DisplayAnyUserSets:0:0:Mode:kCGDisplayPixelsWide" /Library/Preferences/com.apple.windowserver.plist /usr/libexec/PlistBuddy -c "Print :DisplayAnyUserSets:0:0:Mode:kCGDisplayPixelsHigh" /Library/Preferences/com.apple.windowserver.plist In HiDPI mode, the actual (selectable) resolution is smaller: /usr/libexec/PlistBuddy -c "Print :DisplayAnyUserSets:0:0:Mode:Width" /Library/Preferences/com.apple.windowserver.plist /usr/libexec/PlistBuddy -c "Print :DisplayAnyUserSets:0:0:Mode:Height" /Library/Preferences/com.apple.windowserver.plist WindowServer keeps these values up to date.

ikir May 11, 2017 2:08 am

@rastafabi thanks for your contribution and work! Does anyone tried it with unsupported Thunder 3?

goalque May 11, 2017 2:36 am

Thunder3 will not work reliably due to the old firmware and TI82 chip. By the way, Bizon's installer contains traces of KhaosT's tb3-enabler.py They copy everything.

Rastafabi May 11, 2017 12:04 pm

@ikir: Your welcome! @goalque: Let's see how much time passes until they come up with a codeless kext approach...

MFigueiredo May 12, 2017 8:00 am

Hey everyone, I'm trying using a mini 1080 from ZOTAC on my iMac 5k (late 14)

I tried both methods, the script and the installer from Rastafabi. But somehow the iMac doenst recognize the GPU.

can someone help me out?

thanks

EDIT: I'm on Sierra now, with the latest Nvidia web driver. Still the same issue, recognize it as Display.

Tried the external monitor directly from the eGpu and nothing but black screen

Rastafabi May 12, 2017 9:38 am

@MFigueiredo, remember that in macOS the eGPU is not hot plug-able. You need to connect it and turn it on before booting macOS.

You also need to leave SIP disabled (in car you reenabled it).

MFigueiredo May 12, 2017 9:47 am Thanks for replying, yeah I know, I followed the steps as you said. csrutil disable && reboot. Install NWB and eGpu enabler, turn off, plug the external monitor to the eGpu and connect it to the iMac, log in from the external monitor (from mini DisplayPort directly to the iMac since from the eGpu its black screen). Also did PRAM and NVRAM reset, same result...

rastafabi May 12, 2017 9:51 am

Try the following: Shut down your iMac

Disconnect everything

Turn on the iMac while holding the option key (alt)

Plug in your eGPU (and monitor)

boot, selecting your system boot drive

chris19o4 May 12, 2017 9:54 am

Hey first of all thank you for your great work here! I'm trying to set up my Akitio Node and a GTX 1080TI together with my mid 2014 Macbook with the built in 750 GPU to use it for deep learning purposes. I've already read that this setup seems to be one of the most problematic ones but wanted to give it a go anyway. So I followed the installation process, but when I boot the Macbook with the plugged in Node I only get a black screen and nothing further happens. Any idea on what could be wrong? Cheers Chris Rastafabi May 12, 2017 9:58 am From what you wrote I suspect you don't need to connect a monitor to your eGPU. Reinstall my package and unselect Monitor Out in the Costumisation section. Else try the same as mentioned in my

MFigueiredo May 12, 2017 10:26 am

thank you for the help Rasta, but still didn't make it happen. at least now it recognizes as a GPU but only as a "Nvidia Chip Model" and when it booted some weird artifacts happened like digital glitches Any idea? what could it be?

goalque May 12, 2017 10:47 am

Posted by: MFigueiredo I'm on Sierra now, with the latest Nvidia web driver. Still the same issue, recognize it as Display. Tried the external monitor directly from the eGpu and nothing but black screen. What build version exactly? 1080 requires macOS 10.12.4. To troubleshoot, type "log show --last 10m | grep NVDA"

Username May 12, 2017 10:56 am

What power supply do you use to feed the case and card? The 1080 is a hungry card.

MFigueiredo May 12, 2017 11:57 am

its the mini 1080 from zotac it needs 180w I have a Dell 220 connected directly to it.

chris19o4 May 12, 2017 1:35 pm

Thanks for your quick response Rastafabi! That didn't help. But what helped is to plug in the Thunderbolt2 right after the apple logo shows up, but before the loading sequence appears. Everything works perfectly now. Cheers

mattburrito May 12, 2017 2:12 pm

Posted by: chris19o4 Thanks for your quick response Rastafabi! That didn't help. But what helped is to plug in the Thunderbolt2 right after the apple logo shows up, but before the loading sequence appears. Everything works perfectly now. Cheers Im pretty sure that this is the only way to get it to work if you are not accelerating your monitor and instead only plugging the eGPU into the iMac, and not an external display. I have had the computer crash overnight once it goes to sleep and it doesn't shut down completely because the eGPU is connected. I will unplug, reboot, and do the Apple logo timing trick. I have grown to accept this for now, and have installed a utility called Caffeine to keep the computer awake and avoid a sleep session followed by a crash. https://caffeine.en.softonic.com/mac

Rastafabi May 16, 2017 8:25 am

10.12.5 compatibility confirmed! Just upgrade the OS using the App Store and download the latest NVIDIA drivers using it's Preference Pane in System Preferences. No need to redownload or reinstall my driver. It's basically Plug and Play.

nando4> pages 7-8 lost unfortunately [till mid-July]