# Touchpad of a Lenovo Ideapad 3 not working

## ShadowOne333

Good day, Gentoo community.

This week I got a new laptop, a Lenovo Ideapad 3:

https://www.lenovo.com/us/en/p/laptops/ideapad/ideapad-300/ideapad-3-(17%E2%80%9D,-intel)-laptop/len101i0007

I went right away and started installing Gentoo into it with a Dual Boot to Windows 10.

After handling the whole installation and the UEFI/Grub thing (which was a pain with Windows 10 being toxic), I managed to finally get into the GNOME desktop environment.

Everything seems to work well... except for the touchpad of the laptop.

I can't seem to get the touchpad nor the pad's buttons to be recognized by the laptop.

If anyone has an idea on how to get this working, I'd be deeply thankful, as I already tried screwing with the kernel a bit to no avail.

Here's the lspci and lsusb outputs:

lspci:

```
00:00.0 Host bridge: Intel Corporation Device 8a02 (rev 03)

   Subsystem: Lenovo Device 3808

   Kernel driver in use: icl_uncore

00:02.0 VGA compatible controller: Intel Corporation Iris Plus Graphics G1 (Ice Lake) (rev 07)

   Subsystem: Lenovo Iris Plus Graphics G1 (Ice Lake)

   Kernel driver in use: i915

   Kernel modules: i915

00:04.0 Signal processing controller: Intel Corporation Device 8a03 (rev 03)

   Subsystem: Lenovo Device 380a

   Kernel driver in use: proc_thermal

   Kernel modules: processor_thermal_device_pci_legacy

00:14.0 USB controller: Intel Corporation Ice Lake-LP USB 3.1 xHCI Host Controller (rev 30)

   Subsystem: Lenovo Ice Lake-LP USB 3.1 xHCI Host Controller

   Kernel driver in use: xhci_hcd

   Kernel modules: xhci_pci

00:14.2 RAM memory: Intel Corporation Ice Lake-LP DRAM Controller (rev 30)

   Subsystem: Lenovo Ice Lake-LP DRAM Controller

00:14.3 Network controller: Intel Corporation Ice Lake-LP PCH CNVi WiFi (rev 30)

   Subsystem: Intel Corporation Ice Lake-LP PCH CNVi WiFi

   Kernel driver in use: iwlwifi

   Kernel modules: iwlwifi, wl

00:15.0 Serial bus controller: Intel Corporation Ice Lake-LP Serial IO I2C Controller #0 (rev 30)

   Subsystem: Lenovo Ice Lake-LP Serial IO I2C Controller

   Kernel modules: intel_lpss_pci

00:15.1 Serial bus controller: Intel Corporation Ice Lake-LP Serial IO I2C Controller #1 (rev 30)

   Subsystem: Lenovo Ice Lake-LP Serial IO I2C Controller

   Kernel modules: intel_lpss_pci

00:16.0 Communication controller: Intel Corporation Ice Lake-LP Management Engine (rev 30)

   Subsystem: Lenovo Ice Lake-LP Management Engine

   Kernel driver in use: mei_me

   Kernel modules: mei_me

00:17.0 SATA controller: Intel Corporation Ice Lake-LP SATA Controller [AHCI mode] (rev 30)

   Subsystem: Lenovo Ice Lake-LP SATA Controller [AHCI mode]

   Kernel driver in use: ahci

00:1f.0 ISA bridge: Intel Corporation Ice Lake-LP LPC Controller (rev 30)

   Subsystem: Lenovo Ice Lake-LP LPC Controller

00:1f.3 Audio device: Intel Corporation Ice Lake-LP Smart Sound Technology Audio Controller (rev 30)

   Subsystem: Lenovo Ice Lake-LP Smart Sound Technology Audio Controller

   Kernel driver in use: snd_hda_intel

   Kernel modules: snd_hda_intel, snd_sof_pci_intel_icl

00:1f.4 SMBus: Intel Corporation Ice Lake-LP SMBus Controller (rev 30)

   Subsystem: Lenovo Ice Lake-LP SMBus Controller

   Kernel driver in use: i801_smbus

   Kernel modules: i2c_i801

00:1f.5 Serial bus controller: Intel Corporation Ice Lake-LP SPI Controller (rev 30)

   Subsystem: Lenovo Ice Lake-LP SPI Controller
```

