SkyrilHD / VoodooPS2-ALPS

Refined macOS driver for ALPS TouchPads
Other
24 stars 5 forks source link

ALPS v3 #11

Closed realizelol closed 2 years ago

realizelol commented 2 years ago

Hi SkyrilHD,

i am using a Dell Latitude E6540 with an integrated ALPS v3. Unfortunately the driver isn't loading:

$ log show --debug --last boot | grep -i "PS2"
2022-01-29 00:46:53.925573+0100 0x107      Default     0x0                  0      0    kernel: (VoodooPS2Controller) ApplePS2Controller::start entered...
2022-01-29 00:46:53.926220+0100 0x107      Default     0x0                  0      0    kernel: (VoodooPS2Controller) ApplePS2Controller: initial commandByte = 45
2022-01-29 00:46:54.134186+0100 0x107      Default     0x0                  0      0    kernel: (VoodooPS2Controller) ApplePS2Controller: new commandByte = 44
2022-01-29 00:46:54.141076+0100 0x107      Default     0x0                  0      0    kernel: (VoodooPS2Controller) ApplePS2Controller::start leaving.
2022-01-29 00:46:54.141162+0100 0x13f      Default     0x0                  0      0    kernel: (VoodooPS2Keyboard) ApplePS2Keyboard::probe entered...
2022-01-29 00:46:54.141180+0100 0x141      Default     0x0                  0      0    kernel: (VoodooPS2Controller) ApplePS2Controller: Notification consumer published: ApplePS2Controller
2022-01-29 00:46:54.141269+0100 0x13f      Default     0x0                  0      0    kernel: (VoodooPS2Keyboard) ApplePS2Keyboard::probe leaving.
2022-01-29 00:46:54.141276+0100 0x13f      Default     0x0                  0      0    kernel: (VoodooPS2Keyboard) ApplePS2Keyboard::start entered...
2022-01-29 00:46:54.141301+0100 0x13f      Default     0x0                  0      0    kernel: (VoodooPS2Keyboard) ps2bl: KKCL, KKCM, KKQC methods not found in DSDT
2022-01-29 00:46:54.141443+0100 0x142      Default     0x0                  0      0    kernel: (VoodooPS2Controller) ApplePS2Controller: Notification consumer published: ApplePS2Keyboard
2022-01-29 00:46:54.141512+0100 0x140      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: Version 1.0.6 starting on OS X Darwin 19.6.
2022-01-29 00:46:54.141520+0100 0x140      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: probe entered...
2022-01-29 00:46:54.145024+0100 0x13f      Default     0x0                  0      0    kernel: (VoodooPS2Controller) ApplePS2Controller: oldCommandByte = 44
2022-01-29 00:46:54.145031+0100 0x13f      Default     0x0                  0      0    kernel: (VoodooPS2Controller) ApplePS2Controller: setCommandByte for keyboard interrupt install
2022-01-29 00:46:54.145163+0100 0x13f      Default     0x0                  0      0    kernel: (VoodooPS2Controller) ApplePS2Controller: oldCommandByte = 44
2022-01-29 00:46:54.145165+0100 0x13f      Default     0x0                  0      0    kernel: (VoodooPS2Controller) ApplePS2Controller: newCommandByte = 45
2022-01-29 00:46:54.145301+0100 0x13f      Default     0x0                  0      0    kernel: (VoodooPS2Keyboard) ApplePS2Keyboard::start leaving.
2022-01-29 00:46:54.355490+0100 0x140      Default     0x0                  0      0    kernel: (VoodooPS2Controller) ApplePS2Controller: Timed out on input stream 1.
2022-01-29 00:47:01.888436+0100 0x2dd      Default     0x0                  190    0    hidd: (IOKit) [com.apple.iohid:default] Service added: IOHIDService name:IOHIDSystem id:0x100000297 primaryUsagePage:0xff00 primaryUsage:0x17 transport:PS2 reportInterval:0 batchInterval:0 events:0 mask:0x0
2022-01-29 00:47:06.523021+0100 0x3c3      Default     0x0                  190    0    hidd: (IOKit) [com.apple.iohid:default] Service added: IOHIDService name:IOHIDEventDriver id:0x10000039b primaryUsagePage:0x1 primaryUsage:0x6 transport:PS2 reportInterval:8000 batchInterval:0 events:0 mask:0x0
Transport:           PS2

