Jump to content

Which TB2 Macbooks allow monitors to be used on NVidia eGPUs in OSX?


MVC

Recommended Posts

So it sounds like my 2014 MacBook Pro (retina) Iris Pro 5100 is one of the affected ones, and not easily "eGPU'able". That said, just confirming that I'm seeing similar behaviors as y'all in that in OSX it shows everything as being good (drivers showing up and detected, System Info showing the right card info, etc), just no external display capabilities. So, @goalque did you end up patching those 2 files using the patcher you linked earlier (https://github.com/Piker-Alpha/AppleIntelFramebufferAzul.sh)? I couldn't tell if you ended up using that or just ripped the correct kexts from older installs of mavericks, etc. If you did get the kexts and just replaced them, could you share them with us? I'm unable to reinstall OSX on my laptop as it is a work laptop, and I work remote (security policies and such our IT staff would have to reinstall, etc).

Thanks guys/gals, for y'all tackling these complicated issues with eGPU setups!

Link to comment
Share on other sites

So it sounds like my 2014 MacBook Pro (retina) Iris Pro 5100 is one of the affected ones, and not easily "eGPU'able". That said, just confirming that I'm seeing similar behaviors as y'all in that in OSX it shows everything as being good (drivers showing up and detected, System Info showing the right card info, etc), just no external display capabilities. So, @goalque did you end up patching those 2 files using the patcher you linked earlier (https://github.com/Piker-Alpha/AppleIntelFramebufferAzul.sh)? I couldn't tell if you ended up using that or just ripped the correct kexts from older installs of mavericks, etc. If you did get the kexts and just replaced them, could you share them with us? I'm unable to reinstall OSX on my laptop as it is a work laptop, and I work remote (security policies and such our IT staff would have to reinstall, etc).

Thanks guys/gals, for y'all tackling these complicated issues with eGPU setups!

At the moment I am running the correct kexts, because cannot work with the flickering and sluggish retina screen. What I did earlier was a straight copy-paste from the build 13F1066 of Mavericks’s kexts. Done that twice so the process is repeatable, but at this stage my method is not recommended as there is high risk that you have to recover the Mac from Time Machine backup.

The patcher which I linked may only give us a clue of where to start searching binary data block for the Intel Iris Pro 5200 Graphics (Codename Haswell GT3e) and its properties. The script seems to work and I have found some blocks by using a Hex editor. Finding out the switch for Nvidia eGPU screen output means likely numerous reboots and errors.

I have Apple’s developer account and we know that there is “Don’t Steal Mac OS X”.kext in the same Extensions folder. I would like to share the Mavericks kexts, but I’m afraid I can’t do that, might be also against the forum rules… but I am trustful that one day there is a tool for this :)

Link to comment
Share on other sites

  • 3 weeks later...

We should try to ask Intel to publish they own drivers for Intel HD Graphics for OS X, since modified drivers from Apple forcing to use only the integrated graphics.

For example, what official Intel Driver allows me on Windows is that I didn't even connect my monitor to eGPU, all games rendered by eGPU but signal to monitor go from Mac Mini’s HDMI.

Link to comment
Share on other sites

We should try to ask Intel to publish they own drivers for Intel HD Graphics for OS X, since modified drivers from Apple forcing to use only the integrated graphics.

For example, what official Intel Driver allows me on Windows is that I didn't even connect my monitor to eGPU, all games rendered by eGPU but signal to monitor go from Mac Mini’s HDMI.

That's not the Intel drivers. That's NVidia Optimus feature using the eGPU to render the image then display it to the iGPU connected LCD. Linux has 'Bumblebee' to do something similar. AFAIK, OSX has nothing like that.

You'd get better performance attaching the HDMI cable to the eGPU directly since then then the image data goes straight out. Connecting it to the HDMI port on the mac mini means some of your TB1 link needs to carry the image data from the eGPU back to the Mac mini for display out via the iGPU.

  • Thumbs Up 1
Link to comment
Share on other sites

Hey everyone, I have found a few people being unpleasantly surprised by specific recent Macs not working out for them as eGPU.

I would like to make this thread more useful so that people know which machines can be made to work, and which currently can not.

Coincidentally, every TB2 Mac I have recently purchased has trouble. The nMP 2013 has been most problematic, I can enable display output in OS X but Windows has remained troublesome.

I believe that TB1 Macs were much easier and as far as I know there aren't "Not workable" models. So this thread will concentrate on Nvidia cards used in TB2 Macs.

Please help me make the list in the lead post as accurate as possible. I notice that we don't have any iMacs listed either way. I would also be thrilled to find another user with a nMP trying either OS.

Link to comment
Share on other sites

  • 2 weeks later...

So my recently bought 2015 13" rMBP which I am planning to use with AKiTiO Thunder2 PCIe Box and GTX Titan will not work on both OSX and Windows most likely?

After first investigation of this forum some time ago, I assumed that I will be save with combination of rMBP + AKiTiO Thunder2 PCIe Box + GTX 7xx series graphics card at least running Windows if not OSX over external monitor connected to eGPU…

Thanks in advance and sorry for my bad English.

Link to comment
Share on other sites

I thought Nando4 linked to someone with that machine who had partial success. If you haven't bought the pieces yet maybe wait and see what comes up here. One of my worries is that results from others can really only be trusted in the "positive" cases. Ideally we would have a trusted source of the modded files (or be certain the script works) then at least we could rule out operator error on the software mods.

Between the kexts, running in dev mode, the risers, the powering of cards and akitio, and even the timing of WHEN to plug in TB cable there are so many places to screw up.

So when someone says a specific machine doesn't work, take it with a grain of salt until a few others have verified.On the other hand, if someone says "it works" I think you can usually trust them not to be hallucinating.

  • Thumbs Up 1
Link to comment
Share on other sites

Maybe it's me, but I'm still finding it difficult to find out how supported the 2014 rMBP 13" with Iris Pro 5100 graphics is for my specific potential setup.

I have a GTX 660 Ti, which is a Kepler card and want to use three monitors; one connected via DP, one via DVI, and one via HDMI, all directly to the graphics card. The AKiTiO thunder2 PCIe box is what most seem to use, and since I've got an nVidia card there certainly aren't any AMD incompatibility issues…

Does anybody know whether this particular setup could work with Yosemite? I don't plan to use the retina screen when the eGPU is active.

Everyone in these threads seems to have newer graphics cards, though from what I can gather is that the 2014 rMBP is on some kind of blacklist and needs old Mavericks kexts? Has anyone had any success with a similar setup?

Thanks in advance!

Link to comment
Share on other sites

Maybe it's me, but I'm still finding it difficult to find out how supported the 2014 rMBP 13" with Iris Pro 5100 graphics is for my specific potential setup.

I have a GTX 660 Ti, which is a Kepler card and want to use three monitors; one connected via DP, one via DVI, and one via HDMI, all directly to the graphics card. The AKiTiO thunder2 PCIe box is what most seem to use, and since I've got an nVidia card there certainly aren't any AMD incompatibility issues…

Does anybody know whether this particular setup could work with Yosemite? I don't plan to use the retina screen when the eGPU is active.

Everyone in these threads seems to have newer graphics cards, though from what I can gather is that the 2014 rMBP is on some kind of blacklist and needs old Mavericks kexts? Has anyone had any success with a similar setup?

Thanks in advance!

There is a typo; 2014 rMBP 13” has a Iris 5100. Iris Pro is 5200. I can confirm that the Late 2013 13” rMBP with exactly the same iGPU allows Kepler/Maxwell Nvidia screen output, so I wouldn’t see a problem in Yosemite, but I am not 100% sure. And I haven't tried three monitors.

Interesting is that the 2014 Mac mini with the same Iris graphics doesn’t allow Nvidia eGPU screen output. Disabling the integrated graphics gives me accelerated external screen, and the internal pixels are rendered by default EFI (I think) with minimal VRAM. I am able to get also the AppleIntelHD5000Graphics.kext loaded to extensions list, but without internal screen acceleration. Apple has changed the frame buffer layout and size significantly, it’s not anymore 128 bytes. Much bigger in Yosemite. Thus far using the same frame buffer block, single byte or the whole block from the latest Mavericks kext, won’t enable Nvidia eGPU screen output. The switch is somewhere else, or I am editing the wrong block. I found the Iris, but not Iris Pro. Anyone else with hex editing skills out there?

I am very alone with this issue. I am using portable Samsung SSD T1 250GB, which is very handy when I modify the binary data.

  • Thumbs Up 1
Link to comment
Share on other sites

There is a typo; 2014 rMBP 13” has a Iris 5100. Iris Pro is 5200. I can confirm that the Late 2013 13” rMBP with exactly the same iGPU allows Kepler/Maxwell Nvidia screen output, so I wouldn’t see a problem in Yosemite, but I am not 100% sure. And I haven't tried three monitors.

Aha, that must've been what was confusing me. Thanks for clearing that up!

Unfortunately I don't have any hex editing skills, so I won't be of much help in that regard.

Link to comment
Share on other sites

I have a solution to get display output from nvidia (some amds work too) egpu OSX, work with any mac i tried (not much tho, mac mini 2014 (base model) and nMP)

But not willing to share it for free. Think 20$ per user would be fine ?

As soon as I figure a way to share it, Will post somewhere.

----

<A HREF=http://i.imgur.com/BM167tA.png><img width=800 src=http://i.imgur.com/BM167tA.png></A>

I have a way to get most of TB macs to give output on egpu without any issues.

Still thinking of best way to release it and get myself payed a bit for this.

A little system modification makes card work just like it does in mac pro, provided you have cuda already working.

Here, with an efi for card, it shows bootscreen also, but bootscreen isn't critical for this.

  • Thumbs Up 1
Link to comment
Share on other sites

I was reading netkas blog since years, because he was one the guys (or THE guy) to push GPUs for Macs. And since the flashing knowledge for e.g. the 5870 is public… I still had hope to bring the eGPU community forward.

  • Thumbs Up 1
Link to comment
Share on other sites

What we have found is that there are 2 components to have use of eGPU in OSX with Nvidia cards.

An eEFI on the card can punch through at boot and give screen output on AMD or Nvidia cards right from boot. Just using an eEFI will get you one screen with an Nvidia card.

With some additional mods to system files, you can enable more screens. Or if you can live without the boot screens doing the system mods can enable screen output.

The mods aren't like existing mods in that they have to be specific for each individual machine and will need to be updated when OS updates happen. Oddly, it isn't the kext that goalque was finding some success with.

So while MVC will be selling card & mods for best possible setup, Netkas can put together a driver package that enables multiple display output for OSX on Nvidia cards TODAY. Won't give you boot screens or alter what you do for Windows but does allow TB2 Macs to run displays via eGPU, something that has stymied many and held back eGPUs for awhile.

Is result of investment of time and money and weeks of tedious testing. Well worth getting the GPU genius to write a personalized driver mod for your machine.

  • Thumbs Up 2
Link to comment
Share on other sites

Very interessting. Is the output related to a specific type of port or can I use any DVI, DP, HDMI?

Any port, I told you it works like in classic mac pro. multiple displays as well.

btw. I was playing egpu with osx much earlier, about 3 years ago, vidock, express-card slot, hackybook, was able to get it working even back then.

Link to comment
Share on other sites

No need to pay that $20. I was very close the solution as I showed the screenshots. But I cannot stop people’s rush, exposing your Mac hardware serial numbers. I understand that they are doing business, but I believe more in team spirit and open discussion. If you had a corporate Mac, their security policy would never allow this kind of installation process. Not saying that I wouldn’t trust, but I just prefer open source and documented apps.

It’s indeed AppleIntelAzulController and its child dependencies, more specifically AppleGraphicsDevicePolicy.kext. As I compared the Mavericks builds 13F34 and 13F1066, the previous had AppleGraphicsDevicePolicy=2 but the value was 0 in 13F1066.

- First, I was able to get the Nvidia eGPU screen output in 13F34 Mavericks without the security update by replacing two kext from the 13F1066, getting also internal screen acceleration.

- As I own the Late 2013 13” rMBP Iris, which is one of the supported Macs, I realized that its board-id “Mac-189A3D4F975D5FFC” was included in the Info.plist of AppleGraphicsDevicePolicy.kext, which was dependent on the AppleIntelAzulController.

post-28870-14495000263893_thumb.png

15” 2014 rMBP board id was not there, so I added it:

sudo /usr/libexec/PlistBuddy -c "Add :IOKitPersonalities:AppleGraphicsDevicePolicy:ConfigMap:Mac-3CBD00234E554E41 string none" /System/Library/Extensions/AppleGraphicsControl.kext/Contents/PlugIns/AppleGraphicsDevicePolicy.kext/Contents/Info.plist

And the magic is done. Simple. It works in older Mavericks (Kepler cards) and Yosemite 10.10.3 (Maxwell cards). The only tool you need is the Terminal app, for detecting the card and also for getting Nvidia eGPU screen output with multi display support. The picture below shows a GTX 780 running three monitors. U28D590 has a dual screen feature, so the monitor is detected as two if you use both HDMI and DP interfaces. A reference GTX 980 also worked, but it requires the web driver of course.

post-28870-14495000264078_thumb.png

After some googling, I found these:

https://pikeralpha.wordpress.com/2014/05/01/os-x-mavericks-10-9-3-build-13d55-seeded/

Multiple GPUs on unsupported Mac Pro | Michael Kuron's Blog

So this is not actually a new thing.

Link to comment
Share on other sites

It has NOTHING WHATSOEVER TO DO WITH APPLE INTEL AZUR.........the one he was sure was the answer....

The “miracle” happened during the last evening and night, I couldn’t much sleep. Bryanshock is aware of it, we had private conversation and I sent him the part of my ioreg content, a moment after those board-ids rang the bell.

My first finding happened 11.04.2015:

http://forum.techinferno.com/mac-os-x-discussion/8619-tb2-macbooks-allow-monitors-used-nvidia-egpus-osx-3.html#post129287

The second discovery happened with the 2014 Mac mini 24.5.2015:

http://forum.techinferno.com/mac-os-x-discussion/9998-eefi-progress-mac-egpus-3.html#post134084

And then the final breakthrough. I don't take any credit of it.

I have used months in examining this, I have tried to reverse engineer AKiTiO + AMD R9 instability at the same time, as a hobby. I like puzzles. This forum is the only place where I have an account regarding Macs / eGPU discussion. If you have followed me from the beginning of the AKiTiO main thread, you know my goals.

The key was to compare ioreg output between two Mavericks builds (13F34 and 13F1066) when the eGPU was attached. Netkas gave me the hint on the tray - a word: ioreg, also Bryanshock mentioned it, so I tracked down the path:

This was result of three different information sources: you, netkas, bryanshock and me. I combined the clues. Please see the attached picture, AppleIntelAzulController is there.

post-28870-14495000265111_thumb.png

Link to comment
Share on other sites

Thread under admin review.

A heads up message to be deleted within 24 hours.

This thread is now reopened after impartial moderater/admin review.

Members in an IP dispute have been messaged privated.

Several posts and their replies in this thread were deleted that were found to breach these rules:

- remain on-topic

- avoid accusations

- avoid advertising. The TechInferno rules regarding advertising being:

Advertising

* Advertising for a product, website or any other commercial interest is prohibited.

* If you wish to advertise on Tech|Inferno, contact us for advertising space and fees.

* Violation of our advertising rules will result in an infraction. Further violations will result in account suspension.

No infractions have been issued so far.

However, I won't hesitate to issue infractions should further violations occur. That's to ensure the thread remains on-topic and respectful to our members.

It's hoped we can learn and move on :)

Link to comment
Share on other sites

Since goalque has claimed that contacting our customer to get inside info was not important to his ultimate discovery, I ask that his requests and what he got be available for all to see.

He jumped line, and should at the very least own up to it.

It would seem that the truth has been removed from this thread.

Pity.

Link to comment
Share on other sites

I announced to Nando that all of my private messaging can be opened and reviewed by impartial Admin if necessary. I haven’t tried reverse engineer MVC’s or netkas work.

The ioreg comparison between two Mavericks builds showed up as big difference blocks under AppleIntelAzulController. @braynshock never sent me any blocks of code or ioreg contents, he never mentioned me about board-ids. Instead, I sent him the ioreg comparison result block of Mavericks builds. TextWrangler painted the AppleGraphicsDevicePolicy keyword. Everyone can repeat this without any additional software.

1) Install Mavericks 13F34, take ioreg output with the eGPU plugged (GTX 780)

