Open Andrey1970AppleLife opened 4 years ago
The trackpad Elan v3 works only as a mouse. Doubleclick works. Trackpad keys work. Gestures don't work. Trackpad preferens panel don't work.
Seems like VoodooPS2Elan (and therefore VoodooInput) is not loading. Do you see VoodooPS2Elan in IOReg?
Wow. After the second bootloading the trackpad works now. VoodooInput is loading.
But there is a problems. The pointer moves a jump in the screen edge. And the pointer transfers for the edge of the screen and appears on the other side of the screen. I will make video soon.
CC @usr-sse2
Use "Show Live View" in BetterTouchTool and make a video to show both cursor movement and reported finger positions, like this: https://www.icloud.com/iclouddrive/0GMkGsJJOEoW26feE-TTtZCcA#synaptics
I think FingerMgmt is enough. No need to use BetterTouchTool
I think FingerMgmt is enough. No need to use BetterTouchTool
@hieplpvip Live View in BTT works even after the expiration of trial license. But thanks, I’ll look on FingerMgmt too.
Sent with GitHawk
The trackpad Elan v3 works only as a mouse. Doubleclick works. Trackpad keys work. Gestures don't work. Trackpad preferens panel don't work.
Seems like VoodooPS2Elan (and therefore VoodooInput) is not loading. Do you see VoodooPS2Elan in IOReg?
Hi Good day.
I also have issues with the latest release as my Elan trackpad doesn't work anymore. Previously, my trackpad only worked as a mouse without the trackpad preference showing up in System Preferences. After the v2.1.7 release, the preference pane shows up (I appreciate that) but my trackpad doesn't move, click or do anything anymore. Voodoo input and VoodooPS2Elan loads as I've seen in IOReg.
I have an Asus P2540UA Laptop. Tell me if you need more information. Any help would be appreciated. Thank you.
@usr-sse2 @hieplpvip @kprinssu @BAndysc
The trackpad Elan v3 works only as a mouse. Doubleclick works. Trackpad keys work. Gestures don't work. Trackpad preferens panel don't work.
Seems like VoodooPS2Elan (and therefore VoodooInput) is not loading. Do you see VoodooPS2Elan in IOReg?
Hi Good day.
I also have issues with the latest release as my Elan trackpad doesn't work anymore. Previously, my trackpad only worked as a mouse without the trackpad preference showing up in System Preferences. After the v2.1.7 release, the preference pane shows up (I appreciate that) but my trackpad doesn't move, click or do anything anymore. Voodoo input and VoodooPS2Elan loads as I've seen in IOReg.
I have an Asus P2540UA Laptop. Tell me if you need more information. Any help would be appreciated. Thank you.
@usr-sse2 @hieplpvip @kprinssu @BAndysc
Are you sure your touchpad is using PS2 Interface?? Most kabylake laptop of asus are using I2C Touchpad
The trackpad Elan v3 works only as a mouse. Doubleclick works. Trackpad keys work. Gestures don't work. Trackpad preferens panel don't work.
Seems like VoodooPS2Elan (and therefore VoodooInput) is not loading. Do you see VoodooPS2Elan in IOReg?
Hi Good day. I also have issues with the latest release as my Elan trackpad doesn't work anymore. Previously, my trackpad only worked as a mouse without the trackpad preference showing up in System Preferences. After the v2.1.7 release, the preference pane shows up (I appreciate that) but my trackpad doesn't move, click or do anything anymore. Voodoo input and VoodooPS2Elan loads as I've seen in IOReg. I have an Asus P2540UA Laptop. Tell me if you need more information. Any help would be appreciated. Thank you. @usr-sse2 @hieplpvip @kprinssu @BAndysc
Are you sure your touchpad is using PS2 Interface?? Most kabylake laptop of asus are using I2C Touchpad
I think mine uses the PS/2 interface as I saw on windows device manager (Trackpad BIOS Device Name: _SB.PCI0.LPCB.PS2M). Is there anyway to check if my trackpad uses the both interfaces? I also confirmed it is Elan v4. Would I need to create a new issue thread for this too?
@vit9696 @usr-sse2 @hieplpvip @BAndysc
CC @BAndysc, @hieplpvip, @usr-sse2 sudo dmesg | grep VoodooPS2Elan
VoodooPS2Elan: Version 2.1.7 starting on OS X Darwin 19.6.
VoodooPS2Elan: send magic knock to the device.
VoodooPS2Elan: Elantech version query result 0x55, 0x0f, 0x01.
VoodooPS2Elan assuming hardware version 3 (with firmware version 0x550f01)
VoodooPS2Elan: Elan capabilities query result 0x79, 0x18, 0x0b.
VoodooPS2Elan: Elan sample query result 02, 38, 97
VoodooPS2Elan: capabilities: 79 18 b
VoodooPS2Elan: samples: 79 18 b
VoodooPS2Elan: hw_version: 3
VoodooPS2Elan: fw_version: 550f01
VoodooPS2Elan: x_min: 0
VoodooPS2Elan: y_min: 0
VoodooPS2Elan: x_max: 1364
VoodooPS2Elan: y_max: 558
VoodooPS2Elan: x_res: 31
VoodooPS2Elan: y_res: 31
VoodooPS2Elan: x_traces: 0
VoodooPS2Elan: y_traces: 0
VoodooPS2Elan: width: 0
VoodooPS2Elan: bus: 0
VoodooPS2Elan: paritycheck: 1
VoodooPS2Elan: jumpy_cursor: 0
VoodooPS2Elan: reports_pressure: 1
VoodooPS2Elan: crc_enabled: 0
VoodooPS2Elan: set_hw_resolution: 1
VoodooPS2Elan: has_trackpoint: 0
VoodooPS2Elan: has_middle_button: 0
VoodooPS2Elan: elan touchpad detected. Probing finished.
Try to disable ForceTouchMode. Either with control panel if available, or in Info.plist of VoodooPS2Elan.
The issue here is that the touchpad reports x_max as 1364 and y_max as 558, but in reality it reports packets with x up to 2666 and y up to 754 (in fact maybe more):
I pushed a simple dynamic rescaling algorithm to update the maximum coordinates as we go, which seems to resolve the issue.
Thanks @vit9696 , works.
Let's keep it open till we merge this.
The trackpad Elan v3 works only as a mouse. Doubleclick works. Trackpad keys work. Gestures don't work. Trackpad preferens panel don't work.
Seems like VoodooPS2Elan (and therefore VoodooInput) is not loading. Do you see VoodooPS2Elan in IOReg?
Hi Good day.
I also have issues with the latest release as my Elan trackpad doesn't work anymore. Previously, my trackpad only worked as a mouse without the trackpad preference showing up in System Preferences. After the v2.1.7 release, the preference pane shows up (I appreciate that) but my trackpad doesn't move, click or do anything anymore. Voodoo input and VoodooPS2Elan loads as I've seen in IOReg.
I have an Asus P2540UA Laptop. Tell me if you need more information. Any help would be appreciated. Thank you.
@usr-sse2 @hieplpvip @kprinssu @BAndysc
I have same problem here my laptop ASUS TP500LN Haswell appleps2elan is loaded Elan v 4, fw: 381f17, bus: 0 IOService:/AppleACPIPlatformExpert/PS2M/ps2controller/ApplePS2Controller/ApplePS2MouseDevice/ApplePS2Elan trackpad preferences is loaded but no move nor click it was working fine using smart touchpad kext
on kernel log 2020-10-12 21:08:09.123073+0200 localhost kernel[0]: (kernel) VoodooPS2Trackpad: Identify TouchPad command returned incorrect byte 2 (of 3): 0x04
2020-10-12 21:08:09.200205+0200 localhost kernel[0]: (kernel) ApplePS2Controller: Notification consumer published: ApplePS2Elan
any help thanks on advance
![Screen Shot 2020-10-12 at 10 22 31 PM 1](https://user-images.githubusercontent.com/72765111/95787309-8c869980-0cd9-11eb-868c-889cea8335a2.png
The trackpad Elan v3 works only as a mouse. Doubleclick works. Trackpad keys work. Gestures don't work. Trackpad preferens panel don't work.
Seems like VoodooPS2Elan (and therefore VoodooInput) is not loading. Do you see VoodooPS2Elan in IOReg?
Hi Good day. I also have issues with the latest release as my Elan trackpad doesn't work anymore. Previously, my trackpad only worked as a mouse without the trackpad preference showing up in System Preferences. After the v2.1.7 release, the preference pane shows up (I appreciate that) but my trackpad doesn't move, click or do anything anymore. Voodoo input and VoodooPS2Elan loads as I've seen in IOReg. I have an Asus P2540UA Laptop. Tell me if you need more information. Any help would be appreciated. Thank you. @usr-sse2 @hieplpvip @kprinssu @BAndysc
I have same problem here my laptop ASUS TP500LN Haswell appleps2elan is loaded Elan v 4, fw: 381f17, bus: 0 IOService:/AppleACPIPlatformExpert/PS2M/ps2controller/ApplePS2Controller/ApplePS2MouseDevice/ApplePS2Elan trackpad preferences is loaded but no move nor click it was working fine using smart touchpad kext
on kernel log 2020-10-12 21:08:09.123073+0200 localhost kernel[0]: (kernel) VoodooPS2Trackpad: Identify TouchPad command returned incorrect byte 2 (of 3): 0x04
2020-10-12 21:08:09.200205+0200 localhost kernel[0]: (kernel) ApplePS2Controller: Notification consumer published: ApplePS2Elan
any help thanks on advance
![Screen Shot 2020-10-12 at 10 22 31 PM 1](https://user-images.githubusercontent.com/72765111/95787309-8c869980-0cd9-11eb-868c-889cea8335a2.png
I think the issue is from the latest release. It worked on previous versions although the trackpad preference pane didn't load.
I found an issue that prevented my touchpad from working after waking up from sleep.
The fact is that after sleep, the touchpad needs to be initialized. Execute method elantechSetupPS2 () and only then perform other methods. And another problem was in the call to resetMouse (). I removed this method. After that my touchpad started working normally.
Original:
Modified:
@IFierta looking at your changes it seems enough to simply comment resetMouse call out. Can you confirm this?
If yes, then my primary suspect regarding resetMouse is that a delay is needed between setup and reset. Can you try adding IOSleep calls between them?
@IFierta looking at your changes it seems enough to simply comment resetMouse call out. Can you confirm this?
If yes, then my primary suspect regarding resetMouse is that a delay is needed between setup and reset. Can you try adding IOSleep calls between them?
If you just comment out resetMouse (), in this case the touchpad does not work, but if, as in the second screenshot, then the touchpad works. For the touchpad to work, you need to add elantech Setup PS2 () after IOSleep(wakedelay).
I.e. zeroing the _packetByteCount
and clearing the _ringBuffer
before doing setup breaks the process even if we entirely take resetMouse out of an act, correct? That looks very strange, as I do not see elantechSetupPS2
using any of these variables. Can you tell us which of the two is the cause of the breakage by putting elantechSetupPS2
before one but after another? You can reorder the two freely.
@vit9696 1) Inserted elantech SetupPS2 between _packetByteCount and _ringBuffer. 2) resetMouse () did not comment. Result: doesn't work.
...
resetMouse commented out. Result: doesn't work.
1) elantechSetupPS2 inserted before _packetByteCount 2) resetMouse commented out. Result: works
...
resetMouse () did not comment. Result: doesn't work.
( Поздравляю с новым годом! Желаю счастья, здоровья, успехов и процветания Вам и вашей команде! Спасибо большое за результат вашей работы! )
Спасибо, тоже с Новым годом!!
What if you have
_ringBuffer.reset();
elantechSetupPS2();
_packetByteCount = 0;
resetMouse(); /* try commenting this one if it fails*/
I suspect that we have a very bad race condition here, but I cannot easily get what kind. CC @usr-sse2, @hieplpvip, @zhen-zen, @1Revenger1, @BAndysc.
Спасибо, тоже с Новым годом!!
What if you have
_ringBuffer.reset(); elantechSetupPS2(); _packetByteCount = 0; resetMouse(); /* try commenting this one if it fails*/
I suspect that we have a very bad race condition here, but I cannot easily get what kind. CC @usr-sse2, @hieplpvip, @zhen-zen, @1Revenger1, @BAndysc.
Works with this code, but need to comment out resetMouse, if not comment out, then the touchpad does not work after sleep.
Hmmmm, that sounds like it conflicts with some interrupt on wake, though I cannot see how it can happen, as everything should happen in the work loop including this power set… Maybe some command fails to process in time. Could you try?
case kPS2C_EnableDevice:
// Must not issue any commands before the device has
// completed its power-on self-test and calibration
IOSleep(3000);
// Clear packet buffer pointer to avoid issues caused by stale packet fragments
_packetByteCount = 0;
_ringBuffer.reset();
IOSleep(3000);
// Reset and enable the touchpad
resetMouse();
IOSleep(3000);
elantechSetupPS2();
IOSleep(3000);
setTouchPadEnable(true);
break;
This may require up to 15 seconds to power up your touchpad after wake. If it works, try reducing/removing the delays.
Does not work. I tried decreasing the time (2000, 1000, 500), the result is the same.
IOSleep(0) - touchpad works.
Huh, IOSleep(0)
? Please clarify what code did you use to get things work. Did you leave the code unchanged from my sample above, but simply set the argument to 0
, and it worked?
Yes,IOSleep(0)
. I set the argument to 0
, didn't make any more changes.
Right, then is it enough to change IOSleep(wakedelay) to IOSleep(0) in the master code?
If it does, then supplying this SSDT should be enough (adjust the device path as necessary):
// For some computers wake delay needs to be shorter
// for ELAN touchpad to work after wakeup.
DefinitionBlock("", "SSDT", 2, "ACDT", "ps2", 0)
{
External (_SB_.PCI0.LPCB.PS2K, DeviceObj)
Name(_SB.PCI0.LPCB.PS2K.RMCF, Package()
{
"Elantech TouchPad", Package()
{
"WakeDelay", 0,
},
})
}
//EOF
Yes it works. How do I add this code to ssdt-ps2? I use it to remap the key (cmd - opt).
Great, you just add them one by one, like here: https://github.com/acidanthera/VoodooPS2/blob/master/Docs/ACPI/SSDT-DisableTrackpadProbe.dsl
Great, you just add them one by one, like here: https://github.com/acidanthera/VoodooPS2/blob/master/Docs/ACPI/SSDT-DisableTrackpadProbe.dsl
Works. Thank you so much! A great gift for the new year! ))
Glad to hear, I added this ACPI example to the samples in https://github.com/acidanthera/VoodooPS2/blob/master/Docs/ACPI/SSDT-DisableElanWakeDelay.dsl.
Glad to hear, I added this ACPI example to the samples in https://github.com/acidanthera/VoodooPS2/blob/master/Docs/ACPI/SSDT-DisableElanWakeDelay.dsl.
Thank you. )
I have two issues with my ELAN trackpad:
Occasionally during boot I'm getting an ApplePS2Controller: Timed out on mouse input stream
error message. If this happens then the trackpad doesn't work at all, only the keyboard. I usually have to boot into Windows, then shut down the computer and then boot into OSX again for this to be fixed. It usually happens if I accidentally boot into Windows using OpenCore instead of natively from the boot menu (and then restart to get to OSX again).
The trackpad, including the two buttons and all multi-touch gestures work correctly. However the trackpad doesn't appear in the settings, as it still says "No trackpad found", so you cannot configure it, and by the default the sensibility is set to too low.
Note: the device does appear in the IORegExplorer along with the relevant simulator kexts and as mentioned multi-touch functionality works, it's just that the configuration pane is not available.
Boot logs:
(can't provide them in text format because of https://github.com/acidanthera/bugtracker/issues/1483)
OS: Tested with Catalina and Big Sur. OC 0.6.6 and version 2.2.1 of the kext (tried with 2.2.0 as well)
No preferences I believe is usually caused by incorrect SMBIOS model. Must be laptop. Make sure you use Automatic
configuration in OC. If there are more cases, @usr-sse2 might provide them.
As for Timed out on mouse input stream
, not sure I can help. You can try increasing the timeouts, but most likely some kind of hardware reset is needed. We do not have the hardware and are not up to debugging remotely these days. If you have skills, you can try comparing Linux code with ours, and perhaps figuring the thing out.
I am using MacBookPro11,5
as the product name. Automatic
is enabled in PlatformInfo
. Tried with some other laptop SMBIOS models in the Haswell range (MacBookAir6,2
and MacBookPro11,1
), but none of them worked. Any other pointers where I might need to look?
You need battery status to be working within macOS to see the trackpad preferences. I don't know about the timed out stream, sorry.
That must be it, as I haven't fixed battery yet on this setup. Thanks a lot!
i have this issue on a thinkpad t480s, i believe it's an elan trackpoint. very annoying!
till last release of voodoops2 no solution for this problem https://github.com/acidanthera/bugtracker/issues/1220 any hope ?
Someone on Discord was having issues with their Elans trackpad not working after sleep. I was a little confused by what I saw in elantechSetupPS2 and was hoping for some insight. I'll start with the diff that worked for the user on Discord:
diff --git a/VoodooPS2Trackpad/VoodooPS2Elan.cpp b/VoodooPS2Trackpad/VoodooPS2Elan.cpp
index fa98e20..c4aab07 100644
--- a/VoodooPS2Trackpad/VoodooPS2Elan.cpp
+++ b/VoodooPS2Trackpad/VoodooPS2Elan.cpp
@@ -498,7 +499,9 @@ void ApplePS2Elan::setDevicePowerState(UInt32 whatToDo) {
// Reset and enable the touchpad
resetMouse();
- elantechSetupPS2();
+ elantechDetect();
+ elantechSetAbsoluteMode();
+// elantechSetupPS2();
setTouchPadEnable(true);
break;
}
This more closely resembles what is done in elantech_reconnect. setAbsoluteMode
is done in elantechSetupPS2
, which I'm guessing was the step missing earlier in this discussion.
This were the things I was curious about in elantechSetupPS2
.
elantechSetInputParams
appears to just set the properties needed for VoodooInput. Would this need to be published again? I thought that was handled in rescale
and when this was called at boot.Hello, I want to report a very similar issue. I have a ThinkPad Yoga 460 and every time the device wakes from sleep, the touchpad will be lost after 1 movement. I suspect something else overrides it. The keyboard and touchscreen work fine. kext in use: VoodooPS2controller (keyboard & ELAN touchpad), VoodooI2C, VoodooI2CHID (touchscreen)
Bootloader : Latest OC Lilu : Latest kext
When only using VoodooPS2controller, only the trackpoint works, trackpad (expected to work) & touchscreen (expected not to work) doesn't work on boot. Trackpoint will be lost after waking from sleep and nothing works. Initial log: When using VoodooPS2controller+VoodooI2C+VoodooI2CHID, everything will work on boot (expected). After waking from sleep, the trackpoint and touchpad will work for a few seconds before lost. Touchscreen continues to work. trackpoint&clickpad conflict.zip
Doesn't this hint that there's a bug where if there are 2 PS2 devices under VoodooPS2Trackpad, then VoodooInput gets confused as shown in:
kernel: (IOHIDFamily) VoodooInputSimulatorDevice:0x1000007dc Matching has vendor DeviceUsagePage : ff0c bundleIdentifier com.apple.AppleUserHIDDrivers ioclass AppleUserHIDEventService but transport and vendorID is missing
If I disable the trackpoint physically (unplug from motherboard). The issue is resolved. Could you please take a look at how VoodooPS2 handles 2 devices of same type?
Is there any hope to get issue #1220 fixed?
My laptop also runs an elan v4 trackpad which works ok with ApplePS2SmartTouchpad.
VodooPS2Trackpad attaches to my trackpad, preference pane also shows up but like others reported nothing happens when you try to click or move the mouse.
If you need any data from me I would be more than happy to provide it.
Currently broken on some machines
——————————
The trackpad Elan v3 works
only as a mouse.Doubleclick works. Trackpad keys work.Gestures don't work.Trackpad preferens panel don't work.What logs are required from me? CC @BAndysc и @hieplpvip