Summary: | sys-kernel/gentoo-sources (kernel 4.9.76-r1) does not connect to the touchpad (mouse) on Lenovo ideapad 320-17-IKB neither with libinput nor evemu | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | jplx <jlambrec> |
Component: | Current packages | Assignee: | Gentoo Kernel Bug Wranglers and Kernel Maintainers <kernel> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | gnome, jlambrec |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
libinput does not appear to detect the touchpad
systemctl list output Output from `lshw` Command (Hardware Listing) /proc/bus/input/devices with MXLinux /proc/bus/input/devices with gentoo dmesg with gentoo Xorg.0.log with gentoo .config file dmesg |
Description
jplx
2018-04-04 20:29:06 UTC
Created attachment 526568 [details]
libinput does not appear to detect the touchpad
Created attachment 526570 [details]
systemctl list output
No failure appears to be reported by systemctl.
Have you filed this upstream with the developers of libinput? No, I have not. Should I? How? One additional piece of info: when The laptop boots from the system rescue disk (system-rescue-cd.org), the touchpad works fine. I found the way to file this bug at: https://bugs.freedesktop.org It is bug # 105893 Additional info added to this bug filed at "bugs.freedesktop.org" #105893 at the request of the developer: evemu-record and udevadm info. evemu is masked by gentoo, probably because libinput is used: jplx-gn2 ~ # emerge --search evemu [ Results for search key : evemu ] Searching... * app-misc/evemu [ Masked ] Latest version available: 2.7.0 Latest version installed: [ Not Installed ] Size of files: 498 KiB Homepage: https://www.freedesktop.org/wiki/Evemu/ Description: tools and bindings for kernel evdev device emulation, data capture, and replay License: LGPL-3 GPL-3 [ Applications found : 1 ] So, it could not be installed and evemu-record could not be provided. Following the recommendation by the libinput developer, I installed the (masked) app-misc/evemu-2.7.0 package. Here is the output of evemu-record: jplx-gn2 ~ # evemu-record Available devices: /dev/input/event0: Lid Switch /dev/input/event1: Power Button /dev/input/event2: Video Bus /dev/input/event3: AT Translated Set 2 keyboard /dev/input/event4: Ideapad extra buttons /dev/input/event5: HDA Intel PCH Mic /dev/input/event6: HDA Intel PCH Headphone /dev/input/event7: HDA Intel PCH HDMI/DP,pcm=3 /dev/input/event8: HDA Intel PCH HDMI/DP,pcm=7 /dev/input/event9: HDA Intel PCH HDMI/DP,pcm=8 Select the device event number [0-9]: ^C jplx-gn2 ~ # It seems to show that the touchpad is not detected by the kernel. Current kernel on this laptop is (gentoo-sources): jplx-gn2 ~ # uname -r 4.9.76-gentoo-r1 jplx-gn2 ~ # eselect kernel list Available kernel symlink targets: [1] linux-4.9.76-gentoo-r1 * jplx-gn2 ~ # QUESTION: should I install a more recent kernel? If yes, which one? Not sure as they all are masked except the one installed. Additional info. From the freedesktop web site: https://wayland.freedesktop.org/libinput/doc/latest/reporting_bugs.html#evemu Note libinput does not affect the evemu recording. libinput and evemu talk directly to the kernel's device nodes. An evemu recording is not influenced by the libinput version or whether a libinput context is currently active. https://wayland.freedesktop.org/libinput/doc/latest/dot_evemu.png It shows that both evemu and evemu connect directly to the kernel. Because neither of them sees the touchpad, the problem must be likely be caused by the kernel. I will change this but title to involve the kernel. kernel people will know better than me, but I would give a chance to latest 4.14.x version (In reply to Pacho Ramos from comment #9) > kernel people will know better than me, but I would give a chance to latest > 4.14.x version I concur with Pacho, here. Your 4.9 version is almost 20 releases behind the latest. Please try to upgrade your kernel and let us know the result. I do see postings on the net describing similar symptoms and upgrading the kernel did solve them. Created attachment 528020 [details]
Output from `lshw` Command (Hardware Listing)
Some interfaces show up as "UNCLAIMED":
pci generic:0 Thermal subsystem
pci generic:1 I2C Controller
pci communication CSME HECI #1
pci memory
pci serial SMBus
power OEm
network Ethernet interface
COMMENTS: Could the I2C Controller be the problem? or the SMBus? I kind of remember that Lenovo changed the touchapd interface on this laptop and that it uses the I2C interface (for configuration?).
I used `emerge -s sources` to find sources and picked sys-kernel/rt-sources. My kernel is now 4.14.29-rt-rt25 It did not make a difference: the touchpad still does not work. Then I installed the package for the `lshw` command. The result is shown in the previous comment. So, this `lshw` command was invoked with this new kernel. I booted the systemconfigcd and ran `lshw`. It provided the names of the drivers.So, in menuconfig I turned on: intel_pch_thermal intel-lpss acpi and pci mei_me intel_pmc_core 82801_smbus. I also turned on the following mouse related drivers; mouse_elan_i2C_SMBUS and mouse_elam_i2c and mouse_elan_SMBUS mouse_synaptics_i2c and mouse_synaptics_usb After rebuilding the kernel and rebooting, all the "UNCLAIMED" are gone but the power, which states "OEM define". So, that does not seem to be a big deal. However, the touchpad still does not work. As a reminder, the sysconfigcd has the touchpad working and is a down rev of the kernel: my kernel is now more recent. So, the kernel revision does not appear to be the root cause of this issue. I doubled checked everything I could to make sure the installation is correct but could not find anything wrong. However, I noticed that the sysresccd uses evdev and synaptics drivers while my gnome-wayland uses libinput. An important point is that evemu-record does not show anything when using the touchpad. It does show activity when the Logitech mouse is moved. According to the libinput developer, this pinpoints to the kernel because evemu-record receives events directly from the kernel, not through the libinput driver. So, I am kind of lost here and running out of options. From the Xorg.0.log running on the sysresccd, the touchpad is Synaptics TM3336-001 I found a way to better characterize this issue at: https://wiki.ubuntu.com/DebuggingTouchpadDetection Here is a pertinent abstract: If an external mouse is working, execute at a terminal: cat /proc/bus/input/devices One should see: I: Bus=0011 Vendor=0002 Product=0007 Version=01b1 N: Name="SynPS/2 Synaptics TouchPad" blah blah... ## Comment: I have attached such an output when running MXLinux Live dvd (touchpad detected). The file is "device_with_MXLinux" ## If you do not find something like this, then the bug is in the linux kernel. Please follow these steps: File the bug against the linux package. Provide the general information. Enter the following commands in a terminal: dmesg > ~/dmesg cat /proc/bus/input/devices > ~/devices Attach as separate attachments to your bug report ~/dmesg, ~/devices, and your /var/log/Xorg.0.log. The files - dmesg, devices and Xorg.0.log are attached. Created attachment 528540 [details]
/proc/bus/input/devices with MXLinux
MXLinux detects the touchpad
Created attachment 528542 [details]
/proc/bus/input/devices with gentoo
gentoo does not detect the touchpad
Created attachment 528544 [details]
dmesg with gentoo
dmesg with gentoo
Created attachment 528546 [details]
Xorg.0.log with gentoo
Xorg.0.log with gentoo
I have a Lenovo with a Synaptics Touchpad so maybe that will make this debugging easier. Can you post your .config ? Created attachment 542078 [details]
.config file
Maybe something like this is missing: cat /etc/X11/xorg.conf.d/50-synaptics.conf # Example xorg.conf.d snippet that assigns the touchpad driver # to all touchpads. See xorg.conf.d(5) for more information on # InputClass. # DO NOT EDIT THIS FILE, your distribution will likely overwrite # it when updating. Copy (and rename) this file into # /etc/X11/xorg.conf.d first. # Additional options may be added in the form of # Option "OptionName" "value" # Section "InputClass" Identifier "touchpad catchall" Driver "synaptics" MatchIsTouchpad "on" Option "TapButton1" "1" # This option is recommend on all Linux systems using evdev, but cannot be # enabled by default. See the following link for details: # http://who-t.blogspot.com/2010/11/how-to-ignore-configuration-errors.html # MatchDevicePath "/dev/input/event*" EndSection Section "InputClass" Identifier "touchpad ignore duplicates" MatchIsTouchpad "on" MatchOS "Linux" MatchDevicePath "/dev/input/mouse*" Option "Ignore" "on" EndSection # This option enables the bottom right corner to be a right button on clickpads # and the right and middle top areas to be right / middle buttons on clickpads # with a top button area. # This option is only interpreted by clickpads. Section "InputClass" Identifier "Default clickpad buttons" MatchDriver "synaptics" Option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0" Option "SecondarySoftButtonAreas" "58% 0 0 15% 42% 58% 0 15%" EndSection # This option disables software buttons on Apple touchpads. # This option is only interpreted by clickpads. Section "InputClass" Identifier "Disable clickpad buttons on Apple touchpads" MatchProduct "Apple|bcm5974" MatchDriver "synaptics" Option "SoftButtonAreas" "0 0 0 0 0 0 0 0" EndSection Can you try vanilla-sources-4.18.14 or the latest 4.18 kernel? Then post your dmesg so we can see if your touchpad is even detected. I have also this problem but Lenovo ideapad 320-15-IKB :( Created attachment 554580 [details]
dmesg
I installed kernel 4.18.17 and the touchpad is still not working.
First look to my forum ;) I solved it, because I did not have a I2C enabled ;) https://forums.gentoo.org/viewtopic-t-1094436-highlight-ideapad.html You are right. After enabling the i2c bus, the touchpad does work. Here are the i2c lines enabled in the .config file after navigating for quite a while through the menuconfig menu: grep -i i2c < .config | grep ^[^#] CONFIG_REGMAP_I2C=y CONFIG_MOUSE_ELAN_I2C=m CONFIG_MOUSE_ELAN_I2C_I2C=y CONFIG_MOUSE_ELAN_I2C_SMBUS=y CONFIG_MOUSE_SYNAPTICS_I2C=y CONFIG_RMI4_I2C=y CONFIG_I2C=y CONFIG_ACPI_I2C_OPREGION=y CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y CONFIG_I2C_MUX=m CONFIG_I2C_MUX_REG=m CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_SMBUS=y CONFIG_I2C_ALGOBIT=y CONFIG_I2C_I801=y CONFIG_I2C_DESIGNWARE_CORE=y CONFIG_I2C_DESIGNWARE_PLATFORM=y CONFIG_I2C_DESIGNWARE_SLAVE=y CONFIG_I2C_DESIGNWARE_PCI=y CONFIG_I2C_SLAVE=y CONFIG_VIDEO_IR_I2C=m CONFIG_I2C_HID=y CONFIG_RTC_I2C_AND_SPI=y CONFIG_I2C_MULTI_INSTANTIATE=m I am not sure they are all necessary but they are sufficient. So, this issue is resolved but I would suggest that this information be included in the sakaki manuals. |