Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Elan Touchpad detected but not working on Lenovo IdeaPad 1
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware
View previous topic :: View next topic  
Author Message
Reymet_2
n00b
n00b


Joined: 17 Apr 2024
Posts: 2
Location: Russia

PostPosted: Fri Apr 19, 2024 3:57 pm    Post subject: Elan Touchpad detected but not working on Lenovo IdeaPad 1 Reply with quote

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
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 4191
Location: Bavaria

PostPosted: Fri Apr 19, 2024 6:25 pm    Post subject: Reply with quote

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
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 4191
Location: Bavaria

PostPosted: Fri Apr 19, 2024 6:35 pm    Post subject: Reply with quote

P.S.: If you have made the changes to the kernel .config with an editor, please read them urgently:
https://wiki.gentoo.org/wiki/User:Pietinger/Tutorials/Manual_kernel_configuration#Never_edit_.config
_________________
https://wiki.gentoo.org/wiki/User:Pietinger
Back to top
View user's profile Send private message
Reymet_2
n00b
n00b


Joined: 17 Apr 2024
Posts: 2
Location: Russia

PostPosted: Sat Apr 20, 2024 5:50 pm    Post subject: Reply with quote

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
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 4191
Location: Bavaria

PostPosted: Sat Apr 20, 2024 8:49 pm    Post subject: Reply with quote

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 ... :lol: ... 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
View user's profile Send private message
xgivolari
n00b
n00b


Joined: 26 Jul 2021
Posts: 74

PostPosted: Sun Apr 21, 2024 8:40 am    Post subject: Reply with quote

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
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 4191
Location: Bavaria

PostPosted: Sun Apr 21, 2024 10:53 am    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum