acidanthera / bugtracker

Acidanthera Bugtracker
375 stars 42 forks source link

Erratic pointer movement in Opencore #1911

Closed antoniomcr96 closed 1 year ago

antoniomcr96 commented 2 years ago

Opencore 0.7.7, last commit. However, it has always happened with every version, I report it now if someone wishes to fix the problem. I understand that it is of low priority.

Lenovo L390 Yoga. VoodooPS2Controller latest release. Elan Touchpad (ID: LEN2137). Monterey 12.1

On reboot pointer goes crazy in opencore UI:

https://user-images.githubusercontent.com/63928525/148106634-7ef67989-e0c7-44bb-a505-59838a3417b8.mp4

Log: opencore-2022-01-04-181725.txt

However, the behavior of the pointer is absolutely fine on cold boot:

https://user-images.githubusercontent.com/63928525/148106929-3d07b903-8336-4127-af9f-c48d6a7dc215.mp4

Log: opencore-2022-01-04-181523.txt

The problem disappears even if I restart from Windows.

Thanks for any help. Happy New Year to all of you.

vit9696 commented 2 years ago

@usr-sse2 does this look like https://github.com/acidanthera/bugtracker/issues/721?

vit9696 commented 2 years ago

I think the issue is how the firmware initialises the trackpad. It is unlikely we can do anything.

antoniomcr96 commented 2 years ago

I think the issue is how the firmware initialises the trackpad. It is unlikely we can do anything.

My main doubt remains why if I reboot from windows it works regularly but not if rebooting from macos.

vit9696 commented 2 years ago

Because Windows leaves the trackpad in one state and macOS in another, yet the firmware does not fully reinitialise it. Perhaps we should change the way we disable the trackpad on reboot. CC @1Revenger1

antoniomcr96 commented 2 years ago

I tried to reboot from macOS without voodoops2controller kext. Pointer works fine in OpenCanopy UI. It’s probably what you have just hypothesized and (maybe) depends on the kext?

Moreover, the same problem (crazy pointer) happens in macOS UI if I use VoodooPS2Mouse to drive my touchpad. However it's enough to put the notebook to sleep to fix the problem. With VoodooPS2Trackpad, that works with my ELAN touchpad since 2.1.7 release, pointer works well in macOS UI but not in OpenCanopy UI after reboot.

usr-sse2 commented 2 years ago

@usr-sse2 does this look like #721?

No. In #721 the cursor movement was just slow, not wrong, and the conditions were different – it was slow in FV2 if the picker was not shown.

1Revenger1 commented 2 years ago

Because Windows leaves the trackpad in one state and macOS in another, yet the firmware does not fully reinitialise it. Perhaps we should change the way we disable the trackpad on reboot. CC @1Revenger1

My suspicion is that devices may need to be reset on shutdown. I'll see if I can create a version later tonight which does this. Looks like Linux does this while cleaning up/shutting down: https://github.com/torvalds/linux/blob/master/drivers/input/mouse/psmouse-base.c#L1455-L1464

1Revenger1 commented 2 years ago

Can you please test the below? This changes the keyboard/mouse to reset but not disable on shutdown. VoodooPS2Controller-2.2.8-DEBUG.zip

antoniomcr96 commented 2 years ago

Unfortunately it doesn't work :( Just a question: the kext you sent was edited on 25th december. Is it the right one? image

EDIT: i did further tests @1Revenger1

Hope these informations can be useful for both the issues

1Revenger1 commented 2 years ago

Unfortunately it doesn't work :( Just a question: the kext you sent was edited on 25th december. Is it the right one? image

The date doesn't matter, check the date of the binary (right click and click Show Package Contents). Someone else on Discord was having the same issue on their Elans trackpad, and I was not able to figure it out. You could try seeing if there is some sort of diagnostic option, or way to disable quick boot. This may mean that the bios does more initialization on it's own, though I don't really know what we are doing wrong in macOS.

Main things I tried doing on shutdown were:

I don't have a device which does anything like this, so it's a bit hard for me to test unfortunately.

Krazy-Killa commented 2 years ago

I've got a Lenovo Yoga 370, and here is my findings on the matter:

nms42 commented 2 years ago

I think the issue is how the firmware initialises the trackpad. It is unlikely we can do anything.

Just my observations so far. The same kext (2.2.7) in OpenCore did not work when system cold booted. When system forced to sleep (via power button) and waked after -- keyboard works. Kernel log shows troubles with initial (controller) reset.

On the other side the same kext works just fine with Clover.

May be the trouble with usb legacy handling is the reason?

vit9696 commented 1 year ago

Version 2.3.2 added ps2kbdonly=1, so it might have resolved this.