If you read the reviews, you saw that it is possible to use the latest generation of nVidia cards with a Mac running under Yosemite. The operation is pretty close to what I presented, but Yosemite and the latest nVidia cards require some adjustments.
This post is very old, and GeForce card will not work with modern Mac.
A (quick) reminder : Using an external Thunderbolt GPU requires a PCI-Express adapter and (optionally) a power supply. I use a Vidock 3 ExpressCard, a Sonnet Expresscard and a Thunderbolt cable, all on a MacBook Air. I have only tested on Intel IGP-equipped machines, but apparently it also works with Macs equipped with a dedicated graphic card. I advise you in this case to use the same brand (AMD or nVidia). The handling requires to modify some drivers at every minor Mac OS X update and you have to connect an external display to make it work.
Yosemite
First important point, Yosemite. Apple added a new security to its OS : a driver signing. So if you manually modify a driver, it will no longer work. There is a command line to type to enable the loading of unsigned drivers, and it is necessary.
sudo nvram boot-args="kext-dev-mode=1"
Be careful, the modification disappears if you reset the PRAM and it can cause problems if your machine has a dedicated graphic card.
nVidia Maxwell cards
In 2014, nVidia has launched a new range of graphic cards, using a low-consuming GPU called Maxwell. Currently available cards are the GTX 750 (Ti), the GTX 970 and GTX 980. The first thing to know is that they only work on Yosemite, and only with nVidia drivers. The second thing to know is that all outputs are not necessarily supported: the HDMI 2.0 connector of the GTX 970 and 980 are not yet working on Mac OS X. The GTX 750 Ti is a pretty good choice: it offers decent performances for its price and is able work with the PCI-Express bus power supply. Playing on 1080p without reaching the highest details, that’s enough. The GTX 970 and 980 require a big power supply and are much more expensive.
nVidia drivers
For the cards to work, you need nVidia drivers, which are fairly regularly updated. The drivers are not installed if you do not have an nVidia card, but to install the card, you need the drivers, then the solution is to modify the drivers (as explained here).
Download the drivers (here the latest for Yosemite 10.10.1).
Then unzip the drivers.
pkgutil --expand WebDriver-343.01.02b02.pkg WebDriver
Modify the Distribution
file with a text editor (such as TextWrangler).
Replace the line var found_hardware = 0;
by var found_hardware = 1;
.
Zip the drivers.
pkgutil --flatten WebDriver WebDriver-334.01.02b02_mod.pkg
Install the drivers and reboot.
Change for the Thunderbolt
The last step, a classic one, you have to modify the pilots for they can be browsed in Thunderbolt.
Two lines must be added in the following three files.
/System/Library/Extensions/NVDAStartup.kext
/System/Library/Extensions/IONDRVSupport.kext
/System/Library/Extensions/AppleHDA.kext/Contents/PlugIns/AppleHDAController.kext
In these files, look for the sections that begin with <key>CFBundleIdentifier</key>
and add, just before the </dict>
, the two following lines.
<key>IOPCITunnelCompatible</key>
<true/>
Now start Kext Utility and restart, it should work.
Little joke : Valley Benchmark, in 4K and Ultra reaches 22 fps on average. I think that no « real » Mac ever reached that.
Sooo this won’t work under Windows 8/8.1 using Bootcamp for example?
It would be VERY cool because it could open a lot of possibilities for the Air to fluently run almost all of the latest PC games.
Another question: do the Palit GTX 750 Ti (with 2gb, OC) graphics card work AND without an external power supply?
If yes and if Windows works with it I’m willing to buy it asap!!
Thanks and nice to see projects like this!
I have not Windows on my Mac, but i think it’s work (try http://forum.techinferno.com/diy-e-gpu-projects/ )
And yes, with my ViDock, the 750 Ti works without external PSU.
After all these, the kext were loading and the driver works as well. But my card is still not working. Could anyone help me with that? It seems the EEC is not available for my card(GTX 750TI) under the latest Yosemite.
Marry Christmas, mate. Me again. I can’t make it work, would you like do me some favors?
Hi, i can’t get audio on the gtx 750TI.
Please somebody show me where is exactly the line for the IOPCITunnel (in the .plist of AppleHDAControler.KEXT)
Here is a screenshot of my configuration :
https://dl.dropboxusercontent.com/u/47207557/applehda.jpg
Thanks.
(Sorry for my english and happy new year! :)
Just try after the first </array>
This works fine when I use an ATX Power Supply on the PE4L, but I have to turn it on a few seconds before turning on the macbook? If I allow the Video Card to automatically power on when the macbook powers on, it doesn’t work. Is that normal?
It’s a classic problem, just try to delay the power on of the graphic card (i d’ont know if the PE4L can do that)
Hi pierre.
Still not working. :( … Just appears onboard audio.
Can you write the terminal commands with the end part for turning the pkg into a folder. Im having some trouble with them.
Hello everyone
my system is running quite well on my macbook pro 15 with gtx 970 and osx 10.10.1
I upgraded to 10.10.2 and and tried the new driver from nvidia, but this doesnt work the way it did before.
How is it with you, anyone got it working on the new update yet
Great post..
I’m currently running a late 2012 Mac mini with an external Nvidia Geforce 660 GPU. Everything is working well, but Photoshop is still selecting the internal HD4000 graphics as the primary GPU. I’m currently using the default OSX 10.10.2 Nvidia drivers.
Any suggestions appreciated.
Thanks,
Martin
Have you try to select the display on the GeForce card as the main display in System preference ?
Yes, the monitor that is connected to the GPU is selected as « primary ».
My setup consists of 2 monitors. I have a thunderbolt 27″ connected to the thunderbolt port on the mac mini, and the external GPU is connected to the thunderbolt port on the back of the Apple monitor (daisy chained gpu, hehe). Perhaps that’s an issue? Everything else works fine.
Thanks.
I think you have to connect the gpu to the mac mini thunderbolt and the displays on the gpu, otherwise the gpu is not selected.
Mine works like that, egpu on mac and display on gpu.
Just a quick heads up: Apparently the latest OSX security update breaks nVidia web drivers.
When attempting to do this install with the latest nvidia drivers. The driver starts to install and then fails out. The install window states – « The installation failed (large exclamation point above the words) » » The Installer encountered an error that caused the installation to fail. Contact the software manufacture for assistance ».
This is after the install gets to the validation phase.
I have a question about my 10.8.5 Macbook Pro (Mid-2012), which has a default Intel HD 4000 graphic card. Recently, I purchased an external graphics card (NVIDIA GeForce GTX 650 2048MB GDDR5) and fixed it to my PCIe expansion chassis, which is properly hooked up via my thunderbolt connection and running. However, my laptop (hooked up to an external monitor) doesn’t recognize the eGPU. For example, under the « Graphics/Display » section in « System Properties » in « About This Mac », it does not list my eGPU.
Is my Graphics Card compatible with my Macbook Pro? If not, then do I have to tweak certain settings as a super user in terminal in order to make it work? Or do I have to upgrade to Yosemite and use the method that you have prescribed? Or do I have to purchase an entirely different graphics card?
Hi, first of all big thanks for sharing your knowledge!
I’ve got a question for you in case you can answer:
I am thinking of upgrading my late 2012 Mac mini i7quad 2,3 16 Gb (I am sooo happy with it, I mainly do concept art, some editing, some ae post):
My setup would be: vidox nano 320w long, Gygabyte GeForce 760 4Gb, sonnet express card adapter, in order to speed up ae previews and 3d work.
I would like to know your opinion as I might get a LaCie d2 Thunderbolt™ 2 3T (300 euros!) hard drive which would plug to the thunderbolt port in the MacMini, so the sonnet would plug (daisy chaining) to the LaCie.
Do you ink it’d work? Or must I always plug the sonnet to the Macmini (only has 1 thunderbolt port).
Thanks, Iñigo
I works, but with a limit : the bandwith is shared, if you make a transfer with the hard disk, you kill the performance from the GPU (and if you have a 3D render, the hard disk will write/read slowly)
Thank you! I don think it´ll be a problem generally as I don´t usually move that much data.
I´ll keep you updated of my progress.
Has anyone tried with El Capitan (OSX 10.11 prerelease)?
It works with Kepler card (because OS X has driver for this kind of GPU), i have not tried with Maxwell (and Apple has no driver for it)
Thanks, Pierre.
I can confirm that I am running El Capitan beta (10.11 15A178w) with a geforce gtx 760 via sonnet Thunderbolt adapter on Mac Mini Server (mid-2011).
I have this hooked up to my Dell P2415Q (4K display), running 3840×2160 at 60hz via DisplayPort cable. I’m using the built-in Nvidia drivers with El Capitan. (I won’t attempt Nvidia web drivers until there is an official Nvidia beta). Everything seems stable (about 1 hr uptime).
I did need to use sudo nvram boot-args= »rootless=0 kext-dev-mode=1″ to be able to edit the kext files (as I saw you mentioned in a post in French about TRIM).
Hi all, I finally went for the gigabyte 970 4gigas with the Vidock nano 320w and the sonnetPro.
Vidock delivery from China to Spain took less than a week.
It has been super easy to mount the card inside the vidock, and connect it. I did follow your instructions and Paul’s (http://www.villagetronic.com/g4/expansion-forum/installation-instructions/188-macbook-vidock-970gtx-oculus-rift) to modify the osX and to set up the system.
Everything has gone smoothly, and the system booted immediately.
I used this nVidia drivers http://www.nvidia.com/download/driverResults.aspx/84869/en-us
Running a Dell at 2560px and a cintQ22hd at 1920.
I am not having any start up issues, no delay jumpers modifications on my part.
Disconnecting the thunderbolt cable from the Mini while the machine is off makes the system run on the hd4000 once it is booted again, so it is super easy to swap configurations in case I don’t need to run extreme graphic power.
Thank you all for all your shared knowledge and advice.
Hey so I got it all set up and when I go to system report it says NIVIDA Geforce GTX 780 ti, but when I run a bench mark or try to render something only the Intel Iris is working, this is for OSX by the way. How could I get the EGPU working on osx ?
Thanks,Mark
Esse comando salvou meu dia,
sudo nvram boot-args= »rootless=0 kext-dev-mode=1″
executando El Capitan beta 10.11 com uma geforce gtx 760 via PE4L 2.1 b .
Funcionou perfeitamente.
Muito Obrigado.
Brazil.
Thanks, Mark
This command saves my day,
sudo nvram boot- args = » rootless = 0 kext -dev – mode = 1″
El Capitan running beta 10:11 with a GeForce GTX 760 via PE4L 2.1 b .
It worked perfectly.
Thank You .
Brazil .
It seems that developer preview 5 of El Capitan took away our rootless=0 option. The work around is to boot into El Capitan recovery mode and in terminal, run /Volumes/ »Your main ElCapitan volume name here »/usr/bin/csrutil disable. This disables system integrity protection so we can edit and use our modified kexts. Supposedly, you can also achieve the same effect by using the security configurator app in the Utilities drop down menu while in recovery mode, and unchecking the enforce system integrity box. All of this is at your own risk (I am not responsible if things go wrong), but it seemed to work for me. A key point is that to properly run csrutil from command or the security configuration app from the Utilities drop down menu, you MUST be in recovery mode. Booting off of a USB or other partition with an El Capitan installer is insufficient and would produce an error when I tried — it has to be a true El Capitan recovery partition (typically launched with command-R at boot chime). After that, it’s the normal kext edits that Pierre figured out and posted. Anyways, getting all of this to work in DP5 was a big pain in the butt for me, since I run El Capitan off a software RAID volume (and Apple disables recovery partitions on software RAID setups). I had to make a dummy new El Capitan install on an external drive, and launch recovery mode from that. Oh well, it’s fixed now. 4K graphics on my Mac mini 2011 again! (Until next beta release??!?)
Mark
Hi,
Will this work with thunderbolt 1 on a mid 2011 21.5″ iMac?
Thanks
Somebody knows how to fix this? Thanks.
yosemite 10.10.5
https://dl.dropboxusercontent.com/u/47207557/nvida-gtx750i.jpg
When modifying the web drivers for v346.02.03fl01 there is no line that has « var found_hardware = 0 » in the distribution file? any ideas where it has to be added.
Cheers Lee
Cristian, I am seeing something similar:
NVIDIA Chip Model:
Chipset Model: NVIDIA Chip Model
Type: GPU
Bus: PCIe
PCIe Lane Width: x8
VRAM (Total): 256 MB
Vendor: NVIDIA (0x10de)
Device ID: 0x17c2
Revision ID: 0x00a1
ROM Revision: preset 1.0.0
The above is with a Nvidia GeForce GTX TITAN X. I suspect its a power issue as I have a Quadro 4000 working fine?
I think the newest driver don’t try to detect hardware.
Thanks for the reply, so I don ned to modify the latest Web driver then?
Any ideas about this in the SystemInformation using a Titan?
NVIDIA Chip Model:
Chipset Model: NVIDIA Chip Model
Type: GPU
Bus: PCIe
PCIe Lane Width: x8
VRAM (Total): 256 MB
Vendor: NVIDIA (0x10de)
Device ID: 0x17c2
Revision ID: 0x00a1
ROM Revision: preset 1.0.0
When I use a Quadro 4000 is shows up fine?
Cheers
I have not tried, but i have seen that NVIDIA don’t verify if you have a « valid » hardware with the last version.
For the Titan, no idea : it works with my Quadro K5000, and the card use the same GPU, i mean. But i know that there is problem with certain NVIDIA GK110 chips and Mac OS X.
I have successfully upgraded a Macbook Air to El Capitan and have an external Thunderbolt PCIe chassis running x2 GTX 780 working. I had to disable System Integrity Protection since rootless no longer works with El Cap:
http://osxdaily.com/2015/10/05/disable-rootless-system-integrity-protection-mac-os-x/
Quite a bit more steps to get this working than Mavericks/Yosemite, but if I can do it, I’m certain anyone can!
Hi
since I’m on 10.11. nothing works anymore. did all the steps as usual, plus csrutil.
but when i boot with the GTX970, the mac gets stuck at the beginning with the loading bar, and halfway it crashes.
nothing from then
any ideas what i do wrong
For those who are waiting for someone else to update first, I updated to my mac mini mid-2011 to El Capitan 10.11.1, and am running the native driver for my GTX 770 after deactivating system integrity protection (see prior posts). No issues for me.
Hey Mark
I updated too, yet i dont get it to work. did everything as before, plus csrutil in recovery. but my system crashes while booting
any ideas
Hi,
I can’t seem to get my GTX970 working on El Capitan 10.11.1 with NVidia driver 346.03.03.f02. I followed the steps below
CMD-R -> csrutil disable // already set I was able to modify the kexts and save
sudo nvram boot-args= »kext-dev-mode=1″ // already set
/System/Library/Extensions/NVDAStartup.kext
/System/Library/Extensions/IONDRVSupport.kext
/System/Library/Extensions/AppleHDA.kext/Contents/PlugIns/AppleHDAController.kext
/System/Library/Extensions/NVDAStartupWeb.kext
sudo kextcache -prelinked-kernel
sudo reboot
shutdown
connect thunderbolt
start
Login -> About
Still doesn’t recognize the card
Checked Console for:
NVDA // nothing shows
Tunnel //nothing shows
Is there a new file to modify for 10.11.1
I got it working this way for 10.11
Any help is much appreciated…
-J
I set up an Akito Thunder2 with an EVGA 750TI SC2 and a more powerful power supply, according to these instructions.
The power supply is a 340W from radio shack, more info on this here:
http://forum.techinferno.com/enclosures-adapters/7205-us%24189-akitio-thunder2-pcie-box-16gbps-tb2-120.html#post129670
I have a cable going to my tbolt dock from the akito to which a USB3 hard drive is connected and a couple of peripherals.
So everything works fine, I can run the furmark stress test for half an hour or the valley benchmark, but my 2011 mac mini server crashes every few hours with some sort of error like NVRM: …read error… which the trace shows comes from NVDAResMan.
I’m wondering if I should replace the video card or if this is some other issue.
As I said, furmark stress test runs fine, and tech tool pro video ram test also passes, so the card seems fine, but the nvidia drivers are crashing for some reason.
I am on 10.11 El Capitan.
Any suggestions appreciated.
To add to my last post, here is the top of the error on reboot:
*** Panic Report ***
panic(cpu 2 caller 0xffffff7f90699aec): NVRM[0/190:0:0]: Read Error 0x006100c0: CFG 0xffffffff 0xffffffff 0xffffffff, BAR0 0xa1000000 0xffffff91fbfe0000 0x117000a2, D0, P1/2
Backtrace (CPU 2), Frame : Return Address
0xffffff91fb903bb0 : 0xffffff800f4e5357
0xffffff91fb903c30 : 0xffffff7f90699aec
0xffffff91fb903cf0 : 0xffffff7f907754ef
0xffffff91fb903d50 : 0xffffff7f909aea1b
0xffffff91fb903d60 : 0xffffff7f9071188a
0xffffff91fb903d80 : 0xffffff7f9080cbb5
0xffffff91fb903e00 : 0xffffff7f906760a8
0xffffff91fb903ec0 : 0xffffff7f9063c101
0xffffff91fb903f00 : 0xffffff800f5196ba
0xffffff91fb903fb0 : 0xffffff800f5d14b7
Kernel Extensions in backtrace:
com.nvidia.web.NVDAResmanWeb(10.0.7)[AFBA7363-106C-3F64-B539-02EEAEEAFFBE]@0xffffff7f90635000->0xffffff7f9090bfff
dependency: com.apple.iokit.IOPCIFamily(2.9)[668E3DEE-F98E-3456-92D6-F4FEEA355A72]@0xffffff7f8fd79000
dependency: com.apple.iokit.IONDRVSupport(2.4.1)[814A7F4B-03EF-384A-B205-9840F0594421]@0xffffff7f9061f000
dependency: com.apple.iokit.IOGraphicsFamily(2.4.1)[48AC8EA9-BD3C-3FDC-908D-09850215AA32]@0xffffff7f905d8000
dependency: com.apple.AppleGraphicsDeviceControl(3.11.31)[05B2D9D7-B6CE-335F-9E70-
I can confirm that all of this still works fine in El Capitan 10.11.2
And yes, you also have to edit the NVDAWebStartup.kext
Hi,
i got to work a 770 GTX with Vidock 4 ++ on el capitan 10.11.13 with latest nvidia web drivers.
However I don’t get sound anymore on the mac. For sound output it does not list my speaker anymore.
Any tip?
Hello everyone. I have a macbook pro 2014 mid, i bought bizon box 2 and a gpu 970 . I have done all steps above, and though i see the card on system info normally, i cant make it bypass the integrated cards ( intel & 750 m).
important to say i am using a thunderbolt display
Any ideas?
With a Thunderbolt Display, it’s very complicated.
I think you can’t use the Thunderbolt Display with a GTX 970.
Hello again. You were right that Thunderbolt display makes it very hard. The problem is that the connection must lead directly from the card and not the box to the monitor, so i had to change monitor. I made it work, but i have another issue coming up. Very often the whole system crashes, and screen goes black. When i restart i get a message that is directed to apple.
Any idea what might cause this?
Has anyone gotten 10.11.6 running in the standard way? I thought I’d check before I went ahead with the update.
Thanks,
Mark
I can’t get latest 10.12 beta to work. I have it recognizing my 750Ti and listing it in system report, and the ECC tab in nvidia syspref, but it will not display to it.
I used the latest web drivers for 10.12 listed here:
http://www.tonymacx86.com/threads/nvidia-releases-alternate-graphics-drivers-for-macos-sierra-10-12-beta.195315/
My boot flags are:
kext-dev-mode=1 rootless=0 nvda_drv=1
I added the key to the kexts described here. I tried adding it to random other kexts too, but with no improvement.
I looked in the logs with the command:
log show –start 2016-08-14 | less
and the only relevant things I see are:
2016-08-14 02:52:51.123416-0700 0x3df Default 0x0 0 kernel: (IOGraphicsFamily) IOGraphics flags 0x43
2016-08-14 02:52:51.197226-0700 0x3d2 Default 0x0 0 kernel: (NVDAStartupWeb) NVDAStartupWeb: Web
2016-08-14 02:52:51.209041-0700 0x42d Default 0x0 0 kernel: (NVDAGM100HalWeb) NVDAGM100HAL loaded and registered
2016-08-14 02:52:51.213301-0700 0x42e Default 0x0 0 kernel: (GeForceWeb) nvAccelerator::attach provider NVDAgl parent display
2016-08-14 02:52:51.213318-0700 0x42e Default 0x0 0 kernel: (GeForceWeb) nvAccelerator::probe enter provider: NVDAgl [score 130]
2016-08-14 02:52:51.213323-0700 0x42e Default 0x0 0 kernel: (GeForceWeb) nvAccelerator::probe parent: display
2016-08-14 02:52:51.213326-0700 0x42e Default 0x0 0 kernel: (GeForceWeb) nvAccelerator::probe return success 0xffffff802bfff000
2016-08-14 02:52:51.213329-0700 0x42e Default 0x0 0 kernel: (GeForceWeb) nvAccelerator::probe remove « unmatched » property
2016-08-14 02:52:51.213334-0700 0x42e Default 0x0 0 kernel: (GeForceWeb) nvAccelerator::detach provider NVDAgl parent display
2016-08-14 02:52:51.213345-0700 0x42e Default 0x0 0 kernel: (GeForceWeb) nvAccelerator::attach provider NVDAgl parent display
2016-08-14 02:52:51.213353-0700 0x42e Default 0x0 0 kernel: (GeForceWeb) nvAccelerator: ENTER ::start with provider: NVDAgl
2016-08-14 02:52:51.213357-0700 0x42e Default 0x0 0 kernel: (GeForceWeb) nvAccelerator::start switch to parent: display
So I’m giving up on 10.12, about to reinstall 10.11. I just don’t know enough about this to think of other things to try to debug this.
Another weird thing, I’m using the intel cpu graphics, and the screen sometimes flashes white, and when I use Safari some parts of pages are missing, like it’s trying to render them on the nvidia card or something.
Yeah so I give up, if anyone gets any further please update this thread?
And yes, 10.11.6 works fine, that’s what I’m going back to.
Another thing I should mention is that HDMI audio does not work (on 10.11.6). Apparently editing the AppleHDAController.kext is not sufficient anymore for this to work. The HDMI output is just not listed in the output section of the Sound syspref. I’m not sure at what point it stopped working or if it ever did.
So apparently 10.12 works with the eGPU script with a couple of minor modifications, I haven’t tried this but the instructions are here:
https://github.com/goalque/automate-eGPU/issues/31
The link to the latest driver is here:
http://www.tonymacx86.com/threads/nvidia-releases-alternate-graphics-drivers-for-macos-sierra-10-12-beta.195315/
I’m going to wait for confirmation before I try this myself.
The eGPU script is now fully compatible with 10.12, however many configurations exhibit glitches and rendering issues so using this for anything serious is not recommended:
https://github.com/goalque/automate-eGPU