lsusb:

```
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 001 Device 003: ID 04f2:b6d9 Chicony Electronics Co., Ltd Integrated Camera

Bus 001 Device 005: ID 1c4f:0003 SiGma Micro HID controller

Bus 001 Device 004: ID 8087:0aaa Intel Corp. Bluetooth 9460/9560 Jefferson Peak (JfP)

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

```

If there's anything else needed for proper debugging, please let me know.

----------

## luna80

I still have the same problem

take a look here https://forums.gentoo.org/viewtopic-t-1147186-highlight-.html

for the moment I solved by using gentoo.sources-5.10.100

----------

## ShadowOne333

 *luna80 wrote:*   

> I still have the same problem
> 
> take a look here https://forums.gentoo.org/viewtopic-t-1147186-highlight-.html
> 
> for the moment I solved by using gentoo.sources-5.10.100

 

Damn that's a shame.

I attempted this with Calculate Linux (Gentoo-based distro), and even managed to configure the kernel manually in it, but I get the same result of touchpad not working on the Ideapad 3.

Does kernel 5.10.100 still appear on the list of latest gentoo-sources with an updated emerge --sync?

I have two Gentoo machines, but in the one I'm writing this atm doesn't have an update repository, so I'm not sure if 5.10.100 still appears on the latest repo.

If it does, I'll try installing that one and compiling with it, but it'd still be preferable to pinpoint the issue. Although I think the main gentoo-sources have jumped a lot of versions and one can't really try anything in between other than one main 5.10.X or 5.15.X versions.

----------

## Dominique_71

I get that issue some time ago with another laptop. It was caused by a wrong driver being loaded by the kernel. The solution was to blacklist that wrong module into /etc/modprobe.d/blacklist.conf and to load the right one as explained here: https://wiki.gentoo.org/wiki/Kernel_Modules

----------

## luna80

 *ShadowOne333 wrote:*   

>  *luna80 wrote:*   I still have the same problem
> 
> take a look here https://forums.gentoo.org/viewtopic-t-1147186-highlight-.html
> 
> for the moment I solved by using gentoo.sources-5.10.100 
> ...

 

I saw now that version 5.10.100 is no longer in portage but there is the 103 stable and you can try that, also I found this discussion https://forums.gentoo.org/viewtopic-p-8692426.html#8692426, at the moment I have not yet had a chance to try but I will and let you know.

----------

## ShadowOne333

 *Dominique_71 wrote:*   

> I get that issue some time ago with another laptop. It was caused by a wrong driver being loaded by the kernel. The solution was to blacklist that wrong module into /etc/modprobe.d/blacklist.conf and to load the right one as explained here: https://wiki.gentoo.org/wiki/Kernel_Modules

 

That might help. Do you recall which driver is the one that needs to be blacklisted?

 *luna80 wrote:*   

> I saw now that version 5.10.100 is no longer in portage but there is the 103 stable and you can try that, also I found this discussion https://forums.gentoo.org/viewtopic-p-8692426.html#8692426, at the moment I have not yet had a chance to try but I will and let you know.

 

Yeah I checked last night and the last current one is indeed 5.10.103. I gave it a quick try with Calculate Linux downgrading to 5.10.103 and booting with it, but from a quick test it seemed to be the same, without working. Maybe trying a specific kernel config would so something different in that version? But I am not sure if that's the case.

From that link, you're referring to the very last post? The one that mentions a Thinkpad X1 as the first link.

That user brings up quite some good kernel changes, I'll attempt that later today if time allows it. In case something goes well, I'll post it here.

---------------------------------------------------------------------------------------------------------------------------

EDIT:

I also found that apparently adding certain parameters to the Grub CMD line can make the Ideapad's touchpad to work.

Here are some of the suggested parameters I could find to add into either the grub.cfg file (inside /boot/grub/grub.cfg), or the /etc/default/grub file and running 

```
sudo grub-mkconfig -o /boot/grub/grub.cfg
```

 after the change:

These are the suggestions I found. Only attempt one at a time in the corresponding line, not all of them at once.

Either adding them before the "splash quiet" part or after depending on if it's defined in the following lines or not. This can be done either directly through editing the grub CMDLINE at boot, or with /etc/default/grub and reconfiguring the grub. Also, perhaps it's better to try each one of these at a time, one by one, to see exactly which one fixes it:

```

GRUB_CMDLINE_LINUX="loglevel=3 quiet pci=nocrs"

GRUB_CMDLINE_LINUX="i8042.nopnp=1 pci=nocrs quiet"

GRUB_CMDLINE_LINUX="pci=nocrs pci=no_e820 pci=realloc"

GRUB_CMDLINE_LINUX="i8042.reset i8042.nomux i8042.nopnp i8042.noloop quiet"

```

I tried with all the "i8042" parameters, but none of them worked for me.

With the "pci=nocrs" parameter, whenever I add it either manually to the grub line when booting, or to /etc/default/grub, I always get a dracut error saying it doesn't recognize the boot device. I still don't know how to get around this, and from what I read, that specific parameter is what fixes the touchpad for most people. 

This link seems to offer a solution to my dracut issue, so I'll leave it here for reference for when I need it:

https://www.reddit.com/r/voidlinux/comments/rqnod4/pc_dont_boot_if_i_add_pcinocrs_to_grub_cmdline/

Other possible solution seems to be blacklisting and/or removing some ELAN parameters from the kernel configuration:

https://bbs.archlinux.org/viewtopic.php?id=256002

Additional links: 

https://askubuntu.com/questions/398568/psmouse-serio1-alps-unknown-alps-touchpad-in-a-lenovo-ideapad-flex-15

https://gitlab.freedesktop.org/libinput/libinput/-/issues/694

https://www.lawebdelprogramador.com/foros/Linux/1771020-solucionado-Lenovo-Ideapad-3-15IIL05-configure-wifi-and-touchpad.html

https://wiki.archlinux.org/title/Acer_Swift_5

https://fedoraproject.org/wiki/Common_kernel_problems#PCI_Devices_Not_Recognized_.2F_AHCI:_.22failed_to_stop_engine.22

https://isolution.pro/es/q/au14225770/panel-tactil-de-lenovo-ideapad-s145-15iil-no-detectado-en-18-04-y-19-10-ubuntu-y-kubuntu

I'll continue debugging this, hopefully we can get this working sooner or later.

----------

## ShadowOne333

@luna80, not sure if you might read this, but maybe it's worth the shot.