(no keyboard/no trackpad/no trackstick - not really needed)

How can I help you? What further information do you need?


best regards

realizelol

SkyrilHD commented 2 years ago

Is this the debug version? There is not enough logging that would help at the moment.

Since the keyboard does not work at all, check if you have duplicate PS2 kexts. Make sure your config is correct (kext order: VoodooInput -> VoodooPS2Controller -> VoodooPS2Keyboard -> VoodooPS2Trackpad).

Does it also happen with acidanthera's VoodooPS2?

realizelol commented 2 years ago

Hi SkyrilHD, thanks to the quick response.

Yes, this is the debug version and this is the only voodoops2 kext in it's loaded in the correct order.

It also happens to acidanthera's version.

OpenCore 0.7.7 macOS 10.15.7 19H1713

This was loaded by 1Revenger1 version:

2022-01-19 00:05:45.404987+0100 0x110      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: Touchpad with Signature { 115, 3, 10 }
2022-01-19 00:05:45.404991+0100 0x110      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: Found a V3 Rushmore TouchPad with ID: E7=0x73 0x03 0x0a, EC=0x88 0x08 0x22
2022-01-19 00:05:45.445781+0100 0x110      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: TrackStick detected...
2022-01-19 00:05:45.445783+0100 0x110      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: TouchPad driver started...
SkyrilHD commented 2 years ago

Since there is an issue with acidanthera's version as well, it probably needs a bug report to the bugtracker repo.

Could you try v1.0.4, as this is the version before the acidanthera rebase?

Btw, do you happen to have SMCDellSensors? This causes problems with ALPS touchpads. Removing the kext fixes many issues.

realizelol commented 2 years ago

I don't use the SMCDellSensors as these sensor readings are also not compatible to my notebook.

here's the output of 1.0.4:

$ log show --debug --last boot | grep -i "PS2"
2022-01-29 01:47:46.803441+0100 0xbc       Default     0x0                  0      0    kernel: (VoodooPS2Controller) ApplePS2Controller::start entered...
2022-01-29 01:47:46.804244+0100 0xbc       Default     0x0                  0      0    kernel: (VoodooPS2Controller) ApplePS2Controller: initial commandByte = 45
2022-01-29 01:47:46.912899+0100 0xbc       Default     0x0                  0      0    kernel: (VoodooPS2Controller) ApplePS2Controller: new commandByte = 44
2022-01-29 01:47:46.918551+0100 0xbc       Default     0x0                  0      0    kernel: (VoodooPS2Controller) ApplePS2Controller::start leaving.
2022-01-29 01:47:46.918995+0100 0x10f      Default     0x0                  0      0    kernel: (VoodooPS2Keyboard) ApplePS2Keyboard::probe entered...
2022-01-29 01:47:46.919087+0100 0x10f      Default     0x0                  0      0    kernel: (VoodooPS2Keyboard) ApplePS2Keyboard::probe leaving.
2022-01-29 01:47:46.919094+0100 0x10f      Default     0x0                  0      0    kernel: (VoodooPS2Keyboard) ApplePS2Keyboard::start entered...
2022-01-29 01:47:46.919136+0100 0x10f      Default     0x0                  0      0    kernel: (VoodooPS2Keyboard) ps2bl: KKCL, KKCM, KKQC methods not found in DSDT
2022-01-29 01:47:46.919358+0100 0x110      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) VoodooPS2TouchPad Base Driver loaded...
2022-01-29 01:47:46.922779+0100 0x10f      Default     0x0                  0      0    kernel: (VoodooPS2Controller) ApplePS2Controller: oldCommandByte = 44
2022-01-29 01:47:46.922785+0100 0x10f      Default     0x0                  0      0    kernel: (VoodooPS2Controller) ApplePS2Controller: setCommandByte for keyboard interrupt install
2022-01-29 01:47:46.922917+0100 0x10f      Default     0x0                  0      0    kernel: (VoodooPS2Controller) ApplePS2Controller: oldCommandByte = 44
2022-01-29 01:47:46.922919+0100 0x10f      Default     0x0                  0      0    kernel: (VoodooPS2Controller) ApplePS2Controller: newCommandByte = 45
2022-01-29 01:47:46.923056+0100 0x10f      Default     0x0                  0      0    kernel: (VoodooPS2Keyboard) ApplePS2Keyboard::start leaving.
2022-01-29 01:47:47.029293+0100 0x110      Default     0x0                  0      0    kernel: (VoodooPS2Controller) ApplePS2Controller: Timed out on mouse input stream.
2022-01-29 01:47:47.132874+0100 0x110      Default     0x0                  0      0    kernel: (VoodooPS2Controller) ApplePS2Controller: Timed out on mouse input stream.
2022-01-29 01:47:47.363103+0100 0x110      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) e6 report: [0x00 0x00 0x64]
2022-01-29 01:47:47.381071+0100 0x110      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) e7 report: [0x73 0x03 0x0a]
2022-01-29 01:47:47.398950+0100 0x110      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ec report: [0x88 0x08 0x22]
2022-01-29 01:47:47.398952+0100 0x110      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) exit command mode
2022-01-29 01:47:55.161534+0100 0x2df      Default     0x0                  190    0    hidd: (IOKit) [com.apple.iohid:default] Service added: IOHIDService name:IOHIDSystem id:0x10000029c primaryUsagePage:0xff00 primaryUsage:0x17 transport:PS2 reportInterval:0 batchInterval:0 events:0 mask:0x0
2022-01-29 01:47:59.791610+0100 0x3bf      Default     0x0                  190    0    hidd: (IOKit) [com.apple.iohid:default] Service added: IOHIDService name:IOHIDEventDriver id:0x1000003aa primaryUsagePage:0x1 primaryUsage:0x6 transport:PS2 reportInterval:8000 batchInterval:0 events:0 mask:0x0
Transport:           PS2

