Lenovo Thinkbook 14-IIL-20SL, touchpad isn't detected

Hi,
I have an Lenovo Thinkbook 14-IIL 20SL and installed Freebsd 14.1 and Xorg on it. The keyboard is working so far but the touchpad is not working and I would say not detected as well.
What I figured out is that the touchpad is a Buttonless Mylar® surface multi-touch touchpad found here https://psref.lenovo.com/syspool/Sys/PDF/ThinkBook/ThinkBook_14_IIL/ThinkBook_14_IIL_Spec.PDF


I tried several configurations via /usr/local/etc/X11/xorg.conf.d by copying the shared examples from /usr/local/shareX11/xorg.conf.d. In other words I tried using the libinput driver / evdev driver / synaptics driver without luck.

dmesg will not show results when grepping for touchpad or elan or synaptic. So I don't know the type of the touchpad. I believe the touchpad is not detected from a hardware perspective. maybe I have to update the BIOS.....

I also enabled the 2IC kernel module iichid_load="YES" in /boot/loader.conf.

Everything related to mouse or touchpad I found in log files are about "System mouse" and "pointer".

Any idea what can I do to get more insights or the correct driver or kernel module to get this touchpad working?
thx

Here is the probe I made https://bsd-hardware.info/?probe=0232a3609d
Here is a log snippet from the Xorg log
[ 385.343] (II) config/udev: Adding input device System mouse (/dev/input/event1)
[ 385.343] (**) System mouse: Applying InputClass "evdev pointer catchall"
[ 385.343] (**) System mouse: Applying InputClass "libinput pointer catchall"
[ 385.343] (**) System mouse: Applying InputClass "evdev pointer catchall"
[ 385.343] (II) Using input driver 'evdev' for 'System mouse'
[ 385.343] (**) System mouse: always reports core events
[ 385.343] (**) evdev: System mouse: Device: "/dev/input/event1"
[ 385.343] (--) evdev: System mouse: Vendor 0 Product 0
[ 385.343] (--) evdev: System mouse: Found 12 mouse buttons
[ 385.343] (--) evdev: System mouse: Found scroll wheel(s)
[ 385.343] (--) evdev: System mouse: Found relative axes
[ 385.343] (--) evdev: System mouse: Found x and y relative axes
[ 385.343] (II) evdev: System mouse: Configuring as mouse
[ 385.343] (II) evdev: System mouse: Adding scrollwheel support
[ 385.343] (**) evdev: System mouse: YAxisMapping: buttons 4 and 5
[ 385.343] (**) evdev: System mouse: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
[ 385.343] (**) Option "config_info" "udev:/dev/input/event1"
[ 385.343] (II) XINPUT: Adding extended input device "System mouse" (type: MOUSE, id 7)
[ 385.343] (II) evdev: System mouse: initialized for relative axes.
[ 385.343] (**) System mouse: (accel) keeping acceleration scheme 1
[ 385.343] (**) System mouse: (accel) acceleration profile 0
[ 385.343] (**) System mouse: (accel) acceleration factor: 2.000
[ 385.343] (**) System mouse: (accel) acceleration threshold: 4
 
To rule out a hardware failure, do you have confirmation that the touchpad is working, e.g. running a Linux live distribution?
 
ig4 was already loaded. doesn't work.

I boot linux mint edge, and the touchpad is working there.
Here are the infos I grepped from linux mint live system.


$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Elan Touchpad id=9 [slave pointer (2)]

$ xinput list-props 9
Device 'Elan Touchpad':
Device Enabled (189): 1
Coordinate Transformation Matrix (191): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Tapping Enabled (325): 1
libinput Tapping Enabled Default (326): 0
libinput Tapping Drag Enabled (327): 1
libinput Tapping Drag Enabled Default (328): 1
....

$ lsmod
elan_i2c 57344 0

$ modinfo
filename: /lib/modules/6.5.0-14-generic/kernel/drivers/input/mouse/elan_i2c.ko
license: GPL
description: Elan I2C/SMBus Touchpad driver
author: Duson Lin <dusonlin@emc.com.tw>
srcversion: 72D9FDC2653EBC40454A7CB
alias: i2c:elan_i2c
alias: acpi*:ELAN1000:*
...

Xorg.log
[ 46.302] (II) config/udev: Adding input device Elan Touchpad (/dev/input/event5)
[ 46.302] (**) Elan Touchpad: Applying InputClass "libinput touchpad catchall"
[ 46.302] (II) Using input driver 'libinput' for 'Elan Touchpad'
[ 46.302] (**) Elan Touchpad: always reports core events
[ 46.302] (**) Option "Device" "/dev/input/event5"
[ 46.303] (II) event5 - Elan Touchpad: is tagged by udev as: Touchpad
[ 46.304] (II) event5 - Elan Touchpad: device is a touchpad
[ 46.304] (II) event5 - Elan Touchpad: device removed
[ 46.332] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1/i2c-ELAN0634:00/input/input5/event5"
[ 46.332] (II) XINPUT: Adding extended input device "Elan Touchpad" (type: TOUCHPAD, id 9)
[ 46.333] (**) Option "AccelerationScheme" "none"
[ 46.333] (**) Elan Touchpad: (accel) selected scheme none/0
[ 46.333] (**) Elan Touchpad: (accel) acceleration factor: 2.000
[ 46.333] (**) Elan Touchpad: (accel) acceleration threshold: 4
[ 46.333] (II) event5 - Elan Touchpad: is tagged by udev as: Touchpad
[ 46.334] (II) event5 - Elan Touchpad: device is a touchpad
[ 46.334] (II) config/udev: Adding input device Elan Touchpad (/dev/input/mouse0)
[ 46.334] (II) No input driver specified, ignoring this device.
[ 46.334] (II) This device may have been added with another device file.

