Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
please do not post your mail if you do not want spam..

Is that display capable of going over 60Hz? i have absolutely no idea how the PPC instruction set differs from Intel, so keep in mind if i will be able to make it, i'm not sure if it screws up anything inside your computer.

/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit < I need this file, get it to me in some way, and ill do my best.

The file is attached. Can you PM me your E-Mail so that we can have another way to talk about this?
 

Attachments

  • IOKit.zip
    827.9 KB · Views: 131
Also, how long do you expect it to take to make the patch.

The executable you send is a so called ‘Fat-binary’ or ‘Universal-binary’ this one contains 4 different architectures, I don’t know anything about it ever, so I have no idea how to alter this thing.

You should find someone who knows about PPC asm and Universal-binary’s to alter the file.

you can find the instructions on Github mac-pixel-clock-patch you may submit an issue.

for an intel version, it takes around 5-20 minutes (depending on how tired I am)
 
Can someone send me the three original, unpatched Yosemite files?

/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
/System/Library/Extensions/NVDAGK100Hal.kext/Contents/MacOS/NVDAGK100Hal
/System/Library/Extensions/AMDSupport.kext/Contents/MacOS/AMDSupport

?

I'd like to upgrade to Yosemite, so I'm happy to have a go at fixing them.
 
Can someone send me the three original, unpatched Yosemite files?

/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
/System/Library/Extensions/NVDAGK100Hal.kext/Contents/MacOS/NVDAGK100Hal
/System/Library/Extensions/AMDSupport.kext/Contents/MacOS/AMDSupport

?

I'd like to upgrade to Yosemite, so I'm happy to have a go at fixing them.

Did not fully test but the patch stayed the same, see my fork on Github: https://github.com/Floris497/mac-pixel-clock-patch

If you have instructions about altering the Nvidia and AMD drivers, I would realy like to see them :) or are they the same as IOKit?
 
I thought from reading the forum that the patch wasn't working, which is why I'd like to look at the originals.

As to the Nvidia and AMD drivers, they just involve patching some constants. If you disassemble the originals, you can see what was done.

For Nvidia, \x88\x84\x02\x00 is 0x00028488, or 165000 which corresponds to 165Mhz. The bytes before are just to isolate the specific location in the file, and not accidentally patch over another use of those bytes.

For AMD, \x40\xB3\xD5\x09 is 0x98D5B340, or 165000000, which is also 165Mhz.
 
floris497, the patch doesn't work with the final version of Yosemite.

I had the time to test it a minute ago, it worked as before on my mini 2011 (with AOC 4k DP SST(40Hz)) and hdmi(30Hz).

so sadly for you, this will not fix your problem.. (I guess)

I'm trying to figure out my the newer models won't react on the patch and what else needs to be patched, but it looks like a model specific block from apple because on windows my newer machine will output 4k.. :( i'll keep you guys posted if i find something.
 
Rudy1, when you say it didn't work, do you mean it didn't patch the file? Or that it successfully patched and doesn't work? You can tell by re-running the script, it will tell you that it detects a patched version if it's there
 
Rudy1, when you say it didn't work, do you mean it didn't patch the file? Or that it successfully patched and doesn't work? You can tell by re-running the script, it will tell you that it detects a patched version if it's there

It runs the script, but nothing happens...I do not get a notification that it has successfully patched the file, and 1080p is the highest resolution offered as an option in Display Prefs.
 
It runs the script, but nothing happens...I do not get a notification that it has successfully patched the file, and 1080p is the highest resolution offered as an option in Display Prefs.

That's good news, because it doesn't mean the patch doesn't work, it means the patch isn't applied, so may need to be updated.
 
It runs the script, but nothing happens...I do not get a notification that it has successfully patched the file, and 1080p is the highest resolution offered as an option in Display Prefs.

add the resolutions to your computer with switchresx, this possibly solves your problem.

I thought from reading the forum that the patch wasn't working, which is why I'd like to look at the originals.

As to the Nvidia and AMD drivers, they just involve patching some constants. If you disassemble the originals, you can see what was done.

For Nvidia, \x88\x84\x02\x00 is 0x00028488, or 165000 which corresponds to 165Mhz. The bytes before are just to isolate the specific location in the file, and not accidentally patch over another use of those bytes.

For AMD, \x40\xB3\xD5\x09 is 0x98D5B340, or 165000000, which is also 165Mhz.

You might be able to get them from the installer file (not sure)
I don't like to share executables apple does not like that i guess..
 
I forgot to mention that using switchresx does not solve the problem...the resulting low resolution 3840 x 2160 desktop is fuzzy and virtually unreadable, unlike the ultrahigh resolution desktop I get with the patched version in Mountain Lion.
 
I've had the unfortunate pleasure of trying this out for myself and finding out that the patch successfully applies, but 4k does not work in Yosemite. I have an expired version of SwitchResX which is able to bring it up to a higher res than the 1080p that Apple supports, but you can't try out 4k without paying for SwitchResX (maybe this works in a fresh copy, but not in my expired one, which I never used), so I'll be paying for it to check, and then doing a downgrade if it doesn't.

Edit:
I just saw Rudy1's note, so I guess I'll be downgrading now.
 
I think I found the problem!

There was a new check added to IOCheckTimingWithDisplay for maxClock that didn't used to exist.

I will try removing that check tonight, to see if I can still get it to work.
 
The test version of the patch for 10.9.5 which removes both checks to IOKit can be applied with:

Code:
sudo perl -i.bak -pe '$before = qr"\x0F\x85\x9D\x03\x00\x00"s;s/$before/\xE9\x84\x03\x00\x00\x90/g;$before2 = qr"\x25\x26\x00\x48\x85\xC9\x74\x10"s;s/$before2/\x25\x26\x00\x48\x85\xC9\xEB\x11/g' /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
 
The test version of the patch for 10.9.5 which removes both checks to IOKit can be applied with:

Code:
sudo perl -i.bak -pe '$before = qr"\x0F\x85\x9D\x03\x00\x00"s;s/$before/\xE9\x84\x03\x00\x00\x90/g;$before2 = qr"\x25\x26\x00\x48\x85\xC9\x74\x10"s;s/$before2/\x25\x26\x00\x48\x85\xC9\xEB\x11/g' /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit

I'm not ashamed to admit I have no idea what to do with this. Could somebody post a link to a downloadable file we could test with Yosemite?
 
There should be something soon... That's mostly for floris497 just in case he gets to his computer with Yosemite before me (mine's at home) so he could figure out what the patch does and update the file.
 
