Touchpad

Debugging Central

This page is part of the debugging series — pages with debugging details for a variety of Ubuntu packages.

Introduction

Problems with touchpad detection typically fall into one of these categories:

  1. Your touchpad doesn't work at all.
  2. Your touchpad stops working after a while.
  3. Features of Mouse works but features of Touchpad(like Tapping, Scrolling) does not work at all.
  4. Some features of your touchpad like scrolling, tapping, dragging don't work as expected.

How to file the bug report

Consider this document on filing touchpad bugs with relevant information. Before filing a bug please check the list of known bugs at the end of this document. If your are unsure to which package the bug should be filed or your problem is not listed in any of the categories then, in general file your touchpad related bugs against xserver-xorg-input-synaptics. If the bug turns out to be a bug related to kernel(linux) or any other package, bug triagers will assign your bug additionally to that package and mark the task related to xserver-xorg-input-synaptics, as invalid.

General information before filing the bug

This information should be provided in the bug description itself:

  1. Laptop model.
  2. Manufacturer of the Touchpad.
  3. When the symptom first appeared.

Sample Description - 'ALPS Touchpad' incorrectly detected as PS/2 mouse in 'Sony Vaio VPCCW16FG' after the kernel upgrade.

However if you think that the bug is a general one with the type of the touchpad and is irrespective of the Laptop model you could emit mentioning the Laptop model in the description. But only consider doing this, when you are very sure that the bug is affecting all laptops with that touchpad model.

In case your touchpad doesn't work at all (No response from the touchpad)

This is generally a case of kernel(linux) or xorg bug. Check by connecting a mouse that if it works or not. If no, then you should file the bug against HAL and follow the steps below.

  1. Switch to a VT using Crtl+Alt+F2 and enter following in your terminal

    $ sudo evtest /dev/input/eventX > ~/evtest 
  2. Scroll, tap, drag, press buttons and create various other possible events on the touchpad and then press CTRL+C to exit.

     $ cp /var/log/Xorg.0.log ~/Xorg.0.log 
  3. Press Crtl+Alt+F7 to switch back to X.
  4. Add ~/evtest and Xorg.o.log to the bug report in seperate attachments.

Check your  /dev/input/eventX  for your touchpad in  cat /proc/bus/input/devices  , you may see something like this

I: Bus=0011 Vendor=0002 Product=0007 Version=01b1 N: Name="SynPS/2 Synaptics TouchPad" P: Phys=isa0060/serio2/input0 S: Sysfs=/devices/platform/i8042/serio2/input/input8 U: Uniq= H: Handlers=mouse2 event8 B: EV=b B: KEY=420 0 70000 0 0 0 0 0 0 0 0 B: ABS=11000003

Here your  /dev/input/eventX  is  /dev/input/event8 

If you do not find a Touchpad in you /proc/bus/inpus/devices, in that case the bug is in the kernel itself and you should follow these steps:

  1. File the bug against linux

  2. Provide the general information.

  3. Enter the following command in a terminal/console:

    $ dmesg > ~/dmesg 
  4. Attach ~/dmesg and your /var/log/Xorg.0.log to the bug report in separate attachments.

In case your touchpad stops working after a while

This is generally a case of kernel(linux) or xorg bug. In this case, in description field, specify the steps to make the touchpad stop working. eg- hit a key, drag or something. Now check by connecting a mouse that if it works or not. If no, then you should file the bug against HAL and follow the steps below.

  1. Switch to a VT using Crtl+Alt+F2 and enter following in your terminal

    $ sudo evtest /dev/input/eventX > ~/evtest 
  2. Scroll, tap, drag, press buttons and create various other possible events on the touchpad and then press CTRL+C to exit.

     $ cp /var/log/Xorg.0.log ~/Xorg.0.log 
  3. Press Crtl+Alt+F7 to switch back to X.
  4. Add ~/evtest and Xorg.o.log to the bug report in seperate attachments.

Check your  /dev/input/eventX  for your touchpad in  cat /proc/bus/input/devices  , you may see something like this

