Touchpad not working on Lenovo V130-15IGM

Hi guys,

On my new Lenovo V130-15IGM my Toucpad isn’t working, in Windows it worked, so its not dead.

Im running on Kernel 4.20.0.

dmesg | grep -i elan 

gives this output:

[   11.631106] i2c_hid i2c-ELAN061A:00: i2c-ELAN061A:00 supply vdd not found, using dummy regulator
[   11.631125] i2c_hid i2c-ELAN061A:00: Linked as a consumer to regulator.0
[   11.631126] i2c_hid i2c-ELAN061A:00: i2c-ELAN061A:00 supply vddl not found, using dummy regulator

I dont know if this would help but I was told to:

System:    Host: GregorLaptop Kernel: 4.20.0-1-MANJARO x86_64 bits: 64 compiler: gcc v: 8.2.1 Desktop: Awesome 4.2 
           Distro: Manjaro Linux 
Machine:   Type: Laptop System: LENOVO product: 81HL v: Lenovo V130-15IGM serial: <filter> 
           Mobo: LENOVO model: LNVNB161216 v: SDK0J40700 WIN serial: <filter> UEFI: LENOVO v: 6VCN25WW date: 06/14/2018 
Battery:   ID-1: BAT0 charge: 5.3 Wh condition: 31.1/30.6 Wh (102%) model: CPT-COS L17C2PB3 status: Discharging 
CPU:       Topology: Dual Core model: Intel Celeron N4000 bits: 64 type: MCP arch: Goldmont Plus rev: 1 L2 cache: 4096 KiB 
           flags: lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 4378 
           Speed: 895 MHz min/max: 800/2600 MHz Core speeds (MHz): 1: 896 2: 895 
Graphics:  Device-1: Intel vendor: Lenovo driver: i915 v: kernel bus ID: 00:02.0 
           Display: x11 server: X.org 1.20.3 driver: modesetting resolution: <xdpyinfo missing> 
           Message: Unable to show advanced data. Required tool glxinfo missing. 
Audio:     Device-1: Intel vendor: Lenovo driver: snd_hda_intel v: kernel bus ID: 00:0e.0 
           Sound Server: ALSA v: k4.20.0-1-MANJARO 
Network:   Device-1: Intel Dual Band Wireless-AC 3165 Plus Bluetooth driver: iwlwifi v: kernel port: 2040 bus ID: 02:00.0 
           IF: wlp2s0 state: up mac: <filter> 
           Device-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet vendor: Lenovo driver: r8169 v: kernel port: 1000 
           bus ID: 03:00.0 
           IF: enp3s0 state: down mac: <filter> 
Drives:    Local Storage: total: 931.51 GiB used: 20.32 GiB (2.2%) 
           ID-1: /dev/sda vendor: Seagate model: ST1000LM035-1RK172 size: 931.51 GiB 
Partition: ID-1: / size: 915.40 GiB used: 20.32 GiB (2.2%) fs: ext4 dev: /dev/sda2 
Sensors:   System Temperatures: cpu: 39.0 C mobo: 33.0 C 
           Fan Speeds (RPM): N/A 
Info:      Processes: 130 Uptime: 18m Memory: 3.68 GiB used: 626.1 MiB (16.6%) Init: systemd Compilers: gcc: 8.2.1 Shell: zsh 
           v: 5.6.2 inxi: 3.0.28 

I also tried to compile my own Kernel as mentioned in this post:Ideapad 130 - 15IKB. Touchpad not working
but this also didn’t work for me and resulted in my wifi not working anymore.
And i downgraded xf86-input-libinput to 0.22.0-2 because a friend told me to.

See if the linked posts will help

I forgot to mention that I tried this too and it resulted that my Touchpad wasn’t listed anymore by dmesg, sry :sweat_smile:

did you install the 4.20 kernel just to see if it would fix it? maybe troubleshooting from an lts kernel 4.19, 4.14 instead of 4.20 thats still very new.
also, i remember this issue in the past with the ideapad’s. @aswathkk modified the dkms driver for the ideapad 330 to work for the 130.

 is a version to work for the  **IdeaPad 130**  modified by @aswathkk
