xref: /OK3568_Linux_fs/kernel/Documentation/input/devices/appletouch.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun.. include:: <isonum.txt>
2*4882a593Smuzhiyun
3*4882a593Smuzhiyun----------------------------------
4*4882a593SmuzhiyunApple Touchpad Driver (appletouch)
5*4882a593Smuzhiyun----------------------------------
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun:Copyright: |copy| 2005 Stelian Pop <stelian@popies.net>
8*4882a593Smuzhiyun
9*4882a593Smuzhiyunappletouch is a Linux kernel driver for the USB touchpad found on post
10*4882a593SmuzhiyunFebruary 2005 and October 2005 Apple Aluminium Powerbooks.
11*4882a593Smuzhiyun
12*4882a593SmuzhiyunThis driver is derived from Johannes Berg's appletrackpad driver [#f1]_,
13*4882a593Smuzhiyunbut it has been improved in some areas:
14*4882a593Smuzhiyun
15*4882a593Smuzhiyun	* appletouch is a full kernel driver, no userspace program is necessary
16*4882a593Smuzhiyun	* appletouch can be interfaced with the synaptics X11 driver, in order
17*4882a593Smuzhiyun	  to have touchpad acceleration, scrolling, etc.
18*4882a593Smuzhiyun
19*4882a593SmuzhiyunCredits go to Johannes Berg for reverse-engineering the touchpad protocol,
20*4882a593SmuzhiyunFrank Arnold for further improvements, and Alex Harper for some additional
21*4882a593Smuzhiyuninformation about the inner workings of the touchpad sensors. Michael
22*4882a593SmuzhiyunHanselmann added support for the October 2005 models.
23*4882a593Smuzhiyun
24*4882a593SmuzhiyunUsage
25*4882a593Smuzhiyun-----
26*4882a593Smuzhiyun
27*4882a593SmuzhiyunIn order to use the touchpad in the basic mode, compile the driver and load
28*4882a593Smuzhiyunthe module. A new input device will be detected and you will be able to read
29*4882a593Smuzhiyunthe mouse data from /dev/input/mice (using gpm, or X11).
30*4882a593Smuzhiyun
31*4882a593SmuzhiyunIn X11, you can configure the touchpad to use the synaptics X11 driver, which
32*4882a593Smuzhiyunwill give additional functionalities, like acceleration, scrolling, 2 finger
33*4882a593Smuzhiyuntap for middle button mouse emulation, 3 finger tap for right button mouse
34*4882a593Smuzhiyunemulation, etc. In order to do this, make sure you're using a recent version of
35*4882a593Smuzhiyunthe synaptics driver (tested with 0.14.2, available from [#f2]_), and configure
36*4882a593Smuzhiyuna new input device in your X11 configuration file (take a look below for an
37*4882a593Smuzhiyunexample). For additional configuration, see the synaptics driver documentation::
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun	Section "InputDevice"
40*4882a593Smuzhiyun		Identifier      "Synaptics Touchpad"
41*4882a593Smuzhiyun		Driver          "synaptics"
42*4882a593Smuzhiyun		Option          "SendCoreEvents"        "true"
43*4882a593Smuzhiyun		Option          "Device"                "/dev/input/mice"
44*4882a593Smuzhiyun		Option          "Protocol"              "auto-dev"
45*4882a593Smuzhiyun		Option		"LeftEdge"		"0"
46*4882a593Smuzhiyun		Option		"RightEdge"		"850"
47*4882a593Smuzhiyun		Option		"TopEdge"		"0"
48*4882a593Smuzhiyun		Option		"BottomEdge"		"645"
49*4882a593Smuzhiyun		Option		"MinSpeed"		"0.4"
50*4882a593Smuzhiyun		Option		"MaxSpeed"		"1"
51*4882a593Smuzhiyun		Option		"AccelFactor"		"0.02"
52*4882a593Smuzhiyun		Option		"FingerLow"		"0"
53*4882a593Smuzhiyun		Option		"FingerHigh"		"30"
54*4882a593Smuzhiyun		Option		"MaxTapMove"		"20"
55*4882a593Smuzhiyun		Option		"MaxTapTime"		"100"
56*4882a593Smuzhiyun		Option		"HorizScrollDelta"	"0"
57*4882a593Smuzhiyun		Option		"VertScrollDelta"	"30"
58*4882a593Smuzhiyun		Option		"SHMConfig"		"on"
59*4882a593Smuzhiyun	EndSection
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun	Section "ServerLayout"
62*4882a593Smuzhiyun		...
63*4882a593Smuzhiyun		InputDevice	"Mouse"
64*4882a593Smuzhiyun		InputDevice	"Synaptics Touchpad"
65*4882a593Smuzhiyun	...
66*4882a593Smuzhiyun	EndSection
67*4882a593Smuzhiyun
68*4882a593SmuzhiyunFuzz problems
69*4882a593Smuzhiyun-------------
70*4882a593Smuzhiyun
71*4882a593SmuzhiyunThe touchpad sensors are very sensitive to heat, and will generate a lot of
72*4882a593Smuzhiyunnoise when the temperature changes. This is especially true when you power-on
73*4882a593Smuzhiyunthe laptop for the first time.
74*4882a593Smuzhiyun
75*4882a593SmuzhiyunThe appletouch driver tries to handle this noise and auto adapt itself, but it
76*4882a593Smuzhiyunis not perfect. If finger movements are not recognized anymore, try reloading
77*4882a593Smuzhiyunthe driver.
78*4882a593Smuzhiyun
79*4882a593SmuzhiyunYou can activate debugging using the 'debug' module parameter. A value of 0
80*4882a593Smuzhiyundeactivates any debugging, 1 activates tracing of invalid samples, 2 activates
81*4882a593Smuzhiyunfull tracing (each sample is being traced)::
82*4882a593Smuzhiyun
83*4882a593Smuzhiyun	modprobe appletouch debug=1
84*4882a593Smuzhiyun
85*4882a593Smuzhiyunor::
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun	echo "1" > /sys/module/appletouch/parameters/debug
88*4882a593Smuzhiyun
89*4882a593Smuzhiyun
90*4882a593Smuzhiyun.. Links:
91*4882a593Smuzhiyun
92*4882a593Smuzhiyun.. [#f1] http://johannes.sipsolutions.net/PowerBook/touchpad/
93*4882a593Smuzhiyun
94*4882a593Smuzhiyun.. [#f2] `<http://web.archive.org/web/*/http://web.telia.com/~u89404340/touchpad/index.html>`_
95