2

I bought a Lenovo Thinkbook (Intel i5 10th generation) just last week. I installed ubuntu 18.04. The touchpad hasnt been working ever since. I have not checked it on Windows, as I bought a DOS machine and put ubuntu on it,

Kernel is 5.3.0-26-generic #28~18.04.1-Ubuntu.

I have followed links from here: Lenovo IdeaPad 330 touchpad not working and https://itsfoss.com/update-firmware-ubuntu/ which talk about upgrading firmware. When I did "sudo fwupdmgr update", nothing showed up.

I also see that one of the above links asks to modify kernel, but I am not sure thats the right thing to do as I have a kernel which is beyond 4.18. The link also claims that Ubuntu 18.04 should not have this problem. But, I have this problem.

When I do a sudo acpidump | grep -C3 ELAN, I get the following

33230: 0F 00 03 04 49 4E 54 31 70 0A 20 49 44 41 44 A4  ....INT1p. IDAD.
 33240: 84 53 42 46 53 53 42 46 49 00 5B 82 4D 0D 54 50  .SBFSSBFI.[.M.TP
 33250: 44 32 08 5F 41 44 52 00 08 49 44 41 44 00 08 48  D2._ADR..IDAD..H
 33260: 49 44 32 00 08 5F 48 49 44 0D 45 4C 41 4E 30 36  ID2.._HID.ELAN06
 33270: 32 46 00 08 5F 43 49 44 0D 50 4E 50 30 43 35 30  2F.._CID.PNP0C50
 33280: 00 08 5F 55 49 44 01 14 46 04 5F 44 53 4D 04 A0  .._UID..F._DSM..
 33290: 37 93 68 11 13 0A 10 F7 F6 DF 3C 67 42 55 45 AD  7.h.......<gBUE

When I type in dmesg | grep i2c, I get:

[    1.792338] i2c /dev entries driver

When I type dmesg | grep elan, I get nothing on the terminal.

I have run out of ideas. I have tried all that I could. Any suggestions would be of great help.

Nanditha
  • 141
  • It may be a simple matter of settings. What is the output of gsettings get org.gnome.settings-daemon.plugins.media-keys touchpad-toggle? – Jos Jan 24 '20 at 11:14
  • Strange. It says -No such key “touchpad-toggle”. When I go to "Mouse and Touchpad" settings, I do not see an option for Touchpad. I only see Mouse settings. And when I do: xinput list, I do not see Touchpad listed there. – Nanditha Jan 24 '20 at 16:45
  • Do you run an X session or a Wayland session? – Jos Jan 25 '20 at 10:13
  • I am running an X session – Nanditha Jan 26 '20 at 11:59
  • I have the same problem in ubuntu 16.04 (see here). It seems that as long as the device id is not added to the kernel, ubuntu will not recognize it! I fear that the only solutions are either to recompile the kernel, or file a bug report and wait for a new kernel that includes the device id to come out. – yaron160 Jan 27 '20 at 21:57
  • @Nanditha, I'm also facing the same problem i.e., touchpad not detected and working on ubuntu 18.04. Is your problem resolved? If so, can you please provide me the fix? – Bhuvan Aug 24 '20 at 23:55

1 Answers1

1

It looks like your specific Elan touchpad (Elan 062F) can be fixed by following the steps in this thread here

The comment which fixes your problem is this

This Lenovo machine that I'd purchased also has the same issue, but with a different touchpad model.

Try these steps mentioned in the thread and let me know if it works for you.:

  1. Disassemple the current dsdt ACPI table (see this link):
mkdir -p /tmp/acpitables
cd /tmp/acpitables
sudo acpidump > acpidump.out
acpixtract -a acpidump.out
iasl -d dsdt.dat

In my case the output dsdt.dsl file contained some invalid error output lines at the very beginning which I just removed. Otherwise, the compiling in step 4 results in errors.

  1. Apply this patch to dsdt.dsl (see this link):
- Name (_HID, "XXXX0000") // _HID: Hardware ID
+ Name (_HID, "ELAN062F") // _HID: Hardware ID
  1. Create an assembler source file out of the patched dsdt.dsl:
iasl -sa dsdt.dsl
  1. Create a CPIO archive to be loaded by the bootloader (see this link):
mkdir -p kernel/firmware/acpi
cp dsdt.aml ssdt1.aml kernel/firmware/acpi
find kernel | cpio -H newc --create > acpi_override
sudo cp acpi_override /boot
  1. Install the patched dsdt file (see this link):
cpio --extract < ./acpi_override
cp kernel/firmware/acpi/dsdt.aml /boot/fixed_dsdt.aml

and Create or update /boot/grub/custom.cfg to contain acpi /fixed_dsdt.aml

  • I followed all steps and on Apply this patch to dsdt.dsl. didn't explain on how to apply the patch. is it download the github file and replace the dsdt.dsl or add line or something, or replace XXXX0000 to ELAN062F?? because i cant find any XXXX0000 on generated dsdt.dsl.

    also while doing cp dsdt.aml ssdt1.aml kernel/firmware/acpi ssdt1.aml was not found. please elaborate..

    – Jastria Rahmat Feb 09 '20 at 07:59