I: Bus=0011 Vendor=0002 Product=0007 Version=01b1 N: Name="SynPS/2 Synaptics TouchPad" P: Phys=isa0060/serio2/input0 S: Sysfs=/devices/platform/i8042/serio2/input/input8 U: Uniq= H: Handlers=mouse2 event8 B: EV=b B: KEY=420 0 70000 0 0 0 0 0 0 0 0 B: ABS=11000003

Here your  /dev/input/eventX  is  /dev/input/event8 

If you do not find a Touchpad in you /proc/bus/inpus/devices, in that case the bug is in the kernel itself and you should follow these steps:

  1. Provide the general information.

  2. Direct after logging in to GNOME, KDE or Xfce open a terminal and enter the following commands:

    $ dmesg > ~/dmesg_boot
    $ cp /var/log/Xorg.0.log ~/Xorg.0.log 
  3. Wait until your touchpad stops working.
  4. Open a Virtual Terminal by pressing Ctrl-Alt-F1.
  5. Enter the following commands:

    $ LANG=C
    $ dmesg > ~/dmesg
    $ diff -ns ~/dmesg_boot ~/dmesg > ~/dmesg_diff
    $ cp /var/log/Xorg.0.log ~/Xorg.0.log_tmp
    $ diff -ns ~/Xorg.0.log ~/Xorg.0.log_tmp > ~/Xorg.0.log_diff 
  6. Attach ~/dmesg_boot, ~/dmesg_diff, ~/Xorg.0.log and ~/Xorg.0.log_diff to the bug report in separate attachments.

In case your touchpad features like scrolling, tapping, etc does not work at all.

This happens when 'Touchpad' Tab is not there in System>Preferences>Mouse.

This may be a wrong detection by the xserver or the kernel itself. So xserver-xorg-input-synaptics has nothing to do with it. In case, filing a bug against the kernel(linux), please note that you should not mark the bug as duplicate even if you can find a closely related bug and you have a strong feeling that the bug should be duplicate. This is a new policy of Kernel Team and it help them to handle the bugs better.

To check whether to report for kernel or not

$ cat /proc/bus/input/devices >~/devices 

If this include the name of your touchpad eg Name="SynPS/2 Synaptics TouchPad", then kernel has detected it right. In this case, please don't report the bug against the kernel, rather report it against HAL. For more information on reporting bugs against HAL, refer DebuggingHal

In any case, include the outputs of the following commands:

$ cat /proc/bus/input/devices >~/devices
$ xinput --list > ~/xinput 
$ cat /var/log/Xorg.0.log > Xorg.0.log 

Attach all four, to the bug report in separate attachments.

IMP : Please do not file bug against the kernel unless you are very sure that it should be filed and do it only after reading this whole document. If you are unsure, file it against xserver-xorg-input-synaptics, somebody will change to kernel if is so.

In case your atleast one of touchpad features works but does not work correctly and as expected

eg - Jumpy cursor, scrolling problems, touchpad area is misdetected, circular scrolling, buttons not correctly mapped.

  1. Enter the following command in a terminal/console:

    $ xmodmap -pp >~/xmodmap
    $ xinput --list-props <id> >~/xinput 
  2. Switch to a VT using Crtl+Alt+F2 and enter following in your terminal

    $ sudo evtest /dev/input/eventX > ~/evtest 
  3. Scroll, tap, drag, press buttons and create various other possible events on the touchpad and then press CTRL+C to exit.
  4. Press Crtl+Alt+F7 to switch back to X.
  5. Attach ~/xmodmap, ~/xinput and your ~/evtest to the bug report in separate attachments.

In  xinput --list-props <id> , <id> is of your touchpad in  xinput --list .

Check your  /dev/input/eventX  for your touchpad in  cat /proc/bus/input/devices  , you may see something like this

I: Bus=0011 Vendor=0002 Product=0007 Version=01b1 N: Name="SynPS/2 Synaptics TouchPad" P: Phys=isa0060/serio2/input0 S: Sysfs=/devices/platform/i8042/serio2/input/input8 U: Uniq= H: Handlers=mouse2 event8 B: EV=b B: KEY=420 0 70000 0 0 0 0 0 0 0 0 B: ABS=11000003

