Contribute
Register

Problem with Native Access

Ok would be good to find the problem here. Maybe some experts here can help us... I remember that I once made it work, sadly forgot what I did here. Disabling the Intel's GPU in the bios alone does not sove the issue. But I think it is the right direction, I remember that.

Maybe some Clover config switch then? Or a different ACPI? My ACPI has a lot of IGPU stuff, even when the IGPU is disabled in the bios (since a patched one is loaded). The IOReg does not show then any signs of IGPU, but should all the IGPU stuff also removed from the ACPI?

ZN2NI2GP11SystemInfo215retrieveGPUInfoEv is called, so some NI lib tries to detect the available GPU, but here obviously is a bug. Strange thing then is, the software works as expected after the crash. But the VST plugins will report that the are broken to the DAW and won't load.
 
Yes it would be great to find the issue.

I am running a Mac Pro 5,1 with no IGPU, both in hardware or software (dual x5680 CPUs) and have tried various flags and I think even different system definitions (iMac 19,1 or iMac pro 1,1).

I have tried with and without WhateverGreen, injecting ATI, different boot flags (pikera etc), with and without framebuffer mods (to get DVI/ HDMI ports working). Fakesmc, virtualsmc. Have tried in RAID HDDs, in NVME drives, External usb drives. GPU in different slots, fresh Mojave installations...

Not sure what it could be...
 
I have the same issue. Works great on Mojave, crashes on Big Sur. Really frustrating as I'm trying to transition from Mojave to Big Sur.


/Applications/Native\ Access.app/Contents/MacOS/Native\ Access ; exit;
2021-08-13 21:17:52.765 Native Access[1331:19972] -[__NSCFData _fastCStringContents:]: unrecognized selector sent to instance 0x7ff5f4d32d00
2021-08-13 21:17:52.766 Native Access[1331:19972] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFData _fastCStringContents:]: unrecognized selector sent to instance 0x7ff5f4d32d00'

*** First throw call stack:
(
0 CoreFoundation 0x00007fff2050045f __exceptionPreprocess + 242
1 libobjc.A.dylib 0x00007fff20238bbb objc_exception_throw + 48
2 CoreFoundation 0x00007fff20582f78 -[NSObject(NSObject) __retain_OA] + 0
3 CoreFoundation 0x00007fff204685cd ___forwarding___ + 1448
4 CoreFoundation 0x00007fff20467f98 _CF_forwarding_prep_0 + 120
5 CoreFoundation 0x00007fff2041d81e CFStringCompareWithOptionsAndLocale + 314
6 Native Access 0x000000010fd6bff9 _ZN2NI2GP11SystemInfo215retrieveGPUInfoEv + 665
7 Native Access 0x000000010fc22a80 _ZN12_GLOBAL__N_120addGpSuperPropertiesERN2ni4uret17EventQueueManagerEN2NI2GP13VersionNumberENS1_18ApplicationFlavourE + 5136
8 Native Access 0x000000010fc1bf5a _ZN2ni4uret4initERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEN2NI2GP13VersionNumberENS0_18ApplicationFlavourEb + 378
9 Native Access 0x000000010f69e2f2 _ZN2ni5cloud6client13TelemetryURET8initUretERKN2NI2GP13VersionNumberE + 146
10 Native Access 0x000000010f69e391 _ZN2ni5cloud6client13TelemetryURETC1ERKN2NI2GP13VersionNumberE + 33
11 Native Access 0x000000010f44d84f _ZN2ni5cloud6client17ClientApplicationC2ERiPPcRNS1_10NilibsInitE + 1743
12 Native Access 0x000000010f47d1fa main + 714
13 libdyld.dylib 0x00007fff203a8f3d start + 1
)

libc++abi: terminating with uncaught exception of type NSException
zsh: abort /Applications/Native\ Access.app/Contents/MacOS/Native\ Access
 
Yes it would be great to find the issue.

I am running a Mac Pro 5,1 with no IGPU, both in hardware or software (dual x5680 CPUs) and have tried various flags and I think even different system definitions (iMac 19,1 or iMac pro 1,1).

