Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

MacVidCards

Suspended
Original poster
Nov 17, 2008
6,096
1,056
Hollywood, CA
One of my fondest memories was working on "Pirates of Silicon Valley" and recreating the 1984 commercial.

At the time (1998) Apple was foundering and everything I did to make Apple look better made me feel good. I spent a bunch of time watching that commercial, Apple's little hottie freeing us all from "Big Brother".

One of my favorite pictures of myself is her taking that mallet to my head.

Anyhow, can't help but be reminded today when I discovered how to enable 60Hz 4K MST on Nvidia cards. Seems Apple didn't want the cMP rubbing elbows with nMP so took to some more deliberate knee-capping.

They became that which they used to parody. Unfortunate.

I wrote before about the phrase "4K" having several different meanings. Knowing whether your display is SST or MST is crucial. SST looks like it means "Super Speed Transport" but actually means Single Stream Transport. MST stands for Multi Stream Transport. This means that 2 distinct display signals get sent down the DP cable as if they are meant for 2 different displays, but instead they get sewn together for one display.

Apple has choosen to not allow the cMP to run 4K MST displays at 60Hz. But there is a way to enable it.

To start with you will need GTX6xx or newer and an MST 4K display. SST 4K displays work without help on the right GPUs.

First and foremost, I recomend "Display Menu" app. It gives you many more resolution options than Display Preferences and yet doesn't require an advanced degree in Calculus like the other app from France.

I am going to warn you that fiddling with this stuff is frustrating and frequently leads to multiple re-boots and plug yankings.

Most of us have a spare SATA drive or 3, I recomend creating another working install that you can boot from in case of trouble.

Because we need to modify one of Apple's kernel extensions you will need to run OS X in what is called "kext dev mode". This disables the requirement that every extension carry a digital signature approved by Apple to show that it hasn't been monkeyed with. This wasn't necessary in previous versions of OS X, but is now.

To do this, open Terminal and type:

sudo nvram boot-args="kext-dev-mode=1 nvda_drv=1"

You will be asked for your password but you won't see anything happen as you type it in. Hit return.

Next type in:

nvram -p

If you have done this correctly you will see:

boot-args kext-dev-mode=1 nvda_drv=1

Create 2 folders on your desktop, "AGC Virgin" and "AGC Modded". The virgin one is in case you bugger this up. That folder will be your easy fix.

Go here:

Your Hard Drive ▸ System ▸ Library ▸ Extensions ▸ AppleGraphicsControl.kext

Drag that item into both folders, this will create a copy in each leaving the original in the Extensions folder.

Go to the one labeled "AGC Modded" and right click your way down to:

AppleGraphicsControl.kext ▸ Contents ▸ PlugIns ▸ AppleGraphicsDevicePolicy.kext ▸ Contents

Inside the "Contents" folder you will find some files.

Open the info.plist in an editor that you know. I suggest either Plistinator or TextWrangler

Find the little section I have pictured. These are the "black listed" machines.

By running:

ioreg -p IODeviceTree -r -n / -d 1

in terminal I find that my 4,1/5,1is F221BEC8.

Change it, one digit will do. I change mine to F221BEC7. Save the plist and replace the original kext in the Extensions folder with the one you just modded.

Next open Disk Utility and run a "repair permissions". If you have done this correctly you should see the various parts getting repaired, as in one of the images below.

Now it gets exciting. Connect the MST display via an HDMI cable with display in the mode that allows you to choose form HDMI 1 or HDMI 2. If it is in "DUAL HDMI" mode it is looking for input from both. I believe it is the bottom button or next one up that lets you choose from "DisplayPort/HDMI 1/HDMI2". Once you have cable hooked to HDMI port, switch to that port. This should give you 4K at 30Hz, like you have been seeing on DP port.

The moment is here, reboot. Wait until the desktop is fully loaded on the HDMI port and all is settled. Now hit that button to cycle through the input ports again and choose "DisplayPort". If all has gone as planned you will see the desktop in full glorious 4K at 60Hz. Oddly, the only way to know via System Profiler or DisplayMenu is to NOT see "30Hz" after the 3840x2160 size. For some reason SST 4K will have "60Hz" after the size but MST leaves it blank.

The easy way to know for sure is to Google "UFO 60Hz", the top hit should be a site that validates display refresh rates. A little UFO will be zipping across the screen in both 30Hz and 60Hz if this is working. The 60Hz one will look smooth and fluid while 30Hz one will look like it is hopping it's way across. And you, appalled, will wonder how you ever looked at such a clunky refresh rate.

Remember if you do a PRAM reset that boot args line is going to lose both the Nvidia driver and the devmode and you will need to enable them again.

