I can't get my touchpad to work

I just installed Manjaro (Gnome) on my laptop which is a Lenovo 14w gen2 and I am having troubles getting the touchpad to work.
A friend who had the same issue on the same machine found a solution at

ttps://gist.github.com/mgd722/436bf5d656f3005c40a9eef2d9c31fae

however this does not work for me. He is running ubuntu 22 I think.
I would like to stay on Manjaro as I am more familiar with this distro but I can’t find any solution that work for me.
I updated my BIOS using

ttps://wiki.archlinux.org/title/Flashing_BIOS_from_Linux#Lenovo

but it makes no difference.
The touchpad is functionnal as it works in the BIOS and worked in windows before I switched for Manjaro.
I am not an advanced linux user

Here is the output of some commands that could maybe help you

$ inxi -Fxxxrz --usb
System:
  Kernel: 6.12.44-2-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 15.2.1
    clocksource: hpet
  Desktop: GNOME v: 48.4 tk: GTK v: 3.24.50 wm: gnome-shell
    tools: gsd-screensaver-proxy dm: GDM v: 48.0 Distro: Manjaro
    base: Arch Linux
Machine:
  Type: Laptop System: LENOVO product: 82N9 v: Lenovo 14w Gen 2
    serial: <superuser required> Chassis: type: 10 v: Lenovo 14w Gen 2
    serial: <superuser required>
  Mobo: LENOVO model: LNVNB161216 v: SDK0L22692WIN
    serial: <superuser required> part-nu: LENOVO_MT_82N9_BU_idea_FM_14w Gen 2
    uuid: <superuser required> UEFI: LENOVO v: H0CN31WW date: 12/06/2024
Battery:
  ID-1: BAT0 charge: 48.9 Wh (100%) condition: 48.9/57 Wh (85.8%) volts: 11.52
    min: N/A model: SMP SR Real Battery type: Li-poly serial: <filter> charging:
    status: full cycles: 203
  Device-1: hidpp_battery_0 model: Logitech Wireless Mouse M315/M235
    serial: <filter> charge: 100% (should be ignored) rechargeable: yes
    status: discharging
CPU:
  Info: dual core model: AMD 3015e with Radeon Graphics bits: 64 type: MT MCP
    smt: enabled arch: Zen rev: 1 cache: L1: 192 KiB L2: 1024 KiB L3: 4 MiB
  Speed (MHz): avg: 399 min/max: 400/1200 boost: enabled cores: 1: 399
    2: 399 3: 399 4: 399 bogomips: 9584
  Flags-basic: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a
    ssse3 svm
Graphics:
  Device-1: Advanced Micro Devices [AMD/ATI] Picasso/Raven 2 [Radeon Vega
    Series / Radeon Mobile Series] vendor: Lenovo driver: amdgpu v: kernel
    arch: GCN-5 pcie: speed: 8 GT/s lanes: 16 ports: active: eDP-1
    empty: DP-1,HDMI-A-1 bus-ID: 04:00.0 chip-ID: 1002:15d8 class-ID: 0300
    temp: 48.0 C
  Device-2: Chicony Integrated Camera driver: uvcvideo type: USB rev: 2.0
    speed: 480 Mb/s lanes: 1 bus-ID: 1-6:4 chip-ID: 04f2:b6c2 class-ID: 0e02
    serial: <filter>
  Display: wayland server: X.org v: 1.21.1.18 with: Xwayland v: 24.1.8
    compositor: gnome-shell driver: X: loaded: amdgpu
    unloaded: modesetting,radeon alternate: fbdev,vesa dri: radeonsi
    gpu: amdgpu display-ID: 0
  Monitor-1: eDP-1 model: BOE Display 0x08e3 res: 1920x1080 dpi: 158
    size: 309x174mm (12.17x6.85") diag: 355mm (14") modes: max: 1920x1080
    min: 640x480
  API: EGL v: 1.5 hw: drv: amd radeonsi platforms: device: 0 drv: radeonsi
    device: 1 drv: swrast gbm: drv: kms_swrast surfaceless: drv: radeonsi
    wayland: drv: radeonsi x11: drv: radeonsi
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 25.2.1-arch1.4
    glx-v: 1.4 direct-render: yes renderer: AMD Radeon Graphics (radeonsi
    raven2 ACO DRM 3.61 6.12.44-2-MANJARO) device-ID: 1002:15d8
    display-ID: :0.0
  Info: Tools: api: eglinfo,glxinfo x11: xprop,xrandr
