DebuggingTouchpadDetection

Differences between revisions 4 and 48 (spanning 44 versions)
Revision 4 as of 2007-08-10 12:00:42
Size: 4379
Editor: 86-39-13-34
Comment:
Revision 48 as of 2019-02-26 09:05:55
Size: 13408
Editor: anthonywong
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
||<tablestyle="float:right; font-size: 0.9em; width:30%; background:#F1F1ED; background-image: url('https://librarian.launchpad.net/1812570/bugsquad.png'); background-repeat: no-repeat; background-position: 98% 0.5ex; margin: 0 0 1em 1em; padding: 0.5em;">'''Contents'''[[BR]][[TableOfContents]]|| <<Include(Debugging/Header)>>

||<tablestyle="float:right; font-size: 0.9em; width:30%; background:#F1F1ED; background-image: url('https://librarian.launchpad.net/1812570/bugsquad.png'); background-repeat: no-repeat; background-position: 98% 0.5ex; margin: 0 0 1em 1em; padding: 0.5em;"><<TableOfContents>>||
Line 5: Line 7:
Problems with touchpad detection typically fall into one off these categories:
 1. Your touchpad doesn't work at all.
 1. Your touchpad stops working after a while.
 1. Some features of your touchpad like scrolling, tapping, dragging don't work (as expected).
Problems with touchpad detection typically fall into one of these categories:
 1. Your Touchpad doesn't work at all.
 1. Your Touchpad stops working after a while.
 1. Your Touchpad has the simple features of a mouse, but Touchpad features, like tapping, scrolling, etc. do not work at all.
 1.
Some features of your Touchpad like scrolling, tapping, or dragging don't work as expected.
Line 10: Line 13:
= How to file a bug report = <<Anchor(generalinfo)>>
Line 12: Line 15:
##Before filing a bug please check the list of [#knownbugs known bugs] at the end of this document. = How to file the bug report =
Line 14: Line 17:
Touchpad related bugs should initially be filed against '''xserver-xorg-input-synaptics'''.
If the bug turns out to be a kernel bug or a bug in another package, bug triagers can assign the bug additionally to that package and mark the xserver-xorg-input-synaptics task as invalid.
If your are unsure to which package the bug should be filed, or your problem is not listed in any of the categories, then please file your touchpad related bugs against '''xserver-xorg-input-libinput''' or '''xserver-xorg-input-synaptics''' (if it is installed). If the bug turns out to be a bug related to the 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-input/synaptics, as invalid.
Line 17: Line 19:
[[Anchor(generalinfo)]]
== General information ==
== General information before filing the bug ==
Line 20: Line 21:
For all bug categories the following general information should be provided: This information should be provided in the bug description itself:
 1. Laptop model directly from the sticker of the computer.
 1. Manufacturer of the Touchpad.
 1. When the symptom first appeared.
Line 22: Line 26:
 1. What brand and model is your laptop, open a terminal/console and enter the following command: {{{
$ cd /var/lib/acpi-support/; grep '.' *-* > ~/laptop }}} What features does your touchpad have: horizontal and vertical scrolling, tapping, dragging, ...
 1. Open a terminal/console and enter the following commands (minimal information as described in KernelTeamBugPolicies): {{{
$ uname -a > ~/uname-a
$ cat /proc/version_signature > ~/version_signature
$ sudo lspci -vvnn > ~/lspci-vvnn }}}
 1. Attach {{{~/laptop}}}, {{{~/uname-a}}}, {{{~/version_signature}}} and {{{~/lspci-vvnn}}} to the bug report as seperate attachments.
