Lenovo Flex 5 14 14are05 - touchpad not working/recognized

Hello,

Last year I bought a new laptop (Ideapad Flex 5 14ARE05), mainly because of the pretty decent specs - including a touchscreen - for a very interesting price during Cyber Money Deals.

As expected, Windows 10 runs flawlessly, and everything works as it's supposed to be.

From the beginning on, it was the plan to make a dual boot partition, Windows with an Arch based Linux distro. Since I run Arch Linux on my desktop PC and Manjaro on my other laptop, I stumbled across Garuda and it caught my eye right away.

Installing Garuda didn't cause any troubles. I did notice that the touchpad didn't function when I booted in the Live environment for the installation.

Once everything was installed, everything seemed to work perfectly, even the brightness settings, keyboard illumination and touchscreen, something that doesn't always seem to be the case.

However, my touchpad didn't work at all. It doesn't even get recognized.

My notebook doesn't have the elan touchpad, as found in the 15" version of this notebook. It has an MSFT touchpad, a Windows tool provided me that information.

Below I'll provide you some information:

inxi -Fza

System:    Kernel: 5.13.5-zen1-1-zen x86_64 bits: 64 compiler: gcc v: 11.1.0  
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen root=UUID=edb2d65a-2e7c-4ca7-9f6d-f49c01f5ff5b  
rw [email protected] quiet splash rd.udev.log_priority=3 vt.global_cursor_default=0  
systemd.unified_cgroup_hierarchy=1 loglevel=3  
Desktop: KDE Plasma 5.22.4 tk: Qt 5.15.2 info: latte-dock wm: kwin_x11 vt: 1 dm: SDDM  
Distro: Garuda Linux base: Arch Linux  
Machine:   Type: Convertible System: LENOVO product: 81X2 v: IdeaPad Flex 5 14ARE05 serial: <filter>  
Chassis:type: 31 v: IdeaPad Flex 5 14ARE05 serial: <filter>  
Mobo: LENOVO model: XXXXXXXXXXX v: XXXXXXXXXX WIN serial: <filter> UEFI: LENOVO v: EECN35WW  
date: 04/16/2021  
Battery:   ID-1: BAT0 charge: 16.8 Wh (31.8%) condition: 52.9/52.5 Wh (100.8%) volts: 11.9 min: 11.5  
model: SMP L19M3PD6 type: Li-poly serial: <filter> status: Charging cycles: 8  
CPU:       Info: 8-Core model: AMD Ryzen 7 4700U with Radeon Graphics bits: 64 type: MCP arch: Zen 2  
family: 17 (23) model-id: 60 (96) stepping: 1 microcode: 8600106 cache:L2: 4 MiB  
flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm bogomips: 31937  
Speed: 3776 MHz min/max: 1400/2000 MHz boost: enabled Core speeds (MHz):1: 3776 2: 1438  
3: 1397 4: 1397 5: 1397 6: 2132 7: 1397 8: 1397  
Vulnerabilities:Type: itlb_multihit status: Not affected  
Type: l1tf status: Not affected  
Type: mds status: Not affected  
Type: meltdown status: Not affected
Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via prctl and seccomp
Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer sanitization
Type: spectre_v2
mitigation: Full AMD retpoline, IBPB: conditional, IBRS_FW, STIBP: disabled, RSB filling
Type: srbds status: Not affected
Type: tsx_async_abort status: Not affected
Graphics:  Device-1: AMD Renoir vendor: Lenovo driver: amdgpu v: kernel bus-ID: 04:00.0 chip-ID: 1002:1636
class-ID: 0300
Device-2: Acer Integrated Camera type: USB driver: uvcvideo bus-ID: 1-4:2 chip-ID: 5986:212a
class-ID: 0e02
Display: x11 server: X.Org 1.20.12 compositor: kwin_x11 driver:loaded: amdgpu,ati
unloaded: modesetting alternate: fbdev,vesa display-ID: :0 screens: 1
Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x285mm (20.0x11.2") s-diag: 582mm (22.9")
Monitor-1: eDP res: 1920x1080 hz: 60 dpi: 158 size: 309x173mm (12.2x6.8") diag: 354mm (13.9")
OpenGL:renderer: AMD RENOIR (DRM 3.41.0 5.13.5-zen1-1-zen LLVM 12.0.1) v: 4.6 Mesa 21.1.5
direct render: Yes
Audio:     Device-1: AMD driver: snd_hda_intel v: kernel bus-ID: 04:00.1 chip-ID: 1002:1637 class-ID: 0403
Device-2: AMD Raven/Raven2/FireFlight/Renoir Audio Processor vendor: Lenovo driver: N/A
alternate: snd_pci_acp3x, snd_rn_pci_acp3x bus-ID: 04:00.5 chip-ID: 1022:15e2 class-ID: 0480
Device-3: AMD Family 17h HD Audio vendor: Lenovo driver: snd_hda_intel v: kernel
bus-ID: 04:00.6 chip-ID: 1022:15e3 class-ID: 0403
Sound Server-1: ALSA v: k5.13.5-zen1-1-zen running: yes
Sound Server-2: JACK v: 1.9.19 running: no
Sound Server-3: PulseAudio v: 15.0 running: no
Sound Server-4: PipeWire v: 0.3.32 running: yes
Network:   Device-1: Realtek RTL8822CE 802.11ac PCIe Wireless Network Adapter vendor: Lenovo
driver: rtw_8822ce v: N/A modules: rtw88_8822ce port: 2000 bus-ID: 02:00.0 chip-ID: 10ec:c822
class-ID: 0280
IF: wlp2s0 state: up mac: <filter>
Bluetooth: Device-1: Realtek Bluetooth Radio type: USB driver: btusb v: 0.8 bus-ID: 3-4:3
chip-ID: 0bda:c123 class-ID: e001 serial: <filter>
Report: bt-adapter ID: hci0 rfk-id: 2 state: down bt-service: enabled,running rfk-block:
hardware: no software: yes address: <filter>
Drives:    Local Storage:total: 476.94 GiB used: 17.79 GiB (3.7%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung model: MZVLB512HBJQ-000L2 size: 476.94 GiB
block-size:physical: 512 B logical: 512 B speed: 31.6 Gb/s lanes: 4 type: SSD serial: <filter>
rev: 3L1QEXF7 temp: 36.9 C scheme: GPT
Partition: ID-1: / raw-size: 136.72 GiB size: 136.72 GiB (100.00%) used: 17.79 GiB (13.0%) fs: btrfs
dev: /dev/nvme0n1p7 maj-min: 259:7
ID-2: /boot/efi raw-size: 500 MiB size: 499 MiB (99.80%) used: 576 KiB (0.1%) fs: vfat
dev: /dev/nvme0n1p5 maj-min: 259:5
ID-3: /home raw-size: 136.72 GiB size: 136.72 GiB (100.00%) used: 17.79 GiB (13.0%) fs: btrfs
dev: /dev/nvme0n1p7 maj-min: 259:7
ID-4: /var/log raw-size: 136.72 GiB size: 136.72 GiB (100.00%) used: 17.79 GiB (13.0%)
fs: btrfs dev: /dev/nvme0n1p7 maj-min: 259:7
ID-5: /var/tmp raw-size: 136.72 GiB size: 136.72 GiB (100.00%) used: 17.79 GiB (13.0%)
fs: btrfs dev: /dev/nvme0n1p7 maj-min: 259:7
Swap:      Kernel:swappiness: 133 (default 60) cache-pressure: 100 (default)
ID-1: swap-1 type: partition size: 1.95 GiB used: 0 KiB (0.0%) priority: -2 dev: /dev/nvme0n1p6
maj-min: 259:6
ID-2: swap-2 type: zram size: 15.01 GiB used: 0 KiB (0.0%) priority: 100 dev: /dev/zram0
Sensors:   System Temperatures:cpu: 50.5 C mobo: 38.0 C gpu: amdgpu temp: 39.0 C
Fan Speeds (RPM): N/A
Info:      Processes: 262 Uptime: 5m wakeups: 4 Memory: 15.01 GiB used: 2.63 GiB (17.5%) Init: systemd
v: 249 tool: systemctl Compilers:gcc: 11.1.0 clang: 12.0.1 Packages:pacman: 1340 lib: 319
Shell: fish v: 3.3.1 default: Bash v: 5.1.8 running-in: konsole inxi: 3.3.06

lsusb

Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 0bda:c123 Realtek Semiconductor Corp. Bluetooth Radio
Bus 003 Device 002: ID 06cb:00be Synaptics, Inc.
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 5986:212a Acer, Inc Integrated Camera
Bus 001 Device 002: ID 192f:0416 Avago Technologies, Pte. ADNS-5700 Optical Mouse Controller (3-button)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

xinput

Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ USB Optical Mouse                         id=10   [slave  pointer  (2)]
⎜   ↳ Wacom HID 5218 Pen stylus                 id=13   [slave  pointer  (2)]
⎜   ↳ Wacom HID 5218 Finger touch               id=14   [slave  pointer  (2)]
⎜   ↳ Wacom HID 5218 Pen eraser                 id=16   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
↳ Power Button                              id=6    [slave  keyboard (3)]
↳ Video Bus                                 id=7    [slave  keyboard (3)]
↳ Power Button                              id=8    [slave  keyboard (3)]
↳ Sleep Button                              id=9    [slave  keyboard (3)]
↳ Integrated Camera: Integrated C           id=11   [slave  keyboard (3)]
↳ Ideapad extra buttons                     id=12   [slave  keyboard (3)]
↳ AT Translated Set 2 keyboard              id=15   [slave  keyboard (3)]

libinput list-devices

Device:           Power Button
Kernel:           /dev/input/event3
Group:            1
Seat:             seat0, default
Capabilities:     keyboard  
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Video Bus
Kernel:           /dev/input/event4
Group:            2
Seat:             seat0, default
Capabilities:     keyboard  
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Power Button
Kernel:           /dev/input/event0
Group:            3
Seat:             seat0, default
Capabilities:     keyboard  
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Lid Switch
Kernel:           /dev/input/event1
Group:            4
Seat:             seat0, default
Capabilities:     switch
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Sleep Button
Kernel:           /dev/input/event2
Group:            5
Seat:             seat0, default
Capabilities:     keyboard  
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           USB Optical Mouse
Kernel:           /dev/input/event6
Group:            6
Seat:             seat0, default
Capabilities:     pointer  
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: disabled
Calibration:      n/a
Scroll methods:   button
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   flat *adaptive
Rotation:         n/a

Device:           Integrated Camera: Integrated C
Kernel:           /dev/input/event13
Group:            7
Seat:             seat0, default
Capabilities:     keyboard  
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Ideapad extra buttons
Kernel:           /dev/input/event7
Group:            8
Seat:             seat0, default
Capabilities:     keyboard  
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Wacom HID 5218 Pen
Kernel:           /dev/input/event10
Group:            9
Seat:             seat0, default
Size:             309x174mm
Capabilities:     tablet
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      identity matrix
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   none
Rotation:         n/a

Device:           Wacom HID 5218 Finger
Kernel:           /dev/input/event11
Group:            9
Seat:             seat0, default
Size:             309x174mm
Capabilities:     touch
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      identity matrix
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           AT Translated Set 2 keyboard
Kernel:           /dev/input/event5
Group:            10
Seat:             seat0, default
Capabilities:     keyboard
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

lsmod | grep i2c

i2c_piix4              28672  0
i2c_hid_acpi           16384  0
i2c_hid                36864  1 i2c_hid_acpi
i2c_algo_bit           16384  4 amdgpu,radeon,i915,nouveau

As you can see, there's no reference to the touchpad after executing all those commands. It goes without saying that the touchpad isn't detected in "System Settings - Touchpad" either. Although I can imagine that i2c_hid / i2c_hid_acpi probably could something have to do with it.

I tried several different kernels (the LTS and hardened kernel that could be installed with the setup assistant , but that didn't make any difference. Also, I downloaded the kernel source and compiled my own, although I'm not sure if I had all the right settings in the .config file that's used to compile the kernel.

I also have been experimenting with a variety of kernel boot parameters.

Is there anyone that is familiar with this problem and could steer me in the right direction when it comes to solving this issue?

Cheers

PS: I also have a Lenovo Slim 7 14ARE05, and on that one everything works perfect. I'd only rather not install Linux on it, because it actually is the laptop I need for my work.

5 Likes

First of all, welcome!
More or less I just wanted to congratulate you on a really well done post, especially as a first post! :slight_smile:
I hope someone can help you.
According to the Arch Wiki, the touchpad for your model should be working, so there must be something to do.
There is also an interesting Arch Forum discussion e.g. #5
Here, just an interesting discussion in our forum if you come to find that you need elan_i2c_dkms.git (not to be tried now, of course, only if needed)

9 Likes

Lenovo makes my crazy with their Notebook names :slight_smile:

Did not find yours in

https://wiki.archlinux.org/title/Laptop/Lenovo

Did you search in all arch wiki's?

3 Likes

In the arch wiki it should be the first link in my post.
Touchpad is reported green...

1 Like

Thanks for your welcome and nice words! :slight_smile:

I've read those Arch Wiki pages numerous of times, but often there seems to be one difference: when they do a dmesg or an xinput, often a reference to the actual touchpad can be seen. That's something I have never even seen even once.

About that "elan_i2c_dkms.git": I haven't read about that yet, since that is a completely different type of touchpad.

1 Like

The Ideapad Flex 5 14ARE05 can be found in the Arch wiki. Before I opened this thread, I've already spent many hours on trying to get that cursed touchpad to work.

The main reason for this notebook was to use it with Linux (and dual Windows boot system if I'd need it in rare cases).

I definitely think you can disregard that elan_i2c_dkms.git, I read only late, after posting, that you know that your touchpad is not elan...

Also, give try to Linux-lts kernel.

1 Like

Which ones have you tested? It could be one of them...

  1. Check your laptop manual! There may be a setting or Fn-key that disables the touchpad. Sometimes windows HW handling and PM break HW visibility on Linux.
  2. Linux also has a couple of functions that disable touchpad, when there is a mouse attached. Because the touchscreen can be recognized as a mouse, it is possible to get disabled from a setting. Look in KDE settings, or other udev rules, Xorg (to be sure it's not Linux).
  3. Check Xorg log for a message
grep -i "touchpad" /var/log/Xorg.0.log

If this command finds something, examine the log file for details.
4. Check for relevant installed packages. Post this, so we compare (I also have a touchscreen Lenovo)

pacman -Qs input

5. What are your kernel parameters?


My touchpad is recognized like this from libinput

Device: SYN3000:00 06CB:7F28 Touchpad

Maybe you"ll see something similar in any logs (just for info)

3 Likes

Thanks for your tip, but that's something I've already tried, see OP :wink:

For full post quote, reply to the post and press first button from top left.

Or, for partial quote, select the text and press quote button that will appear

2 Likes

That did the trick! Still getting a bit used to the forum, thanks for your help!

Our forum uses discourse, if that helps.

1 Like

That's good to know, I might join soon.

I don't know the exact kernel parameters by heart that I've tried, but I will take a look when I'm at home.

As far as the FN-key, my particular model doesn't seem to have a 'hard lock' touchpad key.
Although there is an option in Windows that can 'hard lock' the touchpad, but I have it disabled.

I've also tried that before, booting without a mouse attached, unfortunately without succes. But it getting disabled due to the touchscreen, that's something I haven't give much thought to yet.

Later, when I'm at home, I'm going to give your suggestions a try, and will post results of 'pacman Qs -input' to see if we both have the same relevant packages installed.

Thanks for your suggestions!

One of the kernel boot parameters I've tried was this one:

GRUB_CMDLINE_LINUX=“acpi_backlight=vendor i8042.reset i8042.nomux i8042.nopnp i8042.noloop"

Later removed the backlight parameter, since that's just working fine.

Then I've also tried this one:

i8042.nopnp=1 pci=nocrs

(of course upgraded grub after adding kernel boot parameters).

There probably are some more options that I've tried, but without any success either.

As suggested, I checked the Xorg log, but there are zero references to anything touchpad related.

Here are the results of "pacman -Qs input":

local/iio-sensor-proxy 3.1-1
IIO accelerometer sensor to input device proxy
local/input-devices-support 1-1
Meta package for input devices support.
local/lib32-libxi 1.7.10-2
X11 Input extension library (32-bit)
local/libcdio 2.1.0-2
GNU Compact Disc Input and Control Library
local/libinput 1.18.0-1
Input device management and event handling library
local/libinput-gestures 2.67-1
Actions gestures on your touchpad using libinput
local/libinput_gestures_qt 0.3.2+7+g0868859-1
qt-based gui app for libinput-gestures
local/libxi 1.7.10-3
X11 Input extension library
local/linuxconsole 1.7.1-1
Set of utilities for joysticks and serial devices
local/perl-ipc-run3 0.048-9
run a subprocess with input/ouput redirection
local/potrace 1.16-2
Utility for tracing a bitmap (input: PBM,PGM,PPM,BMP; output: EPS,PS,PDF,SVG,DXF,PGM,Gimppath,XFig)
local/xf86-input-elographics 1.4.2-2
X.org Elographics TouchScreen input driver
local/xf86-input-evdev 2.10.6-2 (xorg-drivers)
X.org evdev input driver
local/xf86-input-libinput 1.1.0-1 (xorg-drivers)
Generic input driver for the X.Org server based on libinput
local/xf86-input-void 1.4.1-5 (xorg-drivers)
X.org void input driver
local/xf86-input-wacom 0.40.0-1
X.Org Wacom tablet driver
local/xorg-server 1.20.12-2 (xorg)
Xorg X server
local/xorg-xinput 1.6.3-2 (xorg-apps xorg)
Small commandline tool to configure devices

I did notice something though, when the backlight of my keyboard is off, touching the touchpad completely illuminates it again.

Confirm that you have fastboot disabled in BIOS and always use "Full shutdown" option in Windows. Also, in another case, a user reported Windows has sending a device (wifi IIRC) to sleep on shutdown, even if it was set to not handle it.
Double-check laptop manual for all available features.

If not already, you may use Linux docs for kernel params.

Check also dmesg. What I am findinng is this

$ sudo dmesg | grep -i touchpad
[    2.638811] input: SYN3000:00 06CB:7F28 Touchpad as /devices/platform/AMDI0010:01/i2c-1/i2c-SYN3000:00/0018:06CB:7F28.0001/input/input8
[    2.755161] input: SYN3000:00 06CB:7F28 Touchpad as /devices/platform/AMDI0010:01/i2c-1/i2c-SYN3000:00/0018:06CB:7F28.0001/input/input16

$ sudo dmesg | grep "SYN"
[    2.638600] input: SYN3000:00 06CB:7F28 Mouse as /devices/platform/AMDI0010:01/i2c-1/i2c-SYN3000:00/0018:06CB:7F28.0001/input/input7
[    2.638811] input: SYN3000:00 06CB:7F28 Touchpad as /devices/platform/AMDI0010:01/i2c-1/i2c-SYN3000:00/0018:06CB:7F28.0001/input/input8
[    2.638878] hid-generic 0018:06CB:7F28.0001: input,hidraw0: I2C HID v1.00 Mouse [SYN3000:00 06CB:7F28] on i2c-SYN3000:00
[    2.755077] input: SYN3000:00 06CB:7F28 Mouse as /devices/platform/AMDI0010:01/i2c-1/i2c-SYN3000:00/0018:06CB:7F28.0001/input/input15
[    2.755161] input: SYN3000:00 06CB:7F28 Touchpad as /devices/platform/AMDI0010:01/i2c-1/i2c-SYN3000:00/0018:06CB:7F28.0001/input/input16
[    2.755266] hid-multitouch 0018:06CB:7F28.0001: input,hidraw0: I2C HID v1.00 Mouse [SYN3000:00 06CB:7F28] on i2c-SYN3000:00

There are some differences, but I think it's more useful checking udev rules (further bellow):

$ pacman -Qs input
local/ibus 1.5.24-1
Next Generation Input Bus for Linux
local/libcdio 2.1.0-2
GNU Compact Disc Input and Control Library
local/libinput 1.18.0-1
Input device management and event handling library
local/libspnav 0.2.3-3
Alternative to the proprietary 3Dconnexion device driver and SDK for their 3D input devices
local/libxi 1.7.10-3
X11 Input extension library
local/potrace 1.16-2
Utility for tracing a bitmap (input: PBM,PGM,PPM,BMP; output: EPS,PS,PDF,SVG,DXF,PGM,Gimppath,XFig)
local/xf86-input-libinput 1.1.0-1 (xorg-drivers)
Generic input driver for the X.Org server based on libinput
local/xf86-input-wacom 0.40.0-1
X.Org Wacom tablet driver
local/xorg-server 1.20.13-1 (xorg)
Xorg X server
local/xorg-xinput 1.6.3-2 (xorg-apps xorg)
Small commandline tool to configure devices

Come on! It's alive!!! :star2:
Set a trap for more info:

  • Run in a terminal
journalctl -f
  • Let kbd backlight go off and try wake it with the touchpad
  • Watch the terminal for relevant messages
  • I think there is also an Xorg similar method (xev or other) to see how/if Xserver gets a signal

Now, read udev and udevadm manuals to help you understand how this may be fixed or gets broken.
Check your existing (package provided) udev rules for input related. There may be some overriding or misplacing, or bad value (for your HW).
It is too much time to spend, but I don't know other way to troubleshoot (apart from what I already suggested)
My status:

  • Existing rules files, "input" related

$ grep -w "input" /usr/lib/udev/rules.d/*.rules | cut -d: -f1 | sort -u
/usr/lib/udev/rules.d/50-udev-default.rules
/usr/lib/udev/rules.d/60-evdev.rules
/usr/lib/udev/rules.d/60-input-id.rules
/usr/lib/udev/rules.d/60-persistent-input.rules
/usr/lib/udev/rules.d/60-sensor.rules
/usr/lib/udev/rules.d/65-libwacom.rules
/usr/lib/udev/rules.d/70-infrared.rules
/usr/lib/udev/rules.d/70-joystick.rules
/usr/lib/udev/rules.d/70-mouse.rules
/usr/lib/udev/rules.d/70-power-switch.rules
/usr/lib/udev/rules.d/70-touchpad.rules
/usr/lib/udev/rules.d/70-uaccess.rules
/usr/lib/udev/rules.d/71-seat.rules
  • Lines in rules files with "input" text
$ grep -w "input" /usr/lib/udev/rules.d/*.rules
/usr/lib/udev/rules.d/50-udev-default.rules:SUBSYSTEM=="input", GROUP="input"
/usr/lib/udev/rules.d/50-udev-default.rules:SUBSYSTEM=="input", KERNEL=="js[0-9]*", MODE="0664"
/usr/lib/udev/rules.d/60-evdev.rules:# skip later rules when we find something for this input device
/usr/lib/udev/rules.d/60-evdev.rules:IMPORT{builtin}="hwdb --subsystem=input --lookup-prefix=evdev:", \
/usr/lib/udev/rules.d/60-evdev.rules:# device matching the input device name + properties + the machine's DMI data
/usr/lib/udev/rules.d/60-evdev.rules:KERNELS=="input*", \
/usr/lib/udev/rules.d/60-evdev.rules:# device matching the input device name and the machine's DMI data
/usr/lib/udev/rules.d/60-evdev.rules:KERNELS=="input*", \
/usr/lib/udev/rules.d/60-input-id.rules:SUBSYSTEM=="input", ENV{ID_INPUT}=="", IMPORT{builtin}="input_id"
/usr/lib/udev/rules.d/60-input-id.rules:SUBSYSTEM=="input", IMPORT{builtin}="hwdb --subsystem=input --lookup-prefix=id-input:modalias:"
/usr/lib/udev/rules.d/60-persistent-input.rules:SUBSYSTEM!="input", GOTO="persistent_input_end"
/usr/lib/udev/rules.d/60-persistent-input.rules:KERNEL=="mouse*|js*", ENV{ID_BUS}=="?*", ENV{.INPUT_CLASS}=="?*", ATTRS{bInterfaceNumber}=="|00", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-$env{.INPUT_CLASS}"
/usr/lib/udev/rules.d/60-persistent-input.rules:KERNEL=="mouse*|js*", ENV{ID_BUS}=="?*", ENV{.INPUT_CLASS}=="?*", ATTRS{bInterfaceNumber}=="?*", ATTRS{bInterfaceNumber}!="00", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-if$attr{bInterfaceNumber}-$env{.INPUT_CLASS}"
/usr/lib/udev/rules.d/60-persistent-input.rules:KERNEL=="event*", ENV{ID_BUS}=="?*", ENV{.INPUT_CLASS}=="?*", ATTRS{bInterfaceNumber}=="|00", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-event-$env{.INPUT_CLASS}"
/usr/lib/udev/rules.d/60-persistent-input.rules:KERNEL=="event*", ENV{ID_BUS}=="?*", ENV{.INPUT_CLASS}=="?*", ATTRS{bInterfaceNumber}=="?*", ATTRS{bInterfaceNumber}!="00", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-if$attr{bInterfaceNumber}-event-$env{.INPUT_CLASS}"
/usr/lib/udev/rules.d/60-persistent-input.rules:  SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-event-if$attr{bInterfaceNumber}"
/usr/lib/udev/rules.d/60-persistent-input.rules:ENV{ID_PATH}=="?*", KERNEL=="mouse*|js*", ENV{.INPUT_CLASS}=="?*", SYMLINK+="input/by-path/$env{ID_PATH}-$env{.INPUT_CLASS}"
/usr/lib/udev/rules.d/60-persistent-input.rules:ENV{ID_PATH}=="?*", KERNEL=="event*", ENV{.INPUT_CLASS}=="?*", SYMLINK+="input/by-path/$env{ID_PATH}-event-$env{.INPUT_CLASS}"
/usr/lib/udev/rules.d/60-persistent-input.rules:  SYMLINK+="input/by-path/$env{ID_PATH}-event"
/usr/lib/udev/rules.d/60-sensor.rules:SUBSYSTEM=="input", ENV{ID_INPUT_ACCELEROMETER}=="1", SUBSYSTEMS=="acpi", \
/usr/lib/udev/rules.d/60-sensor.rules:SUBSYSTEM=="input", ENV{ID_INPUT_ACCELEROMETER}=="1", SUBSYSTEMS=="platform", \
/usr/lib/udev/rules.d/65-libwacom.rules:# use the /sys/class/input/eventXXX/device/modalias as lookup key, prefixed
/usr/lib/udev/rules.d/65-libwacom.rules:KERNELS=="input*", \
/usr/lib/udev/rules.d/65-libwacom.rules:  IMPORT{builtin}="hwdb --subsystem=input '--lookup-prefix=libwacom:name:$attr{name}:'"
/usr/lib/udev/rules.d/70-infrared.rules:ACTION=="add", SUBSYSTEM=="input", SUBSYSTEMS=="rc", KERNEL=="event*", ENV{.rc_sysdev}="$id", RUN+="/usr/bin/ir-keytable -a /etc/rc_maps.cfg -s $env{.rc_sysdev}"
/usr/lib/udev/rules.d/70-joystick.rules:KERNELS=="input*", ENV{ID_BUS}!="", \
/usr/lib/udev/rules.d/70-mouse.rules:KERNELS=="input*", ENV{ID_BUS}=="usb", \
/usr/lib/udev/rules.d/70-mouse.rules:KERNELS=="input*", ENV{ID_BUS}=="bluetooth", \
/usr/lib/udev/rules.d/70-power-switch.rules:SUBSYSTEM=="input", KERNEL=="event*", ENV{ID_INPUT_SWITCH}=="1", TAG+="power-switch"
/usr/lib/udev/rules.d/70-power-switch.rules:SUBSYSTEM=="input", KERNEL=="event*", ENV{ID_INPUT_KEY}=="1", TAG+="power-switch"
/usr/lib/udev/rules.d/70-touchpad.rules:KERNELS=="input*", ENV{ID_BUS}!="", \
/usr/lib/udev/rules.d/70-uaccess.rules:SUBSYSTEM=="input", ENV{ID_INPUT_JOYSTICK}=="?*", TAG+="uaccess"
/usr/lib/udev/rules.d/71-seat.rules:SUBSYSTEM=="input", KERNEL=="input*", TAG+="seat"
/usr/lib/udev/rules.d/71-seat.rules:SUBSYSTEM=="input", ATTR{name}=="Wiebetech LLC Wiebetech", RUN+="/usr/bin/loginctl lock-sessions"

If the terminal is convenient to you, check each file with less

$ less /usr/lib/udev/rules.d/50-udev-default.rules

This one file is the main Arch/systemd device control rules file.

Good luck! :smiley:
Feedback is appreciated (so we can improve knowledge from others' problems :rofl: ).

8 Likes

Well, this seems to be quite the stinker problem. I have the Flex 5 14 14are05 with the MSFT touch-pad and it has been working pretty much since I bought it last summer. I had some initial trouble with the touchscreen and backlight, but those were eventually fixed with updated BIOS and kernels.

Reviewing our inxi's, I see that my UEFI firmware is 6 months older and I have the 4500U instead of the 4700U. I don't have any kernel arguments affecting the touch-pad. At the moment I'm running Mint Cinnamon using the Ubuntu 5.11.0-22 kernel series. I also booted an old endeavourOS XFCE liveUSB (5.7.8 kernel) and the touch-pad worked in that live environment.

Lenovo has quite a few flex 5 14" models sharing the same chassis, so there still could be a bug or a missing device ID in the kernel. The problem does have a number of google hits and has been reported in a number of places. Most of the posted workarounds are for either the 15" model or the elan touchpad (as you have already seen.) I'll try downloading a Garuda ISO later and see if my touchpad works in the Garuda live environment.

2 Likes

There seem to be quite some differences between machines sharing a name - I got the same Slim 7 model as yours and my touchpad didnt work ootb (it has an elan touchpad which needs the module blacklisted to work) :eyes:

4 Likes

My touchpad is working with Garuda KDE live desktop. My xinput and inxi follow. It is hard to dismiss a hardware fault. However, Lenovo might use different touch-pad models in different production runs... Asus was notorious for swapping parts in different production batches. These things matter because the kernel needs the device ID to select the device parameters. Unknown parts won't work! Does any linux distro see the touchpad?

xinput
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech M187                             id=11   [slave  pointer  (2)]
⎜   ↳ Wacom HID 5214 Pen stylus                 id=13   [slave  pointer  (2)]
⎜   ↳ Wacom HID 5214 Finger touch               id=14   [slave  pointer  (2)]
⎜   ↳ MSFT0001:00 06CB:CE2D Mouse               id=15   [slave  pointer  (2)]
⎜   ↳ MSFT0001:00 06CB:CE2D Touchpad            id=16   [slave  pointer  (2)]
⎜   ↳ Wacom HID 5214 Pen eraser                 id=19   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
↳ Power Button                              id=6    [slave  keyboard (3)]
↳ Video Bus                                 id=7    [slave  keyboard (3)]
↳ Power Button                              id=8    [slave  keyboard (3)]
↳ Sleep Button                              id=9    [slave  keyboard (3)]
↳ Integrated Camera: Integrated C           id=10   [slave  keyboard (3)]
↳ Ideapad extra buttons                     id=12   [slave  keyboard (3)]
↳ AT Translated Set 2 keyboard              id=17   [slave  keyboard (3)]
↳ Logitech M187                             id=18   [slave  keyboard (3)]
inxi
inxi -Fxxxza
System:    Kernel: 5.13.5-zen1-1-zen x86_64 bits: 64 compiler: gcc v: 11.1.0 
parameters: BOOT_IMAGE=/boot/vmlinuz-x86_64 lang=en_US keytable=us tz=UTC misobasedir=garuda 
misolabel=GARUDA_DR460NIZED_SOARING_ quiet systemd.show_status=1 driver=free nouveau.modeset=1 
i915.modeset=1 radeon.modeset=1 
Desktop: KDE Plasma 5.22.4 tk: Qt 5.15.2 info: latte-dock wm: kwin_x11 vt: 1 dm: SDDM 
Distro: Garuda Linux base: Arch Linux 
Machine:   Type: Convertible System: LENOVO product: 81X2 v: IdeaPad Flex 5 14ARE05 serial: <filter> 
Chassis: type: 31 v: IdeaPad Flex 5 14ARE05 serial: <filter> 
Mobo: LENOVO model: LNVNB161216 v: SDK0J40700 WIN serial: <filter> UEFI: LENOVO v: EECN29WW 
date: 10/15/2020 
Battery:   ID-1: BAT0 charge: 47.0 Wh (100.0%) condition: 47.0/52.5 Wh (89.5%) volts: 12.9 min: 11.5 
model: Celxpert L19C3PD6 type: Li-poly serial: <filter> status: Full cycles: 76 
CPU:       Info: 6-Core model: AMD Ryzen 5 4500U with Radeon Graphics bits: 64 type: MCP arch: Zen 2 
family: 17 (23) model-id: 60 (96) stepping: 1 microcode: 8600104 cache: L2: 3 MiB 
flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm bogomips: 28446 
Speed: 1397 MHz min/max: 1400/2375 MHz boost: enabled Core speeds (MHz): 1: 1397 2: 1678 
3: 1636 4: 1774 5: 1662 6: 2653 
Vulnerabilities: Type: itlb_multihit status: Not affected 
Type: l1tf status: Not affected 
Type: mds status: Not affected 
Type: meltdown status: Not affected 
Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via prctl and seccomp 
Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer sanitization 
Type: spectre_v2 
mitigation: Full AMD retpoline, IBPB: conditional, IBRS_FW, STIBP: disabled, RSB filling 
Type: srbds status: Not affected 
Type: tsx_async_abort status: Not affected 
Graphics:  Device-1: AMD Renoir vendor: Lenovo driver: amdgpu v: kernel bus-ID: 04:00.0 chip-ID: 1002:1636 
class-ID: 0300 
Device-2: Syntek Integrated Camera type: USB driver: uvcvideo bus-ID: 1-4:2 chip-ID: 174f:243f 
class-ID: 0e02 serial: <filter> 
Display: x11 server: X.Org 1.20.12 compositor: kwin_x11 driver: loaded: amdgpu,ati 
unloaded: modesetting alternate: fbdev,vesa display-ID: :0 screens: 1 
Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x285mm (20.0x11.2") s-diag: 582mm (22.9") 
Monitor-1: eDP res: 1920x1080 hz: 60 dpi: 158 size: 309x174mm (12.2x6.9") diag: 355mm (14") 
OpenGL: renderer: AMD RENOIR (DRM 3.41.0 5.13.5-zen1-1-zen LLVM 12.0.1) v: 4.6 Mesa 21.1.5 
direct render: Yes 
Audio:     Device-1: AMD driver: snd_hda_intel v: kernel bus-ID: 04:00.1 chip-ID: 1002:1637 class-ID: 0403 
Device-2: AMD Raven/Raven2/FireFlight/Renoir Audio Processor vendor: Lenovo driver: N/A 
alternate: snd_pci_acp3x, snd_rn_pci_acp3x bus-ID: 04:00.5 chip-ID: 1022:15e2 class-ID: 0480 
Device-3: AMD Family 17h HD Audio vendor: Lenovo driver: snd_hda_intel v: kernel 
bus-ID: 04:00.6 chip-ID: 1022:15e3 class-ID: 0403 
Sound Server-1: ALSA v: k5.13.5-zen1-1-zen running: yes 
Sound Server-2: JACK v: 1.9.19 running: no 
Sound Server-3: PulseAudio v: 15.0 running: no
Sound Server-4: PipeWire v: 0.3.32 running: yes
Network:   Device-1: Realtek RTL8822CE 802.11ac PCIe Wireless Network Adapter vendor: Lenovo
driver: rtw_8822ce v: N/A modules: rtw88_8822ce port: 2000 bus-ID: 02:00.0 chip-ID: 10ec:c822
class-ID: 0280
IF: wlp2s0 state: down mac: <filter>
Bluetooth: Device-1: Realtek Bluetooth Radio type: USB driver: btusb v: 0.8 bus-ID: 3-4:4
chip-ID: 0bda:c123 class-ID: e001 serial: <filter>
Report: bt-adapter ID: hci0 rfk-id: 2 state: down bt-service: enabled,running rfk-block:
hardware: no software: yes address: <filter>
Drives:    Local Storage: total: 268.35 GiB used: 0 KiB (0.0%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: SK Hynix model: HFM256GDHTNI-87A0B size: 238.47 GiB
block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s lanes: 4 type: SSD serial: <filter>
rev: 11000C00 temp: 35.9 C scheme: GPT
ID-2: /dev/sda maj-min: 8:0 type: USB vendor: Samsung model: Flash Drive size: 29.88 GiB
block-size: physical: 512 B logical: 512 B type: SSD serial: <filter> rev: 1100 scheme: MBR
SMART Message: Unknown USB bridge. Flash drive/Unsupported enclosure?
Swap:      Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
ID-1: swap-1 type: zram size: 15 GiB used: 0 KiB (0.0%) priority: 100 dev: /dev/zram0
Sensors:   System Temperatures: cpu: 60.2 C mobo: 47.0 C gpu: amdgpu temp: 48.0 C
Fan Speeds (RPM): N/A
Info:      Processes: 220 Uptime: 1m wakeups: 4 Memory: 15.01 GiB used: 2.6 GiB (17.4%) Init: systemd
v: 249 tool: systemctl Compilers: gcc: 11.1.0 clang: 12.0.1 Packages: pacman: 1157 lib: 290
Shell: fish v: 3.3.1 default: Bash v: 5.1.8 running-in: konsole inxi: 3.3.06