synaptics

From Gentoo Wiki
Jump to: navigation, search
This page contains changes which are not marked for translation.

synaptics is the open source input driver for Synaptics and ALPS touchpads.

Installation

Kernel

You need to activate the following kernel options:

KERNEL
Device Drivers  --->
   Input device support  --->
      <*>   Event interface
      [*]   Mice  --->
         <*>   PS/2 mouse
Note
You may also need additional drivers under the Mice menu to support your touchpad. i.e. "Synaptics PS/2 mouse protocol extension". The touchpad may also be USB, not PS/2. If you are unsure, select multiple drivers and check what the kernel uses later with "lspci -k".

Driver

FILE /etc/portage/make.confSet INPUT_DEVICES
INPUT_DEVICES="synaptics libinput"

After setting the INPUT_DEVICES variable remember to update the system using the following command so the changes take effect:

root #emerge --ask --changed-use --deep @world


Configuration

The driver has a lot options to tune it to your needs. See the synaptics man page for more information.

Fixed configuration

Referring to xorg.conf there should have a /etc/X11/xorg.conf.d directory on the system. If there is none create one:

root #mkdir /etc/X11/xorg.conf.d

Configure file /etc/X11/xorg.conf.d/50-synaptics.conf as in the example below:

FILE /etc/X11/xorg.conf.d/50-synaptics.conf
Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
        Option "VertEdgeScroll" "on"
        Option      "CircularScrolling"         "on"
        Option      "VertScrollDelta"          "-111"
        Option      "HorizScrollDelta"         "-111"
        Option      "TapButton1"       	          "1"
EndSection

Configuration at runtime

You need to enable above option to be able to configure the driver also at runtime. Changes at runtime will be lost with the next start of the X-server. To keep them, add them to the above config file.

You can configure the driver with the program synclient. Some examples:

List all parameters:

user $synclient -l

Cut the right side of the touch area to expand the vertical scroll area:

user $synclient RightEdge=5000

Finding the right edge parameter:

user $synclient -m 50

Disable the mouse click function:

user $synclient MaxTapTime=0

Finally, You can dump Your handpicked configuration to the 99-synaptics file pasting output of the following command inside the InputClass section:

user $synclient -l | sed -e '1d' -e 's/^ \+/Option\t"/g' -e 's/ \+= /"\t"/g' -e 's/$/"/g'

Alternatively there is the KDE systemsettings module kde-misc/synaptiks:

root #emerge --ask kde-misc/synaptiks

Troubleshooting

My Touchpad is not recognized

If your touchpad does not show in either lsusb nor lspci, that might be due to your PS/2 controller and how it is handled by the kernel[1]. One indication is if

user $dmesg | grep i8042

returns something along the lines of

CODE
i8042: PNP: PS/2 appears to have AUX port disabled, if this is incorrect please boot with i8042.nopnp

That AUX port is where the touchpad is connected[2]. Try adding the following to your kernel command line, e.g. in /etc/default/grub:

FILE /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="... i8042.noloop i8042.nomux i8042.nopnp i8042.reset ..."

Now, you should update your grub.cfg:

root # grub-mkconfig -o /boot/grub/grub.cfg

If, after rebooting with these parameters, you get a generic Logitech PS/2 mouse input device, you may need to add the appropriate PS/2 extension driver to your Kernel config:

KERNEL
Device Drivers  --->
   Input device support  --->
      <*>   Event interface
      [*]   Mice  --->
         <*>   PS/2 mouse
            [ /*]   Elantech PS/2 protocol extension
            [ /*]   Sentelic Finger Sensing Pad PS/2 protocol extension
            [ /*]   eGalax TouchKit PS/2 protocol extension

After rebooting, your touchpad should be recognized correctly.

See also

  • libinput - A drop-in replacement for the "slowly deprecating evdev and synaptics input drivers".


References