Jump to content

SOLVED: VoodooPS2Trackpad.kext causing instant wake


22 posts in this topic

Recommended Posts

VoodooPS2Trackpad.kext causes instant wake.  How to fix?  Details below.  Thank you.

 

EDIT: the fix for this starts here (read my 2 posts) is is scheduled to be released with VoodooPS2Controller.kext v2.2.3.

 

I'm using Acidenthera's version of VoodooPS2Controller.kext and plugins VoodooPS2Input.kext, VoodooPS2Keyboard.kext and VoodooPS2Trackpad.kext for the first time.  If I enable VoodooPS2Controller.kext and plugins VoodooPS2Input.kext, VoodooPS2Keyboard.kext (without VoodooPS2Trackpad.kext), my rig sleeps/wakes normally.  If I enable VoodooPS2Trackpad.kext, my system wakes 1-2 seconds after sleep.  I have applied the GPRW->XPRW rename ACPI patch and SSDT-GPRW ACPI patch, so my system sleeps/wakes (without instant wake) when VoodooPS2Trackpad.kext is not enabled.  Any ideas?  System details below.  Thank you.

 

I just obtained a new (new to me) HP Envy x360 15m laptop (i5-8250u / UHD620 Kaby Lake R).  I haven't decided whether I'll keep it, so my profile does not include this rig.  System details are below.

 

  • HP Envy x360 15m laptop (Kaby Lake R i5-8250U, UHD 620, 12 GB DDR4)
  • Catalina 10.15.7.03
  • Open Core 0.6.8
  • SMBIOS MBP14,1
  • Attached config.plist (OC 0.6.8) is a work in progress.
  • VoodooPS2Controller.kext (and all plugins) version 2.2.2

 

About This Mac

Spoiler

75372354_ScreenShot2021-04-09at5_43_06PM.png.bc433921ae22165b6ac8ad0c8aba8086.png

 

pmset -g

Spoiler

718881943_ScreenShot2021-04-10at4_22_31AM.png.661105646a5a24e9aed33552371b4de3.png

 

pmset -g assertions

Spoiler

1380181031_ScreenShot2021-04-10at4_23_18AM.thumb.png.8b77c3cdb433588d6f2b911241e9c52f.png

 

config-instantwake.plist.zip

Edited by tonyx86
Marked Solved

@jaymonkey I've seen some VoodooPS2Trackpad.kext post by you.  Not sure you still visit this forum. I hope you don't mind if I ping you on this issue to see if you have any ideas.

Posted (edited)

@5T33Z0 060D fix is already applied and working.  I tested this before I injected the VoodooPS2Controller.kexts.  Without the 060D fix, my system would instantly wake (even without the VoodooPS2Controller.kexts).

 

I have confirmed that if I revert to RehabMan's VoodooPS2Controller.kext (version 1.9.2, October 8, 2018), my system sleeps fine with VoodooPS2Trackpad.kext enabled. Note that Rehabman's version doesn't have VoodooInput.kext.  If I revert to Acidanthera's VoodooPS2Controller.kext 2.1.8, I still have the instant wake problem.

 

I suspect I'm making an error with the way I'm using Acidanthera's VoodooPS2Controller.kext. I'm injecting VoodooPS2Controller.kext, VoodooInput.kext, VoodooPS2Keyboard.kext and VoodooPS2Trackpad.kext (in that order).  

 

EDIT: When I use RehabMan's VoodooPS2Controller.kext (which works fine for me without instant wake), I'm injecting VoodooPS2Controller.kext, VoodooPS2Keyboard.kext and VoodooPS2Trackpad.kext (in that order).

 

For now, I'll stay with RehabMan's VoodooPS2Controller.kext until I figure this out.  Thanks in advance for any help / suggestions.

 

 

Edited by tonyx86
Added RehabMan kext injection order

There's a fixed build of VoodooPSController 1.9.2 around which works with the latest OC build. The original one by rehabman causes panics in OpenCore. I am using it myself on my Lenovo T530.

 