Audio:
  Device-1: Advanced Micro Devices [AMD/ATI] Raven/Raven2/Fenghuang HDMI/DP
    Audio vendor: Lenovo driver: snd_hda_intel v: kernel pcie: speed: 8 GT/s
    lanes: 16 bus-ID: 04:00.1 chip-ID: 1002:15de class-ID: 0403
  Device-2: Advanced Micro Devices [AMD] Audio Coprocessor vendor: Lenovo
    driver: snd_pci_acp3x v: kernel pcie: speed: 8 GT/s lanes: 16
    bus-ID: 04:00.5 chip-ID: 1022:15e2 class-ID: 0480
  Device-3: Advanced Micro Devices [AMD] Family 17h/19h/1ah HD Audio
    vendor: Lenovo driver: snd_hda_intel v: kernel pcie: speed: 8 GT/s lanes: 16
    bus-ID: 04:00.6 chip-ID: 1022:15e3 class-ID: 0403
  API: ALSA v: k6.12.44-2-MANJARO status: kernel-api with: aoss
    type: oss-emulator
  Server-1: JACK v: 1.9.22 status: off
  Server-2: PipeWire v: 1.4.7 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
Network:
  Device-1: MEDIATEK MT7921 802.11ax PCI Express Wireless Network Adapter
    vendor: Lenovo driver: mt7921e v: kernel pcie: speed: 2.5 GT/s lanes: 1
    bus-ID: 01:00.0 chip-ID: 14c3:7961 class-ID: 0280
  IF: wlp1s0 state: up mac: <filter>
Bluetooth:
  Device-1: Foxconn / Hon Hai MediaTek Bluetooth Adapter driver: btusb v: 0.8
    type: USB rev: 2.1 speed: 480 Mb/s lanes: 1 bus-ID: 1-5:3 chip-ID: 0489:e0cd
    class-ID: e001 serial: <filter>
  Report: rfkill ID: hci0 rfk-id: 2 state: up address: see --recommends
Drives:
  Local Storage: total: 238.47 GiB used: 9.81 GiB (4.1%)
  ID-1: /dev/nvme0n1 vendor: SK Hynix model: HFM256GD3HX015N
    size: 238.47 GiB speed: 31.6 Gb/s lanes: 4 tech: SSD serial: <filter>
    fw-rev: 41030C20 temp: 32.9 C scheme: GPT
Partition:
  ID-1: / size: 238.18 GiB used: 9.81 GiB (4.1%) fs: btrfs dev: /dev/nvme0n1p2
  ID-2: /boot/efi size: 299.4 MiB used: 776 KiB (0.3%) fs: vfat
    dev: /dev/nvme0n1p1
  ID-3: /home size: 238.18 GiB used: 9.81 GiB (4.1%) fs: btrfs
    dev: /dev/nvme0n1p2
  ID-4: /var/log size: 238.18 GiB used: 9.81 GiB (4.1%) fs: btrfs
    dev: /dev/nvme0n1p2
Swap:
  Alert: No swap data was found.
USB:
  Hub-1: 1-0:1 info: hi-speed hub with single TT ports: 6 rev: 2.0
    speed: 480 Mb/s lanes: 1 chip-ID: 1d6b:0002 class-ID: 0900
  Device-1: 1-3:2 info: Logitech Nano Receiver type: mouse,HID
    driver: logitech-djreceiver,usbhid interfaces: 2 rev: 2.0 speed: 12 Mb/s
    lanes: 1 power: 98mA chip-ID: 046d:c52f class-ID: 0300
  Device-2: 1-5:3 info: Foxconn / Hon Hai MediaTek Bluetooth Adapter
    type: bluetooth driver: btusb interfaces: 3 rev: 2.1 speed: 480 Mb/s
    lanes: 1 power: 100mA chip-ID: 0489:e0cd class-ID: e001 serial: <filter>
  Device-3: 1-6:4 info: Chicony Integrated Camera type: video
    driver: uvcvideo interfaces: 2 rev: 2.0 speed: 480 Mb/s lanes: 1
    power: 500mA chip-ID: 04f2:b6c2 class-ID: 0e02 serial: <filter>
  Hub-2: 2-0:1 info: super-speed hub ports: 4 rev: 3.1 speed: 10 Gb/s
    lanes: 1 chip-ID: 1d6b:0003 class-ID: 0900
