Contribute
Register

[Guide] Using Clover to "hotpatch" ACPI

OK, now my battery status works correctly. I've also got the audio working and NVIDIA GPU disabled after following your comprehensive guide (Thank you so much once again!!). Well, I have one more problem. I don't get graphics acceleration at all. I use SSDT-IGPU from your hotpatch repo for my Intel HD 4400. But it seems the properties is not injected somehow. Am I missing something? Problem reporting files attached.
View attachment 298066
Code:
Premas-MacBook-Pro:~ putuprema$ sudo touch /System/Library/Extensions && sudo kextcache -u /
Password:
Kext with invalid signatured (-67062) allowed: <OSKext 0x7ff14a954e80 [0x7fffa203d980]> { URL = "AppleBacklightInjector.kext/ -- file:///System/Library/Extensions/", ID = "org.rehabman.injector.AppleBacklightInjector" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7ff14a811c70 [0x7fffa203d980]> { URL = "FakeSMC.kext/ -- file:///System/Library/Extensions/", ID = "org.netkas.driver.FakeSMC" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7ff14a811830 [0x7fffa203d980]> { URL = "IntelGraphicsFixup.kext/ -- file:///System/Library/Extensions/", ID = "as.lvs1974.IntelGraphicsFixup" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7ff147c43e20 [0x7fffa203d980]> { URL = "Lilu.kext/ -- file:///System/Library/Extensions/", ID = "as.vit9696.Lilu" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7ff147d4ad50 [0x7fffa203d980]> { URL = "VoodooPS2Keyboard.kext/ -- file:///System/Library/Extensions/VoodooPS2Controller.kext/Contents/PlugIns/", ID = "org.rehabman.voodoo.driver.PS2Keyboard" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7ff14a7c7ed0 [0x7fffa203d980]> { URL = "VoodooPS2Controller.kext/ -- file:///System/Library/Extensions/", ID = "org.rehabman.voodoo.driver.PS2Controller" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7ff14a7caa50 [0x7fffa203d980]> { URL = "VoodooPS2Trackpad.kext/ -- file:///System/Library/Extensions/VoodooPS2Controller.kext/Contents/PlugIns/", ID = "org.rehabman.voodoo.driver.PS2Trackpad" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7ff14a6e0c00 [0x7fffa203d980]> { URL = "FakePCIID.kext/ -- file:///System/Library/Extensions/", ID = "org.rehabman.driver.FakePCIID" }
Kext with invalid signatured (-67054) allowed: <OSKext 0x7ff147e0b2b0 [0x7fffa203d980]> { URL = "AppleHDA.kext/ -- file:///System/Library/Extensions/", ID = "com.apple.driver.AppleHDA" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7ff14a3081f0 [0x7fffa203d980]> { URL = "USBInjectAll.kext/ -- file:///System/Library/Extensions/", ID = "com.rehabman.driver.USBInjectAll" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7ff14a2564f0 [0x7fffa203d980]> { URL = "FakePCIID_XHCIMux.kext/ -- file:///System/Library/Extensions/", ID = "org.rehabman.driver.FakePCIID.XHCIMux" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7ff14a18fc80 [0x7fffa203d980]> { URL = "FakePCIID_Intel_HDMI_Audio.kext/ -- file:///System/Library/Extensions/", ID = "org.rehabman.injector.FakePCIID-Intel-HDMI-Audio" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7ff14a17de40 [0x7fffa203d980]> { URL = "CodecCommander.kext/ -- file:///System/Library/Extensions/", ID = "org.tw.CodecCommander" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7ff14a1058e0 [0x7fffa203d980]> { URL = "PinConfigs.kext/ -- file:///System/Library/Extensions/AppleALC.kext/Contents/PlugIns/", ID = "as.vit9696.PinConfigs" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7ff14a104ce0 [0x7fffa203d980]> { URL = "AppleALC.kext/ -- file:///System/Library/Extensions/", ID = "as.vit9696.AppleALC" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7ff147c217c0 [0x7fffa203d980]> { URL = "ACPIBatteryManager.kext/ -- file:///System/Library/Extensions/", ID = "org.rehabman.driver.AppleSmartBatteryManager" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7ff147c1abe0 [0x7fffa203d980]> { URL = "FakePCIID_Intel_HD_Graphics.kext/ -- file:///System/Library/Extensions/", ID = "org.rehabman.injector.FakePCIID-Intel-HD-Graphics" }
Kext with invalid signatured (-67062) allowed: <OSKext 0x7ff147c14610 [0x7fffa203d980]> { URL = "RealtekRTL8100.kext/ -- file:///System/Library/Extensions/", ID = "com.insanelymac.RealtekRTL8100" }
KernelCache ID: 66BDB0E344FF80BF3B9A2A460E36C8A3

Update your copy of SSDT-IGPU.
 
Hey RehabMan,
I have a few questions about disabling the discrete graphics card. In my case, there is some EC related code in my original _OFF method. The question is do I have to copy/paste the whole code in original _OFF to XOFF and move the EC code to _REG? Or I can just copy the EC code in _OFF to _REG without overriding _OFF method, will that work? Because laptops similar to Z50-70 have different code in _OFF and I'd like to keep it a bit more generic.

You will need to customize the _OFF method for each such that it corresponds to native _OFF without the EC related code.

Also, do I have to override the relevant _INI method or I can just call the discrete card's _OFF method from any _INI method?

You can probably call from any _INI (as I do in many of my guides), but I wrote the guide to override the specific _INI since that is the safest... because that way the _OFF is always run after the original _INI code has run.
 
Update your copy of SSDT-IGPU.
Edited the ssdt for my laptop, working flawlessly now. Thanks @RehabMan ! I've converted all my static patched DSDT+SSDTs to full hotpatch. It takes a lot of reading though, after that it's not really hard to implement.
 
Edited the ssdt for my laptop, working flawlessly now. Thanks @RehabMan ! I've converted all my static patched DSDT+SSDTs to full hotpatch. It takes a lot of reading though, after that it's not really hard to implement.

Keep in mind that for a single laptop, it is much easier/better to use Clover to inject graphics properties than SSDT-IGPU.
I use SSDT-IGPU in a lot of my guides because the guides target multiple models where I didn't want to have multiple config.plist files for each model, and instead wanted to determine graphics inject properties dynamically based on the hardware present.
 
@RehabMan Just a quick question. Whenever _DSM containing plugin-type is executed there is an error in ACPI log saying : ACPI: cannot translate ACPI object 14

It's not problematic but I would like to know why this error? Can I identify object 14 by any means? Like, we could look at table offset in any hex editor to debug ACPI related error.

One more thing related to Battery hotpatch, I just need to create a EC region with 16 bits registers converted to 8Bits and a few method that can write to EC and one to combine 8bits to 16bits. Right?

Regards
 
@RehabMan Just a quick question. Whenever _DSM containing plugin-type is executed there is an error in ACPI log saying : ACPI: cannot translate ACPI object 14

It's not problematic but I would like to know why this error? Can I identify object 14 by any means? Like, we could look at table offset in any hex editor to debug ACPI related error.

One more thing related to Battery hotpatch, I just need to create a EC region with 16 bits registers converted to 8Bits and a few method that can write to EC and one to combine 8bits to 16bits. Right?

Regards

No "Problem Reporting" files attached.
Read FAQ, "Problem Reporting" again. Carefully. Attach all requested files/output.
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/
 
I think the patch for changing the GPRW method to XPRW doesn't work on my system since checking the bootlog i get this:

Code:
[change Method(GPRW,2,N) to XPRW]: pattern 47505257, bin not found / already patched!

What should i do in order to disable instant wake without patching DSDT?
 
I think the patch for changing the GPRW method to XPRW doesn't work on my system since checking the bootlog i get this:

Code:
[change Method(GPRW,2,N) to XPRW]: pattern 47505257, bin not found / already patched!

What should i do in order to disable instant wake without patching DSDT?

Not all systems use GPRW.
Applicability of patches depends on native ACPI content.

No "Problem Reporting" files attached.
Read FAQ, "Problem Reporting" again. Carefully. Attach all requested files/output.
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/
 

Attachments

  • debug_26597.zip
    1.8 MB · Views: 102

Your GPRW is marked Serialized, but you're trying to use the GPRW patch for NotSerialized.
Note from your DSDT.aml:
Code:
        Method (GPRW, 2, Serialized)
        {
...
 
Back
Top