which is indeed a bit different.

SkyrilHD commented 2 years ago

Does the keyboard work?

For logging, use this instead: sudo dmesg > alps.log the log will be saved in the home directory by default.

realizelol commented 2 years ago

No, the keyboard isn't working oob but after a wakeup.

Attached you'll find the dmesg (keypresses are "asterisked") file: alps.log .

SkyrilHD commented 2 years ago

I have never seen this before: ApplePS2Keyboard: sending key **=** down ApplePS2Keyboard: sending key **=** up But else there is no helpful info.

Increase the buffer size with this boot-arg: msgbuf=1048576 and run the dmesg command immediately after boot to get initialization logs.

Is there any kext where the keyboard works fine?

realizelol commented 2 years ago

Hi SkyrilHD,

the sending keys was sed by me to override my sudo/users password. Attached you'll find a completely debug dmesg file with increased msgbuf: full_debug_dmesg.log

The 1Revenger1 kext is working fine: 1Revnger1 - Version 1.0

SkyrilHD commented 2 years ago

Thanks. I assume you tried this with v1.0.4. Found this in the log: ALPS: Hardware initialization failed. TouchPad probably won't work

But earlier, the touchpad gets detected: ALPS: Touchpad with Signature { 115, 3, 10 }ALPS: Found a V3 Rushmore TouchPad with ID: E7=0x73 0x03 0x0a, EC=0x88 0x08 0x22

Since 1Revenger1's kext is working, can you try the attached kext below? This kext is before I implemented VoodooInput (this commit to be exact) VoodooPS2Controller-1.0.0-DEBUG.zip

realizelol commented 2 years ago

Thank again, attached you will find the mentioned kext output: full_debug_dmesg.log

SkyrilHD commented 2 years ago

Do keyboard and trackpad work?

realizelol commented 2 years ago

Yes,

Keyboard and Trackpad and also Trackstick are working.

SkyrilHD commented 2 years ago

VoodooPS2Controller-1.0.1-DEBUG.zip

Give this a try. Keyboard should work but the trackpad might not work. Check with FingerMgmt if you see any input, if the touchpad does not work.

realizelol commented 2 years ago

yes, you're right. The keyboard is working but the trackpad or the trackstick isn't working. But the funny part is that the rightclick will work but the leftclick not. And no gestures.

In FingerMgmt I only see a grey window.

SkyrilHD commented 2 years ago

VoodooPS2Controller-1.0.1-DEBUG.zip

Again, keyboard should work, but trackpad might not. This time, VoodooInput is now included and needs to be added to the config (if you have OpenCore). Check again with FingerMgmt if you see any input.

