Contribute
Register

System boots in sleep after PNLF patch (m3-7y30 mix plus)

Status
Not open for further replies.
Here, PR file after re-produce the issue.

Might be a bug in Clover.
Try removing the VoodooI2C kexts from Clover/kexts/Other and forcing injection (InjectKexts=true, or do it through Clover menu).
 
Might be a bug in Clover.
Try removing the VoodooI2C kexts from Clover/kexts/Other and forcing injection (InjectKexts=true, or do it through Clover menu).
Remove VoodooI2C* from kexts/Other and set InjectKexts=true, VoodooI2C loaded finally.
Here's PR file.
 

Attachments

  • debug_12802.zip
    2.4 MB · Views: 64
Remove VoodooI2C* from kexts/Other and set InjectKexts=true, VoodooI2C loaded finally.
Here's PR file.

So, it is probably a Clover bug where if InjectKexts=Detect, FakeSMC.kext installed (meaning Clover/kexts would not be injected), that ForceKextsToLoad is incorrectly ignored.

Correct behavior in that case is: ForceKextsToLoad are injected, Clover/kexts ignored.
 
So, it is probably a Clover bug where if InjectKexts=Detect, FakeSMC.kext installed (meaning Clover/kexts would not be injected), that ForceKextsToLoad is incorrectly ignored.

Correct behavior in that case is: ForceKextsToLoad are injected, Clover/kexts ignored.
I see...

Anyway, seems like using kext hot patch is the best way to solve this issue, right?
 
I see...

Anyway, seems like using kext hot patch is the best way to solve this issue, right?

I think InfoPlistPatches where the purpose is to prevent a kext from loading may be problematic with regard to the way kernel cache works. You'll need to test it completely to know whether it works in all kextcache rebuild scenarios.

I think fixing the Clover bug is something to do, as well as finding why VoodooI2C doesn't override the Apple I2C kexts as we expect with higher IOProbeScore and same matching criteria.
 
Last edited:
I think InfoPlistPatches where the purpose is to prevent a kext from loading may be problematic with regard to the way kernel cache works. You'll need to test it completely to know whether it works in all kextcache rebuild scenarios.

I think fixing the Clover bug is something to do, as well as finding why VoodooI2C doesn't override the Apple I2C kexts as we expect with higher IOProbeScore and same matching criteria.
I'm using this patch here for quite a while. It survived many kextcache rebuilds and installations.
Why do you think it's problematic? (It's basically disabling the IOKit personality of the kexts so they don't match against the I2C controller)

But yes, solving this Clover bug and VoodooI2C's loading problem is a good idea.
 
I'm using this patch here for quite a while. It survived many kextcache rebuilds and installations.
Why do you think it's problematic? (It's basically disabling the IOKit personality of the kexts so they don't match against the I2C controller)

Think about it:
- Clover's KextsToPatch can patch only the kexts that are in cache
- kextcache only places kexts in cache if they are loaded
- so... if the purpose of the patch is to disable a certain kext from loading, it may not be placed in cache, which will prevent Clover from patching the kext

That said, maybe the entire IOCatalog (collection of IOKitPersonality) is always placed in kernel cache, which would enable Clover to always patch that particular entry.

Did you test the specific scenario I mentioned?
 
Not sure which scenario you're talking about, sorry :/

Not sure which thread I mentioned, but I've written this at least two times (going from memory)...

- boot normally
- use kextstat to check that the kext the InfoPlistPatch affects is loaded or not
- wait until kextstat indicates it is NOT loaded (eg. something like "kextstat|grep AppleIntelLpss" shows no output)
- rebuild cache (sudo kextcache -i /)
- reboot to verify InfoPlist patches are still working as expected
 
Not sure which thread I mentioned, but I've written this at least two times (going from memory)...

- boot normally
- use kextstat to check that the kext the InfoPlistPatch affects is loaded or not
- wait until kextstat indicates it is NOT loaded (eg. something like "kextstat|grep AppleIntelLpss" shows no output)
- rebuild cache (sudo kextcache -i /)
- reboot to verify InfoPlist patches are still working as expected
I tested this scenario and the patch still works.
  1. Normal boot, and type "kextstat | grep AppleIntelLpss", it shows AppleIntelLpssI2C and AppleIntelLpssGapi in stats.
  2. Keep typing, until AppleIntelLpss* disappear.
  3. type "sudo kextcache -i /" to rebuild kext cache.
  4. Reboot, and found that the patch still working. Trackpad works with VoodooI2C*.
 
Status
Not open for further replies.
Back
Top