I only suggest this on the Asus/Sharp 321 twins with GTX600 or higher. (works on a GT640 with DP).

I have heard that the Dell 321 version is different.

This mod is easy to mess up, hence my encouragement to have a backup boot drive to do fixes from or to experiment on before your main drive gets messed up.

If you do get it working, please post about it here. Note that you have to do the HDMI trick on every boot. If not it will probably not get to desktop.


EDIT: This has been updated and posted on our blog as well. The images referred to are in a lower post.
 
Last edited:
  • Like
Reactions: shaunp
Exciting stuff!! Though to be honest I had no idea we couldn't already plug a 4K display into our cMP's and get 60Hz support. I thought that was what they fixed in 10.9.3?

Only on AMD cards, been there since 10.9.2 I think. They stacked the deck against Nvidia, they have been limited to 30Hz. Artificially as it turns out.

SST displays are a different story.
 
Here it is, a Titan in Yosemite running 4K @ 60 Hz on MST using new Web Driver for Yosemite DP4.

Works on GTX680 as well....even a GT640 w/DP can do it.

Darn Apple and their forced...everything

EDIT: I am also attaching a shot of what it looks like when in 30Hz mode

And I need to post a caveat. Once you enable MST support via this crude little hack, SST appears to not work anymore. So maybe I need to refine my hack or....anyway, nice to know it can be done.
 

Attachments

  • Screen Shot 2014-08-01 at 1.04.56 AM.png
    Screen Shot 2014-08-01 at 1.04.56 AM.png
    1.3 MB · Views: 1,675
  • Screen Shot 2014-08-01 at 1.17.37 AM.png
    Screen Shot 2014-08-01 at 1.17.37 AM.png
    1.5 MB · Views: 1,241
Last edited:
Only on AMD cards, been there since 10.9.2 I think. They stacked the deck against Nvidia, they have been limited to 30Hz. Artificially as it turns out.

SST displays are a different story.
Rommy, I have 7950 EFI Flash, OS X 10.9.4, UP2414Q and trying everything i can do such as change model number to MacPro6,1, install yosemite beta but still can't get 4K 60Hz. When enable DP1.2, I just got two 1080p screen arrange side by side. can u suggest me to go out this problem?

Deeply thanks.

ADDITION INFORMATION : I'm not getting any "retina scaling box setting" just only normal resolution select box in display preference.
 
Is this something you expect to get solved at some point, or just something that is going to have to be lived with?
 
I'm glad to know I'm not crazy. These last couple months I've been pulling my hair out trying to figure out why my 2009 Mac Pro with Mac Edition GTX 680 would not send 60 Hz to my Dell UP2414Q, even since 10.9.3 dropped. DP 1.2 mode on the monitor was enabled. Bought a new DP 1.2 cable. Tried OS X native drivers and web drivers. Got Windows 7 in Boot Camp to send 60 Hz, proving the hardware was capable. Still could not get OS X to do it.

Are you saying it gets better in Yosemite, or still no?
 
Last edited:
I guess my posts are hard to understand, I'll keep working on it.

Doesn't look like 10.9 will ever have MST 60 Hz 4K for NVIDIA

Yosemite already has it but Apple has added code to disable it.

If you enable it you have to turn off their kext Nanny checking system.

Not sure how that will affect SST 60Hz. I thought that some SST 60hz 4k users with 680 already said it worked?
 
Thank you for the clarification.

Can't comment on SST with the GTX 680 since all I have is this MST Dell.

Maybe this is wishful thinking but if code is there but disabled for MST support on Nvidia, maybe it will be enabled in some subsequent beta or shipping build? Maybe they're working on some part of it and intend to enable it later?
 
Images for above post

This has been edited for clarity. Now in first post with images here.
 

Attachments

  • Screen Shot 2014-08-06 at 3.41.00 PM.png
    Screen Shot 2014-08-06 at 3.41.00 PM.png
    642.9 KB · Views: 706
  • Screen Shot 2014-08-06 at 3.54.03 PM.png
    Screen Shot 2014-08-06 at 3.54.03 PM.png
    116.7 KB · Views: 705
  • Screen Shot 2014-08-06 at 3.59.36 PM.png
    Screen Shot 2014-08-06 at 3.59.36 PM.png
    300.1 KB · Views: 606
  • Screen Shot 2014-08-06 at 4.03.30 PM.png
    Screen Shot 2014-08-06 at 4.03.30 PM.png
    34.3 KB · Views: 679
  • Screen Shot 2014-08-06 at 4.10.44 PM.png
    Screen Shot 2014-08-06 at 4.10.44 PM.png
    305.3 KB · Views: 750