I just recalled trying out kernel 5.10.103 (the closest one to 5.10.100 that's currently listed as stable in the updates) and it could be worth a try to test out if 5.10.103 works on your end or not for this particular issue.

I tried it before and it didn't work for me, but perhaps if we are sure that 5.10.103 isn't working for this particular touchpad, then we can get close to the solution, since 5.10.100 was the last confirmed working version for this touchpad.

If 5.10.103 is confirmed as not-working, then it was either 5.10.101 or 5.10.102 that broke the touchpad compatibility from 5.10.100.

It can help a lot to narrow it down from the several hundreds of updates since that kernel version, so at least there wouldn't be as many versions to go through to pinpoint the exact breaking point.

----------

## luna80

 *ShadowOne333 wrote:*   

> @luna80, not sure if you might read this, but maybe it's worth the shot.
> 
> I just recalled trying out kernel 5.10.103 (the closest one to 5.10.100 that's currently listed as stable in the updates) and it could be worth a try to test out if 5.10.103 works on your end or not for this particular issue.
> 
> I tried it before and it didn't work for me, but perhaps if we are sure that 5.10.103 isn't working for this particular touchpad, then we can get close to the solution, since 5.10.100 was the last confirmed working version for this touchpad.
> ...

 

ShadowOne333, I had time to try to do as in the link I posted (https://forums.gentoo.org/viewtopic-t-1147186-highlight-.html) and now it works with the latest version of the stable kernel (5.15.26), try to follow it step by step, I hope you solve too

let me know

----------

## ShadowOne333

 *luna80 wrote:*   

>  *ShadowOne333 wrote:*   @luna80, not sure if you might read this, but maybe it's worth the shot.
> 
> I just recalled trying out kernel 5.10.103 (the closest one to 5.10.100 that's currently listed as stable in the updates) and it could be worth a try to test out if 5.10.103 works on your end or not for this particular issue.
> 
> I tried it before and it didn't work for me, but perhaps if we are sure that 5.10.103 isn't working for this particular touchpad, then we can get close to the solution, since 5.10.100 was the last confirmed working version for this touchpad.
> ...

 

I did try the changes listed for the kernel in there, but seems like the touchpad is still not being recognized by Gentoo on my end.

Would you please share which of the changes listed there you have enabled and which aren't on your end?

Maybe that could help narrow it down.

----------

## Jackalope

I have the same problem with Lenovo legion 5 (15ACH6A). 

Touchpad works in Windows 10, does not work in LiveCd from gentoo too.

I am using distribution kernel 5.16.18-gentoo-dist.

Touchpad isn't appearing in lspci, nor xinput. 

There are warnings in dmesg "PS/2 appears to have AUX port disabled"

----------

## logrusx

 *Jackalope wrote:*   

> I have the same problem with Lenovo legion 5 (15ACH6A). 
> 
> Touchpad works in Windows 10, does not work in LiveCd from gentoo too.
> 
> I am using distribution kernel 5.16.18-gentoo-dist.
> ...

 

Try this. Follow the configuration options and ignore the language.

Regards,

Georgi

----------

## luna80

 *ShadowOne333 wrote:*   

>  *luna80 wrote:*    *ShadowOne333 wrote:*   @luna80, not sure if you might read this, but maybe it's worth the shot.
> 
> I just recalled trying out kernel 5.10.103 (the closest one to 5.10.100 that's currently listed as stable in the updates) and it could be worth a try to test out if 5.10.103 works on your end or not for this particular issue.
> 
> I tried it before and it didn't work for me, but perhaps if we are sure that 5.10.103 isn't working for this particular touchpad, then we can get close to the solution, since 5.10.100 was the last confirmed working version for this touchpad.
> ...

 

Now, I'm not on the laptop, this evening i'll post you my kernel config, so you can compare it

----------

## luna80

I did it now

http://dpaste.com/9BPLL8LD7

I hope that can help you ShadowOne333

----------

## Jackalope

 *logrusx wrote:*   

>  *Jackalope wrote:*   I have the same problem with Lenovo legion 5 (15ACH6A). 
> 
> Touchpad works in Windows 10, does not work in LiveCd from gentoo too.
> 
> I am using distribution kernel 5.16.18-gentoo-dist.
> ...

 

Nice! 

I've tried to modprobe modules using the menuconfig help menu from options in the post.

And ic2_hid_acpi module is the one I need. 

Thank you. Touchpad works now.

----------

## ShadowOne333

 *luna80 wrote:*   

> I did it now
> 
> http://dpaste.com/9BPLL8LD7
> 
> I hope that can help you ShadowOne333

 

Thanks for that.

However, when I try clicking on that link, it sends me to an "Unknown item ID" page.

Is the link provided correct?

Or does it have an expiration date of sorts?

 *Jackalope wrote:*   

> 
> 
> Nice! 
> 
> I've tried to modprobe modules using the menuconfig help menu from options in the post.
> ...

 

Would you mind if I ask how did you test the modprobe modules through menuconfig?

And what changes did you make to make it work on your end, please?

----------

## luna80

Yes, it's expired.

the new link

https://dpaste.com/4UBSSZPDE

----------

## Jackalope

 *ShadowOne333 wrote:*   

> 
> 
> Would you mind if I ask how did you test the modprobe modules through menuconfig?
> 
> And what changes did you make to make it work on your end, please?

 

I am using distribution kernel sys-kernel/gentoo-kernel-5.16.18-r1

No changes in config, just need to modprobe modules.

I have read configuration options description and run modprobe for module names written in it.

----------

## luna80

 *luna80 wrote:*   

> Yes, it's expired.
> 
> the new link
> 
> https://dpaste.com/4UBSSZPDE

 

was expired another time

this is for next 10 days

http://dpaste.com/8KF79B26B

----------

## ShadowOne333

 *luna80 wrote:*   

>  *luna80 wrote:*   Yes, it's expired.
> 
> the new link
> 
> https://dpaste.com/4UBSSZPDE 
> ...

 

Thank you, Luna.

I just downloaded your kernel config and I will check it out during the weekend to see if I can find the problematic issue at hand.

I'll post my findings. Thanks for taking the time to share this!

----------

