Bug 1085697
Summary: | Lenovo L440 Touchpad support does not work like in Windows | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Julius <juliusvonkohout> | ||||||||||||||
Component: | xorg-x11-drv-synaptics | Assignee: | Peter Hutterer <peter.hutterer> | ||||||||||||||
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||||||||||
Severity: | medium | Docs Contact: | |||||||||||||||
Priority: | unspecified | ||||||||||||||||
Version: | 20 | CC: | hdegoede, peter.hutterer | ||||||||||||||
Target Milestone: | --- | ||||||||||||||||
Target Release: | --- | ||||||||||||||||
Hardware: | All | ||||||||||||||||
OS: | Linux | ||||||||||||||||
Whiteboard: | |||||||||||||||||
Fixed In Version: | kernel-3.13.11-100.fc19 | Doc Type: | Bug Fix | ||||||||||||||
Doc Text: | Story Points: | --- | |||||||||||||||
Clone Of: | Environment: | ||||||||||||||||
Last Closed: | 2014-04-18 15:35:24 UTC | Type: | Bug | ||||||||||||||
Regression: | --- | Mount Type: | --- | ||||||||||||||
Documentation: | --- | CRM: | |||||||||||||||
Verified Versions: | Category: | --- | |||||||||||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||||||||||
Embargoed: | |||||||||||||||||
Attachments: |
|
Description
Julius
2014-04-09 07:26:44 UTC
Created attachment 884409 [details]
grep "" /sys/devices/virtual/dmi/id/*
Created attachment 884410 [details]
/usr/lib/udev/rules.d/70-touchpad-quirks.rules
Created attachment 884412 [details]
udevadm info --export-db
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. Created attachment 884778 [details]
50-synaptics.conf
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
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 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 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 Created attachment 885302 [details]
Fixed 50-synaptics.conf
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] / 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 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. and of course very inaccurate because the cursor moves while pressing down the touchpad (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. > 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.
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 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 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 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 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). 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 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 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. 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. 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 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. |