View previous topic :: View next topic |
Author |
Message |
Reymet_2 n00b
Joined: 17 Apr 2024 Posts: 2 Location: Russia
|
Posted: Fri Apr 19, 2024 3:57 pm Post subject: Elan Touchpad detected but not working on Lenovo IdeaPad 1 |
|
|
Installed Gentoo on Lenovo IdeaPad 1 14IGL05 81VU00D6US.
Touchpad wasn't working in X. After reading some threads on this forum regarding similar problems, followed the advice to boot some other Linux distributions and booted Ubuntu LiveUSB. Touchpad worked perfectly but my attempts to edit the kernel config using the one taken from Ubuntu as a sample met no success. What should I change in the kernel to make the touchpad work?
dmesg | grep ELAN output:
Code: | [ 4.697937] i2c i2c-8: client [ELAN061A:00] registered with bus id i2c-ELAN061A:00
[ 4.721605] acpi ELAN061A:00: GPIO: looking up 0 in _CRS
[ 4.721787] elan_i2c i2c-ELAN061A:00: probe
[ 4.721840] elan_i2c i2c-ELAN061A:00: supply vcc not found, using dummy regulator
[ 4.837099] elan_i2c i2c-ELAN061A:00: Elan Touchpad: Module ID: 0x00fa, Firmware: 0x0001, Sample: 0x0002, IAP: 0x0000
[ 4.837334] input: Elan Touchpad as /devices/pci0000:00/0000:00:17.3/i2c_designware.7/i2c-8/i2c-ELAN061A:00/input/input10 |
Full dmesg output
In /proc/bus/input/devices touchpad is also recognized:
Code: | I: Bus=0018 Vendor=04f3 Product=00fa Version=0000
N: Name="Elan Touchpad"
P: Phys=
S: Sysfs=/devices/pci0000:00/0000:00:17.3/i2c_designware.7/i2c-8/i2c-ELAN061A:00/input/input10
U: Uniq=
H: Handlers=mouse1 event9
B: PROP=5
B: EV=b
B: KEY=e520 10000 0 0 0 0
B: ABS=663800013000003 |
As well as in libinput list-devices:
Code: | Device: Elan Touchpad
Kernel: /dev/input/event9
Group: 5
Seat: seat0, default
Size: 104x68mm
Capabilities: pointer gesture
Tap-to-click: disabled
Tap-and-drag: enabled
Tap drag lock: disabled
Left-handed: disabled
Nat.scrolling: disabled
Middle emulation: disabled
Calibration: n/a
Scroll methods: *two-finger edge
Click methods: *button-areas clickfinger
Disable-w-typing: enabled
Disable-w-trackpointing: enabled
Accel profiles: flat *adaptive custom
Rotation: n/a |
But cat /dev/input/event9 or cat /dev/input/mouse1 show nothing. libinput debug-events shows only this:
Code: | -event9 DEVICE_ADDED Elan Touchpad seat0 default group5 cap:pg size 104x68mm tap(dl off) left scroll-nat scroll-2fg-edge click-buttonareas-clickfinger dwt-on dwtp-on |
and no reaction when touchpad is touched or its buttons are clicked.
In xinput it's also shown:
Code: | ⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ YICHIP Wireless Device Mouse id=9 [slave pointer (2)]
⎜ ↳ YICHIP Wireless Device Consumer Control id=11 [slave pointer (2)]
⎜ ↳ Elan Touchpad id=12 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Video Bus id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ YICHIP Wireless Device id=8 [slave keyboard (3)]
↳ YICHIP Wireless Device System Control id=10 [slave keyboard (3)]
↳ Ideapad extra buttons id=13 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=14 [slave keyboard (3)]
↳ YICHIP Wireless Device Consumer Control id=15 [slave keyboard (3)] |
As Xorg.0.log says, X server also recognizes the touchpad but it's not working.
My kernel config
lsmod output
lspci -k output
And from Ubuntu LiveUSB (where it works):
dmesg output
lsmod output
lspci -k output
Kernel config
In /proc/bus/input/devices touchpad is shown a bit differently, in particular, "phys" field is not empty:
Code: | I: Bus=0018 Vendor=04f3 Product=3140 Version=0100
N: Name="ELAN061A:00 04F3:3140 Touchpad"
P: Phys=i2c-ELAN061A:00
S: Sysfs=/devices/pci0000:00/0000:00:17.3/i2c_designware.7/i2c-12/i2c-ELAN061A:00/0018:04F3:3140.0003/input/input13
U: Uniq=
H: Handlers=mouse1 event6
B: PROP=5
B: EV=1b
B: KEY=e520 10000 0 0 0 0
B: ABS=2e0800000000003
B: MSC=20 |
|
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 4191 Location: Bavaria
|
Posted: Fri Apr 19, 2024 6:25 pm Post subject: |
|
|
Reymet_2,
Welcome to Gentoo Forums !
Merging two kernel configurations almost never works. Do not do this. In your case it is a mismatch between modules you have enabled statically into the kernel and enabled as <M>odule.
Yes, i2c needs PINCTRL ... but both of them must be a <M>odule or both of them are enabled statically (PINCTRL static and i2c as module is also possible). You will see it here:
Code: | [ 1.433845] i801_smbus 0000:00:1f.1: No response |
because you have: CONFIG_I2C_I801=y AND CONFIG_PINCTRL_GEMINILAKE=m
In your case the easiest way to solve this would be to enable (and disable all other intel pinctrl; you dont need them):
Code: | CONFIG_PINCTRL_GEMINILAKE=y |
Check also the differencies between both "lsmod" outputs of Ubuntu and Gentoo. _________________ https://wiki.gentoo.org/wiki/User:Pietinger |
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 4191 Location: Bavaria
|
|
Back to top |
|
|
Reymet_2 n00b
Joined: 17 Apr 2024 Posts: 2 Location: Russia
|
Posted: Sat Apr 20, 2024 5:50 pm Post subject: |
|
|
pietinger wrote: |
In your case the easiest way to solve this would be to enable (and disable all other intel pinctrl; you dont need them):
Code: | CONFIG_PINCTRL_GEMINILAKE=y |
|
Enabled it as static, nothing has changed.
Then, tried to enable both as modules, (lack of) result is the same.
pietinger wrote: |
If you have made the changes to the kernel .config with an editor
|
Of course, I use menuconfig |
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 4191 Location: Bavaria
|
Posted: Sat Apr 20, 2024 8:49 pm Post subject: |
|
|
Reymet_2 wrote: | Enabled it as static, nothing has changed.
Then, tried to enable both as modules, (lack of) result is the same. |
The only expanation I have is: Maybe you have a mix with other necessary options of your kernel config that does not match together (best is always: ALL as module, or ALL statically).
For example, the only needed HID-module CONFIG_HID_MULTITOUCH=m is enabled as module while all others (you dont need) are enabled statically (so they all are checked before).
TBH: Your .config is a mess too ... ... I suggest to do a clean new configuration ...
1. Save your old .config
2. "make defconfig"
3. "make menuconfig" and start here: https://wiki.gentoo.org/wiki/User:Pietinger/Tutorials/Manual_Configuring_Kernel_Version_6.6 (enable all what you really need statically)
4. After you did this you have already LPSS, i2C and PINCTRL enabled
5. Add these:
Code: | Device Drivers --->
Multifunction device drivers --->
[*] Intel ICH LPC
[*] Intel Low Power Subsystem support in PCI mode
[*] Intel Low Power Subsystem support in ACPI mode
Device Drivers --->
[*] PCI support --->
PCI controller drivers --->
DesignWare PCI Core Support --->
[*] Platform bus based DesignWare PCIe Controller - Host mode
(kernel 6.8 =>)
Device Drivers --->
[*] PCI support --->
PCI controller drivers --->
DesignWare-based PCIe controllers --->
[*] Platform bus based DesignWare PCIe controller (host mode)
Input device support --->
[*] Mice --->
[*] ELAN I2C Touchpad support
[*] Enable I2C support
[*] Enable SMbus support
Device Drivers --->
HID support --->
Special HID drivers --->
<*> HID Multitouch panel
I2C support --->
[*] I2C device interface
[*] Autoselect pertinent helper modules
I2C Hardware Bus support --->
[*] Intel 82801 (ICH/PCH)
[*] SMBus Control Method Interface
[*] Synopsys DesignWare Platform
[*] Synopsys DesignWare PCI
Device Drivers --->
HID support --->
[*] /dev/hidraw raw HID device support
[*] Generic HID driver
I2C HID support --->
[*] HID over I2C transport layer
(kernel 6.8 =>)
[*] HID bus support --->
-*- HID bus core support
[*] Generic HID driver
USB HID support --->
[*] USB HID transport layer
[*] /dev/hiddev raw HID device support
[*] I2C HID support --->
[*] HID over I2C transport layer ACPI driver |
This is a list from Ubuntu-lsmod needed for your touchpad:
Code: | hid_multitouch
intel_lpss_pci
intel_lpss
elan_i2c
i2c_i801
i2c_hid
i2c_hid_acpi
usbhid
pinctrl_geminilake |
I have not seen this module in the output from Ubuntu so I think you dont need it: CONFIG_SPI_DESIGNWARE ... you might enable it as <M>odule and wathc your "lsmod". _________________ https://wiki.gentoo.org/wiki/User:Pietinger |
|
Back to top |
|
|
xgivolari n00b
Joined: 26 Jul 2021 Posts: 74
|
Posted: Sun Apr 21, 2024 8:40 am Post subject: |
|
|
Skimming through your Xorg.log, I find this line suspicious:
Code: | [ 43.391] (II) Using input driver 'synaptics' for 'Elan Touchpad' |
Considering that your laptop is from 2020, it would surprise me if the synaptics driver worked at all with your touchpad. X11 should probably use libinput. And just to be sure, maybe check if your user is in the required groups (video, input, maybe plugdev?). |
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 4191 Location: Bavaria
|
Posted: Sun Apr 21, 2024 10:53 am Post subject: |
|
|
xgivolari wrote: | Skimming through your Xorg.log, I find this line suspicious:
Code: | [ 43.391] (II) Using input driver 'synaptics' for 'Elan Touchpad' |
Considering that your laptop is from 2020, it would surprise me if the synaptics driver worked at all with your touchpad. X11 should probably use libinput. And just to be sure, maybe check if your user is in the required groups (video, input, maybe plugdev?). |
This usually points to a wrong configuration in X.11. As soon as I get a feedback I want to check dmesg again ... maybe kernel is already correct and now "only" X.11 configuration is wrong.
@PO: Best is to use xorg-server with empty /etc/X11/xorg.conf.d so it can work out of the box with its defaults. _________________ https://wiki.gentoo.org/wiki/User:Pietinger |
|
Back to top |
|
|
|