Sample Description - ''''ALPS Touchpad' incorrectly detected as PS/2 mouse in 'Sony Vaio VPCCW16FG' after the kernel upgrade.'''
Line 30: Line 28:
== In case your touchpad doesn't work at all == However, if you think that the bug is a general one with your Touchpad, and is irrespective of the laptop model, you could omit mentioning the laptop model in the description. Please only consider doing this when you are very sure that the bug is affecting all laptops with that Touchpad model.
Line 32: Line 30:
 1. Provide the [#generalinfo general information].
 1. Enter the following command in a terminal/console: {{{
$ dmesg > ~/dmesg }}}
 1. Attach {{{~/dmesg}}} and your {{{/var/log/Xorg.0.log}}} to the bug report in seperate attachments.
== In case your Touchpad doesn't work at all (No response from the Touchpad) ==
Line 37: Line 32:
== In case your touchpad stops working after a while == This is generally a case of a kernel ('''linux''') or '''xorg''' bug.
Line 39: Line 34:
 1. Provide the [#generalinfo general information].
 1. 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 }}}
 1. Execute at a terminal: {{{
cat /proc/bus/input/devices
}}} One should see a touchpad device, like: {{{
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 }}} If you do not find something like this, then the bug is in the linux kernel. Please follow these steps:
   1. File the bug against the '''[[https://launchpad.net/ubuntu/+source/linux|linux]]''' package by running {{{ubuntu-bug linux}}}.
   1. Provide the [[#generalinfo|general information]].
   1. Enter the following commands in a terminal: {{{
cat /proc/bus/input/devices > ~/devices
}}}
   1. Attach {{{~/devices}}} as separate attachments to your bug report.
 1. If you see a touchpad device in {{{/proc/bus/input/devices}}}, check by connecting an external mouse to see if that works. If it does, then one may be affected by the transition from [[https://launchpad.net/ubuntu/+source/xserver-xorg-input-synaptics|xserver-xorg-input-synaptics]] to [[https://launchpad.net/ubuntu/+source/xserver-xorg-input-libinput|libinput]]. Hence, one will want to check by uninstalling xserver-xorg-input-synaptics to see if this resolves the issue. If not, please see below:
  * After reading [[DebuggingTouchpadDetection/evtest|this]] about how to enter VT and log evtest events, switch to a VT using Crtl+Alt+F2 and enter the following in your terminal: {{{
sudo evtest /dev/input/eventX > ~/evtest}}} where the "X" in "eventX" is the event number found by typing in a terminal: {{{
cat /proc/bus/input/devices}}}
  * Scroll, tap, drag, press buttons, and create various other possible events on the Touchpad. Then, press CTRL+C to exit and execute: {{{
cp /var/log/Xorg.0.log ~/Xorg.0.log }}}
  * Press Crtl+Alt+F7 to switch back to X.
  * Add as separate attachments {{{~/evtest}}} and {{{~/Xorg.0.log}}} to the bug report.

== In case your Touchpad stops working after a while ==

This is generally a case of a kernel ('''linux''') or '''xorg''' bug. In this case, '''in the description field, specify the steps to make the touchpad stop working''' (e.g. hit a key, drag an icon, after X seconds of inactivity, etc.).

 1. If your Touchpad stops working after it has been left unused for awhile, it may be due to runtime power-management. Disable runtime power management of the Touchpad device and check if the issue persists.
    1. Look for your Touchpad device in {{{/proc/bus/input/devices}}}.
    1. The line starts with {{{S:}}} is the path of the Touchpad device, the full path will be something like {{{/sys/devices/platform/i8042/serio1/input/input5/power/control}}}.
    1. Disable runtime power-managed by running {{{echo on | sudo tee /sys/devices/platform/i8042/serio1/input/input5/power/control}}} (replace the path with the one for your Touchpad device.
    1. If the problem disappears, report as such to your bug report. If the problem persists, read on.
 1. After reading [[DebuggingTouchpadDetection/evtest|this]] on how to enter VT and log evtest events, switch to a VT using Crtl+Alt+F2 and enter following in your terminal: {{{
sudo evtest /dev/input/eventX > ~/evtest }}}
  * Perform the action that makes the Touchpad fails. Then, press CTRL+C to exit.
  * Press Crtl+Alt+F7 to switch back to X.
  * Add as separate attachments {{{~/evtest}}} to the bug report.
 1. Directly after logging in to GNOME, KDE, or Xfce open a terminal and enter the following commands: {{{
cat /proc/bus/input/devices > ~/devices
dmesg > ~/dmesg_boot
cp /var/log/Xorg.0.log ~/Xorg.0.log }}}
Line 44: Line 80:
 1. Open a Virtual Terminal by pressing Ctrl-Alt-F1.
Line 46: Line 81:
$ 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 }}}
 1. Attach {{{~/dmesg_boot}}}, {{{~/dmesg_diff}}}, {{{~/Xorg.0.log}}} and {{{~/Xorg.0.log_diff}}} to the bug report in separate attachments.
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 }}}
 1. Attach {{{~/devices}}}, {{{~/dmesg_boot}}}, {{{~/dmesg_diff}}}, {{{~/Xorg.0.log}}} and {{{~/Xorg.0.log_diff}}} as separate attachments to your bug report.