I can't find the source for it right now, though.

  • Like 1
Posted (edited)

@5T33Z0 Thanks for the tip! I haven't tested long, but so far, RehabMan's 1.9.2 is working well for me without panics with OC 0.6.8.  I'm still running Catalina 10.15.7.  I'll keep my eye out for the fixed build.  Thanks again.

 

EDIT: RehabMan's VoodooPS2Controller version 1.9.2 developed issues after repeated sleep/wake cycles.  See next post for solution.

Edited by tonyx86

Many thanks for advice from @1Revenger1 in "the other forum".  Injecting the VoodooSMBUS and VoodooRMI (and disabling VoodooPS2Controller's VoodooInput) appears to have fixed the instant wake problem. I need to test further, but initial results are good. I followed instructions here. I'm booting with OC 0.6.8. My current kext injection order is as follows:

  • VoodooSMBus.kext
  • VoodooRMI.kext
  • VoodooRMI.kext/Contents/PlugIns/VoodooInput.kext
  • VoodooRMI.kext/Contents/PlugIns/RMISMBus.kext
  • VoodooPS2Controller.kext
  • VoodooPS2Controller.kext/Contents/Plugins/VoodooPS2Keyboard.kext
  • VoodooPS2Controller.kext/Contents/Plugins/VoodooPS2Trackpad.kext

With this configuration, trackpad works and laptop sleeps / wakes without problems.  It's early in my testing, but this looks promising.

I've switched from VoodooRMI back to VoodooPS2Controller.kext/Contents/PlugIns/VoodooInput.kext after finding that my trackpad wasn't responsive after wake when using VoodooSMBus.kext/VoodooRMI.kext (and Plugins).

 

I have found that with VoodooPS2Controller.kext/.../VoodooInput.kext, my laptop will sleep and remain sleeping as long as the lid is closed (as long as I close the lid to "Sleep" the laptop).  If my laptop sleeps while the lid is open (either by sleeping on its own or when I make it sleep using Sleep in the Apple menu), it wakes again after 1-2 seconds.

 

For now, I can live with not sleeping when the lid is open vs. a non-responsive trackpad after wake.
 

Below is the sleep/wake event log captured when my laptop sleeps with the lid open and VoodooPS2Trackpad.kext v2.2.2 enabled.  It appears that the laptop thinks the Power Button was pressed to wake the laptop.  Does anyone know what VoodooPS2Trackpad.kext is "tickling" to generate this wake event (something that Rehabman's version was not doing)?

 

2021-04-13 18:58:39 -0400 Sleep Entering Sleep state due to 'Idle Sleep': Using AC (Charge:100%) 14 secs
2021-04-13 18:58:41 -0400 PM Client Acks Delays to Sleep notifications: [mDNSResponder is slow(1011 ms)] [com.apple.apsd is slow(2572 ms)]
2021-04-13 18:58:50 -0400 Kernel Client Acks Delays to Sleep notifications: [AppleHDADriver driver is slow(msg: SetState to 0)(814 ms)] [AppleAHCIDiskQueueManager driver is slow(msg: SetState to 0)(500 ms)]
2021-04-13 18:58:53 -0400 Wake Wake from Normal Sleep [CDNVA] : due to power-button/User Using AC (Charge:100%)

 

@mnfesq I hope you don't mind me "pinging" you and tapping into your expertise in this area.  I noticed you also have an HP laptop and I admire your work.  The "SLPE = 0" _PTS fix that you use for complete shutdown is the same _PTS fix that I have had to use on my HP Envy x360 15m (Kaby Lake R) in this thread (and on my Thinkpad T61 and Dell Latitude E6410).  The only problem I have left on this HP Envy is that it wakes instantly after sleep if I have Acidanthera's VoodooPS2Trackpad.kext v2.2.2 (and also v2.1.8) enabled in my OC 0.6.8 config.plist.  I don't have this instant wake problem with Rehabman's v1.9.2, but it has other problems.

 

Have you ever encounted this instant wake problem with Acidanthera's VoodooPS2Trackpad.kext and if so, how did you fix it?

 

I have used Rehabman's ACPI Debug in an attempt to identify spurious EC Queries, but so far, I haven't found the cause of instant wake (although Rehabman's ACPI Debug did let me identify the brightness key patch).  I do have the GPRW instant wake fix applied and working, but it does not fix this instant wake problem.  The only way I have found to "cure" this instant wake is to disable the Acidanthera VoodooPS2Trackpad.kext, but then my trackpad doesn't work.

 

Thanks for any advice or suggestions.

@mnfesq - Thank you for your quick reply!  Below are wake reasons for the four scenarios noted.  When the laptop wakes instantly, it's as though the VoodooPS2Controller autonomously generates a key stroke event on sleep when the lid is open and VoodooPS2Trackpad is enabled.

 

Lid Open, VoodooPS2Trackpad.kext enabled, Press/Release Power Button to sleep, laptop wakes "instantly" on its own without user stimulus

Spoiler

2021-04-19 23:56:11.755097-0400 0x81e      Default     0x0                  104    0    powerd: [powerd:sleepWake] Wake reason: "<private>"  identity: "<private>"
2021-04-19 23:56:55.819869-0400 0x74       Default     0x0                  0      0    kernel: (AppleACPIPlatform) AppleACPIPlatformPower Wake reason: PWRB (User)
2021-04-19 23:56:55.819871-0400 0x74       Default     0x0                  0      0    kernel: (AppleACPIPlatform) AppleACPIPlatformPower Wake reason: PWRB (User)

 

 

VoodooPS2Trackpad.kext enabled, Close lid to sleep and then open lid to wake, laptop remains asleep until lid opened

Spoiler

2021-04-20 00:02:02.814643-0400 0x74       Default     0x0                  0      0    kernel: (AppleACPIPlatform) AppleACPIPlatformPower Wake reason: PWRB (User)
2021-04-20 00:02:02.814645-0400 0x74       Default     0x0                  0      0    kernel: (AppleACPIPlatform) AppleACPIPlatformPower Wake reason: PWRB (User)

 

 

Lid Open, VoodooPS2Trackpad.kext disabled, Press Power Button to sleep, Press down arrow (keyboard) to wake, laptop remains asleep until key pressed

Spoiler

2021-04-20 00:10:34.917107-0400 0x127e     Default     0x0                  104    0    powerd: [powerd:sleepWake] Wake reason: "<private>"  identity: "<private>"
2021-04-20 00:11:29.757659-0400 0x74       Default     0x0                  0      0    kernel: (AppleACPIPlatform) AppleACPIPlatformPower Wake reason: PWRB (User)
2021-04-20 00:11:29.757661-0400 0x74       Default     0x0                  0      0    kernel: (AppleACPIPlatform) AppleACPIPlatformPower Wake reason: PWRB (User)

 

 

LId Open, VoodooPS2Trackpad.kext disabled, laptop sleeps due to idle, Press down arrow key (keyboard) to wake, laptop remains asleep until key pressed

Spoiler

2021-04-20 00:10:34.917107-0400 0x127e     Default     0x0                  104    0    powerd: [powerd:sleepWake] Wake reason: "<private>"  identity: "<private>"
2021-04-20 00:18:17.951350-0400 0x74       Default     0x0                  0      0    kernel: (AppleACPIPlatform) AppleACPIPlatformPower Wake reason: PWRB (User)
2021-04-20 00:18:17.951352-0400 0x74       Default     0x0                  0      0    kernel: (AppleACPIPlatform) AppleACPIPlatformPower Wake reason: PWRB (User)

 

 

I was under the impression that Lilu and VirtualSMC needed to load before VoodooInput/VoodooPS2, etc.  I notice the order of your kexts in your kernel settings of your config.plist don't load kexts in that order.  Doubtful that it would cause your problem.  

 

Since you ended up with <private> as your wake reason, Apple is not being all that helpful.  I don't think there is a power button issue here.

 

See if you get any better info using this:  pmset -g log.  Post your results.

 

Also, why are you using SSDT-GPRW.aml and the ACPI rename from GPRW to XPRW?  My Kabylake-R laptop does not need this for sleep/wake function. Also, I use SMBIOS MacbookPro14,3.

 

Also, try newest version of VoodooPS; v. 2.2.3

 

VoodooPS2Controller.kext.zip

 

 

Edited by mnfesq
  • Thanks 1
4 hours ago, theroadw said:

Try using the debug versions (LILU and Voodoo) and see if the logs give any more information.

Also post your DSDT

@1Revenger1 also suggested that.  I think that might be necessary.

 

4 hours ago, mnfesq said:

I was under the impression that Lilu and VirtualSMC needed to load before VoodooInput/VoodooPS2, etc.  I notice the order of your kexts in your kernel settings of your config.plist don't load kexts in that order.  Doubtful that it would cause your problem.  

 

Since you ended up with <private> as your wake reason, Apple is not being all that helpful.  I don't think there is a power button issue here.

 

See if you get any better info using this:  pmset -g log.  Post your results.

 

Also, why are you using SSDT-GPRW.aml and the ACPI rename from GPRW to XPRW?  My Kabylake-R laptop does not need this for sleep/wake function. Also, I use SMBIOS MacbookPro14,3.

 

Also, try newest version of VoodooPS; v. 2.2.3

 

 

I'll collect the info and report back.  I have some other priorities and will ping you when I have updates.

I did test various kext injection orders and the Lilu/VPS2 order didn't matter.  I'm currently running with Lilu first.

It could be that I patched GPRW because I misinterpreted the VoodooPS2Controller instant wake problem.  I'll have to test again without the GPRW patch.

I looked at VPS2 and it looks to me like the only commit in 2.2.3 is a version bump, but it can't hurt to test it.  

I thought MBP14,3 was better suited to a rig with discrete graphics, but I can try that, too.

 

Thank you both for the suggestions!

Posted (edited)

Before I start down the detailed debug path, I decided to revert to older versions of Acidanthera's VoodooPS2Controller (since Rehabman's version 1.9.2 does not have the instant wake problem for me).  I have confirmed that if I revert to Acidanthera's v2.0.2, I do not have the instant wake problem.  v2.0.4 does have the instant wake problem.  If I can figure out which commit is responsible for the change in behavior, that might help to isolate the cause (and the fix).

 

EDIT: I have confirmed that the instant wake problem (for me) was introduced with Acidanthera's VoodooPS2Controller.kext 2.0.3.  The problem does not occur if I use Acidanthera's v2.0.2.  According to the Acidanthera change log, the changes from 2.0.2 to 2.0.3 are

  • Use touchpad sleep mode during mainboard sleep
  • Improve physical and trackpad button support

 

Here is the detailed comparison of the two versions.

Edited by tonyx86
Added link to detailed comparison of 2.0.2 and 2.0.3
Posted (edited)

I have confirmed that I am able to run Acidanthera's VoodooPS2Controller.kext v2.0.3 if I comment out the following lines of code in VoodooPS2SynapticsTouchPad.cpp (ApplePS2SynapticsTouchPad::setDevicePowerState):

 

_touchPadModeByte |= 1 << 3; 
setModeByte(_touchPadModeByte); // Enable sleep

I have reported this to vit9696.  Since this has not been reported by others, I'm convinced this is specific to my laptop, but I'm not sure what to change to resolve this.

 

EDIT: I have confirmed that making the same code change to v2.0.4 "fixes" my instant wake problem.  Note that I'm not testing my code change with newer versions, because newer versions depend on VoodooInput and I don't need newer versions to isolate the problem.

 

EDIT2: I have confirmed that making the same code change to v2.2.2 "fixes" my instant wake problem.  I am currently running with my slightly modified version of VoodooPS2Controller.kext v2.2.2.

Edited by tonyx86
Added note about 2.2.2
  • Like 1
Posted (edited)

The fix for this issue will be introduced in VoodooPS2Controller.kext v2.2.3.  See commit here.

 

EDIT: I built and tested v2.2.3.  The fix works as expected when injecting Synaptics Touchpad property "DisableDeepSleep" via SSDT.

 

 

Many thanks to vit9696 and the Acidanthera team for responding so quickly and implementing this fix.

Edited by tonyx86
Added note about successful test of v2.2.3
  • Like 1
  • tonyx86 changed the title to SOLVED: VoodooPS2Trackpad.kext causing instant wake

Nice when is this new version available?

 

Thanks and great work! 

 

on my system with V 222 trackpad is not recognized and does not load in Catalina.

In Big Sur caused reboot and could not boot into finish my install need keyboard.

 

So I went back to Rehabman 192 which causes a pause on bootup in Catalina, Mojave on the load of the Trackpad kext.

Security check to allow it.

 

So what I have done is installed several things in testing VoodooI2C.kext

 

I took out GPIO.kext and Services.kext one at a time to single out the problem.

 

But in the end we get version conflicts because one is newer and the code has thing in one and not the other

Yet they work and load not perfect marriage here.
 

566684275_ScreenShot2021-04-23at3_01_41PM.png.e46c26d65d4af8906749183382dd1b2b.png994567628_ScreenShot2021-04-23at3_02_07PM.png.f497d6cc74a0acb4cfe5174d1160b9b7.png

 

Screen Shot 2021-04-23 at 3.05.27 PM.png

Edited by makk

@makk The release date for VoodooPS2Controller v2.2.3 is up to the Acidanthera team.  If history is an indicator, the next release will be at the beginning of May.

 

For those who are curious about the "DeepSleep" setting and why it might cause the instant wake problem that I noted in this thread, see this Synaptics Interface Spec.  It appears that some Synaptics Trackpads may not support low power idle mode (what is referred to as "DeepSleep" in the VoodooPS2Trackpad code).  Before attempting to set the Sleep bit in the Mode Byte, the driver must first check the capSleep bit to confirm that low power idle mode is supported.  The current VoodPS2Trackpad code change which is scheduled to be released with v2.2.3 is acceptable and does the job.  As an additional measure, it may not be a bad idea for VoodooPS2Trackpad to check the capSleep bit before attempting to set power idle mode.

8 hours ago, tonyx86 said:

@makk The release date for VoodooPS2Controller v2.2.3 is up to the Acidanthera team.  If history is an indicator, the next release will be at the beginning of May.

 

For those who are curious about the "DeepSleep" setting and why it might cause the instant wake problem that I noted in this thread, see this Synaptics Interface Spec.  It appears that some Synaptics Trackpads may not support low power idle mode (what is referred to as "DeepSleep" in the VoodooPS2Trackpad code).  Before attempting to set the Sleep bit in the Mode Byte, the driver must first check the capSleep bit to confirm that low power idle mode is supported.  The current VoodPS2Trackpad code change which is scheduled to be released with v2.2.3 is acceptable and does the job.  As an additional measure, it may not be a bad idea for VoodooPS2Trackpad to check the capSleep bit before attempting to set power idle mode.

Thank you tony

 

Seems to the case.  

 

Have a good day

  • 2 weeks later...

VoodooPS2Controller.kext v2.2.3 is now available here with the fix for this issue.  Many thanks to the Acidanthera team for their fast response.  For those affected by this issue, add the following to your VPS2 SSDT:

 

        "Synaptics TouchPad", Package()
        {
            "DisableDeepSleep", ">y",
        }

 

×
×
  • Create New...