Sensors:
  System Temperatures: cpu: 49.4 C mobo: 46.0 C gpu: amdgpu temp: 49.0 C
  Fan Speeds (rpm): N/A
Repos:
  Packages: pm: pacman pkgs: 1234
  No active apt repos in: /etc/apt/sources.list
  Active pacman repo servers in: /etc/pacman.d/mirrorlist
    1: https://ftp.rz.tu-bs.de/pub/mirror/manjaro.org/repos/stable/$repo/$arch
    2: https://mnvoip.mm.fcix.net/manjaro/stable/$repo/$arch
    3: https://mirror.2degrees.nz/manjaro/stable/$repo/$arch
Info:
  Memory: total: 8 GiB note: est. available: 7.12 GiB used: 3.05 GiB (42.8%)
  Processes: 282 Power: uptime: 25m states: freeze,mem,disk suspend: deep
    wakeups: 0 hibernate: platform Init: systemd v: 257 default: graphical
  Compilers: gcc: 15.2.1 Shell: Zsh v: 5.9 running-in: kgx inxi: 3.3.39
$ lspci -nnk
00:00.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 Root Complex [1022:15d0]
	Subsystem: Lenovo Device [17aa:3817]
00:00.2 IOMMU [0806]: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 IOMMU [1022:15d1]
	Subsystem: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 IOMMU [1022:15d1]
00:01.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge [1022:1452]
00:01.2 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 PCIe GPP Bridge [6:0] [1022:15d3]
	Subsystem: Advanced Micro Devices, Inc. [AMD] Device [1022:1234]
	Kernel driver in use: pcieport
00:01.5 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 PCIe GPP Bridge [6:0] [1022:15d3]
	Subsystem: Advanced Micro Devices, Inc. [AMD] Device [1022:1234]
	Kernel driver in use: pcieport
00:01.6 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 PCIe GPP Bridge [6:0] [1022:15d3]
	Subsystem: Advanced Micro Devices, Inc. [AMD] Device [1022:1234]
	Kernel driver in use: pcieport
00:08.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge [1022:1452]
00:08.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 Internal PCIe GPP Bridge 0 to Bus A [1022:15db]
	Subsystem: Advanced Micro Devices, Inc. [AMD] Device [1022:0000]
	Kernel driver in use: pcieport
00:14.0 SMBus [0c05]: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller [1022:790b] (rev 61)
	Subsystem: Lenovo Device [17aa:384b]
	Kernel driver in use: piix4_smbus
	Kernel modules: i2c_piix4, sp5100_tco
00:14.3 ISA bridge [0601]: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge [1022:790e] (rev 51)
	Subsystem: Lenovo Device [17aa:3844]
00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 Device 24: Function 0 [1022:15e8]
00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 Device 24: Function 1 [1022:15e9]
00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 Device 24: Function 2 [1022:15ea]
00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 Device 24: Function 3 [1022:15eb]
	Kernel driver in use: k10temp
	Kernel modules: k10temp
00:18.4 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 Device 24: Function 4 [1022:15ec]
00:18.5 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 Device 24: Function 5 [1022:15ed]
00:18.6 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 Device 24: Function 6 [1022:15ee]
00:18.7 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 Device 24: Function 7 [1022:15ef]
01:00.0 Network controller [0280]: MEDIATEK Corp. MT7921 802.11ax PCI Express Wireless Network Adapter [14c3:7961]
	Subsystem: Lenovo Device [17aa:e0bc]
	Kernel driver in use: mt7921e
	Kernel modules: mt7921e
02:00.0 Non-Volatile memory controller [0108]: SK hynix Gold P31/BC711/PC711 NVMe Solid State Drive [1c5c:174a]
	Subsystem: SK hynix Gold P31/BC711/PC711 NVMe Solid State Drive [1c5c:174a]
	Kernel driver in use: nvme
	Kernel modules: nvme
03:00.0 SD Host controller [0805]: O2 Micro, Inc. SD/MMC Card Reader Controller [1217:8621] (rev 01)
	Subsystem: Lenovo Device [17aa:3849]
	Kernel driver in use: sdhci-pci
	Kernel modules: sdhci_pci
04:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Picasso/Raven 2 [Radeon Vega Series / Radeon Vega Mobile Series] [1002:15d8] (rev e9)
	Subsystem: Lenovo Device [17aa:3812]
	Kernel driver in use: amdgpu
	Kernel modules: amdgpu
04:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Raven/Raven2/Fenghuang HDMI/DP Audio Controller [1002:15de]
	Subsystem: Lenovo Device [17aa:380c]
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel
04:00.2 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD] Raven/Raven2/FireFlight/Renoir/Cezanne Platform Security Processor [1022:15df]
	Subsystem: Lenovo Device [17aa:3835]
	Kernel driver in use: ccp
	Kernel modules: ccp
04:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Raven2 USB 3.1 [1022:15e5]
	Subsystem: Lenovo Device [17aa:380b]
	Kernel driver in use: xhci_hcd
04:00.5 Multimedia controller [0480]: Advanced Micro Devices, Inc. [AMD] Audio Coprocessor [1022:15e2]
	Subsystem: Lenovo Device [17aa:3837]
	Kernel driver in use: snd_pci_acp3x
	Kernel modules: snd_pci_acp3x, snd_rn_pci_acp3x, snd_pci_acp5x, snd_pci_acp6x, snd_acp_pci, snd_rpl_pci_acp6x, snd_pci_ps, snd_sof_amd_renoir, snd_sof_amd_rembrandt, snd_sof_amd_vangogh, snd_sof_amd_acp63, snd_sof_amd_acp70
04:00.6 Audio device [0403]: Advanced Micro Devices, Inc. [AMD] Family 17h/19h/1ah HD Audio Controller [1022:15e3]
	Subsystem: Lenovo Device [17aa:3834]
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel
$ xinput list
WARNING: running xinput against an Xwayland server. See the xinput man page for details.
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ xwayland-pointer:15                     	id=6	[slave  pointer  (2)]
⎜   ↳ xwayland-relative-pointer:15            	id=7	[slave  pointer  (2)]
⎜   ↳ xwayland-pointer-gestures:15            	id=8	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ xwayland-keyboard:15                    	id=9	[slave  keyboard (3)]
$ libinput list-devices
Device:                  Power Button
Kernel:                  /dev/input/event2
Id:                      host:0000:0001
Group:                   1
Seat:                    seat0, default
Capabilities:            keyboard 
Tap-to-click:            n/a
Tap-and-drag:            n/a
Tap button map:          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
Scroll button:           n/a
Scroll button lock:      n/a
Click methods:           none
Clickfinger button map:  n/a
Disable-w-typing:        n/a
Disable-w-trackpointing: n/a
Accel profiles:          n/a
Rotation:                0.0
Area rectangle:          n/a

Device:                  Video Bus
Kernel:                  /dev/input/event3
Id:                      host:0000:0006
Group:                   2
Seat:                    seat0, default
Capabilities:            keyboard 
Tap-to-click:            n/a
Tap-and-drag:            n/a
Tap button map:          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
Scroll button:           n/a
Scroll button lock:      n/a
Click methods:           none
Clickfinger button map:  n/a
Disable-w-typing:        n/a
Disable-w-trackpointing: n/a
Accel profiles:          n/a
Rotation:                0.0
Area rectangle:          n/a

Device:                  Lid Switch
Kernel:                  /dev/input/event1
Id:                      host:0000:0005
Group:                   3
Seat:                    seat0, default
Capabilities:            switch
Tap-to-click:            n/a
Tap-and-drag:            n/a
Tap button map:          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
Scroll button:           n/a
Scroll button lock:      n/a
Click methods:           none
Clickfinger button map:  n/a
Disable-w-typing:        n/a
Disable-w-trackpointing: n/a
Accel profiles:          n/a
Rotation:                0.0
Area rectangle:          n/a

Device:                  Power Button
Kernel:                  /dev/input/event0
Id:                      host:0000:0001
Group:                   4
Seat:                    seat0, default
Capabilities:            keyboard 
Tap-to-click:            n/a
Tap-and-drag:            n/a
Tap button map:          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
Scroll button:           n/a
Scroll button lock:      n/a
Click methods:           none
Clickfinger button map:  n/a
Disable-w-typing:        n/a
Disable-w-trackpointing: n/a
Accel profiles:          n/a
Rotation:                0.0
Area rectangle:          n/a

