| Apple Touchpad Driver (appletouch) | |
| ---------------------------------- | |
| Copyright (C) 2005 Stelian Pop <stelian@popies.net> | |
| appletouch is a Linux kernel driver for the USB touchpad found on post | |
| February 2005 and October 2005 Apple Aluminium Powerbooks. | |
| This driver is derived from Johannes Berg's appletrackpad driver[1], but it has | |
| been improved in some areas: | |
| * appletouch is a full kernel driver, no userspace program is necessary | |
| * appletouch can be interfaced with the synaptics X11 driver, in order | |
| to have touchpad acceleration, scrolling, etc. | |
| Credits go to Johannes Berg for reverse-engineering the touchpad protocol, | |
| Frank Arnold for further improvements, and Alex Harper for some additional | |
| information about the inner workings of the touchpad sensors. Michael | |
| Hanselmann added support for the October 2005 models. | |
| Usage: | |
| ------ | |
| In order to use the touchpad in the basic mode, compile the driver and load | |
| the module. A new input device will be detected and you will be able to read | |
| the mouse data from /dev/input/mice (using gpm, or X11). | |
| In X11, you can configure the touchpad to use the synaptics X11 driver, which | |
| will give additional functionalities, like acceleration, scrolling, 2 finger | |
| tap for middle button mouse emulation, 3 finger tap for right button mouse | |
| emulation, etc. In order to do this, make sure you're using a recent version of | |
| the synaptics driver (tested with 0.14.2, available from [2]), and configure a | |
| new input device in your X11 configuration file (take a look below for an | |
| example). For additional configuration, see the synaptics driver documentation. | |
| Section "InputDevice" | |
| Identifier "Synaptics Touchpad" | |
| Driver "synaptics" | |
| Option "SendCoreEvents" "true" | |
| Option "Device" "/dev/input/mice" | |
| Option "Protocol" "auto-dev" | |
| Option "LeftEdge" "0" | |
| Option "RightEdge" "850" | |
| Option "TopEdge" "0" | |
| Option "BottomEdge" "645" | |
| Option "MinSpeed" "0.4" | |
| Option "MaxSpeed" "1" | |
| Option "AccelFactor" "0.02" | |
| Option "FingerLow" "0" | |
| Option "FingerHigh" "30" | |
| Option "MaxTapMove" "20" | |
| Option "MaxTapTime" "100" | |
| Option "HorizScrollDelta" "0" | |
| Option "VertScrollDelta" "30" | |
| Option "SHMConfig" "on" | |
| EndSection | |
| Section "ServerLayout" | |
| ... | |
| InputDevice "Mouse" | |
| InputDevice "Synaptics Touchpad" | |
| ... | |
| EndSection | |
| Fuzz problems: | |
| -------------- | |
| The touchpad sensors are very sensitive to heat, and will generate a lot of | |
| noise when the temperature changes. This is especially true when you power-on | |
| the laptop for the first time. | |
| The appletouch driver tries to handle this noise and auto adapt itself, but it | |
| is not perfect. If finger movements are not recognized anymore, try reloading | |
| the driver. | |
| You can activate debugging using the 'debug' module parameter. A value of 0 | |
| deactivates any debugging, 1 activates tracing of invalid samples, 2 activates | |
| full tracing (each sample is being traced): | |
| modprobe appletouch debug=1 | |
| or | |
| echo "1" > /sys/module/appletouch/parameters/debug | |
| Links: | |
| ------ | |
| [1]: http://johannes.sipsolutions.net/PowerBook/touchpad/ | |
| [2]: http://web.archive.org/web/*/http://web.telia.com/~u89404340/touchpad/index.html |