Jump to content

Cypress PS2 Trackpad kext


Ulysse31
 Share

128 posts in this topic

Recommended Posts

with debugger, the system didn't crash! But the trackpad would freeze when I would try 4 fingers. After awhile Trackpad functionality comes back, but when I try 4 fingers again, it freezes once more. However, no reboot was needed... on Version 0.4 the system would need reboot.

Link to comment
Share on other sites

with debugger, the system didn't crash! But the trackpad would freeze when I would try 4 fingers. After awhile Trackpad functionality comes back, but when I try 4 fingers again, it freezes once more. However, no reboot was needed... on Version 0.4 the system would need reboot.

hum, from what i read on the debug ... on your firmware version (v34), the touchpad sends a "unknown/unsupported" packet.

I mean, i have never see a cypress packet starting with 0x04 ... and following the short documentation i had found, it is not even on it ... really strange ...

gonna built a special debug kext in order to get more info on this ...

will keep you in touch as soon as i have something to try.

 

Thanks for you help.

 

--

Ulysse31

Link to comment
Share on other sites

hum, from what i read on the debug ... on your firmware version (v34), the touchpad sends a "unknown/unsupported" packet.

I mean, i have never see a cypress packet starting with 0x04 ... and following the short documentation i had found, it is not even on it ... really strange ...

gonna built a special debug kext in order to get more info on this ...

will keep you in touch as soon as i have something to try.

 

Thanks for you help.

 

--

Ulysse31

no problem, thanks for helping

  • Like 1
Link to comment
Share on other sites

no problem, thanks for helping

Well, got something quicker than i thought ^^

It's just a "silly" (but may work) patch.

 

try this debug kext :

 

https://mega.co.nz/#!I0AxCTjY!N5NNoWINR1F7Xuoki2A5MS22dzxb1aJ9LYp7vrU48VM

 

Please, check and tell me with 4 fingers if it crashes/works/freezes, and give me the same command output (sudo cat /var/log/system.log | grep -i cypress > ~/cypress_dump.txt).

 

Thanks,

 

 

--

Ulysse31

Link to comment
Share on other sites

Well, got something quicker than i thought ^^

It's just a "silly" (but may work) patch.

 

try this debug kext :

 

https://mega.co.nz/#!I0AxCTjY!N5NNoWINR1F7Xuoki2A5MS22dzxb1aJ9LYp7vrU48VM

 

Please, check and tell me with 4 fingers if it crashes/works/freezes, and give me the same command output (sudo cat /var/log/system.log | grep -i cypress > ~/cypress_dump.txt).

 

Thanks,

 

 

--

Ulysse31

will try now

Yessss, this time 4 fingers does not cause trackpad to lock-up. When i 4 finger swipe up, it opens the GO menu. Although it is not doing the appropriate gestures, I believe it is working. Here is the log you requested. 

disregard, GESTURES ARE WORKING WITH DEBUGGER!!!! 

:thumbsup_anim:  :thumbsup_anim:  You sir, are a genius!

cypress_dump.txt

  • Like 1
Link to comment
Share on other sites

will try now

Yessss, this time 4 fingers does not cause trackpad to lock-up. When i 4 finger swipe up, it opens the GO menu. Although it is not doing the appropriate gestures, I believe it is working. Here is the log you requested. 

YEPIIII !!!

 

Great, have you configured the shortcuts has asked later on the thread ? :

 

you need to go on Sytem Preferences => Keyboard => shortcut tab.

there, you'll find 2 window, on the first, click on Mission Control, then on the second :

 

- click on the line "Mission Control" and set keys to : Control(Ctrl)+Command(Alt or windows key)+UPARROW

- click on the line "Application Window" and set keys to : Control(Ctrl)+Command(Alt or windows key)+DOWNARROW

- click on the line "Move to left space" and set keys to : Control(Ctrl)+Command(Alt or windows key)+LEFTARROW

- click on the line "Move to right space" and set keys to : Control(Ctrl)+Command(Alt or windows key)+RIGHTARROW

will try now

Yessss, this time 4 fingers does not cause trackpad to lock-up. When i 4 finger swipe up, it opens the GO menu. Although it is not doing the appropriate gestures, I believe it is working. Here is the log you requested. 

disregard, GESTURES ARE WORKING WITH DEBUGGER!!!! 