realizelol commented 2 years ago

Keyboard is working. Trackstick is working (Just moving, no Keys), Trackpad isn't working (just the rightclick).

SkyrilHD commented 2 years ago

Trackstick buttons were not implemented back then, so it's expected not to work. Right-click is pass-through, so that's why it works. There was a bug where you had to put a finger on the touchpad for the left click to work.

VoodooPS2Controller-1.0.3-DEBUG.zip

Same behaviour.

realizelol commented 2 years ago

Keyboard isn't working (but ACPI Keys -> Brightness). Trackstick isn't working (No keys). Trackpad isn't working (No keys).

SkyrilHD commented 2 years ago

Hmm, okay.

Let's see if that works. VoodooPS2Controller-1.0.2-DEBUG.zip

realizelol commented 2 years ago

Keyboard is working again, Trackstick is working again (also with rightclick), Trackpad isn't working (but rightclick). Nothing to see in FingerMgmt.

SkyrilHD commented 2 years ago

Seems like, the ported code from Linux is breaking on macOS.

I reverted one of the changes: VoodooPS2Controller-1.0.6-DEBUG.zip

If this does not work, try the kext below: VoodooPS2Controller-1.0.6-DEBUG.zip

realizelol commented 2 years ago

The second one look promising, Keyboard is working, Trackstick is working completely (maybe not the middle one - I don't used the stick) - Trackpad not working but both keys.

SkyrilHD commented 2 years ago

OK, the fix for that has been pushed. Now, the trackpad: Can you send me a dmesg log now? (Basically move your finger around, then run the command). Also, do you see any input in FingerMgmt?

realizelol commented 2 years ago

FingerMgmt just shows nothing at all. dmesg looks like it's working but don't move the cursor. full_debug_dmesg.log

SkyrilHD commented 2 years ago

Can you try this? I think it saved the wrong finger value.

VoodooPS2Controller-1.0.6-DEBUG.zip

realizelol commented 2 years ago

unfortunately the same behaviour. full_debug_dmesg.log

SkyrilHD commented 2 years ago

OK, this fixed at least 1 finger not reporting to VoodooInput. So, my guess is that VoodooInput is acting up (possibly due to resolution). But I don't see anything obvious. I disabled VoodooInput temporarily, as I want to see if the cursor moves without VoodooInput.

VoodooPS2Controller-1.0.6-DEBUG.zip

realizelol commented 2 years ago

yes this will move the cursor, but if you touch it, the only way it moves is down-right. only a simple touch -> no move.

SkyrilHD commented 2 years ago

Can you try this? VoodooPS2Controller-1.0.6-DEBUG.zip

What do you mean by "only a simple touch -> no move"? Tapping does not work?

realizelol commented 2 years ago

Sorry, I mean that by a simple touch the cursor will move to down-right, so you don't have to move the finger over the touchpad. This kext will do the same. Moving the cursor on touch to the down-right.

full_debug_dmesg.log

SkyrilHD commented 2 years ago

and this does not happen with 1Revenger1's kext?

realizelol commented 2 years ago

No, 1Revenger1's version is working correctly. 🤔

SkyrilHD commented 2 years ago

I changed the resolution. Let's see if that does any movements VoodooPS2Controller-1.0.6-DEBUG.zip

realizelol commented 2 years ago

No there's again no movement, but could it be that this is "de-calibrated"?

2022-01-29 20:53:21.953220+0100 0x186      Default     0x0                  0      0    kernel: (VoodooInput) Sending report with touch active 3, button 0, finger count 2
2022-01-29 20:53:21.953227+0100 0x186      Default     0x0                  0      0    kernel: (VoodooInput) [0] (-4067, 2603) F2 St4 Maj20 Min20 Sz10 P5 ID1 A4
2022-01-29 20:53:21.953233+0100 0x186      Default     0x0                  0      0    kernel: (VoodooInput) [1] (-4067, 2603) F3 St4 Maj20 Min20 Sz10 P5 ID2 A4
2022-01-29 20:53:21.973395+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: BITMAP
2022-01-29 20:53:21.973408+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: ALPS: 0 0 0 0 0 0 0 0 0 0 0 0 0
2022-01-29 20:53:21.973417+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: ALPS: 0 0 0 0 0 0 0 0 0 0 0 0 0
2022-01-29 20:53:21.973425+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: ALPS: 0 0 0 0 0 0 0 0 0 0 0 0 0
2022-01-29 20:53:21.973433+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: ALPS: 0 0 0 0 0 0 0 0 0 0 0 0 0
2022-01-29 20:53:21.973440+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: ALPS: 0 0 0 0 0 1 1 1 1 0 1 1 1
2022-01-29 20:53:21.973448+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: ALPS: 0 0 0 0 0 1 1 1 1 0 1 1 1
2022-01-29 20:53:21.973455+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: ALPS: 0 0 0 0 0 1 1 1 1 0 1 1 1
2022-01-29 20:53:21.973462+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: ALPS: 0 0 0 0 0 1 1 1 1 0 1 1 1
2022-01-29 20:53:21.973470+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: ALPS: 0 0 0 0 0 1 1 1 1 0 1 1 1
2022-01-29 20:53:21.973477+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: ALPS: 0 0 0 0 0 1 1 1 1 0 1 1 1
2022-01-29 20:53:21.973489+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: Process Bitmap, Corner=0, Fingers=2, x1=1463, x2=866, y1=821, y2=636 xmap=7648 ymap=1008
2022-01-29 20:53:21.973503+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: Amount of finger(s) accessing alps_process_touchpad_packet_v3_v5: 2
2022-01-29 20:53:21.973514+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: fingerStates[0] report: x: 1463, y: 579, z: 60
2022-01-29 20:53:21.973524+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) alps_parse_hw_state: finger 0 -> virtual finger 0
2022-01-29 20:53:21.973532+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) alps_parse_hw_state: finger 1 -> virtual finger 1
2022-01-29 20:53:21.973542+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) alps_parse_hw_state: lastFingerCount=2 clampedFingerCount=2 left=0
2022-01-29 20:53:21.973554+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) alps_parse_hw_state: finger[0] x=1457 y=-762 raw_x=1457 raw_y=763
2022-01-29 20:53:21.973566+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) alps_parse_hw_state: finger[1] x=866 y=-941 raw_x=866 raw_y=942
2022-01-29 20:53:21.973607+0100 0x186      Default     0x0                  0      0    kernel: (VoodooInput) Sending report with touch active 3, button 0, finger count 2
2022-01-29 20:53:21.973614+0100 0x186      Default     0x0                  0      0    kernel: (VoodooInput) [0] (-4067, 2603) F2 St4 Maj20 Min20 Sz10 P5 ID1 A4
2022-01-29 20:53:21.973620+0100 0x186      Default     0x0                  0      0    kernel: (VoodooInput) [1] (-4067, 2603) F3 St4 Maj20 Min20 Sz10 P5 ID2 A4
2022-01-29 20:53:21.993842+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: BITMAP
2022-01-29 20:53:21.993855+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: ALPS: 0 0 0 0 0 0 0 0 0 0 0 0 0
2022-01-29 20:53:21.993865+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: ALPS: 0 0 0 0 0 0 0 0 0 0 0 0 0
2022-01-29 20:53:21.993873+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: ALPS: 0 0 0 0 0 0 0 0 0 0 0 0 0
2022-01-29 20:53:21.993880+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: ALPS: 0 0 0 0 0 0 0 0 0 0 0 0 0
2022-01-29 20:53:21.993888+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: ALPS: 0 0 0 0 0 0 0 0 0 0 0 0 0
2022-01-29 20:53:21.993895+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: ALPS: 0 0 0 0 0 0 0 0 0 0 0 0 0
2022-01-29 20:53:21.993902+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: ALPS: 0 0 0 0 0 1 1 1 1 0 1 1 1
2022-01-29 20:53:21.993910+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: ALPS: 0 0 0 0 0 1 1 1 1 0 1 1 1
2022-01-29 20:53:21.993917+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: ALPS: 0 0 0 0 0 1 1 1 1 0 1 1 1
2022-01-29 20:53:21.993925+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: ALPS: 0 0 0 0 0 1 1 1 1 0 1 1 1
2022-01-29 20:53:21.993937+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: Process Bitmap, Corner=0, Fingers=2, x1=1463, x2=866, y1=961, y2=827 xmap=7648 ymap=960
2022-01-29 20:53:21.993950+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: Amount of finger(s) accessing alps_process_touchpad_packet_v3_v5: 2
2022-01-29 20:53:21.993961+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: fingerStates[0] report: x: 1463, y: 439, z: 58
2022-01-29 20:53:21.993971+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) alps_parse_hw_state: finger 0 -> virtual finger 0
2022-01-29 20:53:21.993980+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) alps_parse_hw_state: finger 1 -> virtual finger 1
2022-01-29 20:53:21.993989+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) alps_parse_hw_state: lastFingerCount=2 clampedFingerCount=2 left=0
2022-01-29 20:53:21.994020+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) alps_parse_hw_state: finger[0] x=1458 y=-677 raw_x=1458 raw_y=678
2022-01-29 20:53:21.994053+0100 0x186      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) alps_parse_hw_state: finger[1] x=866 y=-852 raw_x=866 raw_y=853
2022-01-29 20:53:21.994066+0100 0x186      Default     0x0                  0      0    kernel: (VoodooInput) Sending report with touch active 3, button 0, finger count 2

