DebuggingTouchpadDetection

Differences between revisions 20 and 48 (spanning 28 versions)
Revision 20 as of 2010-10-01 16:09:45
Size: 12801
Editor: pool-98-112-185-44
Comment: spelling
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 2: Line 2:
Line 7: Line 8:
 1. Your touchpad doesn't work at all.
 1. Your touchpad stops working after a while.
 1. Features of Mouse works but features of Touchpad(like Tapping, Scrolling) does not work at all.
 1. S
ome features of your touchpad like scrolling, tapping, dragging don't work as expected.
 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 16: Line 16:
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.
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 19: Line 20:
Line 20: Line 22:
 1. Laptop model.  1. Laptop model directly from the sticker of the computer.
Line 24: Line 26:
Sample Description - 'ALPS Touchpad' incorrectly detected as PS/2 mouse in 'Sony Vaio VPCCW16FG' after the kernel upgrade. Sample Description - ''''ALPS Touchpad' incorrectly detected as PS/2 mouse in 'Sony Vaio VPCCW16FG' after the kernel upgrade.'''
Line 26: Line 28:
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 omit 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. 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 28: Line 30:
== In case your touchpad doesn't work at all (No response from the touchpad) == == In case your Touchpad doesn't work at all (No response from the Touchpad) ==
Line 30: Line 32:
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. This is generally a case of a kernel ('''linux''') or '''xorg''' bug.
Line 32: Line 34:
 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 }}}
 4. Press Crtl+Alt+F7 to switch back to X.
 3. Add {{{~/evtest}}} and {{{Xorg.o.log}}} to the bug report in seperate attachments.
 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.
Line 39: Line 61:
Check your {{{ /dev/input/eventX }}} for your touchpad in {{{ cat /proc/bus/input/devices }}} , you may see something like this == In case your Touchpad stops working after a while ==
Line 41: Line 63:
{{{ 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 }}}
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.).
Line 51: Line 65:
Here your {{{ /dev/input/eventX }}} is {{{ /dev/input/event8 }}}  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 }}}
 1. Wait until your touchpad stops working.
 1. 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 }}}
 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:
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: == In case Touchpad features like scrolling, tapping, etc. do not work at all. ==
Line 55: Line 89:
 1. File the bug against '''linux'''
 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 separate attachments.
Common symptom is absence of the ''''Touchpad'''' tab/device shown in Control Center.
Line 61: Line 91:
== In case your touchpad stops working after a while == 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 63: Line 93:
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. 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 65: Line 101:
 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 }}}
 4. Press Crtl+Alt+F7 to switch back to X.
 3. 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 [[#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. Wait until your touchpad stops working.
 1. Open a Virtual Terminal by pressing Ctrl-Alt-F1.
 1. 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 }}}
 1. 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 }}}
 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.
 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 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 152: Line 121:
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 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 155: Line 125:
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. 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 157: Line 127:
'''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. '''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 159: Line 129:
 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.
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, s
witch 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}}}.
Line 169: Line 141:
In {{{ xinput --list-props <id> }}}, <id> is of your touchpad in xinput --list. '''Before filing new bug please look in the '''common bugs''' section.'''
Line 171: Line 143:
Check your {{{ /dev/input/eventX }}} for your touchpad in {{{ cat /proc/bus/input/devices }}} , you may see something like this === Enabling right button click for clickpads on Ubuntu 12.04 LTS ===
Line 173: Line 145:
{{{ 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 }}}
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.
Line 183: Line 147:
Here your {{{ /dev/input/eventX }}} is {{{ /dev/input/event8 }}} 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:
Line 185: Line 149:
Before filing new bug please look in the '''common bugs''' section. {{{
chmod a+x enable-rightbutton.sh
./enable-rightbutton.sh <device id|device name>
}}}
Line 187: Line 154:
= Some general work flow for Triagers = 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.
Line 189: Line 156:
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. = General work flow for Triagers and debugging tips =
Line 191: Line 158:
 1. Check weather Kernel has detected the touchpad or not by the following. {{{
$ cat /proc/bus/input/devices }}}
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.
Line 194: Line 160:
  If a touchpad is detected, then something like following will appear.
    '''Name="SynPS/2 Synaptics TouchPad"'''

  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
 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 230: Line 179:
CategoryBugSquad CategoryDebugging 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)