Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Status
The first post of this thread is a WikiPost and can be edited by anyone with the appropiate permissions. Your edits will be public.
I cannot use the OTA method to upgrade... It does download twice and then just open up the installer app... No MacOS Install Data folder.

Don't know "MacOS Install Data" is only a temporary folder created during stage2 installer.app , but as I wrote other times, having an i5 cpu MBP or C2D MB natively supported to APFS HighSierra, things are a bit easier, just to say I can use Catalina IOUSB*.kext that are very important kext without any patches. Also having a Mojave supported Mac may help a lot, since you can easily clone a Catarina APFS Installation, or more you may try installing Catarina from a VM and then create a dmg and then clone to a real disk.
 
Okay, so I've made a little progress, but we're far from done. To sum up:
- A patch to IOHIDFamily.kext _isSingleUser prevents from ever seeing the kextd timeout message
- As @jackluke said, I also independently found that IO80211Family and AppleHDA replacements work
- I nop-ed a couple byte ranges in IOSurface.kext and got (I think) framebuffer acceleration on nVidia Tesla

The bad news: I don't get a crash or anything with the GeForceTeslaGLDriver.bundle. It just... doesn't accelerate.

Anyone else found something interesting?

About the IOHIDFamily.kext booting delay, I have attempted to fix boot delay with a replace of IOHIDFamily.kext/Plugins , there are 6 plugins inside with the ones from Mojave/HighSierra, replacing the Plugins seems reduced the delay about "missing entitlement com.apple.bluetooth.control", even with that verbose warning message the Bluetooth is correctly working and detected in Catalina. But randomly still get 60s delay about IOHIDInterface.

So I guess your "IOHIDFamily" binary patch is definitely a better solution to that Catalina booting delay.


Then about the IOSurface.kext, when attempt to preload the "IO Graphics kext" have you noticed too a double kernel panic that follow one other after 3-5 seconds ?

And do you noticed too that maybe also a replacement of AppleMCCSControl.kext is required ?

And I confirm again that this tricky IOSurface.kext is the key to allow at least Video Framebuffer on non-metal graphics cards, but I am not skilled to binary patch it, I attached a detailed KP that most probably you already knew.
 

Attachments

  • KP Catalina Nvidia Tesla.rtf.zip
    3.9 KB · Views: 304
Last edited:
  • Like
Reactions: Appleak
and @ASentientBot . Funny, for a so-called "abandoned' technology, Apple is still modding the OpenGL framework significantly...

What did u NOP in the kext? OpenGL makes a few critical IOSurface calls to get up and running like _IOSurfaceGetID...
I NOP'ed these two address ranges. It's stuff about names that seems to be an issue. I can't say I understand why.
0xd59c - 0xd5b0
0xd610 - 0xd621
[doublepost=1559736653][/doublepost]
On the missing Dashboard - in another life way back in the day, I found an iPad Dashboard look a like on github. In fact it was so good Apple denied the developer (an ex-Apple employee) AppStore rights.
You would have to brush up on your Obj-C but it's a full implementation with downloadable widgets and all. I think it should be easily transferable to macOS. Especially with all the Marzipan/Catalyst/SwiftUI stuff happening...Interested? Check it out here : https://github.com/hongrich/Dashboard. Sounds like a nice Summer project ;)
That looks interesting! I really just need the "transparent web-based overlay accessible with a button press" feature, I have a custom full-screen Notes app that I like to be able to access by just tapping F4 at any time. So I doubt that I will be working on reimplementing the full Dashboard or anything (I don't have the coding skill in any case).
[doublepost=1559736685][/doublepost]
Shouldn't we be focused first on getting this to run in a virtual machine (Parallels/VMware/VirtualBox) on older Macs (4,1 & 5,1) before going nuts on actual hardware? Seems that having a VM running this on a stable system would provide a lot more sanity whilst working through the issues that are being discussed.
We already have it booting, and VMs don't help with acceleration, so I don't see why that would be helpful.
[doublepost=1559736729][/doublepost]
Just want to make sure the jury's really out on the whole CoreDisplay/OpenGL/GPUSupport retro-patch business...How did you detect that CoreDisplay and AppKit don't play well together? Do you still have a log ?

EDIT: @ASentientBot and @jackluke

Following up on the CoreDisplay <-> AppKit link

I just Hoppered the latest AppKit and discovered new calls to CoreDisplay (GetPotentialHeadroom and GetReferenceHeadroom) in the critical [NSCGSDisplay initWithDisplayID:::] method. This is SURELY WHY AppKit is so dependent on the latest CoreDisplay. These calls also are part of the new Virtual Display SideCar approach. The Mojave .5 AppKit does not call these even though the code is present in .5 CoreDisplay. I think this is a significant finding.
I didn't save the log, but I was getting WindowServer crashes with AppKit failing to find those exact functions. You are definitely correct :)
[doublepost=1559736964][/doublepost]
I totally agree with you. I think in our world, if more and more domains have their own "Justin Bieber", we have @0403979!

However, not because mediocrity is commonplace everywhere (art, cinema, science, etc.) that it must be accepted. Can you imagine Freddy Mercury going on stage in a concert just after Justine Bieber's passage? The answer is NO !

The only contribution of @0403979 is the gathering of the work of others (@dosdude1 @pkouame, @jackluke, @Larsvonhier, etc) and he usurp it dishonestly and then write posts by scrambling the tracks so as to appear an expert. While he is unable even to understand what they are doing! The non-experts (like me by the way!) who did not followed the old thread 10.14 and the beginning of this thread believes that @0403979 is the genius of these threads :) and start to thank him willy-nilly : and that's the TRICKERY. I condemn firmly this pushiness and this megalomania!