if the ones and zeros should be the trackpad field. Looks like the finger is surrounded by 1. Then the finger will be always in the right-down corner. Maybe that's the reason why the previous kext always put me to to the right-down corner?

Finger count of VoodooInput is always 2?

Again there's also no visible input in fingerMgmt.

SkyrilHD commented 2 years ago

It is only 2 if you put 2 fingers down on the trackpad. It could possibly the reason why the cursors goes right-down...

Could you do logging with 1Revenger1's kext? Use debug mode, otherwise the trackpad field won't be visible.

EDIT: Can you try this version of 1Revenger1's kext? (In theory, 1 finger should work fine, but 2+ fingers should break) VoodooPS2Controller.kext.zip

realizelol commented 2 years ago

This is the original version of 1Revenger1: full_debug_dmesg.log VodooBoot.log

I will now test your version. mentioned before.

realizelol commented 2 years ago

Same issue, the cursor is moving to down-right. full_debug_dmesg.log VodooBoot.log

realizelol commented 2 years ago

I found out, that the touchpad will scroll with two fingers. Also if I put a finger on the touchpad I can move the cursor with another finger. Not really good as it sometimes want to scroll.

I also see some input in FingerMgmt.

Using the latest artifact: https://github.com/SkyrilHD/VoodooPS2-ALPS/actions/runs/1766394903

