Installation of the Synaptics Touchpad Driver for XOrg/XFree 4.x ================================================================ Author: Stefan Gmeiner Requirements ------------ 1. You need X include files. On RPM based systems, they are usually included in the XFree86-devel package. On Debian systems, you need to install the packages x-dev, libx11-dev and libxext-dev. 2. For use with kernel 2.6.x you need to enable synaptics touchpad support when configuring the kernel (CONFIG_MOUSE_PS2). You also need support for the evdev interface (CONFIG_INPUT_EVDEV). If you compile evdev as a module, make sure it is loaded before starting the X server, as it will not be auto-loaded. 3. If you use XFree86 version 4.0 or 4.1, you will need the XFree86 source code to compile the driver. See the "How do I compile the driver?" section in the FAQ in the README file for details. 4. Using with kernel 2.4.x for x < 10 needs a kernel patch (pc_keyb.c.diff.2.4.3). Installing ---------- 1. Type "make" to build the driver "synaptics_drv.o". 2. Copy the driver module "synaptics_drv.o" into the XFree module path. This path is usually "/usr/X11R6/lib/modules/input/", and running "make install" as root will do this for you. Note though that some distributions have a different module path. For example, in Gentoo 1.4 (with XFree86 4.3.0), the correct path is "/usr/X11R6/lib/modules/drivers". 3. Add the driver to the XFree configuration file (usually called /etc/X11/XF86Config-4 or /etc/X11/XF86Config) Section "Module" ... Load "synaptics" ... EndSection 4. Add/Replace in the InputDevice section for the touchpad the following lines: Section "InputDevice" Identifier "Synaptics Mouse" Driver "synaptics" Option "Device" "/dev/psaux" Option "Protocol" "auto-dev" Option "LeftEdge" "1700" Option "RightEdge" "5300" Option "TopEdge" "1700" Option "BottomEdge" "4200" Option "FingerLow" "25" Option "FingerHigh" "30" Option "MaxTapTime" "180" Option "MaxTapMove" "220" Option "VertScrollDelta" "100" Option "MinSpeed" "0.09" Option "MaxSpeed" "0.18" Option "AccelFactor" "0.0015" Option "SHMConfig" "on" # Option "Repeater" "/dev/ps2mouse" EndSection Change the Identifier to the same name as in the ServerLayout section. The Option "Repeater" is at the moment for testing. 5. Add the "CorePointer" option to the InputDevice line at the ServerLayout section: Section "ServerLayout" ... InputDevice "Synaptics Mouse" "CorePointer" ... Note! You can not have more than one core pointer, so if you want to use an external mouse too, you have to set all mouse input devices except one to "AlwaysCore" instead of "CorePointer". For example: Section "ServerLayout" ... InputDevice "Mouse0" "CorePointer" InputDevice "Synaptics Mouse" "AlwaysCore" ... Section "InputDevice" ... Identifier "Mouse0" Option "Device" "/dev/input/mice" ... This also applies if you are using a 2.6 linux kernel and the touchpad contains a "pass through" device. Usually a pass through device is a touch stick located in the middle of the keyboard, but it can also be a separate set of buttons located next to the touchpad. If you want the pass through device to be enabled in X, the second InputDevice is needed. If there is a line in /proc/bus/input/devices that begins with "P: Phys=synaptics-pt" it means that the kernel has found a pass through device. 6. Start/Restart the X Server. If the touchpad doesn't work: a) Check the XFree log file. This file is usually called /var/log/XFree86.0.log. b) Try to start the X server with 'startx -- -logverbose 8' for more output. 7. If you want to be able to change driver parameters without restarting the X server, enable the "SHMConfig" option in the XFree configuration file. You can then use the "synclient" program to query and modify driver parameters on the fly. Note! This is not secure if you are in an untrusted multiuser environment. All local users can change the parameters at any time. If you can't get the driver working, check the trouble-shooting.txt file for common problems. If that doesn't help, mail the log files and the configuration file to petero2@telia.com. If you use a 2.6.x linux kernel, also mail the output from dmesg and the output from "cat /proc/bus/input/devices".