@0403979 does not deserve all that simply because it is not his own work. We can only thank him for writing the updates and news about advancements without more.

I hope that people who will read me will tolerate my frankness ...

Yours truly :)
I don't want to cause more drama, but you're taking this way too far. @0403979 is not @dosdude1, and I agree that the latter should probably lead (or co-lead?) this project. But that doesn't entitle you to be a jerk to him.

Especially since I don't remember you contributing to the Mojave thread nearly as much as Julian did.
[doublepost=1559737073][/doublepost]
About the IOHIDFamily.kext booting delay, I have attempted to fix boot delay with a replace of IOHIDFamily.kext/Plugins , there are 6 plugins inside with the ones from Mojave/HighSierra, replacing the Plugins seems reduced the delay about "missing entitlement com.apple.bluetooth.control", even with that verbose warning message the Bluetooth is correctly working and detected in Catalina. But randomly still get 60s delay about IOHIDInterface.

So I guess your "IOHIDFamily" binary patch is definitely a better solution to that Catalina booting delay.


Then about the IOSurface.kext, when attempt to preload the "IO Graphics kext" have you noticed too a double kernel panic that follow one other after 3-5 seconds ?

And do you noticed too that maybe also a replacement of AppleMCCSControl.kext is required ?

And I confirm again that this tricky IOSurface.kext is the key to allow at least Video Framebuffer on non-metal graphics cards, but I am not skilled to binary patch it, I attached a detailed KP that most probably you already knew.
My patch to the IOHIDFamily kext is definitely a little sketchy, but it 100% works to solve the timeout.

I just replace the entire function _isSingleUser with the following:
Code:
mov rax,0x1
ret
(I did this because I noticed that the hang never happened when typing in single-user console and then exiting.)

Also, what are you up to @dosdude1? You've been pretty quiet.

Edit: sorry about posting like 10x in a row, lol
 
Last edited:
[doublepost=1559737073][/doublepost]
My patch to the IOHIDFamily kext is definitely a little sketchy, but it 100% works to solve the timeout.

I just replace the entire function _isSingleUser with the following:
Code:
mov rax,0x1
ret
(I did this because I noticed that the hang never happened when typing in single-user console and then exiting.)

Also, what are you up to @dosdude1? You've been pretty quiet.

Edit: sorry about posting like 10x in a row, lol

Oh right, it's as making believe Catalina that is booting from single user mode with a kind of auto-exited.

But what do you mean exactly with "replace the entire function" _isSingleUser, to NOP all the region inside that function assembly code but leaving only that "code" ?

Because I can't find this address inside the _isSingleUser: "mov rax,0x1"

If you indicate the offset range may help more.
 
Last edited:
  • Like
Reactions: Appleak
Oh right, it's as making believe Catalina that is booting from single user mode with a kind of auto-exited.

But what do you mean exactly with "replace the entire function" _isSingleUser, to NOP all the region inside that function assembly code but leaving only that "code" ?

