Contribute
Register

New VoodooPS2Controller, Keyboard, Trackpad

Status
Not open for further replies.
Just curious... are any of you out there building your own from my sources in the github repo?

I just did... the binary one didn't work in my 10.7.5 lion

Anyway my laptop is a Dell M4600 with an ALPS trackpad, and looks like it choose a Synaptics.

Oct 20 14:53:38 localhost kernel[0]: VoodooPS2SynapticsTouchPad Version 1.7.5 loaded...
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: Identify bytes = { 0x0, 0x0, 0x64 }
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: Identify TouchPad command returned incorrect byte 2 (of 3): 0x00
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: passthru1=0, passthru2=0, passthru=0
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: ledpresent=0
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: Mode/model($1) bytes = { 0x0, 0x1, 0x64 }
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: Capabilities($2) bytes = { 0x0, 0x2, 0x64 }
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: Model ID($3) bytes = { 0x0, 0x3, 0x64 }
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: SN Prefix($6) bytes = { 0x0, 0x2, 0x64 }
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: SN Suffix($7) bytes = { 0x0, 0x3, 0x64 }
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: Resolutions($8) bytes = { 0x0, 0x0, 0x64 }
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: Extended Model($9) bytes = { 0x0, 0x1, 0x64 }
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: Maximum coords($D) bytes = { 0x0, 0x1, 0x64 }
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: Deluxe LED bytes($E) = { 0x0, 0x2, 0x64 }
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: Minimum coords bytes($F) = { 0x0, 0x3, 0x64 }
Oct 20 14:53:38 localhost kernel[0]: ApplePS2Controller: Timed out on mouse input stream.
Oct 20 14:53:38: --- last message repeated 3 times ---
Oct 20 14:53:38 localhost kernel[0]: E7: { 0x00, 0x00, 0x00 } E6: { 0x00, 0x00, 0x00 }ALPS Device? no
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Mouse Version 1.7.5 loaded...
Oct 20 14:53:38 localhost kernel[0]: ApplePS2Mouse::probe called
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad starting: Synaptics TouchPad reports type 0x00, version 4.0
 
I just did... the binary one didn't work in my 10.7.5 lion

Anyway my laptop is a Dell M4600 with an ALPS trackpad, and looks like it choose a Synaptics.

Oct 20 14:53:38 localhost kernel[0]: VoodooPS2SynapticsTouchPad Version 1.7.5 loaded...
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: Identify bytes = { 0x0, 0x0, 0x64 }
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: Identify TouchPad command returned incorrect byte 2 (of 3): 0x00
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: passthru1=0, passthru2=0, passthru=0
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: ledpresent=0
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: Mode/model($1) bytes = { 0x0, 0x1, 0x64 }
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: Capabilities($2) bytes = { 0x0, 0x2, 0x64 }
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: Model ID($3) bytes = { 0x0, 0x3, 0x64 }
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: SN Prefix($6) bytes = { 0x0, 0x2, 0x64 }
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: SN Suffix($7) bytes = { 0x0, 0x3, 0x64 }
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: Resolutions($8) bytes = { 0x0, 0x0, 0x64 }
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: Extended Model($9) bytes = { 0x0, 0x1, 0x64 }
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: Maximum coords($D) bytes = { 0x0, 0x1, 0x64 }
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: Deluxe LED bytes($E) = { 0x0, 0x2, 0x64 }
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad: Minimum coords bytes($F) = { 0x0, 0x3, 0x64 }
Oct 20 14:53:38 localhost kernel[0]: ApplePS2Controller: Timed out on mouse input stream.
Oct 20 14:53:38: --- last message repeated 3 times ---
Oct 20 14:53:38 localhost kernel[0]: E7: { 0x00, 0x00, 0x00 } E6: { 0x00, 0x00, 0x00 }ALPS Device? no
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Mouse Version 1.7.5 loaded...
Oct 20 14:53:38 localhost kernel[0]: ApplePS2Mouse::probe called
Oct 20 14:53:38 localhost kernel[0]: VoodooPS2Trackpad starting: Synaptics TouchPad reports type 0x00, version 4.0