SkyrilHD commented 2 years ago

Sorry for being inactive, was busy for quite few days. But anyway, I disabled pressure report completely and added more logging with this build, hopefully this works.

VoodooPS2Controller-1.0.6-DEBUG.zip

1 finger is not fixed in master, probably that's why it only registers on 2+ fingers. Will push it now. (This build includes the fix)

realizelol commented 2 years ago

Yes, indeed it's working now. I also see the input in FingerMgmt. The only thing that it's not recognized by the Systemsettings.

Sometimes the two finger scroll is a bit sloppy but maybe that's because the driver isn't loaded into systemsettings. Do I need to have bluetooth activated for "VoodooInputs" MagicMouse simulation?

I actually disabled a lot of kexts for testing.

log show --debug --last boot | grep -i "PS2\|Voodoo"
2022-01-31 17:09:18.488790+0100 0x14f      Default     0x0                  0      0    kernel: (VoodooPS2Controller) ApplePS2Controller::start entered...
2022-01-31 17:09:18.489569+0100 0x14f      Default     0x0                  0      0    kernel: (VoodooPS2Controller) ApplePS2Controller: initial commandByte = 45
2022-01-31 17:09:18.694103+0100 0x14f      Default     0x0                  0      0    kernel: (VoodooPS2Controller) ApplePS2Controller: new commandByte = 44
2022-01-31 17:09:18.705783+0100 0x14f      Default     0x0                  0      0    kernel: (VoodooPS2Controller) ApplePS2Controller::start leaving.
2022-01-31 17:09:18.705790+0100 0x164      Default     0x0                  0      0    kernel: (VoodooPS2Controller) ApplePS2Controller: Notification consumer published: ApplePS2Controller
2022-01-31 17:09:18.705836+0100 0x162      Default     0x0                  0      0    kernel: (VoodooPS2Keyboard) ApplePS2Keyboard::probe entered...
2022-01-31 17:09:18.706309+0100 0x163      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: Version 1.0.6 starting on OS X Darwin 19.6.
2022-01-31 17:09:18.707087+0100 0x163      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: probe entered...
2022-01-31 17:09:18.707282+0100 0x162      Default     0x0                  0      0    kernel: (VoodooPS2Keyboard) ApplePS2Keyboard::probe leaving.
2022-01-31 17:09:18.707439+0100 0x162      Default     0x0                  0      0    kernel: (VoodooPS2Keyboard) ApplePS2Keyboard::start entered...
2022-01-31 17:09:18.707641+0100 0x162      Default     0x0                  0      0    kernel: (VoodooPS2Keyboard) ps2bl: KKCL, KKCM, KKQC methods not found in DSDT
2022-01-31 17:09:18.916033+0100 0x163      Default     0x0                  0      0    kernel: (VoodooPS2Controller) ApplePS2Controller: Timed out on input stream 1.
2022-01-31 17:09:19.502212+0100 0x1b1      Debug       0x0                  0      0    kernel: (IOHIDFamily) VoodooInputSimulatorDevice:0x100000319 creating interfaces
2022-01-31 17:09:19.502244+0100 0x1b2      Debug       0x0                  0      0    kernel: (IOHIDFamily) VoodooInputActuatorDevice:0x10000031c creating interfaces
2022-01-31 17:09:19.507819+0100 0x1b4      Debug       0x0                  0      0    kernel: (IOHIDFamily) VoodooInputSimulatorDevice:0x100000319 open by AppleMultitouchTrackpadHIDEventDriver 0x100000324 (0x0)
2022-01-31 17:09:19.508747+0100 0x1b5      Debug       0x0                  0      0    kernel: (IOHIDFamily) VoodooInputActuatorDevice:0x10000031c open by AppleActuatorHIDEventDriver 0x100000325 (0x0)
2022-01-31 17:09:27.315608+0100 0x2e4      Default     0x0                  190    0    hidd: (IOKit) [com.apple.iohid:default] Service added: IOHIDService name:IOHIDSystem id:0x10000027f primaryUsagePage:0xff00 primaryUsage:0x17 transport:PS2 reportInterval:0 batchInterval:0 events:0 mask:0x0
2022-01-31 17:09:29.802879+0100 0x3be      Default     0x0                  190    0    hidd: (IOKit) [com.apple.iohid:default] Service added: IOHIDService name:IOHIDEventDriver id:0x100000378 primaryUsagePage:0x1 primaryUsage:0x2 transport:PS2 reportInterval:8000 batchInterval:0 events:0 mask:0x0
2022-01-31 17:09:29.803922+0100 0x3be      Default     0x0                  190    0    hidd: (IOKit) [com.apple.iohid:default] Service added: IOHIDService name:IOHIDEventDriver id:0x100000379 primaryUsagePage:0x1 primaryUsage:0x2 transport:PS2 reportInterval:8000 batchInterval:0 events:0 mask:0x0
2022-01-31 17:09:31.774557+0100 0x3be      Default     0x0                  190    0    hidd: (IOKit) [com.apple.iohid:default] Service added: IOHIDService name:IOHIDEventDriver id:0x100000376 primaryUsagePage:0x1 primaryUsage:0x6 transport:PS2 reportInterval:8000 batchInterval:0 events:0 mask:0x0
Transport:           PS2
2022-01-31 17:09:51.527489+0100 0x161      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: Amount of finger(s) accessing alps_process_touchpad_packet_v3_v5: 1
2022-01-31 17:09:51.527495+0100 0x161      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: fingerStates[0] report: x: 569, y: 1076, z: 0
2022-01-31 17:09:51.527499+0100 0x161      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) alps_parse_hw_state: finger 0 -> virtual finger 0
2022-01-31 17:09:51.527503+0100 0x161      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) alps_parse_hw_state: lastFingerCount=0 clampedFingerCount=1 left=0
2022-01-31 17:09:51.537513+0100 0x161      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: Amount of finger(s) accessing alps_process_touchpad_packet_v3_v5: 1
2022-01-31 17:09:51.537519+0100 0x161      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) ALPS: fingerStates[0] report: x: 582, y: 1069, z: 0
2022-01-31 17:09:51.537523+0100 0x161      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) alps_parse_hw_state: finger 0 -> virtual finger 0
2022-01-31 17:09:51.537527+0100 0x161      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) alps_parse_hw_state: lastFingerCount=1 clampedFingerCount=1 left=0
2022-01-31 17:09:51.537531+0100 0x161      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) alps_parse_hw_state: finger[0] x=575 y=329 raw_x=575 raw_y=1072
2022-01-31 17:09:51.537535+0100 0x161      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) alps_parse_hw_state: Coordinates before sending to VoodooInput: 575x329
2022-01-31 17:09:51.537539+0100 0x161      Default     0x0                  0      0    kernel: (VoodooPS2Trackpad) alps_parse_hw_state: Dimensions: logical: 2000x1400 physical: 8000x6300
2022-01-31 17:09:51.537548+0100 0x161      Default     0x0                  0      0    kernel: (VoodooInput) Sending report with touch active 3, button 0, finger count 1
2022-01-31 17:09:51.537559+0100 0x161      Default     0x0                  0      0    kernel: (VoodooInput) [0] (-1729, 1380) F2 St3 Maj20 Min20 Sz10 P5 ID1 A4
realizelol commented 2 years ago