2) Install Mavericks 13F1066, take ioreg output with the eGPU plugged (GTX 780)

-> some of the contents may be changed by Apple after I took the backup of /Extensions folder.

3) Compare

I don’t take any credit as said. Just a thought making a free and open source script/objective-c app which is based on my earlier Nvidia / AMD implementations IF allowed. They are simply terminal commands. @netkas ioreg command absolutely deserves valuable mention, it gave me the hunch and association. Also you, @MVC, I respect the following article:

Suddenly it's 1984 - Nvidia 4K 60 Hz support is there, Apple turned it off | MacRumors Forums

And big thanks to @braynshock, he apparently referred to above article in his last private message, no direct link was given or mention about board-ids.

I put these pieces of information together in my mind. Yet, because Mavericks build 13F1066 doesn’t include the white listed board-id of a Mid 2014 15" rMBP Iris Pro in the Info.plist of AppleGraphicsDevicePolicy.kext (Info.plist is identical to 13F34), a general solution without adding board-id, skipping policy checks should be possible in theory.

All the kexts are copyrighted by Apple. Furthermore, there is one which says the following:

“The purpose of this Apple software is to protect Apple copyrighted

materials from unauthorized copying and use. You may not copy, modify,

reverse engineer, publicly display, publicly perform, sublicense,