You don't have a synaptics. I haven't tested alps (as I don't have one to test with). But the synaptics probe will always be called, but it should fail, which should cause the OS to try the other drivers... To me, it looks like the ALPS test failed too. Perhaps it needs work.
 
Thanks a bunch for this. It is a vast improvement over the stock driver.


Is it possible to swap the Function and Left Control key with the Info.plist? Having used a real MBP for years, this is the one thing that has really driven me nuts since I set up this Probook. It feels like a huge stretch to grab the control key, especially for a Terminal warrior like me.
 
Thanks a bunch for this. It is a vast improvement over the stock driver.


Is it possible to swap the Function and Left Control key with the Info.plist? Having used a real MBP for years, this is the one thing that has really driven me nuts since I set up this Probook. It feels like a huge stretch to grab the control key, especially for a Terminal warrior like me.

Go to System Preferences / Keyboard and press the Modifier Keys... button in the lower right corner. Then modify them as you wish.
 
Thanks a bunch for this. It is a vast improvement over the stock driver.


Is it possible to swap the Function and Left Control key with the Info.plist? Having used a real MBP for years, this is the one thing that has really driven me nuts since I set up this Probook. It feels like a huge stretch to grab the control key, especially for a Terminal warrior like me.

You can't. It is baked in the hardware/firmware for the keyboard controller. Fn is not a real key -- it doesn't produce its own scan code -- it only modifies the scan codes of other keys on the keyboard.

See this for an explanation: http://en.wikipedia.org/wiki/Fn_key

(sounds like Lenovo laptop keyboards might be an exception)
 
You don't have a synaptics. I haven't tested alps (as I don't have one to test with). But the synaptics probe will always be called, but it should fail, which should cause the OS to try the other drivers... To me, it looks like the ALPS test failed too. Perhaps it needs work.

I managed to install a third OS
Calculate Linux (gentoo based)
This one manage well my touchpad.
but for Ubuntu I found this:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/977063
http://www.ubuntu.com/certification/catalog/component/input:10236-TOUCH/

Thank you, I will try to solve alone my problem.
I will announce you about my progress
 
I managed to install a third OS
Calculate Linux (gentoo based)
This one manage well my touchpad.
but for Ubuntu I found this:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/977063
http://www.ubuntu.com/certification/catalog/component/input:10236-TOUCH/

Thank you, I will try to solve alone my problem.
I will announce you about my progress

Sounds like ALPS is not forthcoming with information regarding technical information on their hardware. Which is strange -- as a hardware manufacturer, wouldn't you want to publish complete information on your hardware such that it could be used in the maximum number of situations?

If you have some dev skills (ie. ability to read/write C++ code and understand basic PS2 protocol), certainly you could figure out what is going on and how to support your ALPS trackpad properly... Sorry I can't help... but I just don't have the hardware available to test.
 
Very nice work. Scrolling seems smoother and the option to turn off the trackpad is awesome. After updating to 10.8.2rev1 my Fn key is now the ctrl key though :( but since this makes the fx keys separate it doesn't matter.
 
Very nice work. Scrolling seems smoother and the option to turn off the trackpad is awesome. After updating to 10.8.2rev1 my Fn key is now the ctrl key though :( but since this makes the fx keys separate it doesn't matter.

I haven't done anything yet with scrolling, but wait until the next release... soon!
I've got a massive improvement in scrolling smoothness in next release...

Weird that your Fn key has become a real key. I don't know how that is possible...
 
New version released 1.7.5. Here are the enhancements from the changelog:

2012-10-20 v1.7.5

- Added default behaviors for Fn+F4, Fn+F5, Fn+F6. Fn+F4 is "Video Mirror" -- it toggles display mirror mode. Fn+F5 is Mission Control. Fn+F6 is Launchpad. These keys were previously unmapped by default (when no Custom ADB Map was present in Info.plist).

- In the debug version only, added the ability to generate any ADB code you want. To do so, hold down Alt, then type the ADB code with the numpad number keys (0-9). The resulting code is sent after you release the Alt key. This was how I discovered the ADB code for the Launchpad is 0x83 (Alt-down, 1, 3, 1, Alt-up).

- "Just for fun"... implemented three finger salute.

- Fixed a bug where key repeat for keys with extended scan codes (those that start with e0) may not have been repeating properly. This bug was introduced when the keyboard mapping feature was added.

- Made scrolling (both multi-finger and single-finger) much, much smoother.

- Allow transitions from horizontal scrolling to vertical scrolling without falling into "move" mode. This allows you to horizontally scroll right across the bottom of the pad, and onto the bezel, then returning back onto the pad (without lifting your finger) to resume horizontal scrolling. Although not very useful, you can also horizontally scroll into the lower left corner, then move up to vertically scroll in the right margin. The previous version would "lose" the scroll mode when moving off the right side or the horizontal scroll zone (because upon reentry, it would enter vertical scroll mode and not be able to resume horizontal scroll mode upon entering the horizontal scroll margin area).

- Fixed a bug where trackpad input/pointer position would demonstrate a slight glitch when changing the trackpad configuration in System Preferences.

- Added ability to disable/enable trackpad by double tapping on the upper left corner. The area of the trackpad that is used for this function is configurable in the Info.plist. By default (DisableZoneControl=0) this feature is enabled if your trackpad has an LED. You can disable this feature by setting DisableZoneControl=-1 in Info.plist. You can enable this feature for trackpads that don't have an LED by setting DisableZoneControl=1.

- Added a smoothing algorithm to process the input from the trackpad. Still experimenting with this to tweak the parameters, but it is coming along. This is controlled by two Info.plist settings: SmoothInput and UnsmoothInput. By default, the trackpad itself does a little smoothing on its own (1:2 decaying average). If you set the UnsmoothInput option, it will undo the action the trackpad is implementing (a decaying average can be mathematically reversed). If you set SmoothInput, a simple average with a history of three samples is used. By default, both UnsmoothInput and SmoothInput are set.

- Added a movement threshold for tap to left click and two-finger tap to right click. For left clicks the threshold is 50. So if while tapping, you move more than 50, the tap is not converted to a click. The threshold for right clicks is 100 as there tends to be more movement detected from the trackpad hardware with a two finger tap. These values can be adjusted in Info.plist. This was mainly put in place to avoid accidental entry into drag mode when rapidly moving (with multiple quick swipes across the trackpad).

- Palm rejection/accidental input now honors system trackpad preferences setting "Ignore Accidental Trackpad Input", so you can turn it off. I would not recommend turning it off. The system actually sets three different options when you enable this option in System Preferences ("PalmNoAction While Typing", "PalmNoAction Permanent", and "OutsidezoneNoAction When Typing"). The Trackpad code pays attention to each one separately, although they are all set or cleared as a group. Perhaps there is some command line way of setting them individually.

- Implements a defined zone in the left and right margins (and potentially top and bottom) where input is ignored while typing (see Zone* in Info.plist). This is enabled if you "Ignore Accidental Trackpad Input"

- Modifier keys going down are ignored as far as determining timing related to accidental input. This allows you to position the pointer with the trackpad over something you want to click on (say a website URL) and then hold Ctrl (or other modifier) then tap to click. This is only for keydown events and only for shift, control, alt(command), and windows(option) keys.

- Trackpad code now determines automatically if your Trackpad has an LED and disables turning on/off the LED if it isn't present.

- Trackpad code now determines automatically if your Trackpad has pass through support and enables pass through only if the guest PS/2 device is present. This avoids bad things happening (mouse buttons getting stuck down) if a non-pass through trackpad sends pass through packets.

- The Mouse driver in this version has minimal support for "Ignore Accidental Trackpad Input". In particular, it is able to ignore buttons and scrolling while typing. Note that this means real buttons too, not just simulated buttons via tapping (since it is a mouse driver, it can't tell the difference). This feature is only in effect if "ActLikeTrackpad" is set to Yes in Info.plist.

- You can make the Mouse driver act like a trackpad. If you set "ActLikeTrackpad" to Yes in the Info.plist, the mouse driver will enable trackpad like features. This includes the Trackpad settings in System Preferences (although many options don't have an effect). This allows you to turn on/off scrolling, as well as "Ignore Accidental Trackpad Input"

- There is also support for enabling and disabling the mouse (trackpad) with the keyboard, including support for the Synaptics LED. You probably only want to set this if you actually have a Synaptics, as the code doesn't quite check properly.
 
Status
Not open for further replies.
Back
Top