Ok, it seems like you need bluetooth for trackpad recognition. It's now shown in Systemsettings after activating bluetooth kext again.

SkyrilHD commented 2 years ago

I don't think it is related to Bluetooth, but one does need working battery status afaik.

realizelol commented 2 years ago

Ah ok, I also disabled that kext. To understand better what I mean is:

Also more than 2 finger's aren't recognized.

SkyrilHD commented 2 years ago

Can you send a log maybe, first for two-finger-scrolling and one for more than 2 fingers

realizelol commented 2 years ago

attached you'll find these logs: sometwofingerscrollings.log 5-times-3fingers.log

SkyrilHD commented 2 years ago

Hmm, both logs look fine to me. Can you perform three finger gestures (e.g. Mission Control or Expose)? If they do, do 4 finger gestures work as well (This should work unreliably)? About two finger scrolling: Does it jitter? Does FingerMgmt detect anything when you cannot scroll?

Found this in the code, I need to figure out how to implement it. image

realizelol commented 2 years ago

Three fingers (mission control / expose) are working. I had tested switching between fullscreen apps which was previously activated (I don't use the other gestures) was not working until I disabled and re-enabled it, sorry. Four fingers are also working.

It looks like that comment. If I scroll it's ok, then sometimes you'll see that the cursor will move instead of scrolling. In FingerMgmt I can see a two fingers scrolling.

realizelol commented 2 years ago

correct me if I am wrong, but you only want to implement this code to this version of touchpad? What about using this if statement if (priv.proto_version == ALPS_PROTO_V3_RUSHMORE) { ?: https://github.com/SkyrilHD/VoodooPS2-ALPS/blob/99f603d40e881df93e67b2a2ef0631722f498017/VoodooPS2Trackpad/alps.cpp#L3165

SkyrilHD commented 2 years ago

I will add it for V3 and V5 like it was implemented in the pre-VoodooInput code. If there is any issue with scrolling on other touchpads, I will specify it for Rushmore touchpads. The issue, I guess, is how to detect scrolling. If I find something I will upload it here.

SkyrilHD commented 2 years ago

Can you try this kext by Dr. Hurt? This does not include scrolldebounce. If scrolling works, implementing the code will be easier. (Keep in mind this does not have VoodooInput)

VoodooPS2Controller-Dr.Hurt-Release-6.zip

EDIT:

I am thinking of this:

--- a/VoodooPS2Trackpad/alps.cpp
+++ b/VoodooPS2Trackpad/alps.cpp
@@ -1130,15 +1130,16 @@ void ALPS::alps_process_touchpad_packet_v3_v5(UInt8 *packet) {
     f.mt[1].y = priv.y_max - f.mt[1].y;

     /* Ignore 1 finger events after 2 finger scroll to prevent jitter */
-    // if (last_fingers == 2 && fingers == 1 && scrolldebounce)
-    //     fingers = 2;
+    if (lastFingerCount == 2 && fingers == 1)
+        fingers = 2;