Line 53: Line 87:
== In case some features of your touchpad like scrolling, tapping, dragging don't work (as expected) == == In case Touchpad features like scrolling, tapping, etc. do not work at all. ==
Line 55: Line 89:
 1. Provide the [#generalinfo general information].
 1. Open a terminal and enter the following command: {{{
$ cat /proc/bus/input/devices > ~/devices
$ dmesg > ~/dmesg }}}
 1. Attach your {{{/var/log/Xorg.0.log}}}, {{{~/devices}}} and {{{~/dmesg}}} to the bug report in seperate attachments.
Common symptom is absence of the ''''Touchpad'''' tab/device shown in Control Center.
Line 61: Line 91:
##[[Anchor(knownbugs)]]
##= Known bugs =
Your touchpad may be wrongly recognized as a mouse. So xserver-xorg-input-synaptics has nothing to do with it. Please note in the case of filing a bug against the kernel ('''linux'''), you should not mark the bug a duplicate of another. Even if you can find a closely related bug and you have a strong feeling that the bug should be duplicate. This is a policy of the Ubuntu Kernel Team and it helps them to handle bugs better.
Line 64: Line 93:
##Description of known issues, how to recognise them and stock responses/actions. Please execute at a terminal: {{{
cat /proc/bus/input/devices > ~/devices }}}
If the output includes the name of your Touchpad (e.g. Name="SynPS/2 Synaptics TouchPad"), then the linux kernel has detected it right.
In any case, attach as separate attachments to your bug report the results of the following commands: {{{
cat /proc/bus/input/devices > ~/devices
xinput --list > ~/xinput
cat /var/log/Xorg.0.log > Xorg.0.log }}}
Line 66: Line 101:
##'''Open'''
##||<rowbgcolor="#eeeeee"> '''Bug#''' || '''Description''' || '''Action''' ||
##|| [https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/9068 #9068] || Serial mouse isn't autodetected || If you want your serial mouse to be autodetected in future versions of Ubuntu, please help by following the steps described here: https://lists.ubuntu.com/archives/ubuntu-devel/2006-February/015020.html and attach the requested information to [https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/9068 bug #9068]. ||
== In case at least one of the Touchpad features work, but does not work correctly and as expected ==
Examples of this are jumpy cursor, scrolling problems, Touchpad area is misdetected, circular scrolling, and buttons not correctly mapped. Please attach the following files as separate attachments to your bug report:
 * Execute in a terminal: {{{
xmodmap -pp > ~/xmodmap }}}
 * Execute in a terminal: {{{
xinput --list-props <id> > ~/xinput }}}
  * Please note that <id> is the number of your Touchpad found executing in a terminal: {{{
xinput --list }}}
   * An example, partial output of this notes the id is 12: {{{
   ↳ SynPS/2 Synaptics TouchPad id=12 [slave pointer (2)] }}}
 * After reading [[DebuggingTouchpadDetection/evtest|this]] for help on how to enter VT and log evtest events, switch to a VT using Crtl+Alt+F2 and enter the following in a terminal: {{{
sudo evtest /dev/input/eventX > ~/evtest
}}}
  * Perform the action that does not work on the Touchpad. Then, press CTRL+C to exit.
  * Press Crtl+Alt+F7 to switch back to X.
 * After reading [[DebuggingTouchpadDetection/xev|this]] on reporting xev logs, execute the following in a terminal, and perform the relevant actions: {{{
xev > ~/xev.log }}}
Line 70: Line 119:
##'''Closed'''
##||<rowbgcolor="#eeeeee"> '''Bug#''' || '''Description''' || '''Action''' ||
##|| [https://bugs.beta.launchpad.net/ubuntu/+source/synaptic/+bug/8896 #8896] ##|| This bug can be identified by ... || blabla ||
=== In case your multitouch features does not work ===
Line 74: Line 121:
## = Non-bugs = 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 }}}
Line 76: Line 125:
## How to recognise common issues arising from hardware failures, common feature requests and other invalid bugs for this category. Advice how triage them and stock responses. This bug is already known (see the '''Known bugs''' below). In this case please don't file any new bugs, but add a comment in the existing bug for any relevant information that you have.
Line 78: Line 127:
= Also see = '''NOTE :''' Synaptics is not willing to disclose the protocol it uses for the multitouch support for its newer Touchpads. As soon as Synaptics discloses it's protocol, this issue will be fixed. So, this is not a bug in general, and has been classified as a wishlist.
Line 80: Line 129:
 * DebuggingProcedures For any other case, include the following as separate attachments in your bug report:
 1. {{{ xinput --list-props <id> > ~/xinput }}}
  * In {{{ xinput --list-props <id> }}}, <id> is the number of your touchpad found by executing at a terminal: {{{
xinput --list }}}
 1. After reading [[DebuggingTouchpadDetection/evtest|this]] for help on how to enter VT and log evtest events, switch to a VT using Crtl+Alt+F2 and enter following in your terminal: {{{
sudo evtest /dev/input/eventX > ~/evtest }}}
 1. Add identifier, Scroll, tap, drag, press buttons, and create various other possible events on the Touchpad. Then, press CTRL+C to exit.
 1. Press Crtl+Alt+F7 to switch back to X.
 1. Take your pointer in the windows and hold down your two fingers on the Touchpad and raise. Also try to tap with two fingers. {{{
 xev | grep -i button > ~/xev}}}
 1. Attach as separate attachments to your bug report {{{~/xev}}}, {{{~/xinput}}} and your {{{~/evtest}}}.

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

