Bug 1085697 - Lenovo L440 Touchpad support does not work like in Windows
Summary: Lenovo L440 Touchpad support does not work like in Windows
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: xorg-x11-drv-synaptics
Version: 20
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Peter Hutterer
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-04-09 07:26 UTC by Julius
Modified: 2018-05-13 09:38 UTC (History)
2 users (show)

Fixed In Version: kernel-3.13.11-100.fc19
Clone Of:
Environment:
Last Closed: 2014-04-18 15:35:24 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
grep "" /sys/devices/virtual/dmi/id/* (1.10 KB, text/plain)
2014-04-09 07:28 UTC, Julius
no flags Details
/usr/lib/udev/rules.d/70-touchpad-quirks.rules (968 bytes, text/plain)
2014-04-09 07:29 UTC, Julius
no flags Details
udevadm info --export-db (157.64 KB, text/plain)
2014-04-09 07:44 UTC, Julius
no flags Details
50-synaptics.conf (4.65 KB, text/plain)
2014-04-10 07:39 UTC, Julius
no flags Details
xorg.3.log (53.05 KB, text/x-log)
2014-04-10 07:46 UTC, Julius
no flags Details
Fixed 50-synaptics.conf (4.64 KB, text/plain)
2014-04-11 09:07 UTC, Hans de Goede
no flags Details

Description Julius 2014-04-09 07:26:44 UTC
Description of problem:


Version-Release number of selected component (if applicable):

xorg-x11-drv-synaptics-1.7.4-6.fc20

How reproducible:
easy

Steps to Reproduce:
1.use touchpad softbutton areas
2.
3.

Actual results:
left click

Expected results:
lef/right/middle click depending on touched area

Additional info:
Bios/uefi version 1.6

Comment 1 Julius 2014-04-09 07:28:43 UTC
Created attachment 884409 [details]
grep "" /sys/devices/virtual/dmi/id/*

Comment 2 Julius 2014-04-09 07:29:26 UTC
Created attachment 884410 [details]
/usr/lib/udev/rules.d/70-touchpad-quirks.rules

Comment 3 Julius 2014-04-09 07:44:37 UTC
Created attachment 884412 [details]
udevadm info --export-db

Comment 4 Peter Hutterer 2014-04-10 00:06:02 UTC
weird. udev shows the tag is set

E: ID_INPUT.tags=L440

Note that the modification I recommended in the emails before filing the bug isn't quite right, you misunderstood what I meant: in the udev rules you attached, the extra "ThinkPad" string should be in the product_version bit, not in the tags bit. Doesn't matter, the udevadm output shows it from before the udev rule change. I recommend restoring the file from the rpm file.


So for some reason the xserver doesn't pick it up. Make sure you have the rpm installed, it installs /usr/share/X11/xorg.conf.d/50-synaptics.conf, and you've restarted the X server. Check the Xorg.log if the section "Lenovo L440 trackstick software button buttons" is applied.

Install xterm, start xorg with xinit -- /usr/bin/Xorg -logverbose 10 :3
then simply quit the xterm that comes up. Look at the /var/log/Xorg.3.log file and see if you can find the L440 tag listed in there somewhere. Attach that log file to this bug.

Comment 5 Julius 2014-04-10 07:39:36 UTC
Created attachment 884778 [details]
50-synaptics.conf

Comment 6 Julius 2014-04-10 07:46:58 UTC
Created attachment 884779 [details]
xorg.3.log

in gnome terminal xinit -- /usr/bin/Xorg -logverbose 10 :3
switch back to old xserver with ctrl-alt-f1
kill xterm

Comment 7 Hans de Goede 2014-04-10 10:23:19 UTC
Hi Julius,

Peter is on a short vacation and he has asked me to further help you with this bug, looking at
your Xorg.log the udev and xorg.conf.d bits are doing what they should do.

I assume your button area still not work as they should ? Then the problem likely is that the min/max
values we are using are wrong for your touchpad, causing the button areas we use to be in a wrong
location (possibly completely outside of the coordinate range your touchpad sends).

In order to debug the min/max coordinate problem further I need you to do 1 of 2 things:

1) If you've experience with building code from source, please clone and build:
git://git.freedesktop.org/git/libevdev and then run sudo ./tools/touchpad-edge-detector /dev/input/event4
Note the event4 may be wrong if your input device enumeration order changes on boot, in that
case do 2). and once you know the right event node re-run touchpad-edge-detector. Copy and paste
the output here

2) If you don't want to do 1 (which is slightly preferred) do:
sudo yum install evemu
Switch to a text console, do ctrl+alt+f2 and login there
sudo evemu
Notice which event-node is the touchpad (likely event4) and do:
sudo evemu /dev/input/event4 > evemu.log
Then move your finger along the edge of your touchpad (all 4 sides) and after that do ctrl+c. Then attach the generated evemu.log file here.

Also can you please do the following:
cat /sys/devices/pnp0/*/id
rpm -q xorg-x11-drv-synaptics
rpm --verify xorg-x11-drv-synaptics
And copy and paste the output of those 3 commands here ?

Thanks & Regards,

Hans

Comment 8 Julius 2014-04-10 20:51:07 UTC
i manually installed libevdev-1.1-1.fc21.x86_64.rpm and used tocuhpad-edge-detector from libevdev-utils-1.1-1.fc21.x86_64.rpm

sudo ./touchpad-edge-detector /dev/input/event4
Error: cannot grab the device, something else is grabbing it.
Use 'fuser -v /dev/input/event4' to find processes with an open fd

after disabling the touchpad in gnome settings:

sudo ./touchpad-edge-detector /dev/input/event4
Touchpad SynPS/2 Synaptics TouchPad on /dev/input/event4
Move one finger around the touchpad to detect the actual edges
Kernel says:	x [1472..5112], y [1408..3834]
Touchpad sends:	x [1024..5112], y [2057..4832] \

i went along every edge of the touchpad

cat /sys/devices/pnp0/*/id
PNP0c02
PNP0200
INT0800
PNP0103
PNP0c04
PNP0c02
PNP0b00
INT3f0d
PNP0c02
LEN0071
PNP0303
LEN2004
PNP0f13
PNP0c02

rpm -q xorg-x11-drv-synaptics
xorg-x11-drv-synaptics-1.7.4-6.fc20.x86_64

rpm --verify xorg-x11-drv-synaptics
no output on terminal

Comment 9 Hans de Goede 2014-04-11 09:06:46 UTC
Hi,

Thanks for the info, as I already suspected the problem is that the min/max value for your touchpad are off, and the SecondarySoftButtonAreas option in 50-synaptics.conf currently used for your laptop uses a range for the top-buttons which lies outside of what your touchpad reports.

Fixing 50-synaptics.conf is not enough, because then your bottom button area will still be wrong and cause issues, as the bottom button area uses relative coordinates (percentages).

So step 1 is to get the min/max values reported by the kernel fixed. I've written a kernel-patch adding a quirk for this, and started a scratch-build if it. Please download and install the kernel from here (note still building atm): http://koji.fedoraproject.org/koji/taskinfo?taskID=6726865

Before rebooting into the new kernel, please also replace your 50-synaptics.conf with the new one which I'm going to attach here right after this comments. Note this switches the top button area to use relative coordinates too, as this is what we want to be using going forward, fixing things in the kernel, since otherwise the bottom button area will be wrong.

Thanks & Regards,

Hans

Comment 10 Hans de Goede 2014-04-11 09:07:31 UTC
Created attachment 885302 [details]
Fixed 50-synaptics.conf

Comment 11 Julius 2014-04-11 21:57:39 UTC
installed 
kernel-modules-extra-3.13.9-200.rhbz1085582_1085697.fc20.x86_64.rpm
kernel-headers-3.13.9-200.rhbz1085582_1085697.fc20.x86_64.rpm
kernel-3.13.9-200.rhbz1085582_1085697.fc20.x86_64.rpm

replaced 50-synaptics.conf

uname -a
Linux l440 3.13.9-200.rhbz1085582_1085697.fc20.x86_64 #1 SMP Fri Apr 11 09:48:14 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

sudo '/home/julius/Downloads/usr/bin/touchpad-edge-detector' /dev/input/event4
[sudo] password for julius: 
Touchpad SynPS/2 Synaptics TouchPad on /dev/input/event4
Move one finger around the touchpad to detect the actual edges
Kernel says:	x [1024..5112], y [2024..4832]
Touchpad sends:	x [1024..5113], y [2058..4832] /

Comment 12 Hans de Goede 2014-04-12 11:29:19 UTC
Hi,

(In reply to Julius von Kohout from comment #11)
> installed 
> kernel-modules-extra-3.13.9-200.rhbz1085582_1085697.fc20.x86_64.rpm
> kernel-headers-3.13.9-200.rhbz1085582_1085697.fc20.x86_64.rpm
> kernel-3.13.9-200.rhbz1085582_1085697.fc20.x86_64.rpm
> 
> replaced 50-synaptics.conf
> 
> uname -a
> Linux l440 3.13.9-200.rhbz1085582_1085697.fc20.x86_64 #1 SMP Fri Apr 11
> 09:48:14 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
> 
> sudo '/home/julius/Downloads/usr/bin/touchpad-edge-detector'
> /dev/input/event4
> [sudo] password for julius: 
> Touchpad SynPS/2 Synaptics TouchPad on /dev/input/event4
> Move one finger around the touchpad to detect the actual edges
> Kernel says:	x [1024..5112], y [2024..4832]
> Touchpad sends:	x [1024..5113], y [2058..4832] /

Ok, that looks good. Have you tried to use the top and bottom soft button areas with this new setup? I would expect everything to work as intended now, can you confirm this ?

Thanks,

Hans

Comment 13 Julius 2014-04-12 12:17:22 UTC
1 finger is leftclick everywhere, 2 fingers are doubleclick everywhere. pressing top and bottom left ist left click. pressing top an bottom right is richt click. pressing top middle is left click. 
But no real softtouch buttons. you always have to press the touchpad down instead of yust touching it which is annoingly loud.

Comment 14 Julius 2014-04-12 12:18:52 UTC
and of course very inaccurate because the cursor moves while pressing down the touchpad

Comment 15 Hans de Goede 2014-04-13 10:54:40 UTC
(In reply to Julius von Kohout from comment #13)
> pressing top and bottom left ist left click. pressing top an bottom right is
> right click.

Ok, this is as expected.

> pressing top middle is left click. 

Hmm, can you install this version:
http://koji.fedoraproject.org/koji/taskinfo?taskID=6728782

Reboot and then try again, the top middle area should generate middle clicks.

> But no real softtouch buttons.
> you always have to press the touchpad down
> instead of yust touching it which is annoingly loud.

Right, the softbutton areas are just that, areas which change the behavior of clicking the clickpad
from left button into another button. You still need to click the clickpad to click, that is why its called a clickpad.

Does the Windows driver handle this differently ?

(In reply to Julius von Kohout from comment #14)
> and of course very inaccurate because the cursor moves while pressing down
> the touchpad

That should be fixed with the latest versions of xorg-x11-drv-synaptics, we now ignore motion caused by touches inside the softbutton areas.

Comment 16 Julius 2014-04-13 20:17:47 UTC
> pressing top middle is left click.
was a typo

altough the middle click area is a bit too small (10-20%)it nevertheless  produces middle clicks.

"Does the Windows driver handle this differently ?"

well the touchpad is generally fucked up on the new lenovos and i never used windows, but i expected that behaviour because clicking is annoyingly loud and tiresome

nevertheless good job and thank you for your efforts.

Comment 17 Hans de Goede 2014-04-14 13:47:57 UTC
Hi Julius,

Thanks for testing! I'm currently preparing an official update to the xorg-x11-drv-synaptics package with the necessary changes. I've also commit the necessary changes to the kernel package, so that these will get picked up with the next build.

Regards,

Hans

Comment 18 Fedora Update System 2014-04-14 13:50:44 UTC
xorg-x11-drv-synaptics-1.7.4-7.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/xorg-x11-drv-synaptics-1.7.4-7.fc20

Comment 19 Fedora Update System 2014-04-15 03:35:47 UTC
kernel-3.13.10-200.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/kernel-3.13.10-200.fc20

Comment 20 Fedora Update System 2014-04-15 03:44:48 UTC
kernel-3.13.10-100.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/kernel-3.13.10-100.fc19

Comment 21 Fedora Update System 2014-04-15 15:52:49 UTC
Package xorg-x11-drv-synaptics-1.7.4-7.fc20:
* should fix your issue,
* was pushed to the Fedora 20 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing xorg-x11-drv-synaptics-1.7.4-7.fc20'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2014-5184/xorg-x11-drv-synaptics-1.7.4-7.fc20
then log in and leave karma (feedback).

Comment 22 Hans de Goede 2014-04-17 12:16:42 UTC
Hi all,

I would like to have one bit more info from your systems for future reference, can you please do:

dmesg | grep synaptics

And copy and paste the output here ?

Thanks & Regards,

Hans

Comment 23 Julius 2014-04-17 17:59:50 UTC
atm im using the offical package (i deinstalled all test kernels and the test synaptic package)

dmesg | grep synaptics
[    1.398620] psmouse serio1: synaptics: Touchpad model: 1, fw: 8.1, id: 0x1e2b1, caps: 0xd001a3/0x940300/0x127c00, board id: 2722, fw id: 1484859
[    1.398628] psmouse serio1: synaptics: serio: Synaptics pass-through port at isa0060/serio1/input0

Comment 24 Fedora Update System 2014-04-18 15:35:24 UTC
kernel-3.13.10-200.fc20 has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 25 Fedora Update System 2014-04-22 03:57:46 UTC
xorg-x11-drv-synaptics-1.7.4-8.fc20 has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 26 Fedora Update System 2014-04-24 18:16:02 UTC
kernel-3.13.11-100.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/kernel-3.13.11-100.fc19

Comment 27 Fedora Update System 2014-05-06 03:31:04 UTC
kernel-3.13.11-100.fc19 has been pushed to the Fedora 19 stable repository.  If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.