git clone https://www.github.com/aswathkk/elan_i2c_dkms
cd elan_i2c_dkms
sudo dkms install

hope it works out for ya if you have not already tried it. again, not sure how well it will work on 4.20

So I tried switching kernel, that didn’t helped too.

I’m now trying the second Method, there I also edited “elan_i2c_core.c”, so that the acpi ID of my touchpad i in there.

But now I’m stuck at sudo dkms install if I run it I get an Error message saying:

Error! Invalid number of arguments passed.
Usage: add <module>/<module-version> or
       add -m <module>/<module-version> or
       add -m <module> -v <module-version>

So I added a module and a version, which I got from the dkms.conf, so it looked like this: sudo dkms install elan_i2c/4.19-rc4-1

and got this Error message:

Error! Could not find module source directory.
Directory: /usr/src/elan_i2c-4.19-rc4-1 does not exist.

I never used dkms before, and I don’t really understand the man page, so can pls somebody tell my what I should use instead of sudo dkms install?

sorry, im not a coder, maybe @aswathkk could explain what he did if he’s around.

what exactly did you edit? and what is your device name/id

I added the last line , so that the ACPI ID of my touchpad, which is “ELAN061A”, is included:

#ifdef CONFIG_ACPI
static const struct acpi_device_id elan_acpi_id[] = {
        { "ELAN0000", 0 },
        { "ELAN0100", 0 },
        { "ELAN0600", 0 },
        { "ELAN0602", 0 },
        { "ELAN0605", 0 },
        { "ELAN0608", 0 },
        { "ELAN0605", 0 },
        { "ELAN0609", 0 },
        { "ELAN060B", 0 },
        { "ELAN060C", 0 },
        { "ELAN0611", 0 },
        { "ELAN0612", 0 },
        { "ELAN0618", 0 },
        { "ELAN061D", 0 },
        { "ELAN061E", 0 },
        { "ELAN0622", 0 },
        { "ELAN1000", 0 },
        { "ELAN061A", 0 },
        { }
};

thats what i was gonna suggest but nm. :thinking:

@aswathkk modified this to make it work, maybe he added something that does not play well with your setup.


maybe try doing the same to this one and see if it produces better results.

But the edit isn’t the problem, I’m not able to install it :sweat_smile:

this may sound obvious, like i said not a coder. do you have the appropriate linux-headers for your kernel installed?
linux419-headers ?

The module isn’t a problem but I don’t know how to use the dkms command correctlly

thats why i asked, a simple sudo dkms install is all you should need. are you sure your terminal is in the correct directory when your running it?

Yes I’m in elan_i2c_dkms, when I’m running this command

Do I need extra packages?

try this:
replace “4.20.0-1-MANJARO” with whatever your output of uname -r
sudo dkms install elan_i2c/4.20.0-1-MANJARO

if that doesnt work, you can try this:
sudo dkms add ./elan_i2c
sudo dkms install elan_i2c/4.20.0-1-MANJARO

Both ways don’t work for me, if I use sudo dkms install elan_i2c/4.19.13-1-MANJARO I get this Error message:

Error! Could not find module source directory.
Directory: /usr/src/elan_i2c-4.19.13-1-MANJARO does not exist.

if I use sudo dkms add ./elan_i2c, I get something similar:

Error! Could not find module source directory.
Directory: /usr/src/.-elan_i2c does not exist.

so how ca I get this directory, can I just mkdir it?

i dont think thats the solution, nor do i know what effect that would have

Please do not create this folder yourself.

Make sure you have the Kernel Headers for your running Kernel installed. This is very important.

Then use cd elan_i2c_dkms to be in the folder with the source code and the dkms.conf for this module. After that run

sudo dkms install .

The dot at the end is needed! Do not forget it.

2 Likes

So I have it now installed, I missed the kernel headers, but this wasn’t the problem, my dkms command didn’t recognized the dkms.conf file so I modified it and run

sudo dkms add dkms.conf
sudo dkms autoinstall

So now I’m hoping that it works

1 Like

sneaky little thing, i didnt even notice that " . "

It really worked, thanks :sweat_smile:

1 Like