Last edited:
Final images here.
 

Attachments

  • Screen Shot 2014-08-06 at 5.01.32 PM.png
    Screen Shot 2014-08-06 at 5.01.32 PM.png
    222.2 KB · Views: 507
  • Screen Shot 2014-08-06 at 5.14.25 PM.png
    Screen Shot 2014-08-06 at 5.14.25 PM.png
    1.5 MB · Views: 691
  • Screen Shot 2015-04-22 at 9.53.51 PM.png
    Screen Shot 2015-04-22 at 9.53.51 PM.png
    43.9 KB · Views: 352
Last edited:
I Got IT!!!!!

Just using Yosemite PB2 with MVC Suggested.

I Got 4K 60Hz with GTX 680 /w Dell UP2414Q.

You're the man!! Deeply thanks MVC.
 
Stupid question, but I'll ask anyway. Regarding the kext signing obstacle, can't you just sign it yourself? I know that the utility Asepsis got around the restriction in 10.9 by forcing users to have command line developer tools installed, then the installer just re-signs the system kext it patched via a script. It's only signed for the local machine, but that's not a big deal.

I briefly tried to do this for an unrelated kext I use that stopped working in 10.10 DP, and although it signed without errors it still shows "Kext signature validation error code -67050". I think I just don't have the process completely figured out, because it seems reasonable that you should be able to sign for your local machine. Am I completely mistaken here? I'm hoping there's something to go on here, because it would help with some other hardware of mine that won't work in 10.10 without the dev flag.
 
can't you just sign it yourself?

unfortunately, no. extract from http://www.cindori.org/update-on-trim-in-yosemite/


“Kext signing means that a valid, signed kernel extension can only be created with a certificate provided by Apple as part of their $99/yr Developer program, and additionally that interested parties must fill out a special form explaining why they require the certificate; kext certificates are only provided upon request and approval.“
 
unfortunately, no. extract from http://www.cindori.org/update-on-trim-in-yosemite/


“Kext signing means that a valid, signed kernel extension can only be created with a certificate provided by Apple as part of their $99/yr Developer program, and additionally that interested parties must fill out a special form explaining why they require the certificate; kext certificates are only provided upon request and approval.“

It's worth nothing that you can flip a switch (as the article does) to allow unsigned kexts, and this probably won't be going away.

Developers need a way to write kexts before they apply for written permission.
 
Just using Yosemite PB2 with MVC Suggested.

I Got 4K 60Hz with GTX 680 /w Dell UP2414Q.

You're the man!! Deeply thanks MVC.

I got it working too on a Dell UP2414Q and GTX 660Ti.

Thanks MacVidCards, you are the man.

But I think it would better to use Macmini6,2 SMBIOS since it works at 60Hz and the AppleGraphicsControl.kext does not contain a block for Macmini board ID's, so we can just install Yosemite and use Macmini definition without having to edit the kext.
 
Last edited:
Way too busy to do a nifty blog post so going to do it here since Nvidia just updated the Web Driver for Yosemite DP5.

Give me a few minutes and it will be here.

Any update on this? where can I find the Web Driver for Yosemite?
 
Works in DP8 with GTX980 !!!

However, there is a little weirdness, if you drag a window up and down it breaks/lags at the center of screen, where the two "streams" meet.
 
Little help?

MVC, I need some help (hackintosh veteran here since leopard). I have Yosemite GM 3 with a GTX 770. Got Web Drivers working with this pkg : http://us.download.nvidia. com/XnSbAP3EFS9xIporrh98rcF3nKq1bm96/WebDriver-343.01.01b04.pkg

I followed your steps by changing one digit and I get a black screen! I can only boot via safe mode right now. I rolled back to the old AGC virgin and it is still giving me a black screen. (all disk permissions repaired)

Would really love to have my UP2414Q running on 4k 60Hz.

Any help would be appreciated! :)

btw: boot-args are set for kext dev mode, nvda_drv=1 (tried 0; still getting black screen), darkwake=0

specs as follows : GA-Z77X-UD5H, i7 3770k, MSI GTX 770 Gaming Series 2048MB, Dell UP2414Q
 
Working!

I am happy to report back, WORKING!

With the same web drivers, i managed to roll back to the original AGC.kext again then repaired permissions. Then, I changed the SMBIOS to Macmini6,2. I would suggest doing that instead of modding the file itself with Xcode or something else.

Thank you MVC for this tut. Guess I had to eventually fix it myself.

P.S. : I run dual monitors... the DP is connected to my 4K and the top DVI port does not work but the one below does.

Nothing else! Working like a charm! Thank you again!
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.