I have tried with and without WhateverGreen, injecting ATI, different boot flags (pikera etc), with and without framebuffer mods (to get DVI/ HDMI ports working). Fakesmc, virtualsmc. Have tried in RAID HDDs, in NVME drives, External usb drives. GPU in different slots, fresh Mojave installations...

Not sure what it could be...

It's weird it doesn't run for you on Mojave. Is that with Opencore or Clover?
My Clover Mojave is fine with Native Access.
 
This is also an interesting post, mentioning Opencore causes issues, but not dosdude's patch:
 
So, I disassembled Native Access and found this:

aIopcidevice:
00000001017204a9 db "IOPCIDevice", 0 ; DATA XREF=__ZN2NI2GP11SystemInfo215retrieveGPUInfoEv+34

aIoname:
00000001017204b5 db "IOName", 0 ; DATA XREF=cfstring_IOName

aDisplay:
00000001017204bc db "display", 0 ; DATA XREF=cfstring_display

aModel:
00000001017204c4 db "model", 0 ; DATA XREF=cfstring_model

aAtymemsize:
00000001017204ca db "ATY,memsize", 0 ; DATA XREF=cfstring_ATY_memsize

aVramtotalsize:
00000001017204d6 db "VRAM,totalsize", 0 ; DATA XREF=cfstring_VRAM_totalsize

This is how it tries to detect your GPU model and VRAM.

I fired IORegistryExplorer and searching for "GFX0" should bring your GPU device.
Sure enough, IOName is "display", model contains the GPU name, "ATY,memsize" is 0x80000000 (2048MB in my case) and, surprise, I have no "VRAM,totalsize" property.

That missing property would explain the crash, but what puzzles me is, in the Mojave setup I also run on the same machine, with Native Access running fine, I don't have VRAM,totalsize either!

I tried to add this property via Opencore but no luck so far...
I'll go back to my Mojave setup and dig a bit deeper in the IORegistry to see why it would work there and not in Big Sur.

EDIT: Both my Hackintosh Mojave (where Native Access works) and a 2010 Macbook Pro running Mojave Dosdude patch have the "model" property as HEX and not as a string! I'm trying to patch this via DSDT but struggling to find the correct scope path. I tried using Opencore device properties, with no luck (it's replaced by what Whatevergreen sets)
 
Last edited:
I really thought I was onto something with that model property being either a string or a bytes array but I just ran Native Access on another Macbook pro that show the model as a string and it worked, so, it's not the issue. Back to square one...
 
Yes it would be great to find the issue.

I am running a Mac Pro 5,1 with no IGPU, both in hardware or software (dual x5680 CPUs) and have tried various flags and I think even different system definitions (iMac 19,1 or iMac pro 1,1).

I have tried with and without WhateverGreen, injecting ATI, different boot flags (pikera etc), with and without framebuffer mods (to get DVI/ HDMI ports working). Fakesmc, virtualsmc. Have tried in RAID HDDs, in NVME drives, External usb drives. GPU in different slots, fresh Mojave installations...

Not sure what it could be...

Finally found the issue.
Native Access goes through all your IODevices and looks for the "IOName" property. Then it uses CFStringCompare to check if the property value is "display".

I had a DeviceProperty patch for AppleLPC that set IOName to a Data type, instead of a String. That made Native Crash as CFStringCompare didn't expect anything else than a string for IOName.

To find such a problematic property, open IORegistryExplorer and expand the search options panel:

1629553687682.png


Check "Property Keys"

Then search for "IOName"
(it will also match "IONameMatch" properties so it's a bit tedious as there's a massive number of matching devices)

Go through all of them.
Every time you have an "IOName" property, check the "Type" column. If it's not "String", you have your culprit.

Find what sets that wrong type and change it to the correct type, or disable that patch.

HTH.
 
Hello
I have the same problem and I cannot fix it, among other things IORegistryExplorer does not return anything with IOName. Please if someone could help me .....
 
Hello
I have the same problem and I cannot fix it, among other things IORegistryExplorer does not return anything with IOName. Please if someone could help me .....
Look at the screenshot above, you need to check “Property Keys” in the search options, it’s unchecked by default and will not return any result when searching for “IOName”
 
Back
Top