So the question seems to be is the driver or kernel module elan_i2c.ko available for freebsd?

Btw: I have no idea wabout HID etc, maybe I have to enable or install something in this direction?
 
You may try following patch
--- a/sys/dev/iicbus/iichid.c +++ b/sys/dev/iicbus/iichid.c @@ -137,6 +137,7 @@ static const struct iichid_id { int reg; } iichid_ids[] = { { "ELAN0000", IICHID_REG_ELAN }, + { "ELAN0634", IICHID_REG_ELAN }, { "PNP0C50", IICHID_REG_ACPI }, { "ACPI0C50", IICHID_REG_ACPI }, { NULL, 0 },
 
Hey,
I read
- https://docs.freebsd.org/en/books/handbook/cutting-edge/
- https://docs.freebsd.org/en/books/handbook/kernelconfig/

to learn how to update my current 14.1 release and install src.
As a second step I created my custom kernel conf, applied your patch and build and installed my new kernel.
But the touchpad isn't working.

EDIT

these are my loaded kernel modules
mb@thinkbook:~ $ cat /tmp/kldstat.txt
Id Refs Address Size Name
1 118 0xffffffff80200000 1f370e8 kernel
2 1 0xffffffff82139000 68a0 iichid.ko
3 3 0xffffffff82140000 7868 hidbus.ko
4 1 0xffffffff82148000 1c3f0 geom_eli.ko
5 1 0xffffffff82165000 baa8 ig4.ko
6 1 0xffffffff82171000 5cd608 zfs.ko
7 1 0xffffffff8273f000 77d8 cryptodev.ko
8 1 0xffffffff837f9000 1b3920 i915kms.ko
9 2 0xffffffff839ad000 7c050 drm.ko
10 1 0xffffffff83a2a000 22b8 iic.ko
11 3 0xffffffff83a2d000 3080 linuxkpi_hdmi.ko
12 3 0xffffffff83a31000 6350 dmabuf.ko
13 3 0xffffffff83a38000 3378 lindebugfs.ko
14 1 0xffffffff83a3c000 b360 ttm.ko
15 1 0xffffffff83a48000 3390 acpi_wmi.ko
16 1 0xffffffff83a4c000 93260 if_iwlwifi.ko
17 1 0xffffffff83ae0000 d200 rtsx.ko
18 1 0xffffffff83aee000 3360 uhid.ko
19 1 0xffffffff83af2000 33c0 usbhid.ko
20 1 0xffffffff83af6000 3360 wmt.ko
21 1 0xffffffff83afa000 e5b0 snd_uaudio.ko
22 1 0xffffffff83b09000 4d20 ng_ubt.ko
23 3 0xffffffff83b0e000 abb8 netgraph.ko
24 2 0xffffffff83b19000 a250 ng_hci.ko
25 2 0xffffffff83b24000 2670 ng_bluetooth.ko
26 1 0xffffffff83b27000 8560 if_ure.ko
27 1 0xffffffff83b30000 3190 uether.ko
28 1 0xffffffff83b34000 2a68 mac_ntpd.ko
 
I had a similar problem with an HP 840 G5. The touchpad worked under Linux and in the BIOS. The touchpad would stop working immediately after psm0 moused was started. The problem persisted even after rebooting back into the BIOS. moused(8) set some bit in the hardware that disabled the touchpad.

The workaround was to load the synaptics driver in X and adding the following to my .xsession.

Code:
        synclient \
                TapButton1=1 \
                TapButton2=2 \
                TapButton3=3 \
                ClickFinger1=1 \
                ClickFinger2=2 \
                ClickFinger3=3 \
                PalmDetect=1 \
                PalmMinZ=50 \
                PalmMinWidth=5 \
                VertTwoFingerScroll=1 \
                HorizTwoFingerScroll=1 \
                EmulateTwoFingerMinZ=40 \
                EmulateTwoFingerMinW=8

Of course the synaptics still doesn't work on the console but I never did use the mouse on the console.

I did add synclient TouchpadOff=1/TouchpadOff=0 to my CDE dtwmrc last night. While at OpenHack working on binutils packaging issues I was using a Logitech travel mouse and the touchpad sensitivity moved the mouse when I didn't intend it to. I had the same problem with both of my Acer laptops. Both required fiddling around with palm detection and sensitivity to finally get that right.

The other problem I had was that the two touchstick buttons failed to work though the synaptics touchstick did work. To fix that problem required setting sysctl kern.evdev.rcpt_mask=15. I will sometimes disable the touchpad and use the touchstick instead.

As I said in a previous thread, the various laptops out there usually have Synaptics but each manufacturer implements it on the motherboard differently enough that generic setup doesn't always work. One size doesn't fit all.
 
Ok. thanks for your answer.
I'm in the middle of installing slackware, will see if the touchpad is working there.
Maybe I give a thinkpad on ebay a chance, and install freebsd there. the support should work there a bit better.

thx
marko
 
Back
Top