RehabMan
Moderator
- Joined
- May 2, 2012
- Messages
- 181,058
- Motherboard
- Intel DH67BL
- CPU
- i7-2600K
- Graphics
- HD 3000
- Mac
- Mobile Phone
Thank you for fixing my wifi button. Now, the trackpad kext is loaded instead of mouse kext, and it recognizes my Synaptics trackpad as Alps. Here are my console:
Code:10/12/12 2:04:07.000 AM kernel[0]: VoodooPS2SynapticsTouchPad loaded 10/12/12 2:04:07.000 AM kernel[0]: VoodooPS2Trackpad: Identify TouchPad command returned incorrect byte 2 (of 3): 46 10/12/12 2:04:07.000 AM kernel[0]: E7: { 0x10, 0x00, 0x66 } E6: { 0x00, 0x00, 0x66 }ALPS Device? noNo interval found for . Using 8000000 10/12/12 2:04:07.000 AM kernel[0]: ApplePS2Trackpad: ALPS GlidePoint v6.16 10/12/12 2:04:07.000 AM kernel[0]: getStatus(): [10 00 66] 10/12/12 2:04:07.000 AM kernel[0]: getStatus(): [10 00 0a] 10/12/12 2:04:10.000 AM kernel[0]: ApplePS2ALPSGlidePoint: Dictionary Object: HIDDefaultParameters Value: ?? 10/12/12 2:04:10.000 AM kernel[0]: ApplePS2ALPSGlidePoint: Dictionary Object: HIDClickTime Value: 500000000 10/12/12 2:04:10.000 AM kernel[0]: ApplePS2ALPSGlidePoint: Dictionary Object: HIDClickSpace Value: ?? 10/12/12 2:04:10.000 AM kernel[0]: ApplePS2ALPSGlidePoint: Dictionary Object: HIDKeyRepeat Value: 83333333 10/12/12 2:04:10.000 AM kernel[0]: ApplePS2ALPSGlidePoint: Dictionary Object: HIDInitialKeyRepeat Value: 500000000 10/12/12 2:04:10.000 AM kernel[0]: ApplePS2ALPSGlidePoint: Dictionary Object: HIDPointerAcceleration Value: 45056 10/12/12 2:04:10.000 AM kernel[0]: ApplePS2ALPSGlidePoint: Dictionary Object: HIDScrollAcceleration Value: 20480 10/12/12 2:04:10.000 AM kernel[0]: ApplePS2ALPSGlidePoint: Dictionary Object: HIDPointerButtonMode Value: 2 10/12/12 2:04:10.000 AM kernel[0]: ApplePS2ALPSGlidePoint: Dictionary Object: HIDF12EjectDelay Value: 250 10/12/12 2:04:10.000 AM kernel[0]: ApplePS2ALPSGlidePoint: Dictionary Object: EjectDelay Value: 100 10/12/12 2:04:10.000 AM kernel[0]: ApplePS2ALPSGlidePoint: Dictionary Object: HIDSlowKeysDelay Value: 0 10/12/12 2:04:10.000 AM kernel[0]: ApplePS2ALPSGlidePoint: Dictionary Object: HIDStickyKeysDisabled Value: 0 10/12/12 2:04:10.000 AM kernel[0]: ApplePS2ALPSGlidePoint: Dictionary Object: HIDStickyKeysOn Value: 0 10/12/12 2:04:10.000 AM kernel[0]: ApplePS2ALPSGlidePoint: Dictionary Object: HIDStickyKeysShiftToggles Value: 0 10/12/12 2:04:10.000 AM kernel[0]: ApplePS2ALPSGlidePoint: Dictionary Object: HIDMouseKeysOptionToggles Value: 0 10/12/12 2:04:10.000 AM kernel[0]: ApplePS2ALPSGlidePoint: Dictionary Object: HIDFKeyMode Value: 0 10/12/12 2:04:10.000 AM kernel[0]: ApplePS2ALPSGlidePoint: Dictionary Object: HIDMouseAcceleration Value: 45056 10/12/12 2:04:10.000 AM kernel[0]: ApplePS2ALPSGlidePoint: Dictionary Object: HIDMouseScrollAcceleration Value: 20480 10/12/12 2:04:10.000 AM kernel[0]: ApplePS2ALPSGlidePoint: Dictionary Object: HIDClickSpace Value: ?? 10/12/12 2:04:10.000 AM kernel[0]: ApplePS2ALPSGlidePoint: Dictionary Object: HIDClickTime Value: 500000000 10/12/12 2:04:10.000 AM kernel[0]: ApplePS2ALPSGlidePoint: Dictionary Object: HIDDefaultParameters Value: ??
I see there is a bit of an override in the ALPS code:
Code:
success = IsItALPS(&E6,&E7);
DEBUG_LOG("ALPS Device? %s", (success ? "yes" : "no"));
// override
success = true; //YIKES!
_touchPadVersion = (E7.byte2 & 0x0f) << 8 | E7.byte0;
I will probably comment that line out in a future version, so ALPS only loads if detected!
You could keep ALPS from loading by removing the "ALPS GlidePoint" from IOKitPersonalities in VoodooPS2Controller.kext/Contents/PlugIns/VoodooPS2Trackpad.kext/Contents/Info.plist (Hint: do those edits on a copy of the kext, then install it via Kext Wizard).
But your trackpad is reporting 0x46 instead of 0x47 in the 2nd byte return of "Identify TouchPad" The spec says: "The first byte of the response is the minor version number infoMinor. The middle byte is the constant $47. The third byte encodes the major version number infoMajor in the low 4 bits, and the (obsolete) infoModelCode in the upper 4 bits." And: "All TouchPads ever shipped by Synaptics have supported the Identify TouchPad query."
Are you sure it is Synaptics?
Do you have the ability to modify/build my code? If so, you could easily experiment with forcing it (or checking for 0x46 in addition to 0x47). It could be that Synaptics have not fully documented what your touchpad is doing. After all 0x46 is very close to 0x47 (1 bit difference), so perhaps it is on purpose. It might just work but somehow I doubt it -- there is probably a reason they changed to 0x46.
But I've read through some of the "passthrough mode" documentation from the Synaptics spec, and it is definitely going to take some work to make the driver work with such a device (packets from the stick are interleaved with packets from the pad, packets from the stick are 3 or 4 byte relative packets encapsulated in a 6 byte packet, whereas the packets from the pad are 6-byte absolute packets).