Tuesday, May 21, 2024
 Popular · Latest · Hot · Upcoming
6
rated 0 times [  6] [ 0]  / answers: 1 / hits: 33666  / 1 Year ago, sun, may 7, 2023, 11:26:28

I bought a Lenovo IdeaPad 5 15are05 yesterday and installed Ubuntu 20.04 on it. Problem is, the touchpad doesn't work.



I've also tried 18.04 and even Debian 10, but the only OS it works on is Windows.



I've looked through many fora and I found nothing that helped me. However, I did find some commands and I think you will find these outputs interesting



cat /proc/bus/input/devices:



I: Bus=0018 Vendor=0000 Product=0000 Version=0000
N: Name="Elan Touchscreen"
P: Phys=
S: Sysfs=/devices/platform/AMDI0010:01/i2c-1/i2c-ELAN0001:00/input/input4
U: Uniq=
H: Handlers=mouse0 event4
B: PROP=2
B: EV=b
B: KEY=400 0 0 0 0 0
B: ABS=661800001000003


Even though it says "Touchscreen", I know for a fact that this is my touchpad. How do I know this?
Well, when I go to a terminal using ctrl+alt+f3, and I try to use my touchpad, it outputs this:



elants_i2c i2c-ELAN0001:00: unknown packet 0e 00 04 03 03 meaning that I'm touching it. That value changed on different actions, for example, it becomes 01 on 'releasing' the touchpad.



This means that the touchpad is listed under ELAN0001, which the "Touchscreen" is listed under as well. I don't think it's that weird that it says it's a touchscreen, because they're very similar.



xinput outputs this:



⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ NEWMEN1500 Mouse Consumer Control id=13 [slave pointer (2)]
⎜ ↳ NEWMEN1500 Mouse id=15 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ NEWMEN1500 Mouse Consumer Control id=14 [slave keyboard (3)]
↳ NEWMEN1500 Mouse id=12 [slave keyboard (3)]
↳ Integrated Camera: Integrated C id=9 [slave keyboard (3)]
↳ Ideapad extra buttons id=10 [slave keyboard (3)]


The touchpad should be listed under Virtual core pointer, but it isn't.



I would really like to know a fix for this, since I need the touchpad to work and I don't want to buy a new laptop, so please help me!


More From » touchpad

 Answers
5

I found the solution, big shoutout to dl3it on Ideapad 5-15ARE05: Touchscreen not working | Lenovo Forums. (Note: it says touchscreen, but that's just the name of the touchpad I guess. It works fine.)



The problem is that the kernel does something wrong with the drivers. To fix this, you will have to install a mainline kernel and configure it yourself.



First off, install dependencies by executing this on a command line:





sudo apt-get install libncurses-dev flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf


Then, download kernel 5.6.x or 5.7.x (x can be any integer, I used 5.7.1 and it has been tested on 5.6.14 and 5.7.0-rc7) from source (via kernel.org). Once on kernel.org, click on [tarball] for the kernel you want.



Extract everything as you would do with any other .tar.gz file.



Then, move to the linux-5.6.x or linux-5.7.x directory in a command line.



Execute sudo make menuconfig and navigate to Device Drivers → Input device support → Touchscreens → Elan eKTH I2C touchscreen.



Once there, change the asterisk to an m by hitting enter and then typing the m.



After that, use the left and right arrows to change the selected option in the bottom to "save" and hit Enter. Then, you will want to save it as .config (which it should default to).



Now still being in the same directory, execute this command:



sudo make -jx && sudo make modules_install -jx && sudo make install -jx



(Change x to the amount of threads your CPU has. Leaving out this option will make this take a long time.)



This will take some time, but after it's finished, you will want to make sure your PC will boot on the new kernel. To do that, execute:



sudo update-initramfs -c -k <kernel-version>



(Change <kernel-version> to the kernel version you just installed, for example 5.7.1.)



Then, fix the grub config by executing:



sudo update-grub


And then reboot and your touchpad should work just fine!



NOTE: websites I used and didn't mention before:




[#3259] Tuesday, May 9, 2023, 1 Year  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
amencisiv

Total Points: 9
Total Questions: 102
Total Answers: 118

Location: Tajikistan
Member since Tue, Mar 21, 2023
1 Year ago
amencisiv questions
Wed, Dec 28, 22, 12:58, 1 Year ago
Wed, Sep 28, 22, 18:24, 2 Years ago
Fri, May 13, 22, 19:08, 2 Years ago
;