Contribute
Register

New VoodooPS2Controller, Keyboard, Trackpad

Status
Not open for further replies.
The drivers are in S/L/E. They load if I boot with Chimera (Not in Extra just S/L/E), just not Clover on the exact same install. No idea why. No clues in the system log either. It simply doesn't atempt load. Under chimera every once in a while it will tell me VoodooPs2Controller (no other 3rd part kexts do this) is installed improperly, but continues to function anyways. Perhaps they are related.
 
The drivers are in S/L/E. They load if I boot with Chimera (Not in Extra just S/L/E), just not Clover on the exact same install. No idea why. No clues in the system log either. It simply doesn't atempt load. Under chimera every once in a while it will tell me VoodooPs2Controller (no other 3rd part kexts do this) is installed improperly, but continues to function anyways. Perhaps they are related.

Perhaps you're booting with an out-of-date cache, or you have the kext installed incorrectly (wrong permissions). Boot, repair permissions, reboot without caches, rebuild cache (check for errors in system.log), then reboot with cache.
 
That did it, thank you. I thought I had properly set Clover to ignore caches while I was testing but I did not. Anyways Thank you for your help.
 
Attached is a version of the PS2 driver and source with support for 1d scroll sensors, scroll bars and circular scroll pads found on Fujitsu and possibly other laptops. The built kext is targeted at 10.10, which is the SDK I have installed, so if you have another version installed rebuild it for that. It needs work before being merged into the main project. Changes are in the synaptics touchpad module I haven't IDed the magic combo representing a 1D sensor yet, the driver just makes an educated guess which is sometimes incorrect. Do not try this if you don't have a 1D sensor, I believe it may cause problems for some trackpads. Let me know how it works, or doesn't work if you have this hardware, so I can try and improve it and merge it into the main driver.

Here's what I've figured out about the packet in a little testing.


7 6 5 4 3 2 1 0
-----------------------
[0] 1 0 ? ? ? ? ? ? These may be absolute position bits
[1] 0 0 0 0 D3 D2 D1 D0 4 bits reletive displacement
[2] Z7 Z6 Z5 Z4 Z3 Z2 Z1 Z0 (Z-pressure, bits 7..0)
[3] 1 1 0 0 0 0 0 0 NULL
[4] 0 0 0 0 0 0 0 0 NULL
[5] 0 0 0 0 0 0 0 0 NULL

View attachment VoodooPS2Controller.kext.zip

View attachment OS-X-Voodoo-PS2-Controller-1DSensor.zip

 
Attached is a version of the PS2 driver and source with support for 1d scroll sensors, scroll bars and circular scroll pads found on Fujitsu and possibly other laptops. The built kext is targeted at 10.10, which is the SDK I have installed, so if you have another version installed rebuild it for that. It needs work before being merged into the main project. Changes are in the synaptics touchpad module I haven't IDed the magic combo representing a 1D sensor yet, the driver just makes an educated guess which is sometimes incorrect. Do not try this if you don't have a 1D sensor, I believe it may cause problems for some trackpads. Let me know how it works, or doesn't work if you have this hardware, so I can try and improve it and merge it into the main driver.

Here's what I've figured out about the packet in a little testing.


7 6 5 4 3 2 1 0
-----------------------
[0] 1 0 ? ? ? ? ? ? These may be absolute position bits
[1] 0 0 0 0 D3 D2 D1 D0 4 bits reletive displacement
[2] Z7 Z6 Z5 Z4 Z3 Z2 Z1 Z0 (Z-pressure, bits 7..0)
[3] 1 1 0 0 0 0 0 0 NULL
[4] 0 0 0 0 0 0 0 0 NULL
[5] 0 0 0 0 0 0 0 0 NULL

View attachment 126723

View attachment 126722


For which trackpad are these changes for?
 
Synaptics, I'll try and find the exact product ID under linux.

I'm trying to refine the algorithm so that it exclusively grabs scroll sensor input. Currently it's greedy and grabbing some pointer input which is un-good. The Linux driver just ignores it's input altogether, so if they can ID those packets for ignore them then there must be a suitable algorithm or some identifier.
 
Synaptics, I'll try and find the exact product ID under linux.

I'm trying to refine the algorithm so that it exclusively grabs scroll sensor input. Currently it's greedy and grabbing some pointer input which is un-good. The Linux driver just ignores it's input altogether, so if they can ID those packets for ignore them then there must be a suitable algorithm or some identifier.

What is a Synaptics 1D sensor?

If you wish to provide changes, please fork the project on github and make a pull request.
 
A 1D (one dimensional) sensor is a scroll bar or scroll pad that operates by sending coordinates in only one axis. More or less a touch pad with only Y axis displacement. They are used on convertible laptops with only pen input to provide a method to scroll easily when in tablet mode.

I will fork and pull on github once I am sure the code is clean and in good order and will not cause issues for users.

Here is what the driver reports for model information since you asked.

Code:
Mode/model($01) bytes = { 0x3b, 0x47, 0xc1 }Capabilities($02) bytes = { 0xd0, 0x47, 0x31 }
Model ID($03) bytes = { 0x1, 0x80, 0xb1 }
Resolutions($08) bytes = { 0x47, 0x80, 0x6d }
Extended Model($09) bytes = { 0xa4, 0x20, 0x0 }
Continued Capabilities($0C) bytes = { 0xa, 0x0, 0x0 }
 
Hi RehabMan,
My keyboard works except that both the "increase brightness" and the "decrease brightness" key decreases the brightness of my screen. So wierd. =) (brightness work correctly via System Preferences)
Could you help me with that?

BTW, I think my trackpad is not Synaptics and thus doesn't work... or is there anything I am missing?

Thank you!

View attachment ioreg.ioreg
 
Hi RehabMan,
My keyboard works except that both the "increase brightness" and the "decrease brightness" key decreases the brightness of my screen. So wierd. =) (brightness work correctly via System Preferences)
Could you help me with that?

Use the debug version to see the key translations as you press the keys.

BTW, I think my trackpad is not Synaptics and thus doesn't work... or is there anything I am missing?

Thank you!

View attachment 128227

Your trackpad is ELAN.
 
Status
Not open for further replies.
Back
Top