Device:                  Logitech M315/M235
Kernel:                  /dev/input/event5
Id:                      usb:046d:4009
Group:                   5
Seat:                    seat0, default
Capabilities:            keyboard pointer 
Tap-to-click:            n/a
Tap-and-drag:            n/a
Tap button map:          n/a
Tap drag lock:           n/a
Left-handed:             disabled
Nat.scrolling:           disabled
Middle emulation:        disabled
Calibration:             n/a
Scroll methods:          button
Scroll button:           BTN_MIDDLE
Scroll button lock:      disabled
Click methods:           none
Clickfinger button map:  n/a
Disable-w-typing:        n/a
Disable-w-trackpointing: n/a
Accel profiles:          flat *adaptive custom
Rotation:                0.0
Area rectangle:          n/a

Device:                  Ideapad extra buttons
Kernel:                  /dev/input/event6
Id:                      host:0000:0000
Group:                   6
Seat:                    seat0, default
Capabilities:            keyboard 
Tap-to-click:            n/a
Tap-and-drag:            n/a
Tap button map:          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
Scroll button:           n/a
Scroll button lock:      n/a
Click methods:           none
Clickfinger button map:  n/a
Disable-w-typing:        n/a
Disable-w-trackpointing: n/a
Accel profiles:          n/a
Rotation:                0.0
Area rectangle:          n/a

Device:                  AT Translated Set 2 keyboard
Kernel:                  /dev/input/event4
Id:                      serial:0001:0001
Group:                   7
Seat:                    seat0, default
Capabilities:            keyboard 
Tap-to-click:            n/a
Tap-and-drag:            n/a
Tap button map:          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
Scroll button:           n/a
Scroll button lock:      n/a
Click methods:           none
Clickfinger button map:  n/a
Disable-w-typing:        n/a
Disable-w-trackpointing: n/a
Accel profiles:          n/a
Rotation:                0.0
Area rectangle:          n/a

If you read this, thank you for your time and sorry for the missing ‘h’ at the beginning of the links, I am not alowed to post links : P

It seems your touchpad isn’t being detected at all. This is what output should look like:

❯ libinput list-devices | grep Touch
Device:                  FTCS1000:00 2808:0101 Touchpad

After a quick search here and elsewhere, it seems those with your laptop model have had the same issue on various distros with no resolution.

I wish I could be of more help.

Thank you for your quick answer
I already saw this post but it did not help me, I was hoping for help with the solution that worked for my friend or at least a way to find where the problem comes from.
The touchpad appears to exist as I can find it (unless I am missunderstanding the next commands)

$ ls /sys/bus/acpi/devices | grep -i elan
ELAN0643:00
ELAN238E:00
$ ls -l /sys/bus/platform/devices | grep ELAN

lrwxrwxrwx 1 root root 0 1 sept. 09:28 ELAN0643:00 -> ../../../devices/platform/AMDI0010:01/ELAN0643:00

I also found this

ttps://linux-hardware.org/?probe=80b52e7c83

That probe is from another model. Maybe it is similar but not the same elan chip. I also looked at 9-10 probes for your pc and touchpad was listed nowhere.

Should I try writing my own driver or is there some way i could get the laptop to detect it ?
Also I wonder why the acpi table modification doesn’t work for me but does for my friend

Did you read the comments there and follow different edit procedure for your model? E.g.

Thanks, worked with an ELAN0643 touchpad on a Lenovo 14w Gen2. (Also had two If/Else statements like @yamspy).

Also this comment about /etc/grub.d/40_custom.

If you did try all that and it still doesn’t work then sorry, no idea.

I already tried following the coment but unsuccessfully, my guess was that it has simething to do with wayland so i tried using an xorg session, however there was no change
I’m going to try it again, just in case i messed up last time

I found a working solution !

I took the time to read the tutorial again and found this comment :

Galacs commented on Jun 26, 2024

@axolotul You have to increment the last value of the first DefinitionBlock as is documented here for example DSDT - ArchWiki

Browsing the page I found more infos about overriding the DSDT table. It turns out that for some reason the GRUB editing method does not work for me but the mkinitcpio acpi_override does.

