benmacfreak Posted September 6 Share Posted September 6 7 minutes ago, Mastachief said: Use GPU-Z on windows to figure out what your GPU id and model, and edit your post and put it there instead of creating a new post. im doing school atm ill do that on my end soon Link to comment Share on other sites More sharing options...
luke192 Posted September 6 Share Posted September 6 2 hours ago, Mastachief said: Use GPU-Z on windows to figure out whats your Intel GPU id and model, and edit your post and put it there instead of creating a new post. Verify you are using "XE" Architecture based on the following list. --> https://dgpu-docs.intel.com/devices/hardware-table.html XE-HPG, Xe-HPC & Xe-LPG and others will definitely never have a chance as those are Intel ARC etc Would this be compatible? I still haven't got macOS to boot BTW 1 Link to comment Share on other sites More sharing options...
Mastachief Posted September 6 Share Posted September 6 We have no way to advise of what will work or won't right now as the driver is in development, if you don't have 11th gen, it's best to test and let us know what the result on your computer is, but you won't have acceleration. No ETA, best to test using ventura. 1 Link to comment Share on other sites More sharing options...
ArtikDiamond Posted September 7 Share Posted September 7 (edited) Hey! Today, I decided to try NootedBlue with a clean install of Ventura. Is it normal to be stuck on "IOKit Daemon," as shown in the picture? It’s been like this for a while (just booting the installer) and it just went from 2 lines of "IOKit Daemon" to 4 while I was writing this. Also, Mastachief, would you like me to share my config.plist? Edit - new photo Now it's moving, but I think it's in some kind of error loop: Edited September 7 by ArtikDiamond Link to comment Share on other sites More sharing options...
Visual Ehrmanntraut Posted September 7 Share Posted September 7 On 9/6/2024 at 12:37 AM, jalavoui said: their usage in code is strange. see this code (so i opt for use ml_io_read_ptr() in hookcase) Link to comment Share on other sites More sharing options...
Visual Ehrmanntraut Posted September 7 Share Posted September 7 Link to comment Share on other sites More sharing options...
ArtikDiamond Posted September 7 Share Posted September 7 8 hours ago, ArtikDiamond said: Now it's moving, but I think it's in some kind of error loop: Do you know what could it be? Do you need my plist or EFI? Link to comment Share on other sites More sharing options...
Visual Ehrmanntraut Posted September 7 Share Posted September 7 Y'all, that HookCase code Jalavoui sent is a catastrophic fail. Try this instead. HookCase.kext.zip Link to comment Share on other sites More sharing options...
jalavoui Posted September 7 Share Posted September 7 (edited) Visual check BNinja definitions for the functions wtf is this ? c++filt friendly? anyway can you build your kext for AppleIntelBaseController also ? i bet hwSetupDSBMemory() is a mem allocation but with which parameters and offsets? you sure u wanna make hwSetupDSBMemory() return 1? it will skip this code part btw can you also add extern "C" void gpu_accumulate_time(); extern "C" void gpu_describe(); for AppleIntelTGLGraphics.kext missing symbols? i got a link error so i added this extern "C" char *__null_terminated strnstr(const char *__null_terminated s, const char *__null_terminated find, size_t slen) __stateful_pure; gonna recheck if still need anyway tks for writting a few lines of code i do hope others follow Visual you forgot to fix symbols in your kext. it won't load cause of don't be lazy and create a class ! this is the theory i was looking for related to offsets in this code the offset is 0x9b0 - it is a similiar readregister function of same class we are interested so for hookcase we need to use same offset for it to work fine for some functions but hard to find for others but researching older code (AppleIntelCFLGraphicsFramebuffer) what we need might be close to this (my theory) Edited September 7 by jalavoui 1 Link to comment Share on other sites More sharing options...
Visual Ehrmanntraut Posted September 7 Share Posted September 7 3 minutes ago, jalavoui said: Visual check BNinja definitions for the functions did. that kext is my attempt to fix your code. don't know what the DSB thing is supposed to do. found an implementation of probePortMode but it's probably too complicated to implement in this environment, have fun with that. 1 hour ago, jalavoui said: you sure u wanna make hwSetupDSBMemory() return 1? it will skip this code part Whoops, misread != for ==. 1 hour ago, jalavoui said: Visual you forgot to fix symbols in your kext. it won't load cause of don't be lazy and create a class ! What do you mean? Oh.... 1 Link to comment Share on other sites More sharing options...
Visual Ehrmanntraut Posted September 7 Share Posted September 7 1 hour ago, jalavoui said: btw can you also add extern "C" void gpu_accumulate_time(); extern "C" void gpu_describe(); for AppleIntelTGLGraphics.kext missing symbols? I see this symbol referenced in other kexts as well as standard macOS builds, so it's not actually missing. 1 hour ago, jalavoui said: anyway tks for writting a few lines of code Not just that. I was reverse engineering for a few hours to come up with that. 1 Link to comment Share on other sites More sharing options...
jalavoui Posted September 7 Share Posted September 7 (edited) i declared this to get the correct export symbol name extern "C" unsigned int AppleIntelBaseController::ReadRegister32(unsigned long a) and ofc this is not what is need. i need the extra void* parameter can you share your header declaration. i dont get this... anyway your kext won't load cause of _start symbol. just grab them all to /L/E and fix permissions when you load it you will see the error oh and the write function must not return a value. check your code i'm trying to inplement the validation seen in icl code so if ((*(byte *)(*(long *)&(this->m_AppleIntelFramebufferController).field_0xcf0 + 0xb2) & 1) != 0) icl code translates to if ((*(*(arg1 + 0xd40) + 0xfa) & 1) != 0) tgl offsets then there are some range check that maybe easier to ignore and just return zero (nha those validations for range might help avoid crashes) and finally there's a size check that is made against an offset if (param_1 < *(int *)&(this->m_AppleIntelFramebufferController).field_0xc30 - 4) { (this is icl code) so the tgl offset will be... if (zx.q(*(arg1 + 0x60) - 4) u<= arg3) maybe here for tgl btw apple code as a bug in here (i think the check must be 0x60)-8 as its a 64bits reading acording to old icl code Edited September 7 by jalavoui 1 Link to comment Share on other sites More sharing options...
Visual Ehrmanntraut Posted September 7 Share Posted September 7 AppleIntelICLLPGraphicsFramebuffer.__ZN17AppleIntelPortHAL13probePortModeEv.txtHookCase-master.zipHookCase.zip Link to comment Share on other sites More sharing options...
Visual Ehrmanntraut Posted September 7 Share Posted September 7 39 minutes ago, jalavoui said: oh and the write function must not return a value. check your code just misdecompilation Link to comment Share on other sites More sharing options...
jalavoui Posted September 7 Share Posted September 7 (edited) gonna check your code meanwhile i wrote this for new tgl extern "C" unsigned int AppleIntelBaseController::ReadRegister32(void volatile* a, unsigned long b) { long *plVar1; uint32_t uVar2; if ((*(int *)(*(long *)((long *)a + 0xd40) + 0xfa) & 1) != 0) { if (0x1fff < b) { if (b < 0x40000) { } else { if (b < 0x1c0000 || 0x23ffff < b) goto LAB_00047bfb; } return 0; } } LAB_00047bfb: if (b < *(int *)((long *)a + 0x60) - 4) uVar2 = *(uint32_t *)((long)a + b); else { uVar2 = 0; return uVar2; that was smart you got the rmio address uint64_t rmmio = getMember<uint64_t>(this, 0x9B0) very nice ! ok test results gonna try on real hardware now Edited September 7 by jalavoui 1 1 Link to comment Share on other sites More sharing options...
Visual Ehrmanntraut Posted September 7 Share Posted September 7 (edited) 11 minutes ago, jalavoui said: that was smart you got the rmio address uint64_t rmmio = getMember<uint64_t>(this, 0x9B0) very nice ! I'm (lol, hope you get the reference) Edited September 7 by Visual Ehrmanntraut 1 3 Link to comment Share on other sites More sharing options...
Visual Ehrmanntraut Posted September 7 Share Posted September 7 Oh yeah. I think I forgot to say that they probably need to go to /S/L/E and not /L/E for proper operation 1 Link to comment Share on other sites More sharing options...
jalavoui Posted September 7 Share Posted September 7 (edited) with no patches i get this anyway it's a good panic time to test some patches testing on L/E atm Edited September 7 by jalavoui 1 Link to comment Share on other sites More sharing options...
Mastachief Posted September 7 Share Posted September 7 So which hookcase should we use?For S/L/E should I use the in internal tglgraphic kexts? I can always test with the seal broken on Sonoma.I still don't know where iglogs go when we have igloglevel=8 1 Link to comment Share on other sites More sharing options...
Visual Ehrmanntraut Posted September 7 Share Posted September 7 @jalavoui Are you using the diags kext? That's the only one where the offset in the panic makes any sense. but probePortMode here should be populated in both HAL and HALDiags, according to the decompilation 1 Link to comment Share on other sites More sharing options...
jalavoui Posted September 8 Share Posted September 8 (edited) yes the diags help a lot this bug again with you hook - grrrrr todo: test both internal and production tgl versions Edited September 8 by jalavoui 1 Link to comment Share on other sites More sharing options...
Visual Ehrmanntraut Posted September 8 Share Posted September 8 Honestly this specifically is likely because you're not putting them in /S/L/E Link to comment Share on other sites More sharing options...
jalavoui Posted September 8 Share Posted September 8 (edited) maybe. can you believe i have to rewrite hookcase because i was geting symbol conflicts with icl framebufer kext. well nvm here's a panic from production version the current patches i have are all for internal version atm here's the "compatible" hookcase but yeah S/L/E will be needed i'm thiking on bundles loading, etc wonder if other users are testing this. maybe alder lake wih device and ig-platform injection? this are nblue defaults that match existing tgl osinfo structure static uint8_t "AAPL,ig-platform-id[] = {0x00, 0x00, 0x49, 0x9A}; static uint8_t device-id[] = {0x49, 0x9A,0x00,0x00}; Edited September 9 by jalavoui 1 Link to comment Share on other sites More sharing options...
benmacfreak Posted September 8 Share Posted September 8 29 minutes ago, jalavoui said: maybe. can you believe i have to rewrite hookcase because i was geting symbol conflicts with icl framebufer kext. well nvm here's a panic from production version the current patches i have are all for internal version atm here's the "compatible" hookcase HookCase.kext.zip 69.67 kB · 0 downloads HookCase-master.zip 185.48 kB · 0 downloads but yeah S/L/E will be needed i'm thiking on bundles loading, etc wonder if other users are testing this. maybe alder lake wih device and ig-platform injection? this are nblue defaults that match existing tgl osinfo structure static uint8_t "AAPL,ig-platform-id[] = {0x00, 0x00, 0x49, 0x9A}; static uint8_t device-id[] = {0x49, 0x9A,0x00,0x00}; i have a 9A68 device ID jala, just downloaded the HookCase posted 8 mins ago. Will let you know how it goes. Link to comment Share on other sites More sharing options...
Visual Ehrmanntraut Posted September 8 Share Posted September 8 35 minutes ago, jalavoui said: but yeah S/L/E will be needed i'm thiking on bundles loading, etc I think the bundles can go in /Library/GPUBundles. Link to comment Share on other sites More sharing options...
Recommended Posts