:thumbsup_anim:  :thumbsup_anim:  You sir, are a genius!

Great so it work ?

 

Ok, So releasing v0.5 tonight ! ^^

 

Thanks @youngwake for your testings.

Link to comment
Share on other sites

http://www.mediafire.com/download/w0enm44oxeatqa5/ULYSSESREQUESTED.zip

 

has my ioreg and cypress dump. at first it works but then sticks ; rebooted now it works but i don't know if its consistent.

EDIT: seems consistent so far. thanks again for your efforts not many can say they have 4 finger scroll :)

Thanks !

In fact your debug log confirmed me what i patched on v0.5, if you have a debug version please install the release that i have updated ! it is the same but it won't flood your system logs.

@youngwake: the v0.5 release IS the pre-release I PM you ^^

 

Cheers all,

 

--

Ulysse31

  • Like 1
Link to comment
Share on other sites

Awesome work @Ulysse31 - tapping and two/four finger scrolling work perfectly with revision 12 of your SVN (I'm assuming it's v0.5 of the compiled code) on my 15z (v34 firmware).

 

Just out of interest - I'm assuming three finger scrolling doesn't work due to firmware limitations?

 

Cheers

jkbuha

  • Like 1
Link to comment
Share on other sites

Awesome work @Ulysse31 - tapping and two/four finger scrolling work perfectly with revision 12 of your SVN (I'm assuming it's v0.5 of the compiled code) on my 15z (v34 firmware).

 

Just out of interest - I'm assuming three finger scrolling doesn't work due to firmware limitations?

 

Cheers

jkbuha

Hi,

 

yes the last svn revision is the v0.5 (i mention it on the svn log).

three fingers does not work on yours ? (oh damn ...) well on mine it works ... but for the three fingers i implemented the same behaviour that you can find on a mac (at least mac air)

normally using 3 fingers creates a "draglock" allowing to select/move window apps. Another side effect, is that a tap with 3 fingers gives also a simple clic, and you can select element/text by moving the 3 fingers.

please test, put your pointer on the top of a window, then, using 3 fingers (keep a distance between each others), you should be able to move the window.

if it does not ... well ... will have some work to do ^^'

 

Cheers,

 

PS: like said before, i implemented it like in a mac air, but could implement it other way, if you have ideas, just tell me ^^

 

Ulysse31

Link to comment
Share on other sites

Actually - now you put it that way - it *does* work with three fingers on the window bar.

 

Didn't know a Macbook air worked that way :)

 

Excellent news!

I had the same reaction when i took a macbook air at work and played with the trackpad settings ^^

But again, if you want other actions, just tell, i'm interrested knowing new ones, i do not have implemented others because i simply don't know them (this is the first kext i build, the first ps2 implementation i do and only started 3 weeks ago so ... ^^)

You talked about scrolling with 3 fingers, what is the difference with scrolling with 2 fingers ?

Someone also talked to me about a 2 fingers tap for right click, it easy to implement, thinking on implementing it, but not sure that everybody would like to use it, also if some have ideas/remarks about that, don't hesitate and go ahead ^^, contact me.

 

Cheers,

 

 

--

Ulysse31

Link to comment
Share on other sites

Thanks @Ulysse31 - here are a list of the (most popular) multitouch gestures:

 

http://www.danrodney.com/mac/multitouch.html

Great List in fact !

 

Now, need to see what is really implementable ^^' the biggest problem is that gestures are closely linked with the AppleMultitouch kext, and ain't got infos on that one for now. the ApplePS2 API is really limitating (found for now only 2 "graphic" functions : dispatchRelativePointerEvent, and dispatchScrollWheelEvent), that is why rehabman and others implemented some gesture by doing a little hack : simulating keystrokes/shortcuts to generate gestures. It's a clever way, but this method have limits ...

 

Since I am "new" on trackpad dev, I'm actually "eating" docs/manuals. I will try to find ways to implement the maximum of gestures.

Also, I have found a dev that as found a way, by reverse-engineering, to generate real gestures event, which is cool, but is code is "user-land" (not available in kernel-land, at least directly ...). I really think this could be a way (got some ideas with that, but need to calculate some problems like latencies and others ...)

 