transfer or redistribute this software, in whole or in part. If you have

obtained a copy of this Apple software and do not have a valid license

from Apple to use it, please immediately destroy or delete it

from your computer.

My knowledge is partly concluded from Pike’s Universum, which is under a modified copy of non-commercial CC license: https://pikeralpha.wordpress.com/license/

“For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do this is with a link to this web page.”

  • Thumbs Up 3
Link to comment
Share on other sites

  • 1 year later...
On 4/13/2015 at 10:36 PM, MVC said:

goalque,

Great work and discovery ! The 980 won't work as there are no drivers in 10.9.5 for it.

And as far as the guy who asked about 2015 MB, there is no TB port.

I still think that some component of the more difficult eGPU has something to do with the physical machines. For instance, my 2012 rMBP does eGPU with the greatest of ease, I can run 4 displays form the Titan-X, or combine 2 DP ports and run a Dell 5K. Same thing on a Mini or nMP is currently impossible, and they run the same OS. As far as Intel frame buffer kexts, this might yield interesting results in comparing which one is used by my 2012 rMBP versus which one is used by 2014 Mini and your machine.

I think that the work we are both doing is heading in different directions to get to same result, and what you may find may help everyone. Right now I can't get display output on Maxwell cards in eGPU in TB2 machines I have in OS X. With Kepler cards I can get one display going. The display that works is the one that fires up right after the start chime via the EFI. Any further displays don't get detected. It is as if the machine is held back by a rule of some sort about number of displays, or displays present at boot time.

Anyhow, the smarter half of my development team will be joining the effort soon since we have gotten EFIs working for Classic Mac Pro for all released Kepler cards.

I don't know if you read at Mac Rumors but in the Mac Pro forum over there I detail a hack to enable Nvidia cards to run 4K 60Hz on MST displays. Buried deep in a kext there is a "blacklist" of machines that are NOT to run 4K/60Hz via MST. The Mac Pros pre-trash can are on the list. Also on the list is my 2012 rMBP. Removing a 4,1 Mac Pro from the list allows it to run 4K 60Hz MST displays from an Nvidia card. Conversely, it messes up how an AMD card deals with Hi Def displays. In short, I don't fully understand how that blacklist works, I just know that I can't run my Asus PQ-321Q properly without taking my Mac Pro off the list.

It is quite likely that Apple has more such blacklists hidden away to keep eGPU problematic. I just can't believe that it is a coincidence that with the models where eGPU could double it's bandwidth, there are new problems. (i.e., TB1 vs TB2)

I wonder if there is any chance that I can run 4K 60Hz MST with eGPU on 2012 MacBook Pro (retina)?

 

Thanks!

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.