=== Enabling right button click for clickpads on Ubuntu 12.04 LTS ===

Ubuntu 12.04 LTS added support for clickpads. The buttons are pressed by pressing the surface of the trackpad itself. All known clickpads, with the exception of the Apple Magic Trackpad, have indications on the trackpad for where the left and right buttons are. Clicking in the right button area should cause a right button click action. However, right button click support was added too late in the 12.04 LTS development cycle to be enabled by default. It is enabled by default in Ubuntu 12.10 and on.

Fortunately, the right click functionality is present and working in the release. It simply needs to be enabled. The attached [[attachment:enable-rightbutton.sh]] script may be used to simplify the process. After downloading the script, execute the following:

{{{
chmod a+x enable-rightbutton.sh
./enable-rightbutton.sh <device id|device name>
}}}

Be sure to use the device id or name of your specific trackpad. You can list the devices on your computer using the "xinput" command.

= General work flow for Triagers and debugging tips =

If features of Touchpad like tapping and scrolling do '''not''' work at all, the user will not see the '''Touchpad''' Tab in System -> Administration -> Mouse in the Main menu. This means that Touchpad is misdetected as PS/2 mouse. Here the following workflow must be followed.

 1. Check whether the kernel has detected the Touchpad or not by executing at a terminal: {{{
cat /proc/bus/input/devices }}} If Touchpad is detected, then something like the following will appear: {{{
Name="SynPS/2 Synaptics TouchPad" }}} If Touchpad is not detected then the following will appear: {{{
Name="ImPS/2 Generic Wheel Mouse"}}} In this case the bug must be a kernel issue.
 1. Check whether xserver has detected the Touchpad correctly by executing at a terminal: {{{
xinput --list }}} You will see the same name of Touchpad as above.
 1. Check whether the libinput (or synaptics for older Ubuntu) module is correctly loaded in xserver or not via executing at a terminal: {{{
cat /var/log/Xorg.0.log | grep -i synaptics }}}
 1. For problems such as scrolling area, touch area, button wrong mapping, and multitouch, try investigating with: {{{
evtest /dev/input/eventX
xev }}} Look for name in: {{{
xinput --list }}} For example: {{{
↳ TouchPad id=6 [slave pointer (2)] }}} Then, type: {{{
xinput --list-props 6 }}}
 1. When debugging libinput, {{{libinput debug-events}}} would be helpful. The command is in the {{{libinput-tools}}} package.
 1. If the Touchpad vendor is Synaptics, try loading {{{psmouse}}} kernel module with {{{synaptics_intertouch=0}}}.
 1. If the Touchpad vendor is Elantech, try loading {{{psmouse}}} kernel module with {{{elantech_smbus=0}}}. This option only exists since Cosmic (linux v4.18 kernel).
Line 83: Line 179:
CategoryBugSquad CategoryBugSquad CategoryDebugging CategoryCleanup

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. Your Touchpad has the simple features of a mouse, but Touchpad features, like tapping, scrolling, etc. do not work at all.
  4. Some features of your Touchpad like scrolling, tapping, or dragging don't work as expected.

How to file the bug report

If your are unsure to which package the bug should be filed, or your problem is not listed in any of the categories, then please file your touchpad related bugs against xserver-xorg-input-libinput or xserver-xorg-input-synaptics (if it is installed). If the bug turns out to be a bug related to the 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-input/synaptics, as invalid.