I’m gonna detail the steps to reproduce what I did so it could help others having the same issue.

  1. Install acpica.

  2. Dump and decompile the DST table, this should output a dsdt.dsl file in /tmp.

cd /tmp
sudo cat /sys/firmware/acpi/tables/DSDT > dsdt.aml
iasl -d dsdt.aml
  1. Now edit the dsdt.dsl file :
    Find this line :
    If ((^^^PCI0.LPC0.H_EC.ECRD (RefOf (^^^PCI0.LPC0.H_EC.TPTY)) == 0x01))
    The next If statement needs to be replaced by Else
    Simply find the next If statement (it should look a lot like the first one) and replace it by Else.
EXAMPLE OF FIXED IF/ELSE BLOCK
If ((^^^PCI0.LPC0.H_EC.ECRD (RefOf (^^^PCI0.LPC0.H_EC.TPTY)) == 0x01))
              {
                  Name (SBFB, ResourceTemplate ()
                  {
                      I2cSerialBusV2 (0x0015, ControllerInitiated, 0x00061A80,
                          AddressingMode7Bit, "\\_SB.I2CD",
                          0x00, ResourceConsumer, , Exclusive,
                          )
                  })
                  Return (ConcatenateResTemplate (SBFB, SBFG))
              }
              Else
              {
                  Name (SBFC, ResourceTemplate ()
                  {
                      I2cSerialBusV2 (0x002C, ControllerInitiated, 0x00061A80,
                          AddressingMode7Bit, "\\_SB.I2CD",
                          0x00, ResourceConsumer, , Exclusive,
                          )
                  })
                  Return (ConcatenateResTemplate (SBFC, SBFG))   
              }
  1. You also need to increase the OEM version in this file (not really sure if it is necessary but bc I did not try without this step, find more infos here)
    Find the first line starting by DefinitionBlock, it should look like this :
    DefinitionBlock ("", "DSDT", 1, "LENOVO", "AMD", 0x00001000)
    You just need to increase the last field, for example : DefinitionBlock ("", "DSDT", 1, "LENOVO", "AMD", 0x00001001)

  2. Now that this is correct, we can recompile dsdt.dsl into a new (and fixed) dsdt.aml

iasl -tc dsdt.dsl
  1. For the next steps we are going to use mkinitcpio’s acpi_override hook
    First, create the /etc/initcpio/acpi_override folder and copy dsdt.aml to it.
mkdir /etc/initcpio/acpi_override
cp dsdt.aml /etc/initcpio/acpi_override/
  1. Then edit the line starting with HOOKS in /etc/ mkinitcpio.conf to add acpi_override at the end of the HOOKS array.
    It should look like this :
    HOOKS=(... **acpi_override**)

  2. Now all you need to do is to regenerate the intraramfs to make the newly added hook work.
    To do so, run the following command (it can take some time)

mkinitcpio -P
  1. Simply rebootand your touchpad should now be working !



The output of the xinput command does change for me, however libinput is detecting my device

$ xinput list
WARNING: running xinput against an Xwayland server. See the xinput man page for details.
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ xwayland-pointer:15                     	id=6	[slave  pointer  (2)]
⎜   ↳ xwayland-relative-pointer:15            	id=7	[slave  pointer  (2)]
⎜   ↳ xwayland-pointer-gestures:15            	id=8	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ xwayland-keyboard:15                    	id=9	[slave  keyboard (3)]
$ libinput list-devices
Device:                  Power Button
Kernel:                  /dev/input/event2
Id:                      host:0000:0001
Group:                   1
Seat:                    seat0, default
Capabilities:            keyboard 
Tap-to-click:            n/a
Tap-and-drag:            n/a
Tap button map:          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
Scroll button:           n/a
Scroll button lock:      n/a
Click methods:           none
Clickfinger button map:  n/a
Disable-w-typing:        n/a
Disable-w-trackpointing: n/a
Accel profiles:          n/a
Rotation:                0.0
Area rectangle:          n/a

Device:                  Video Bus
Kernel:                  /dev/input/event3
Id:                      host:0000:0006
Group:                   2
Seat:                    seat0, default
Capabilities:            keyboard 
Tap-to-click:            n/a
Tap-and-drag:            n/a
Tap button map:          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
Scroll button:           n/a
Scroll button lock:      n/a
Click methods:           none
Clickfinger button map:  n/a
Disable-w-typing:        n/a
Disable-w-trackpointing: n/a
Accel profiles:          n/a
Rotation:                0.0
Area rectangle:          n/a

