Contribute
Register

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

Status
Not open for further replies.
Morning!

I tried set IOProviderClass to IOPCIDevice, rename IONameMatch to IOPCIMatch and set a value from disabler in VoodooI2CPCIController.
Unfortunately the situation still a same, AppleIntelLpssI2C occupied the device first when removed disabler.
The good news is if I remove AppleIntelLpssI2C* but keep IOPCIDevice settings in VoodooI2CPCIController, the kext loads and trackpad back to work. Seems like IOPCIDevice match method is work on this kext.

Here's PR file included modified VoodooI2C.

You might try bumping IOProbeScore even higher. It is possible the Apple I2C kexts set a higher IOProbeScore in their implementation of IOService probe. Unfortunately, I'm not certain what the max IOProbeScore is... probably 32767, or 2147483647.

Although you would think that what works for Disable_AppleIntelLpssI2C.kext would also work for VoodooI2C.kext...
 
You might try bumping IOProbeScore even higher. It is possible the Apple I2C kexts set a higher IOProbeScore in their implementation of IOService probe. Unfortunately, I'm not certain what the max IOProbeScore is... probably 32767, or 2147483647.

Although you would think that what works for Disable_AppleIntelLpssI2C.kext would also work for VoodooI2C.kext...
Yeah, setting IOProbeScore to 2147483647 still got same issue, even set VoodooI2CControllerDriver score to the same value.
Perhaps the disabler is the only way to do, but have to thinking about the architecture.
 
Yeah, setting IOProbeScore to 2147483647 still got same issue, even set VoodooI2CControllerDriver score to the same value.
Perhaps the disabler is the only way to do, but have to thinking about the architecture.

May be something going on in VoodooI2C code. (in probe or start).
You might want to look into it (add debug traces as needed).
 
May be something going on in VoodooI2C code. (in probe or start).
You might want to look into it (add debug traces as needed).
Idk about Xcode (or kext is coding by C? I don't know it either). Only I known is Java & Python code (but just a little.)

So...should I try? XD

BTW, the author recommend inject kext into CLOVER, but that means need to set InjectKext=Yes.
Idk which one may get more affect actually, only I know is this kext may also needed during OS X installer.
 
Idk about Xcode (or kext is coding by C? I don't know it either). Only I known is Java & Python code (but just a little.)

So...should I try? XD

Kexts are usually coded in C++ (you can also code in C, but that is rare and extra work).

BTW, the author recommend inject kext into CLOVER, but that means need to set InjectKext=Yes.
Idk which one may get more affect actually, only I know is this kext may also needed during OS X installer.

Until the issue is solved properly...
I would probably try to use ForceKextsToLoad instead.
eg. put the I2C kexts in /kexts, then load from there with ForceKextsToLoad.
Set InjectKexts=Detect and install other kexts in /L/E.
 
Kexts are usually coded in C++ (you can also code in C, but that is rare and extra work).
Oops! I forgot that every driver now written in CPP.
Until the issue is solved properly...
I would probably try to use ForceKextsToLoad instead.
eg. put the I2C kexts in /kexts, then load from there with ForceKextsToLoad.
Set InjectKexts=Detect and install other kexts in /L/E.
For boot system and installer that in USB, seems like it should work.

I'll try ForceKextsToLoad method and report the result.
Thanks for help again!
 
Until the issue is solved properly...
I would probably try to use ForceKextsToLoad instead.
eg. put the I2C kexts in /kexts, then load from there with ForceKextsToLoad.
Set InjectKexts=Detect and install other kexts in /L/E.
Bad news. VoodooI2C still not work even set ForceKextsToLoad in config.plist
The only way to make it work without AppleIntelLpssI2C* deletion is out them into CLOVER an set Injectkexts=Yes

Anyway, thanks for ur help and advice.
Although the method is not work at last, I still learned a lot.

BTW, I heard someone said can disable AppleIntelLpssI2C by patching it using KextsToPatch in config.plist
Maybe I'll try this method.
 
Last edited:
Until the issue is solved properly...
BTW, I heard someone said can disable AppleIntelLpssI2C by patching it using KextsToPatch in config.plist
Maybe I'll try this method.
It's possible to use a KextsToPatch entry, so the Apple I2C kexts won't match against the I2C controller.
Code:
            <dict>
                <key>Comment</key>
                <string>Prevent Apple I2C kexts from attaching to I2C controllers, credit CoolStar</string>
                <key>Disabled</key>
                <false/>
                <key>Name</key>
                <string>com.apple.driver.AppleIntelLpssI2C</string>
                <key>Find</key>
                <data>SU9LaXQ=</data>
                <key>Replace</key>
                <data>SU9LaXM=</data>
                <key>InfoPlistPatch</key>
                <true/>
            </dict>
            <dict>
                <key>Comment</key>
                <string>Prevent Apple I2C kexts from attaching to I2C controllers, credit CoolStar</string>
                <key>Disabled</key>
                <false/>
                <key>Name</key>
                <string>com.apple.driver.AppleIntelLpssI2CController</string>
                <key>Find</key>
                <data>SU9LaXQ=</data>
                <key>Replace</key>
                <data>SU9LaXM=</data>
                <key>InfoPlistPatch</key>
                <true/>
            </dict>
It's my preferred solution, as I use InjectKexts=Detect and install my kexts to /L/E (Necessary kexts in Clover/kexts/Other too for installation scenarios, of course).
 
Bad news. VoodooI2C still not work even set ForceKextsToLoad in config.plist

You probably did it incorrectly.
Attach problem reporting files showing your attempt.
 
You probably did it incorrectly.
Attach problem reporting files showing your attempt.
Here, PR file after re-produce the issue.
It's possible to use a KextsToPatch entry, so the Apple I2C kexts won't match against the I2C controller.
Code:
            <dict>
                <key>Comment</key>
                <string>Prevent Apple I2C kexts from attaching to I2C controllers, credit CoolStar</string>
                <key>Disabled</key>
                <false/>
                <key>Name</key>
                <string>com.apple.driver.AppleIntelLpssI2C</string>
                <key>Find</key>
                <data>SU9LaXQ=</data>
                <key>Replace</key>
                <data>SU9LaXM=</data>
                <key>InfoPlistPatch</key>
                <true/>
            </dict>
            <dict>
                <key>Comment</key>
                <string>Prevent Apple I2C kexts from attaching to I2C controllers, credit CoolStar</string>
                <key>Disabled</key>
                <false/>
                <key>Name</key>
                <string>com.apple.driver.AppleIntelLpssI2CController</string>
                <key>Find</key>
                <data>SU9LaXQ=</data>
                <key>Replace</key>
                <data>SU9LaXM=</data>
                <key>InfoPlistPatch</key>
                <true/>
            </dict>
It's my preferred solution, as I use InjectKexts=Detect and install my kexts to /L/E (Necessary kexts in Clover/kexts/Other too for installation scenarios, of course).
Yeah, just looking at it! Really appreciate.
I'll try this method.
 

Attachments

  • debug_26157.zip
    2.5 MB · Views: 80
Status
Not open for further replies.
Back
Top