Because I can't find this address inside the _isSingleUser: "mov rax,0x1"
Not sure what tool you are using, but in Hopper Disassembler, you can use the "assemble instruction" feature to insert your own assembly code (overwriting the existing). I just wanted that function to always return true, so I replaced the first two lines of that procedure with the code I posted above. (I didn't NOP the lines after, but control will never reach them of course.)

It's definitely not a hack that should end up in @dosdude1's final patcher; we need to get to the bottom of this problem rather than tricking it we're using single-user mode when we're not! But it does work, for the time being.
 
Not sure what tool you are using, but in Hopper Disassembler, you can use the "assemble instruction" feature to insert your own assembly code (overwriting the existing). I just wanted that function to always return true, so I replaced the first two lines of that procedure with the code I posted above.

It's definitely not a hack that should end up in @dosdude1's final patcher; we need to get to the bottom of this problem rather than tricking it we're using single-user mode when we're not! But it does work, for the time being.

Ok, but honestly passing from a single-user-mode after all doesn't hurt, to avoid that annoying "HID timeout" I guess it's a good solution yours.

Anyway I have done meanwhile another test, I took apart from the CatalinaInstaller.app its BaseSystem.dmg and restored to an empty 2 gb HFS partition, well apparently booting from that "incomplete Catalina Installer" I haven't encounter any "HID timeout" and arrived enough fast to the Installer GUI, so apparently on the main system this HID timeout could be related also to some other kext during the preload, for example the HIDBluetooth one.
 
I NOP'ed these two address ranges. It's stuff about names that seems to be an issue. I can't say I understand why.
0xd59c - 0xd5b0
0xd610 - 0xd621
[doublepost=1559736653][/doublepost]
That looks interesting! I really just need the "transparent web-based overlay accessible with a button press" feature, I have a custom full-screen Notes app that I like to be able to access by just tapping F4 at any time. So I doubt that I will be working on reimplementing the full Dashboard or anything (I don't have the coding skill in any case).
[doublepost=1559736685][/doublepost]
We already have it booting, and VMs don't help with acceleration, so I don't see why that would be helpful.
[doublepost=1559736729][/doublepost]
I didn't save the log, but I was getting WindowServer crashes with AppKit failing to find those exact functions. You are definitely correct :)
[doublepost=1559736964][/doublepost]
I don't want to cause more drama, but you're taking this way too far. @0403979 is not @dosdude1, and I agree that the latter should probably lead (or co-lead?) this project. But that doesn't entitle you to be a jerk to him.

Especially since I don't remember you contributing to the Mojave thread nearly as much as Julian did.
[doublepost=1559737073][/doublepost]
My patch to the IOHIDFamily kext is definitely a little sketchy, but it 100% works to solve the timeout.

I just replace the entire function _isSingleUser with the following:
Code:
mov rax,0x1
ret
(I did this because I noticed that the hang never happened when typing in single-user console and then exiting.)

Also, what are you up to @dosdude1? You've been pretty quiet.

Edit: sorry about posting like 10x in a row, lol
On Dashboard - (if you were so inclined) it’s got overlay grid and widget processing. But yes, needs experience and time. Anyway just an attempt to add a little levity here...

On AppKit - I share your concerns about patching it. Same reasons I looked for the least invasive approaches for my hybrid patches. It may be worth bypassing those two CoreDisplay calls just to see if retro-patching restores acceleration. As a proof of concept. In the long run doing so will probably cripple all the new Catalina functionality, so not a long term solution. I still believe that, in the end, truly patching these new frameworks will be necessary to benefit from all of Catalina’s features. But that may take some time...

EDIT: I noticed a new XPC folder in AppKit a la CoreDisplay. All these frameworks are definitely getting more chatty with new ipc messages. All getting pretty complex...
 
Why doesn’t the NDVShim resolve the VSLGestalt symbol anymore on Catalina?
Wait, does it not? I've been using an alternate method (binary edits to NVDAResmanTesla.kext) anyways, but I can't see how that would be the case. Do you just need to rebuild a prelinkedkernel maybe?
[doublepost=1559741725][/doublepost]
It may be worth bypassing those two CoreDisplay calls just to see if retro-patching restores acceleration. As a proof of concept.
Absolutely.
 
Wait, does it not? I've been using an alternate method (binary edits to NVDAResmanTesla.kext) anyways, but I can't see how that would be the case. Do you just need to rebuild a prelinkedkernel maybe?
[doublepost=1559741725][/doublepost]
Absolutely.

I think on Mojave you could either use NDVShim or replace IOGraphics...&IONDVSupport... to resolve the Symbol. Replacing the two kext causes a kernel panic but if I just use the NDVShim I get the unresolved Symbol error
 
Catalina contains a Template for the Data directory, so for cloning a fresh system. You may be able to get by with cloning the main system APFS volume to another APFS volume without the Data directory as it will probably re-create the directory on the new disk during it's first boot up. Haven't tried this yet, just some thoughts on maintaining fresh copies for experimentation.
 
Wait, does it not? I've been using an alternate method (binary edits to NVDAResmanTesla.kext) anyways, but I can't see how that would be the case. Do you just need to rebuild a prelinkedkernel maybe?
[doublepost=1559741725][/doublepost]
Absolutely.

Following your tip, I've tried to NOP/patch IOSurface these range:
0xd59c - 0xd5b0
0xd610 - 0xd621

but still get the same Kernel Panic when preload the legacy Nvidia Tesla kext, I don't think I have done wrong since following your very earlier tip about patching a GeForceTesla binary I did succeeded with no issues, don't know maybe I have previously mismatched too many kext as AGC and IOAccelerator*

But just to know patching IOSurface do you got Video Framebuffer? I mean do you notice the transition from cold colors to warm colors, starting from the stage2 apple logo, I use that as main signal to see quickly if the Framebuffer driver is loaded.

Video Framebuffer in many cases should bring also the Brightness backlight control and Night Shift if patching the CoreBrightness.
 
  • Like
Reactions: Appleak
I think on Mojave you could either use NDVShim or replace IOGraphics...&IONDVSupport... to resolve the Symbol. Replacing the two kext causes a kernel panic but if I just use the NDVShim I get the unresolved Symbol error
Try this.

Edit
: oops, it merged the posts. NVDAResmanTesla for @testheit & IOSurface for @jackluke of course.
[doublepost=1559742912][/doublepost]@jackluke I don't have brightness control, but I do have the warm colored loginwindow Apple logo, and it feels noticeably snappier. And the correct image is shown in Displays preference.
 

Attachments

  • NVDAResmanTesla.zip
    1.1 MB · Views: 318
  • IOSurface.zip
    64.3 KB · Views: 323
Try this.

Edit
: oops, it merged the posts. NVDAResmanTesla for @testheit & IOSurface for @jackluke of course.
[doublepost=1559742912][/doublepost]@jackluke I don't have brightness control, but I do have the warm colored loginwindow Apple logo, and it feels noticeably snappier. And the correct image is shown in Displays preference.

Of course as always, using yours IOSurface worked immediately, soon noticed the transition from cold colors to warm colors and Brightness control too, amazing work!

Not totally sure but probably my previous DualGPUs AGC replacement (with all its plugins) has also brought the Brightness control on MacBook7,1 , because I do have the F1-F2 backlight control working.

Because as you know, I use the same external SSD Cataline among different machines (even supported Mac!), so my prelinkedkernel rebuild varies, and often I do some kext mismatch that I forgot.

Many thanks for this big step forward!

I'm posting a picture in a while.

I manually patched CoreBrightness with "pikeralpha method" and is working fine too, of course can't be noticed from a screen capture but it works and brings warmer tones. I attached it.

Just a note, Night Shift "patch" only works when your GPU Framebuffer driver is loaded, otherwise they are just on-off buttons.
 

Attachments

  • Screenshot 2019-06-05 at 16.33.13.png
    Screenshot 2019-06-05 at 16.33.13.png
    685 KB · Views: 503
  • Catalina NightShift CoreBrightness.framework.zip
    620.5 KB · Views: 335
Last edited:
Of course as always, using yours IOSurface worked immediately, soon noticed the transition from cold colors to warm colors and Brightness control too, amazing work!

Not totally sure but probably my previous DualGPUs AGC replacement (with all its plugins) has also brought the Brightness control on MacBook7,1 , because I do have the F1-F2 backlight control working.

Because as you know, I use the same external SSD Cataline among different machines (even supported Mac!), so my prelinkedkernel rebuild varies, and often I do some kext mismatch that I forgot.

Many thanks for this big step forward!

I'm posting a picture in a while.
Nice work with the brightness control, I will have to try the AGC replacement too.
 
Nice work with the brightness control, I will have to try the AGC replacement too.

Not sure if also could help but I've also replaced the IOAccelerator2D.plugin and IOAcceleratorFamily2.kext from HighSierra, they are typical needed for IntelHD Graphics, probably the Family2 is shared among all the GPUs, not sure.

In any case if for some reason you should not reach more the loginUI use the nvram safe mode "-no_compat_check -x -v".
 
Last edited:
Hi folks can anybody give me a tutorial for Mac pro 5.1,
I am running with non efi k5000 kepler Nvidia quadro in MacPro 2012,
I would like to know if the kepler driver of iMac 2013 (GTX 780m Haswell) still works in mac pro 5.1 with acceleration ....
and did anybody tried SIDE-CAR ipad feature with mac pro 5.1 with GTX680?
 
Of course as always, using yours IOSurface worked immediately, soon noticed the transition from cold colors to warm colors and Brightness control too, amazing work!

Not totally sure but probably my previous DualGPUs AGC replacement (with all its plugins) has also brought the Brightness control on MacBook7,1 , because I do have the F1-F2 backlight control working.

Because as you know, I use the same external SSD Cataline among different machines (even supported Mac!), so my prelinkedkernel rebuild varies, and often I do some kext mismatch that I forgot.

Many thanks for this big step forward!

I'm posting a picture in a while.

I manually patched CoreBrightness with "pikeralpha method" and is working fine too, of course can't be noticed from a screen capture but it works and brings warmer tones. I attached it.
What is non-accelerated performance like?
 
What is non-accelerated performance like?

Enough slow, I had the impression that it was a bit more reactive without the GPUs driver loaded, I mean only with the basic video mode ones, as those when you boot into an OSX GUI Installer.
[doublepost=1559746913][/doublepost]
Nice work with the brightness control, I will have to try the AGC replacement too.

If may help I've checked from MacBook7,1 the kext loaded and these should bring Brightness control:

AppleGraphicsDeviceControl (4.1.26) this is a plugin inside the AGC kext
AGDCBackLightControl
AppleBacklight (170.17) from Catalina
AppleBackLightExpert (1.1.0) from Catalina

I guess you noticed also from Catalina prelinked that AGDPolicy and AppleMCCSControl were refused, instead using that from HighSierra appears to prelink them correctly.

4.1.26 should be the AGC from Catalina, while AGC from HighSierra is 3.20.x , anyway they work both in my case, because I re-replaced putting those HS ones and brightness is still there.
 
Last edited:
Enough slow, I had the impression that it was a bit more reactive without the GPUs driver loaded, I mean only with the basic video mode ones, as those when you boot into an OSX GUI Installer.
You and @ASentientBot are doing great work by the way.

What non-native frameworks are part of this configuration (I know kernel kexts is a different situation) ?

Hi folks can anybody give me a tutorial for Mac pro 5.1,
I am running with non efi k5000 kepler Nvidia quadro in MacPro 2012,
I would like to know if the kepler driver of iMac 2013 (GTX 780m Haswell) still works in mac pro 5.1 with acceleration ....
and did anybody tried SIDE-CAR ipad feature with mac pro 5.1 with GTX680?

I'm not sure if anyone has tried Side Car yet - but I wouldn't be surprised if it relies almost exclusively on Metal drivers so it may only be available to (unsupported) mac pro + metal compatible card configurations.
 
You and @ASentientBot are doing great work by the way.

What non-native frameworks are part of this configuration (I know kernel kexts is a different situation) ?



I'm not sure if anyone has tried Side Car yet - but I wouldn't be surprised if it relies almost exclusively on Metal drivers so it may only be available to (unsupported) mac pro + metal compatible card configurations.

For now I haven't replaced any framework, just the GPUWrangler from HS that doesn't make much difference with or without it. The kext are those that have been used for Mojave I'd say, apart this new @ASentientBot IOSurface fix and IOHIDDevice fix (that haven't tried yet).
 
Very cool!

Wait a moment, replacing GPUWrangler.framework, AGC.kext and AGPM.kext with those from HighSierra is instead totally useful on Catalina, I post pictures to explain why.

Again, a huge thanks to @ASentientBot since his IOSurface fix brought Brightness control and framebuffer also to a DualGPUs Mac!

In combination with my previous manual MojaveDualGPUs fix now dualGPUs switching works fine also with Catalina in framebuffer mode, of course not yet video acceleration.

And I have to say that a lower-end IntelHD Graphics performs even more faster than GT 330M, in this configuration showed. Most probably because GT 330M lacking the GL acceleration where it more relies.

It's weird looks like the IntelHD is semi-accelerated.
 

Attachments

  • Screenshot 2019-06-05 at 17.54.06.png
    Screenshot 2019-06-05 at 17.54.06.png
    2.1 MB · Views: 545
  • Screenshot 2019-06-05 at 17.56.49.png
    Screenshot 2019-06-05 at 17.56.49.png
    1.4 MB · Views: 499
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.