General information before filing the bug

This information should be provided in the bug description itself:

  1. Laptop model directly from the sticker of the computer.
  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 your Touchpad, and is irrespective of the laptop model, you could omit mentioning the laptop model in the description. Please 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 a kernel (linux) or xorg bug.

  1. Execute at a terminal:

    cat /proc/bus/input/devices

    One should see a touchpad device, like:

    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 
    If you do not find something like this, then the bug is in the linux kernel. Please follow these steps:
    1. File the bug against the linux package by running ubuntu-bug linux.

    2. Provide the general information.

    3. Enter the following commands in a terminal:

      cat /proc/bus/input/devices > ~/devices
    4. Attach ~/devices as separate attachments to your bug report.

  2. If you see a touchpad device in /proc/bus/input/devices, check by connecting an external mouse to see if that works. If it does, then one may be affected by the transition from xserver-xorg-input-synaptics to libinput. Hence, one will want to check by uninstalling xserver-xorg-input-synaptics to see if this resolves the issue. If not, please see below:

    • After reading this about how to enter VT and log evtest events, switch to a VT using Crtl+Alt+F2 and enter the following in your terminal:

      sudo evtest /dev/input/eventX > ~/evtest

      where the "X" in "eventX" is the event number found by typing in a terminal:

      cat /proc/bus/input/devices
    • Scroll, tap, drag, press buttons, and create various other possible events on the Touchpad. Then, press CTRL+C to exit and execute:

      cp /var/log/Xorg.0.log ~/Xorg.0.log 
    • Press Crtl+Alt+F7 to switch back to X.
    • Add as separate attachments ~/evtest and ~/Xorg.0.log to the bug report.

In case your Touchpad stops working after a while