So I'm very disheartened to say that I do *not* have a solution for the moment.

Looking at the disassembled binary, and manually converting parts back to C, it is clear that there have been some big changes between the version in 10.9 and the version in 10.10.

These changes are big enough that I'll have to wait until Apple releases the source before trying to offer a patch. For now, everything I've tried has resulted in an unbootable system.

I'm rolling back to 10.9. and will try again when the source has been released...
 
3200 x 1800 at 30Hz is working for me on SwitchResX

I lost 4k when I upgraded to Yosemite on Apple's beta problem on a HD4000 2012 MBPro Retina. However, I'm able to get 3200 x 1800 at 30Hz, and it's probably better for me since I have a the Samsung 28" 4k monitor since I feel you need a 32" monitor or bigger to see the menu bars on 4k IMO.

FYI, I got 3200 x 1800 to work at first using 24Hz, which caused delay problems when I had my laptop open. It worked pretty good when it was closed, but I had to have power. I have the Pixel Clock set at 228.35 / Scan Rate 54.840 and 30.00.

For SwitchResX 4.1 (I did buy the software a couple months ago when it worked perfect on Mavericks)

Go to
Custom Resolution and create new setting (+ sign)
Do NOT Check Use simplified setting has GTF, which in grayed out

Pixel Clock 228.35 (I didn't do these settings since I'm a novice - I simply did trial and error and rebooted A LOT)
front porch 149 3
Sync width 333 5
Back porch 482 20
Blankking 964 28
Total 4164 1828
Scan rate 54.840 30.0000
Positive sync. and Positive sync (Horizontal and Vertical) are NOT Checked

Hope this helps someone, but most of you already probably knew this...
 
Last edited:
So I'm very disheartened to say that I do *not* have a solution for the moment.

Looking at the disassembled binary, and manually converting parts back to C, it is clear that there have been some big changes between the version in 10.9 and the version in 10.10.

These changes are big enough that I'll have to wait until Apple releases the source before trying to offer a patch. For now, everything I've tried has resulted in an unbootable system.

I'm rolling back to 10.9. and will try again when the source has been released...

well the source is released, but i was not able to find something interesting (so far) looked to it for 10min or something. maybe a self compiled version will work :) will try that later.
 
Have you been able to replace a manually compiled version of IOKit with the provided version? If you've got any pointers, I'm all ears.

As it turns out, Yosemite requires code signing all of the way down. I've disabled the kernel code signing requirement for kexts (nvram boot-args kext-dev-mode=1), but since IOKit was previously signed, you have to sign it (and use the flag -deep which wasn't in the current version).

With all of that, I'm able to get a patched IOKit running, but it still doesn't work to enable 4k (even with my modified patch that disables the new pixel clock patch). I'd love to compile from source and stick in all sorts of logging to see what's actually going wrong, but haven't been up to the effort of figuring that part out.

It's also not clear to me which is the last working version under 10.9. If 10.9.5 works just fine, then it's not a change in the IOKit source, the problem is elsewhere.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.