So now, for the next days, at least during the "holidays" (personnally, don't have :( ) will try to document myself as more as possible on the API and possibilities or ways to generate gestures.

 

Thanks to all,

 

Cheers,

 

 

--

Ulysse31

  • Like 1
Link to comment
Share on other sites

Well, ain't this great!

I just installed Windows because I was tired of OS X without gestures, but now I have a reason to install it again.

 

I'll report back on how it works when I've get it installed again. Probably tomorrow or something.


Well, ain't this great!

I just installed Windows because I was tired of OS X without gestures, but now I have a reason to install it again.

 

I'll report back on how it works when I've get it installed again. Probably tomorrow or something.

Link to comment
Share on other sites

Installed on Dell XPS 13 L322x on 10.9, thanking Ulysse31 for his help.

 

Touchpad is great!

 

Two things;

- Tap to touch is not quite sensitive enough, possibility to control in Trackpad settings?

- when trying to highlight + copy it goes a little crazy and selects randomly.

  • Like 1
Link to comment
Share on other sites

Installed on Dell XPS 13 L322x on 10.9, thanking Ulysse31 for his help.

 

Touchpad is great!

 

Two things;

- Tap to touch is not quite sensitive enough, possibility to control in Trackpad settings?

- when trying to highlight + copy it goes a little crazy and selects randomly.

 

 

Thanks,

 

For the tap sensitivity : i'm working on putting those kind of parameters editable on the kext (i could bind it to trackpad parameter "double clic speed" but it's no really a double clic) that's gonna be on the next release (v0.6), will try to release as fast as i can.

For the highlight + copy, i suppose you use the 3 finger mouse move : yes in fact, it moves a little but that comes from the fact that the trackpad only sends 1 coordinate for one of the 3 fingers, and, if the fingers are closed to each other, it is not the same finger that is taken in account by the trackpad :s this "bug" is also visible on a genuine apple trackpad using 3 fingerss selection, but it is much less random (moves jerky but just a bit). A good way correct that is to apply what we call a noise reduction algo from the trackpad input,, but that's gonna take some time to implement. Like said to another user, until i release a version with a stabilized (noise reducted) version, try to keep distances between your 3 fingers, or if just for selection/copy, can also use the mechanical click and mouse move (click mechanically then use another finger to move the pointer).

 

Hoping that will help,

 

Cheers,

 

--

Ulysse31

Link to comment
Share on other sites

Thanks for the reply, I will look forward to the tap sensitivity... I don't mind a editable parameter :)

 

My method of highlighting....

 

Left click and hold, 1 finger movement to highlight....

- I get the right click menu appearing

- I get random highlights i.e. not what I was after.

 

Thanks.

Link to comment
Share on other sites

Hi all

 

I'm still getting random kernel panics with the latest version; I suspect it could be due to some pointer (C++, not mouse) corruption in system mode not user mode, but I'm not too sure. Is anyone else getting this?

 

Cheers

jkbuha

Link to comment
Share on other sites

Hi all

 

I'm still getting random kernel panics with the latest version; I suspect it could be due to some pointer (C++, not mouse) corruption in system mode not user mode, but I'm not too sure. Is anyone else getting this?

 

Cheers

jkbuha

Hi,

 

Sorry, was away for a bit, strange, i don't had any kernel panic until now ...

A possible solution to find out, would be for you to compile (since i understood that you can compile it) it and use a debug kext, if a kernel panic appends then, reboot without using trackpad and run the following command (using keyboard only) :

 

sudo cat /var/log/system.log | grep -i cypress > ~/cypress_dump.txt

 

if you could send this back to me, i can then try to see what was the last process/actions done, and then I may be able to correct that.

 

@metavely : have tried to get what you are describing, only got it when i don't click on left corner, but upper or center on it => if you click to upper of the left corner, you get that because 2 fingers are detected on the trackpad ... please try. I will need to think on a way to correct that.

 

Cheers,

Link to comment
Share on other sites

Thanks - do I just need to use just the debug version of the VoodooPS2Trackpad kext, or do I need to include all debug versions of the VoodooPS2Controller, Keyboard, Mouse and Trackpad?

Never tried to use "mixed" kexts, usually i use the entire VoodooPS2Controller in debug (don't like it but faster to use).

You could try, but not sure if it wouldn't be buggier ...

Link to comment
Share on other sites

 Share

×
×
  • Create New...