This is generally a case of a kernel (linux) or xorg bug. In this case, in the description field, specify the steps to make the touchpad stop working (e.g. hit a key, drag an icon, after X seconds of inactivity, etc.).

  1. If your Touchpad stops working after it has been left unused for awhile, it may be due to runtime power-management. Disable runtime power management of the Touchpad device and check if the issue persists.
    1. Look for your Touchpad device in /proc/bus/input/devices.

    2. The line starts with S: is the path of the Touchpad device, the full path will be something like /sys/devices/platform/i8042/serio1/input/input5/power/control.

    3. Disable runtime power-managed by running echo on | sudo tee /sys/devices/platform/i8042/serio1/input/input5/power/control (replace the path with the one for your Touchpad device.

    4. If the problem disappears, report as such to your bug report. If the problem persists, read on.
  2. After reading this on how to enter VT and log evtest events, switch to a VT using Crtl+Alt+F2 and enter following in your terminal:

    sudo evtest /dev/input/eventX > ~/evtest 
    • Perform the action that makes the Touchpad fails. Then, press CTRL+C to exit.
    • Press Crtl+Alt+F7 to switch back to X.
    • Add as separate attachments ~/evtest to the bug report.

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

    cat /proc/bus/input/devices > ~/devices
    dmesg > ~/dmesg_boot
    cp /var/log/Xorg.0.log ~/Xorg.0.log 
  4. Wait until your touchpad stops working.
  5. Enter the following commands:

    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 ~/devices, ~/dmesg_boot, ~/dmesg_diff, ~/Xorg.0.log and ~/Xorg.0.log_diff as separate attachments to your bug report.

In case Touchpad features like scrolling, tapping, etc. do not work at all.

Common symptom is absence of the 'Touchpad' tab/device shown in Control Center.

Your touchpad may be wrongly recognized as a mouse. So xserver-xorg-input-synaptics has nothing to do with it. Please note in the case of filing a bug against the kernel (linux), you should not mark the bug a duplicate of another. Even if you can find a closely related bug and you have a strong feeling that the bug should be duplicate. This is a policy of the Ubuntu Kernel Team and it helps them to handle bugs better.

Please execute at a terminal:

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

If the output includes the name of your Touchpad (e.g. Name="SynPS/2 Synaptics TouchPad"), then the linux kernel has detected it right. In any case, attach as separate attachments to your bug report the results of the following commands:

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

In case at least one of the Touchpad features work, but does not work correctly and as expected

Examples of this are jumpy cursor, scrolling problems, Touchpad area is misdetected, circular scrolling, and buttons not correctly mapped. Please attach the following files as separate attachments to your bug report:

  • Execute in a terminal:

    xmodmap -pp > ~/xmodmap 
  • Execute in a terminal:

    xinput --list-props <id> > ~/xinput 
    • Please note that <id> is the number of your Touchpad found executing in a terminal:

      xinput --list 
      • An example, partial output of this notes the id is 12:

           ↳ SynPS/2 Synaptics TouchPad                 id=12   [slave  pointer  (2)] 
  • After reading this for help on how to enter VT and log evtest events, switch to a VT using Crtl+Alt+F2 and enter the following in a terminal:

    sudo evtest /dev/input/eventX > ~/evtest
    • Perform the action that does not work on the Touchpad. Then, press CTRL+C to exit.
    • Press Crtl+Alt+F7 to switch back to X.
  • After reading this on reporting xev logs, execute the following in a terminal, and perform the relevant actions:

    xev > ~/xev.log 

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, but add a comment in the existing bug for any relevant 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 discloses it's protocol, this issue will be fixed. So, this is not a bug in general, and has been classified as a wishlist.

For any other case, include the following as separate attachments in your bug report:

  1.  xinput --list-props <id> > ~/xinput 

    • In  xinput --list-props <id> , <id> is the number of your touchpad found by executing at a terminal:

      xinput --list 
  2. After reading this for help on how to enter VT and log evtest events, switch to a VT using Crtl+Alt+F2 and enter following in your terminal:

    sudo evtest /dev/input/eventX > ~/evtest 
  3. Add identifier, Scroll, tap, drag, press buttons, and create various other possible events on the Touchpad. 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 fingers on the Touchpad and raise. Also try to tap with two fingers.

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

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

Enabling right button click for clickpads on Ubuntu 12.04 LTS

Ubuntu 12.04 LTS added support for clickpads. The buttons are pressed by pressing the surface of the trackpad itself. All known clickpads, with the exception of the Apple Magic Trackpad, have indications on the trackpad for where the left and right buttons are. Clicking in the right button area should cause a right button click action. However, right button click support was added too late in the 12.04 LTS development cycle to be enabled by default. It is enabled by default in Ubuntu 12.10 and on.

Fortunately, the right click functionality is present and working in the release. It simply needs to be enabled. The attached enable-rightbutton.sh script may be used to simplify the process. After downloading the script, execute the following:

chmod a+x enable-rightbutton.sh
./enable-rightbutton.sh <device id|device name>

Be sure to use the device id or name of your specific trackpad. You can list the devices on your computer using the "xinput" command.

General work flow for Triagers and debugging tips

If features of Touchpad like tapping and scrolling do not work at all, the user will not see the Touchpad Tab in System -> Administration -> Mouse in the Main menu. This means that Touchpad is misdetected as PS/2 mouse. Here the following workflow must be followed.

  1. Check whether the kernel has detected the Touchpad or not by executing at a terminal:

    cat /proc/bus/input/devices 

    If Touchpad is detected, then something like the following will appear:

    Name="SynPS/2 Synaptics TouchPad" 

    If Touchpad is not detected then the following will appear:

    Name="ImPS/2 Generic Wheel Mouse"
    In this case the bug must be a kernel issue.
  2. Check whether xserver has detected the Touchpad correctly by executing at a terminal:

    xinput --list 
    You will see the same name of Touchpad as above.
  3. Check whether the libinput (or synaptics for older Ubuntu) module is correctly loaded in xserver or not via executing at a terminal:

    cat /var/log/Xorg.0.log | grep -i synaptics 
  4. For problems such as scrolling area, touch area, button wrong mapping, and multitouch, try investigating with:

    evtest /dev/input/eventX
    xev 

    Look for name in:

    xinput --list 

    For example:

    ↳ TouchPad id=6 [slave  pointer  (2)] 

    Then, type:

    xinput --list-props 6 
  5. When debugging libinput, libinput debug-events would be helpful. The command is in the libinput-tools package.

  6. If the Touchpad vendor is Synaptics, try loading psmouse kernel module with synaptics_intertouch=0.

  7. If the Touchpad vendor is Elantech, try loading psmouse kernel module with elantech_smbus=0. This option only exists since Cosmic (linux v4.18 kernel).


CategoryBugSquad CategoryDebugging CategoryCleanup

DebuggingTouchpadDetection (last edited 2019-02-26 09:05:55 by anthonywong)