Contribute
Register

New VoodooPS2Controller, Keyboard, Trackpad

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,075
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Development work on my version of VoodooPS2Controller has been going on for some time. The change log on github in README.md documents the changes and the progress.

The current release is 1.8.0. More info on 1.8.0 in this post: http://www.tonymacx86.com/hp-probook/75649-new-voodoops2controller-keyboard-trackpad-95.html#post562005

It is recommended that you use my branch of kozlek's FakeSMC to make configuration of this version easier. I'm now using the information provided by FakeSMC to determine what node in the Info.plist to process for configuration data. This allows me to have only one distribution of VoodooPS2 for all computers as the Info.plist can be extended to handle the configuration quirks of all computers. When I have time, I will publish the details of this in the github wiki. For now, you can browse the Info.plist files... for those of you familiar with these things (it is an exact clone of the technique in kozlek's FakeSMC), you can start understanding right away.

I've been running this FakeSMC for a few weeks, and it is stable for me... and it has some nice features. And... If you're willing to update your DSDT from the 4530s repo, you'll get an extra temperature reading (Ambient).

Link to github repo for my FakeSMC:
https://github.com/RehabMan/OS-X-FakeSMC-kozlek

Main github page with README (instructions for installing) and of course the source code:
https://github.com/RehabMan/OS-X-Voodoo-PS2-Controller


Download page:
https://code.google.com/p/os-x-voodoo-ps2-controller/
(Both Debug and Release versions are in the ZIP, but I recommend installing the Release version as the Debug version will spam your kernel.log like crazy)

Release History:

New Release 2012-10-11: This version fixes the WiFi button (so it doesn't change brightness) and adds some diagnostics when sending the "Identify Touchpad" command (in the case that it fails).

New Release 2012-10-13: See the change log in README.md for complete information. Highlights are bug fixing, enhanced accidental input detection when typing, and custom keyboard mapping.

New Release 2012-10-13 (late): Again, see change log in README.md for complete information. Highlights are: sleep delay, and VoodooPS2Mouse.kext working.

New Release 2012-10-15: See this post for details: http://www.tonymacx86.com/hp-probook/75649-new-voodoops2controller-keyboard-trackpad-12.html. And of course full details, updated source, wiki, and downloads on github.

New Release 2012-10-20: See this post for details: http://www.tonymacx86.com/hp-probook/75649-new-voodoops2controller-keyboard-trackpad-18.html#post476089. See github for downloads, docs, etc.

New Release 2012-10-30: Fixed only a single problem related to Finder's forward/back buttons. See README.md for details. New build is on github v1.7.6.

New Release 2012-11-29: Three-finger multitouch is new feature. See this post for details: http://www.tonymacx86.com/hp-probook/75649-new-voodoops2controller-keyboard-trackpad-32.html#post503257. See github for downloads, docs etc. New build is v1.7.7.

Beta Release 2013-01-30: Many new features in this version, but primary reason for beta release is to see if we can fix the problem with the touchpad being non-responsive after sleep-wake cycle. Please try it and provide feedback. The file is attached.

Special Beta Release 2013-02-01: A random shot in the dark for the 4x40s wake from sleep issue, but give it a try... Update!! Looks like this wake from sleep issue is finally fixed. I will be cleaning up the code a bit, pushing the changes and working toward a final release. Thanks for all the testing and debug info (especially minihack and kpkp). File is attached below.

Beta Release 2013-02-07: Version 1.7.12. This is a cleaned up version (merge) of the above two versions. Hopefully this works for wake after sleep on both the 4x40s and the 4x30s (it works on my 4530s). There is also a couple of new features/improvements (middle click by clicking both left and right) which you can read about in the change log. File is attached below. There are some pretty extensive changes internally in this version so please test and provide feedback. File is attached below. Note: this is the Probook specific version, with Probook specific keyboard mappings, if you're interested in the "generic version" see the similar thread in the ML laptop forum.

Beta Release 2013-02-18: Version 1.7.14. Not really any new features in this version... just some bug fixes and a complete rewrite of interrupt handling. Working well on my 4530s so far. Please try it. See change log for complete details. I'm leaving the previous 0207a version here just in case this new one causes problems.

Beta Release 2013-02-21 (replaces 02-20): Version 1.7.15. See github README.md for details on the changes. This should solve some of the startup issues with dead keyboards and/or repeated keys. Only time will tell if it solves all the repeating keys issues. Please try it.

Beta Release 2013-02-21a Version 1.7.15a. Removed some recently added code that will reset devices when unexpected data comes. Problem is if it does happen, it tends to also happen again, and again, and again... I will need to add some code that will only initiate a re-init sequence after receiving bad data for a certain amount of time (to let the situation 'cure' itself if possible).

Release Candidate 2013-02-25 Version 1.7.16. New build location (Google Code). See README.md on github repo. Thanks!

RC2 Version 1.7.17. Today's build fixes a problem with the Debug build crashing on startup due to (evidently) a bug in OS X IOMallocAligned.

New Release 2013-03-04 Version 1.8.0. This build contains some fixes for Snow Leopard and now uses kozlek's FakeSMC to acquire the motherboard manufacturer/ID to determine configuration (eg. keyboard map, etc.). For this reason it is best to use my branch of kozlek's FakeSMC when you install. Yes folks you get to test two things.

New Release 2013-03-15 Version 1.8.1. Mostly a bug fix release with a couple of new features. Also, it has been optimized a bit (so it is smaller, with less symbols exported to the kernel). See the change log for more details.

New Release 2013-04-07 Version 1.8.2. Bug fix release in preparation for ProBook Installer v6.1. See the change log for more details.
 
Joined
Jul 23, 2012
Messages
57
Motherboard
HP Probook 4530s QJ763AV
CPU
Intel i5 2430m 2.40 GHz
Graphics
Intel HD3000 / Radeon 7470M
Mac
Classic Mac
Mobile Phone
Android
Nice Work!

Installed as per your instructions, tested and fully working as you said:

  • I'm able to disable it through the Fn + Del key (Sys Rq) - Orange LED indicator showing properly, just like in Windows 7.
  • Smoother movements indeed.
  • Certainly improved ignoring when typing.
  • No issues with it.

Lovely work, thank you! Do you think it's possible to also fix that issue when Dragging is enabled? I would love to use dragging, but I have disabled due to the fact that when tapping or clicking to open a menu for instance, it doesn't open. Meaning, tapping doesn't work so good.

Anyways, great job :clap: and thank you! :thumbup:
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,075
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Nice Work!

Installed as per your instructions, tested and fully working as you said:

  • I'm able to disable it through the Fn + Del key (Sys Rq) - Orange LED indicator showing properly, just like in Windows 7.
  • Smoother movements indeed.
  • Certainly improved ignoring when typing.
  • No issues with it.

Lovely work, thank you! Do you think it's possible to also fix that issue when Dragging is enabled? I would love to use dragging, but I have disabled due to the fact that when tapping or clicking to open a menu for instance, it doesn't open. Meaning, tapping doesn't work so good.

Anyways, great job :clap: and thank you! :thumbup:
Thanks... and thanks for the bug report. I guess it works sometimes (opening menu with tap w/ dragging on), but not very often. I have added it to my work list...
 
Joined
Jul 23, 2012
Messages
57
Motherboard
HP Probook 4530s QJ763AV
CPU
Intel i5 2430m 2.40 GHz
Graphics
Intel HD3000 / Radeon 7470M
Mac
Classic Mac
Mobile Phone
Android
Thanks... and thanks for the bug report. I guess it works sometimes (opening menu with tap w/ dragging on), but not very often. I have added it to my work list...
Great, let us know how it goes, and glad to help with testing, or any other way I can.
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,075
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
I'm not a Probook 4530s user but it seems my laptop has some common specific hardware, would you mind taking a look at my trackpad? I installed your debug kexts and the keyboard works like my old kexts, wifi button toggles brightness:
Code:
10/11/12 9:25:54.000 PM kernel[0]: ApplePS2Keyboard: PS/2 scancode 0xe0
10/11/12 9:25:54.000 PM kernel[0]: ApplePS2Keyboard: PS/2 scancode 0xf8
10/11/12 9:25:54.000 PM kernel[0]: ApplePS2Keyboard: ADB key code 0x90 up
Your trackpad does not work for me. The system loads ApplePS2Mouse instead of trackpad kexts. I delete VoodooPS2Mouse.kext in your Plugins folder and trackpad stop working completely, no report in console. This is my Registry Info for trackpad. I have tried all the kexts I found and no kexts work for my laptop, my temporary solution is using mouse kext. I don't expect to get a multi touchpad, I just want to have "ignore while typing" function. My laptop have two mouses: trackpad and the nub, maybe it's the problem. Can you tell me what info I should give for more detail? Thank you.
WiFi button might be a build issue. I had it fixed at one point... I'll look at it. Thanks for the report...

The Mouse part of this driver is broken, that is noted in the README. When I have time, I'll look into fixing it...

But you're not going to get "ignore while typing" with a mouse simulator driver. The way I implement "ignore accidental" input is dependent on multi-touch data coming from the trackpad. In mouse simulation mode, you don't get that data. It may be possible to get the trackpad to load with some Info.plist changes. I'll look at it in more detail later, but I'm kind of busy today...

In the future, I plan to implement a kind of "disable trackpad for a bit of time after keys are pressed..." Having something like that will help further with ignoring accidental input while typing (the guts of this are in place now -- I needed a way for the mouse/trackpad part to find out time of keystrokes and that part is implemented, but the code doesn't pay attention to this data yet). If I get the mouse driver to work, such a feature could be added there too.

But for you, I'd focus on getting the trackpad to be recognized as a trackpad. Since you have the stick as well, there might be some special stuff to do there too. In the Synaptics spec there is a whole section on "PS/2 pass through" that I would probably have to understand...
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,075
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
I'm not a Probook 4530s user but it seems my laptop has some common specific hardware, would you mind taking a look at my trackpad? I installed your debug kexts and the keyboard works like my old kexts, wifi button toggles brightness:
Code:
10/11/12 9:25:54.000 PM kernel[0]: ApplePS2Keyboard: PS/2 scancode 0xe0
10/11/12 9:25:54.000 PM kernel[0]: ApplePS2Keyboard: PS/2 scancode 0xf8
10/11/12 9:25:54.000 PM kernel[0]: ApplePS2Keyboard: ADB key code 0x90 up
Your trackpad does not work for me. The system loads ApplePS2Mouse instead of trackpad kexts. I delete VoodooPS2Mouse.kext in your Plugins folder and trackpad stop working completely, no report in console. This is my Registry Info for trackpad. I have tried all the kexts I found and no kexts work for my laptop, my temporary solution is using mouse kext. I don't expect to get a multi touchpad, I just want to have "ignore while typing" function. My laptop have two mouses: trackpad and the nub, maybe it's the problem. Can you tell me what info I should give for more detail? Thank you.
By the way is the Synaptics driver even trying to load? Check your console (system.log) output to see. You should see something like:

Code:
Oct 11 08:16:46 localhost kernel[0]: VoodooPS2SynapticsTouchPad loaded
Oct 11 08:16:46 localhost kernel[0]: VoodooPS2Trackpad: Synaptics TouchPad v7.5
You will only see the second line if it actually likes what it sees as far as Synaptics version (I will probably add some debug output to the ::probe function in the case that it fails to see what it wants). But the first one you should see if trackpad has attempted to load.
 
Joined
Jan 22, 2012
Messages
123
Motherboard
HP Probook 4540s
CPU
Core i5 3210M
Graphics
Intel HD 4000
Mac
Classic Mac
Mobile Phone
It looks very promising, I'm installing on Probook 4540s and I will report immediately.
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,075
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
I saw the first line, but not the second line, how can I force it to load?
At least IOkit is loading it. But it sounds like it is not responding correctly to the "Identify TouchPad" command. This version of the kext only supports v4.0 or better touchpads.

I put a new release out. It fixes the Wifi button and adds some extra diagnostics during the "Identify Touchpad" phase of startup. Give it a try and let me know what you see in system.log.
 
Joined
Jan 22, 2012
Messages
123
Motherboard
HP Probook 4540s
CPU
Core i5 3210M
Graphics
Intel HD 4000
Mac
Classic Mac
Mobile Phone
Just installed and it works as you said:
- Seems smoother. I had to increase the speed the touchpad because I felt it was a bit slow. Now no more.
- Fn + Sys rq does turn off the touchpad.
- Wifi button does not increase the light, but does nothing on Probook 4540s (Of course, 9485 is not supported).

Looking forward to seeing your next version. Thank you so much.
 
Joined
Oct 18, 2011
Messages
196
Motherboard
ProBook 4530s
CPU
i3 2310M
Graphics
HD3k & Radeon 6450M
Mac
Classic Mac
Mobile Phone
iOS
Thank You so much.

Maybe, if it is not to much of trouble, You could create a version where fn enables F keys and multimedia keys are default.
 
Top