Here your  /dev/input/eventX  is  /dev/input/event8 

In case your multitouch features does not work

This bug is common in Synaptics Touchpad V7.2 where multitouch works perfect in windows but not in linux. This is not a bug related to xserver-xorg-input-synaptics. Multitouch capabilities are not detected but the kernel itself as evident in  xinput --list-props <id of your touchpad>  shows  Synaptics Capabilities (277):       1, 1, 1, 0, 0 

This bug is already known (see the Known bugs below). In this case please don't file any new bugs and instead add a comment in the existing bug for any relevent information that you have.

NOTE : Synaptics is not willing to disclose the protocol it uses for the multitouch support for its newer touchpads. As soon as Synaptics come up with its protocol, this issue will be fixed. So this is not a bug in general. So it has been classified as a wishlist.

  1. For any other case, include the outputs in the bug report in separate comments.

    $ xinput --list-props <id> >~/xinput 
  2. Switch to a VT using Crtl+Alt+F2 and enter following in your terminal

    $ sudo evtest /dev/input/eventX > ~/evtest 
  3. Scroll, tap, drag, press buttons and create various other possible events on the touchpad and then press CTRL+C to exit.
  4. Press Crtl+Alt+F7 to switch back to X.
  5. Take your pointer in the windows and hold down your two fingres on the touchpad and raise. Also try to tap with two fingers.

     $ xev | grep -i button > ~/xev
  6. Attach ~/xev, ~/xinput and your ~/evtest to the bug report in separate attachments.

In  xinput --list-props <id> , <id> is of your touchpad in xinput --list.

Check your  /dev/input/eventX  for your touchpad in  cat /proc/bus/input/devices  , you may see something like this

I: Bus=0011 Vendor=0002 Product=0007 Version=01b1 N: Name="SynPS/2 Synaptics TouchPad" P: Phys=isa0060/serio2/input0 S: Sysfs=/devices/platform/i8042/serio2/input/input8 U: Uniq= H: Handlers=mouse2 event8 B: EV=b B: KEY=420 0 70000 0 0 0 0 0 0 0 0 B: ABS=11000003

Here your  /dev/input/eventX  is  /dev/input/event8 

Before filing new bug please look in the common bugs section.

Some general work flow for Triagers

If the features of your touchpad (like Tapping, Scrolling) does not work at all. In this case user will not see the Touchpad Tab in System>Administration>Mouse in Main menu. This means that Touchpad is misdetected as PS/2 mouse. Here the following workflow must be followed.

  1. Check weather Kernel has detected the touchpad or not by the following.

    $ cat /proc/bus/input/devices 
    • If a touchpad is detected, then something like following will appear. If touchpad is not detected then following will appear. In this case the bug must be a kernel issue.
      • Name="ImPS/2 Generic Wheel Mouse"

  2. Check weather xserver has detected the touchpad correctly by.

    $ xinput --list 
    • You will see the same name of touchpad as above.
  3. Check weather synaptics module is correctly loaded in xserver or not in.

    $cat /var/log/Xorg.0.log | grep -i synaptics 

For problems such as scrolling area, touch area, button wrong mapping, multitouch try investigating with

  •     $ evtest /dev/input/eventX
        $ xev 

Look for name in xinput --list eg - for ↳ TouchPad id=6 [slave pointer (2)], then type

  •     $ xinput --list-props 6 

Known bugs

Synaptics Touchpad Multitouch https://bugs.edge.launchpad.net/ubuntu/+source/xserver-xorg-input-synaptics/+bug/308191

Jumpy cursor https://bugs.edge.launchpad.net/xorg-driver-synaptics/+bug/365943

Synaptics Touchpad is incorrectly detected by kernel https://bugs.edge.launchpad.net/ubuntu/+source/linux/+bug/565543


CategoryBugSquad CategoryDebugging

simar/Touchpad (last edited 2010-08-05 18:45:41 by simar)