Device:                  Lid Switch
Kernel:                  /dev/input/event1
Id:                      host:0000:0005
Group:                   3
Seat:                    seat0, default
Capabilities:            switch
Tap-to-click:            n/a
Tap-and-drag:            n/a
Tap button map:          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
Scroll button:           n/a
Scroll button lock:      n/a
Click methods:           none
Clickfinger button map:  n/a
Disable-w-typing:        n/a
Disable-w-trackpointing: n/a
Accel profiles:          n/a
Rotation:                0.0
Area rectangle:          n/a

Device:                  Power Button
Kernel:                  /dev/input/event0
Id:                      host:0000:0001
Group:                   4
Seat:                    seat0, default
Capabilities:            keyboard 
Tap-to-click:            n/a
Tap-and-drag:            n/a
Tap button map:          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
Scroll button:           n/a
Scroll button lock:      n/a
Click methods:           none
Clickfinger button map:  n/a
Disable-w-typing:        n/a
Disable-w-trackpointing: n/a
Accel profiles:          n/a
Rotation:                0.0
Area rectangle:          n/a

Device:                  Ideapad extra buttons
Kernel:                  /dev/input/event8
Id:                      host:0000:0000
Group:                   5
Seat:                    seat0, default
Capabilities:            keyboard 
Tap-to-click:            n/a
Tap-and-drag:            n/a
Tap button map:          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
Scroll button:           n/a
Scroll button lock:      n/a
Click methods:           none
Clickfinger button map:  n/a
Disable-w-typing:        n/a
Disable-w-trackpointing: n/a
Accel profiles:          n/a
Rotation:                0.0
Area rectangle:          n/a

Device:                  ELAN0643:00 04F3:31B2 Mouse
Kernel:                  /dev/input/event12
Id:                      i2c:04f3:31b2
Group:                   6
Seat:                    seat0, default
Capabilities:            pointer 
Tap-to-click:            n/a
Tap-and-drag:            n/a
Tap button map:          n/a
Tap drag lock:           n/a
Left-handed:             disabled
Nat.scrolling:           disabled
Middle emulation:        n/a
Calibration:             n/a
Scroll methods:          *button
Scroll button:           BTN_RIGHT
Scroll button lock:      disabled
Click methods:           none
Clickfinger button map:  n/a
Disable-w-typing:        n/a
Disable-w-trackpointing: n/a
Accel profiles:          flat *adaptive custom
Rotation:                n/a
Area rectangle:          n/a

Device:                  ELAN0643:00 04F3:31B2 Touchpad
Kernel:                  /dev/input/event13
Id:                      i2c:04f3:31b2
Group:                   6
Seat:                    seat0, default
Size:                    103x58mm
Capabilities:            pointer gesture
Tap-to-click:            disabled
Tap-and-drag:            enabled
Tap button map:          left/right/middle
Tap drag lock:           disabled
Left-handed:             disabled
Nat.scrolling:           disabled
Middle emulation:        disabled
Calibration:             n/a
Scroll methods:          *two-finger edge 
Scroll button:           n/a
Scroll button lock:      n/a
Click methods:           *button-areas clickfinger 
Clickfinger button map:  left/right/middle
Disable-w-typing:        enabled
Disable-w-trackpointing: enabled
Accel profiles:          flat *adaptive custom
Rotation:                n/a
Area rectangle:          n/a

Device:                  AT Translated Set 2 keyboard
Kernel:                  /dev/input/event4
Id:                      serial:0001:0001
Group:                   7
Seat:                    seat0, default
Capabilities:            keyboard 
Tap-to-click:            n/a
Tap-and-drag:            n/a
Tap button map:          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
Scroll button:           n/a
Scroll button lock:      n/a
Click methods:           none
Clickfinger button map:  n/a
Disable-w-typing:        n/a
Disable-w-trackpointing: n/a
Accel profiles:          n/a
Rotation:                0.0
Area rectangle:          n/a

The content of my fixed dsdt.dsl file is here.

My hardware Probe BEFORE / AFTER

3 Likes

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.