shl628 Posted April 14 Author Share Posted April 14 (edited) @jalavoui By any chance, can I modify the code as follows and also add the GPU Sku Bypass patch? I took the Sku Bypass binary patch from NBlue, added, modified, built, and applied the patch for kextIntelICL, but booting stopped. void IGFX::ForceCompleteModeset::processFramebufferKext(KernelPatcher &patcher, size_t index, mach_vm_address_t address, size_t size) { // AppleIntelFramebufferController::hwSetMode skip hwRegsNeedUpdate static const uint8_t f2[] = {0xE8, 0x31, 0xE5, 0xFF, 0xFF, 0x84, 0xC0, 0x74, 0x3D}; static const uint8_t r2[] = {0xE8, 0x31, 0xE5, 0xFF, 0xFF, 0x84, 0xC0, 0xEB, 0x3D}; // GPU Sku Bypass Bad Hack in IntelAccelerator::getGPUInfo static const uint8_t f[] = { 0x41, 0x8B, 0x84, 0x24, 0x88, 0x11, 0x00, 0x00, 0x41, 0x8B, 0x8C, 0x24, 0x90, 0x11, 0x00, 0x00, 0x41, 0x89, 0x8C, 0x24, 0xCC, 0x12, 0x00, 0x00, 0x41, 0x89, 0x84, 0x24, 0xD0, 0x12, 0x00, 0x00, 0x83, 0xF9, 0x02, 0x74, 0x4D, }; static const uint8_t r[] = { 0x41, 0x8B, 0x84, 0x24, 0x88, 0x11, 0x00, 0x00, 0x41, 0x8B, 0x8C, 0x24, 0x90, 0x11, 0x00, 0x00, 0x41, 0x89, 0x8C, 0x24, 0xCC, 0x12, 0x00, 0x00, 0x41, 0x89, 0x84, 0x24, 0xD0, 0x12, 0x00, 0x00, 0x83, 0xF9, 0x02, 0xEB, 0x56, }; KernelPatcher::LookupPatch patch { &kextIntelICLLPFb, f2, r2, sizeof(f2), 1 }; patcher.applyLookupPatch(&patch); KernelPatcher::LookupPatch patch2 { &kextIntelICL, f, r, sizeof(f), 1 }; patcher.applyLookupPatch(&patch2); } I tried applying the Sku Bypass v2 patch instead of the bad hack, but it still stops booting. The current macOS version is macOS Ventura 13.6.5 (22G621). + The patched WhateverGreen.kext has been uploaded to GitHub. Releases · lshbluesky/WhateverGreen (github.com) Edited April 16 by shl628 1 Link to comment Share on other sites More sharing options...
jalavoui Posted April 14 Share Posted April 14 (edited) not in that function that's for framebuffer maybe inside here ? bool IGFX::processKext(KernelPatcher &patcher, size_t index, mach_vm_address_t address, size_t size) { auto cpuGeneration = BaseDeviceInfo::get().cpuGeneration; if (currentGraphics && currentGraphics->loadIndex == index) { if (disableIGTelemetry) { auto symTelemetry = patcher.solveSymbol(index, "__ZN18IGTelemetryManager16prepareTelemetryEj"); you board seems with right configs. maybe try some patches on catalina ? i just added some code to whatevergreen no sonoma patches atm! unless someone get the bytes for: AppleIntelFramebufferController::hwSetMode skip hwRegsNeedUpdate // ventura static const uint8_t f2[] = {0xE8, 0x31, 0xE5, 0xFF, 0xFF, 0x84, 0xC0, 0x74, 0x3D}; static const uint8_t r2[] = {0xE8, 0x31, 0xE5, 0xFF, 0xFF, 0x84, 0xC0, 0xEB, 0x3D}; //catalina static const uint8_t f3[]= {0xe8, 0x38, 0xe7, 0xff, 0xff, 0x84, 0xc0, 0x74, 0x3d}; static const uint8_t r3[]= {0xe8, 0x38, 0xe7, 0xff, 0xff, 0x84, 0xc0, 0xeb, 0x3d}; omg i'm so lazy todo a masked patch... Edited April 14 by jalavoui Link to comment Share on other sites More sharing options...
Mastachief Posted April 14 Share Posted April 14 (edited) Just tested, booting on Ventura 13.6.5 works well, the Framebuffer is enabled, you can also use for device properties instead of 0100718A, 718A0000 combo; AAPL,ig-platform-id 0200518A device-id 538A0000 additionally if you use the ifgxfw=2 flag, the fb-mem patch gets applied, I got memory to 3072, best to stay at 2048 though. Any Idea why the Patched WhateverGreen doesnt load on Sonoma atm? still get a Black Screen, Im testing theSonoma installer now, but the opencore log doesnt load onto the USB to give any clues, only other way is to load using -igfxvesa, then do tests after enabled remote management. Additionally there are major changes between 14.4 and 14.4.1 and you would have to disable the security policy to even get it to boot. Misc -> Security -> SecureBoot Model, change to Disabled UEFI -> Quirks, DisableSecurityPolicy - Set to Enabled Edited April 14 by Mastachief Link to comment Share on other sites More sharing options...
jalavoui Posted April 14 Share Posted April 14 (edited) static int icl_pcode_read_mem_global_info(struct drm_i915_private *dev_priv) { struct dram_info *dram_info = &dev_priv->dram_info; u32 val = 0; int ret; ret = snb_pcode_read(&dev_priv->uncore, ICL_PCODE_MEM_SUBSYSYSTEM_INFO | ICL_PCODE_MEM_SS_READ_GLOBAL_INFO, &val, NULL); if (ret) return ret; if (GRAPHICS_VER(dev_priv) == 12) { switch (val & 0xf) { case 0: dram_info->type = INTEL_DRAM_DDR4; break; case 1: dram_info->type = INTEL_DRAM_DDR5; break; case 2: dram_info->type = INTEL_DRAM_LPDDR5; break; case 3: dram_info->type = INTEL_DRAM_LPDDR4; break; case 4: dram_info->type = INTEL_DRAM_DDR3; break; case 5: dram_info->type = INTEL_DRAM_LPDDR3; break; default: MISSING_CASE(val & 0xf); return -EINVAL; } } else { switch (val & 0xf) { case 0: dram_info->type = INTEL_DRAM_DDR4; break; case 1: dram_info->type = INTEL_DRAM_DDR3; break; case 2: dram_info->type = INTEL_DRAM_LPDDR3; break; case 3: dram_info->type = INTEL_DRAM_LPDDR4; break; default: MISSING_CASE(val & 0xf); return -EINVAL; } } dram_info->num_channels = (val & 0xf0) >> 4; dram_info->num_qgv_points = (val & 0xf00) >> 8; dram_info->num_psf_gv_points = (val & 0x3000) >> 12; return 0; } local_38 = *(long *)PTR____stack_chk_guard_000cf0a0; _DAT_000e53d0 = _DAT_000e53d0 + 1; uVar4 = 0; uVar2 = hwReadMailboxWithSubCommand(this,0xd,0,0); uVar9 = (uint)uVar2; uVar15 = (uVar9 & 0xf00) >> 8; if ((uVar2 & 0xf00) == 0) { uVar4 = uVar9 >> 4 & 0xf; } else { _DAT_000e53e0 = _DAT_000e53e0 + 1; uVar16 = (uVar2 & 0xffffffff) >> 4; uVar13 = (uint)uVar16 & 0xf; if ((uVar16 & 0xf) != 0) { _DAT_000e53d8 = _DAT_000e53d8 + 1; _DAT_000e1438 = _DAT_000e1438 + 1; uVar16 = 0; __os_log_internal(0,PTR___os_log_default_000cf0a8,0, "[IGFB][LOG ][%-10s] Value read from Mailbox for MEM_SS_INFO = 0x%llx\n", "DISPLAY",uVar2); _DAT_000e1438 = _DAT_000e1438 + 1; __os_log_internal(0,PTR___os_log_default_000cf0a8,0,"[IGFB][LOG ][%-10s] RAM = 0x%x\n", "DISPLAY",uVar9 & 0xf); _DAT_000e1438 = _DAT_000e1438 + 1; __os_log_internal(0,PTR___os_log_default_000cf0a8,0, "[IGFB][LOG ][%-10s] Populated Channels = 0x%x\n","DISPLAY",uVar13); _DAT_000e1438 = _DAT_000e1438 + 1; __os_log_internal(0,PTR___os_log_default_000cf0a8,0, "[IGFB][LOG ][%-10s] Number of GV points = 0x%x\n","DISPLAY",uVar15); if (DISPLAY_VER(i915) >= 14) ret = xelpdp_get_dram_info(i915); else if (GRAPHICS_VER(i915) >= 12) ret = gen12_get_dram_info(i915); else if (GRAPHICS_VER(i915) >= 11) ret = gen11_get_dram_info(i915); else if (IS_GEN9_LP(i915)) ret = bxt_get_dram_info(i915); else ret = skl_get_dram_info(i915); if (ret) return; drm_dbg_kms(&i915->drm, "DRAM channels: %u\n", dram_info->num_channels); is this a dual channel memory problem ? from logs if value is 0x143 then mem= 0x143 and 0xf = 0x3 = INTEL_DRAM_LPDDR4 so i have 0x120 and 0xf = 0x0 = INTEL_DRAM_DDR4 adding the device with opencore changes the driver loading with no injection no crashes but also seem no interrupts this code is close to linux gen9_read_clock_frequency() need to be changed for gen11 _IOLog(fmt); _kprintf(fmt); uVar13 = uVar4 >> 3 & 7; dVar8 = 24000000; if (uVar13 < 4) { dVar8 = (&DWORD_000af470)[uVar13]; } uVar13 = dVar8 >> (~(byte)(uVar4 >> 1) & 3); _g_timestampFreqPerDenominator = (ulong)(uVar13 >> 5) / 0xc35; _DWORD DWORD_000af470[4] = { 24000000, 19200000, 38400000, 25000000 }; guess all code from IntelAccelerator::getGPUInfo(void) is wrong for tiger lake Edited April 15 by jalavoui Link to comment Share on other sites More sharing options...
shl628 Posted April 15 Author Share Posted April 15 (edited) @jalavoui Using jalavoui's second modified WhateverGreen.kext on page 4 of the current Topic, the GPU Sku Bypass patch was successfully applied and booting was completed. And, the situation was the same as when using the NBlue. If igfxfw=2 boot arg is not applied, Unexpected context status buffer entry kernel panic occurs. If igfxfw=2 boot arg is applied, graphics acceleration is attempted, but an error log related to firmware loading is output, and booting is completed. [ 20.316475]: [IGPU] Begin Gfx firmware load process [ 20.316479]: [IGPU] Begin Gfx firmware load process [ 20.316480]: [IGPU] ForceWake Multithread = 0x30002 [ 20.316483]: [IGPU] ForceWake Multithread = 0x30002 [ 20.316485]: [IGPU] CONFIG0 (0xD00) = 0x80000014 [ 20.316490]: [IGPU] CONFIG0 (0xD00) = 0x80000014 [ 20.316503]: [IGPU] GT_THREAD_STATUS = 0x40030000 [ 20.316510]: [IGPU] GT_THREAD_STATUS = 0x40030000 [ 20.316510]: [IGPU] Doing retry #0 [ 20.316512]: [IGPU] Doing retry #0 [ 20.407329]: [AGPM][INFO ][CONTROLLER ][createAGPMClass ] gpuDict IGPU [ 20.407334]: [AGPM][INFO ][CONTROLLER ][createAGPMClass ] build gpuDict by GPU IGPU. [ 20.456976]: HE2N_Key Does Not Exist, use kSMCPStatesIGPU for Internal GPU [ 20.456978]: HE2N_Key Does Not Exist, use kSMCPStatesIGPU for Internal GPU [ 20.457043]: [AGPM][INFO ][CONTROLLER ][start ] GPU = IGPU Initialized, Control ID 16 [ 22.088655]: [IGPU] Graphics Firmware Version: 0.0.0.0 [ 22.088661]: [IGPU] Graphics Firmware Version: 0.0.0.0 [ 22.088722]: [IGPU] Failed to load graphics firmware binary, STATUS = 0x840000EC [ 22.088726]: [IGPU] Failed to load graphics firmware binary, STATUS = 0x840000EC [ 22.088792]: [IGPU] Failed to initialize graphics firmware. [ 22.088794]: [IGPU] Failed to initialize graphics firmware. [ 22.088804]: [IGPU] Failed to start graphics engine [ 22.088805]: [IGPU] Failed to start graphics engine [ 22.088810]: [IGPU] Request to send Host -> Gfx firmware message when the firmware channel is not active! [ 22.088812]: [IGPU] Request to send Host -> Gfx firmware message when the firmware channel is not active! [ 22.088813]: [IGPU] Failed to send wait-for-idle request to firmware [ 22.088814]: [IGPU] Failed to send wait-for-idle request to firmware - boot-args : -v keepsyms=1 debug=0x100 dc6config=0 -noDC9 -wegdbg -allow3d igfxfw=2 - macOS Version : macOS Ventura 13.6.5 (22G621) I am attaching the log. Dmesg Logs (IGPU, WEG).txt x.log Edited April 15 by shl628 Link to comment Share on other sites More sharing options...
jalavoui Posted April 15 Share Posted April 15 (edited) what happen if you do same thing using nblue using -allow3d ? can you test with injected clover device and with no injected device todo: fix gpuinfo() so driver can do something usefull Edited April 15 by jalavoui 1 Link to comment Share on other sites More sharing options...
shl628 Posted April 15 Author Share Posted April 15 (edited) 18 minutes ago, jalavoui said: what happen if you do same thing using nblue using -allow3d ? can you test with injected clover device and with no injected device When I remove all iGPU Properties and boot with the most recently modified and uploaded NBlue, booting stops. I think it's causing an Unsupported CD Clock Frequency kernel panic. It seems like the kernel panic log is just not visible on the screen. Edited April 15 by shl628 Link to comment Share on other sites More sharing options...
jalavoui Posted April 16 Share Posted April 16 (edited) this seems not to match struct PACKED FramebufferICLLP {} with struct PACKED prefs_ICLLP { uint64_t gpuid = 0x8A700001LL; uint64_t *name = (__int64)"Intel HD Graphics ICL RVP BigSur"; uint8_t fMobile; uint8_t fPipeCount; uint8_t fPortCount; uint8_t fFBMemoryCount; uint64_t 14BBA41C = 0x4000000LL; uint32_t 14BBA424 = 0x60000000; uint64_t connecors[90]; uint32_t 14BBA4B8 = 107268; uint32_t unk1 = 0; uint64_t *gComboPhyDPTable; uint32_t unk2 = 0; uint64_t *gComboPhyDPTable; uint32_t unk3 = 0; uint64_t *gComboPhyHDMITable; uint32_t 14BBA4F0 = 7; uint64_t 14BBA4F8 = 0x400000003LL; uint64_t 14BBA500 = 270000000LL; uint64_t 14BBA508 = 0LL; uint64_t 14BBA510 = 0x800000002LL; uint32_t 14BBA518 = 8; uint8_t 14BBA51C = 0; }; i just add the code for a specific ig-platform and patched some parameters it works altough not enough to unlock the acelerator Edited April 17 by jalavoui Link to comment Share on other sites More sharing options...
Mastachief Posted April 16 Share Posted April 16 (edited) The struct in ICLLP 8A530000 might be better. See below reposted by AustereJ summarized by FireWolf; Taken from https://www.insanelymac.com/forum/topic/344939-general-discussion-intel-ice-lake-graphics-on-macos-catalina/ Edited April 16 by Mastachief Link to comment Share on other sites More sharing options...
shl628 Posted April 20 Author Share Posted April 20 AppleIntelICLGraphics.kext and AppleIntelICLLPGraphicsFramebuffer.kext extracted from macOS Sonoma 14.4.1 (23E224) are attached. This is a Kext containing a Binary file. ICL Kext Drivers - Sonoma 14.4.1 (23E224).zip I extracted it using decompkernelcache below. https://www.insanelymac.com/forum/topic/357789-dyld-cache-extractor-used-by oclp/ Link to comment Share on other sites More sharing options...
jalavoui Posted April 20 Share Posted April 20 (edited) the decompkernelcache code is still a bit bugged but maybe it helps. can you try get the patched bytes for screen fix and see if it works on sonoma ? my guess this is the spot. but i think this as changed for latest sonoma patch is easy change 74 5c to eb 5c Edited April 21 by jalavoui Link to comment Share on other sites More sharing options...
Mastachief Posted April 21 Share Posted April 21 Which Sonoma would be good after applying the change? The same 14.4.1? 2 Link to comment Share on other sites More sharing options...
jalavoui Posted April 25 Share Posted April 25 (edited) this is the correct path for internal display, i mean it should always attach to framebuffer zero done by patching connectors order. you can copy con 1 to con 0 and zero all other values after con 0 this is the ready to patch source with a default custom igplatform injection. dont add device parameters if you wanna use it issue is with wrong parameters bus id, etc the lcd power call causes a kp so if you can find those values i think working power call will allow sleep/wake to work also with correct values maybe the interupts start to work and the acelerator fires up i recommend taking decompkernelcache and put the binary in ghidra for debugging and get correct bytes to patch this is "default" i'm using connectors patch come from DAT_000b0f9c (kern_gen11.cpp) _DAT_00163de0 = 0x8a5c0002; _DAT_00163de4 = 0; _DAT_00163de8 = "Intel Iris Plus Graphics"; DAT_00163df0 = 1; DAT_00163df1 = 3; DAT_00163df2 = 3; DAT_00163df3 = 3; _DAT_00163df4 = 0x4000000; _DAT_00163df8 = 0; _DAT_00163dfc = 0x60000000; func_0xffffffffeb5b90ea(&DAT_00163e00,&DAT_000b0f9c,0x90); _DAT_00163e90 = 0xe304; _DAT_00163e98 = 0; _DAT_00163ea0 = &gComboPhyDPTable; _DAT_00163ea8 = 0; _DAT_00163eb0 = &gComboPhyDPTable; _DAT_00163eb8 = 0; _DAT_00163ec0 = &gComboPhyHDMITable; _DAT_00163ec8 = 7; _DAT_00163ed0 = 3; _DAT_00163ed4 = 4; _DAT_00163ed8 = 270000000; _DAT_00163edc = 0; _DAT_00163ee0 = 0; _DAT_00163ee4 = 0; _DAT_00163ee8 = 2; _DAT_00163eec = 8; _DAT_00163ef0 = 6; DAT_00163ef4 = 0; _DAT_00163ef8 = 0x8a520002; _DAT_00163efc = 1; done in ventura 13.6.6 this offets exist in code like AppleIntelFramebufferController::hwSetPanelPower() but guess not for tiger lake family #define PCH_PP_STATUS _MMIO(0xc7200) #define PCH_PP_CONTROL _MMIO(0xc7204) #define PCH_PP_ON_DELAYS _MMIO(0xc7208) #define PCH_PP_OFF_DELAYS _MMIO(0xc720c) #define PCH_PP_DIVISOR _MMIO(0xc7210) unsigned long intel_gvt_get_device_type(struct intel_gvt *gvt) { struct drm_i915_private *i915 = gvt->gt->i915; if (IS_BROADWELL(i915)) return D_BDW; else if (IS_SKYLAKE(i915)) return D_SKL; else if (IS_KABYLAKE(i915)) return D_KBL; else if (IS_BROXTON(i915)) return D_BXT; else if (IS_COFFEELAKE(i915) || IS_COMETLAKE(i915)) return D_CFL; return 0; } well now i got why this displays can't work and a hack is need update: this panic is easy to avoid added 1 connector only for testing Edited April 25 by jalavoui 1 Link to comment Share on other sites More sharing options...
Mastachief Posted April 25 Share Posted April 25 (edited) Could you share your config.plist for the latest nblue? Edited April 25 by Mastachief Link to comment Share on other sites More sharing options...
jalavoui Posted April 25 Share Posted April 25 (edited) there's one detail 2024-04-25 23:41:40.982826+0100 localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) [IGFB][INFO ][POWER ] FB0: power state transition Wake --> Doze 2024-04-25 23:41:40.982847+0100 localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) [IGFB][INFO ][POWER ] FB0: Power state transition completed 2024-04-25 23:41:43.254170+0100 localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) [IGFB][INFO ][POWER ] FB0: power state transition Doze --> Wake i cant test this with a external usb disk but i think i got it did a fast test before entering true sleep and the display recovered if i allow a full sleep ofc it hangs cause i'm on a external usb not sure if this hacks still needed from hacintool not much todo for oc i just add the whatevergrren flag (when i load it) opencore.zip btw this 3GB video memory is also a nblue patch for testing Edited April 27 by jalavoui 1 Link to comment Share on other sites More sharing options...
shl628 Posted April 26 Author Share Posted April 26 (edited) @jalavoui I am attempting to apply the additions and modifications to jalavoui's most recently uploaded NBlue source code to WhateverGreen. I added 5 RouteRequests for ICLLP Framebuffer, and added the code content and prototype definitions of 5 related methods to kern_igfx.cpp and kern_igfx.hpp. KernelPatcher::RouteRequest request("__ZN31AppleIntelFramebufferController15hwSetPanelPowerEj", hwSetPanelPower); patcher.routeMultiple(index, &request, 1, address, size); KernelPatcher::RouteRequest request2("__ZN21AppleIntelFramebuffer17prepareToExitWakeEv", prepareToExitWake); patcher.routeMultiple(index, &request2, 1, address, size); KernelPatcher::RouteRequest request3("__ZN21AppleIntelFramebuffer14disableDisplayEb", disableDisplay, odisableDisplay); patcher.routeMultiple(index, &request3, 1, address, size); KernelPatcher::RouteRequest request4("__ZN21AppleIntelFramebuffer18setPanelPowerStateEb", setPanelPowerState, osetPanelPowerState); patcher.routeMultiple(index, &request4, 1, address, size); KernelPatcher::RouteRequest request5("__ZN31AppleIntelFramebufferController10LightUpEDPEP21AppleIntelFramebufferP21AppleIntelDisplayPathPK29IODetailedTimingInformationV2", LightUpEDP, oLightUpEDP); patcher.routeMultiple(index, &request5, 1, address, size); However, a non-static related error occurs for data members whose names have an o in front of them. If I add the static keyword in front of mach_vm_address_t in kern_igfx.hpp, the error disappears, but is it okay to solve it this way? I'm attaching my modified WhateverGreen source code. WhateverGreen.zip Edited April 26 by shl628 Link to comment Share on other sites More sharing options...
jalavoui Posted April 26 Share Posted April 26 (edited) funny thing. here's the fix but whatevergreen also uses this fuctions elsewhere so you need to search its not used elsewhere another common bug (that i a always do) is the correct function types uint8_t IGFX::hwSetPanelPower(void *that,uint8_t param_1) this might be wrong and correct call is (this is just a sample) bool IGFX::hwSetPanelPower(void *that,uint32_t param_1) when this mistake is done you can expect the code to crash following backlight code raises a question: /** * intel_dmc_load_program() - write the firmware from memory to register. * @i915: i915 drm device. * * DMC firmware is read from a .bin file and kept in internal memory one time. * Everytime display comes back from low power state this function is called to * copy the firmware from internal memory to registers. */ void intel_dmc_load_program(struct drm_i915_private *i915) is this used by apple ? do we really need this ? Edited April 26 by jalavoui 1 Link to comment Share on other sites More sharing options...
jalavoui Posted April 27 Share Posted April 27 (edited) forcing display class works just change display id inside info.plist other parameters canbe set with hacintool or betterdisplay apps enabling backlight at this stage only bring more issues i reverted the code to avoid it with the laptop display not attached to framebuffer zero less power issues better focus on the function that allows sleep recover. done ! Edited May 2 by jalavoui Link to comment Share on other sites More sharing options...
benmacfreak Posted April 29 Share Posted April 29 hey all, so i tried the nblue kext attached here, my laptop has device id 8A968086, i dont know if it can work via nblue, but according to lspci -nn that's what my device id is. It IS tigerlake im using ventura 13.6.5 and i tried adding my device ID to the info.plist it shows as intel iris xe graphics but only 7mb vram and it's not accelerated, i dont know why. Link to comment Share on other sites More sharing options...
Mastachief Posted April 29 Share Posted April 29 The correct name for your GPUID might be 9A68, which is Intel® UHD Graphics on the XE Architecture, the GPUID used for the tests so far by shl and jala appear to be the 9A49 variant which is Intel® Iris® Xe Graphics on the XE Architecture, I am unsure if the nblue binary is hardcoded with 9A49 or if its just pure instructions with the info.plist as a config. See the list of GPU ID's here -> https://dgpu-docs.intel.com/devices/hardware-table.html, 8A96 is not on it. Its always a good idea to test if its possible by modifying the info.plist. Link to comment Share on other sites More sharing options...
benmacfreak Posted April 29 Share Posted April 29 3 minutes ago, Mastachief said: The correct name for your GPUID might be 9A68, which is Intel® UHD Graphics on the XE Architecture, the GPUID used for the tests so far by shl and jala appear to be the 9A49 variant which is Intel® Iris® Xe Graphics on the XE Architecture, I am unsure if the nblue binary is hardcoded with 9A49 or if its just pure instructions with the info.plist as a config. See the list of GPU ID's here -> https://dgpu-docs.intel.com/devices/hardware-table.html, 8A96 is not on it. Its always a good idea to test if its possible by modifying the info.plist. right i did add e.g. 0x9A688086 in the kext info.plist, but it still didnt work, still 7mb vram in system info. Link to comment Share on other sites More sharing options...
jalavoui Posted April 29 Share Posted April 29 (edited) in think just editing this part with other id will work (You can also add id to Gen7). if no injection using device properties of opencore the ig-platform and device id defaults will be static uint8_t builtin2[] = {0x02, 0x00, 0x5c, 0x8A}; i just made changes to i2c code new boot settings - no more gpio disabler with -vi2c-force-polling and yes tpad works (i just add a id to VoodooI2CPCILakeController info.plist this is a bit hard to build but here it is tested on ventura benmacfreak You need someone with same hardware to help you. when i started i got panics and so many errors just to make the laptop boot takes lot of work i only can help on specific nblue questions. Mastachief idk if you have xcode but maybe you wanna get ghidra and change the connectors patch ? i found out that not having the display on framebuffer zero avoids lots of errors related with backlight code btw does anyone have this working on a non usb disk? idk if sleep patch works updated i2c with tigerl_h id added missing binarys todo: check if linux as some special code for pci init Edited May 1 by jalavoui 1 Link to comment Share on other sites More sharing options...
benmacfreak Posted April 29 Share Posted April 29 (edited) 36 minutes ago, jalavoui said: i just made changes to i2c code new boot settings - no more gpio disabler and yes tpad works hate to ask jalavoui is there a chance and/or way to enable the 9A688086 gpuid? just wondering, im on a tiger lake trackpad elan based also so i was seeing if you can help me with my laptop perhaps please? thanks ok, well, i have macOS 13.6.5 on my 512gb nvme drive rn, all works excpet the iGPU trackpad and audio, i have the latest nblue revision installed it does pick up as intel iris xe graphics but not using my laptops gpuID and idk what to put in the config.plist for the device properties to make nblue work possibly Edited April 29 by benmacfreak Link to comment Share on other sites More sharing options...
jalavoui Posted April 30 Share Posted April 30 (edited) maybe you got luck with tpad test with the i2c kexts i just posted check where tpad should be with ioreg mine is here maybe you need to edit i2c kext for the class tobe loaded about nblue just add your card id to the nblue info.plist and pray with luck no need to inject device properties or try whatevergreen posted here Edited April 30 by jalavoui Link to comment Share on other sites More sharing options...
benmacfreak Posted April 30 Share Posted April 30 ill try it as is and see what happens, if not ill look into it further, but yeah for the iGPU im rn booted into arch linux and it shows my device id is 8A968086, i did try adding it to nooted blue info.plist and it didn't show up accelerated, i did reset nvram maybe twice. No fix. I was consdering trying a device property for it but like i say idk what to put for that in my config.plist the only device property is for the audio. Link to comment Share on other sites More sharing options...
Recommended Posts