#1104057 touchpad not working in installer on ThinkPad P1 Gen7

#1104057#5
Date:
2025-04-25 04:50:45 UTC
From:
To:
Boot method: USB
Image version: https://cdimage.debian.org/cdimage/trixie_di_alpha1/amd64/iso-cd/debian-trixie-DI-alpha1-amd64-netinst.iso
Date: 2025-04-24

Machine: ThinkPad P1 Gen7
Partitions: not relevant


Base System Installation Checklist:
[O] = OK, [E] = Error (please elaborate below), [ ] = didn't try it

Initial boot:           [O]
Detect network card:    [O]
Configure network:      [O]
Detect media:           [O]
Load installer modules: [O]
Clock/timezone setup:   [O]
User/password setup:    [O]
Detect hard drives:     [O]
Partition hard drives:  [O]
Install base system:    [O]
Install tasks:          [E]
Install boot loader:    [O]
Overall install:        [O]

Comments/Problems:

I know the WiFi interface does not work in installer, so I used the
ethernet dongle, worked fine apart from the interface being reported as
"unknown".

When I used a bad cable and configured IP address manually, the first
network error was reported in a bit misleading manner - I saw wget being
used to fetch a Release file - that failed due to DNS resolution error
but was reported as if the mirror was not carrying this particular
distribution.

The touchpad did not work in the installer, but does work in GNOME after
installation is complete. The trackpoint did work before and after,
though. Attaching lsmod from the installed system and the installer
syslog as requested in #1103993.

When installing the astronomy blend, the gavodachs2-server failed to
install, already reported separately in #1104031.

#1104057#10
Date:
2025-04-25 09:00:00 UTC
From:
To:
Can you post the content of /proc/bus/input/devices on the installed
system to see how the touchpad is detected ?

It should contain a paragraph about the touchpad looking like this:

I: Bus=0011 Vendor=0002 Product=0008 Version=0200
N: Name="AlpsPS/2 ALPS DualPoint TouchPad"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input5
(...)

With the "Sysfs=" path, you can try to find the associated driver
module. In the example above, it would be:

$ realpath
/sys/devices/platform/i8042/serio1/input/input5/device/driver/module
/sys/module/psmouse

#1104057#15
Date:
2025-04-25 11:08:58 UTC
From:
To:
Gaaa, silly gmail, I did it again, forwarding to the bug address too now.


pt., 25 kwi 2025 o 11:39 Pascal Hambourg <pascal@plouf.fr.eu.org>
napisał(a):

Here is the relevant section:

I: Bus=0011 Vendor=0002 Product=000a Version=0063
N: Name="TPPS/2 Elan TrackPoint"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input5
U: Uniq=
H: Handlers=mouse0 event4
B: PROP=21
B: EV=7
B: KEY=70000 0 0 0 0
B: REL=3

I: Bus=0018 Vendor=2c2f Product=002d Version=0100
N: Name="SNSL002D:00 2C2F:002D Mouse"
P: Phys=i2c-SNSL002D:00
S:
Sysfs=/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1/i2c-SNSL002D:00/0018:2C2F:002D.0001/input/input9
U: Uniq=
H: Handlers=mouse1 event5
B: PROP=0
B: EV=17
B: KEY=1f0000 0 0 0 0
B: REL=3
B: MSC=10

I: Bus=0018 Vendor=2c2f Product=002d Version=0100
N: Name="SNSL002D:00 2C2F:002D Touchpad"
P: Phys=i2c-SNSL002D:00
S:
Sysfs=/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1/i2c-SNSL002D:00/0018:2C2F:002D.0001/input/input10
U: Uniq=
H: Handlers=mouse2 event6
B: PROP=5
B: EV=1b
B: KEY=e520 10000 0 0 0 0
B: ABS=2e0800000000003
B: MSC=20

Complete file attached.

In my case:

$ realpath
/sys/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1/i2c-SNSL002D:00/0018:2C2F:002D.0001/driver/module
/sys/module/hid_multitouch
$ realpath
/sys/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1/i2c-SNSL002D:00/0018:2C2F:002D.0001/input/input10/device/driver/module
/sys/module/hid_multitouch

$ realpath
/sys/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1/i2c-SNSL002D:00/0018:2C2F:002D.0001/driver/module
/sys/module/hid_multitouch
$ realpath
/sys/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1/i2c-SNSL002D:00/0018:2C2F:002D.0001/input/input9/device/driver/module
/sys/module/hid_multitouch

Not sure if this is useful. Please let me know if there is anything else I
can do.

Marcin

#1104057#20
Date:
2025-04-25 13:05:16 UTC
From:
To:
Weird that there are two pointing devices in the same path.

The module hid_multitouch is present in the installer, but was not
loaded according to lsmod in the installer hardware-summary. You can try
to load it manually and see it that help.

According to lspci, pci0000:00/0000:00:15.0 uses module intel_lpss_pci
which is also present in the installer.

Maybe another driver module in the path is missing. Can you
- check the /driver/module realpath on each element of the path
- and post the output of:

$ udevadm info --attribute-walk
/sys/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1/i2c-SNSL002D:00/0018:2C2F:002D.0001/input/input10

#1104057#25
Date:
2025-04-25 13:51:28 UTC
From:
To:
pt., 25 kwi 2025 o 15:05 Pascal Hambourg <pascal@plouf.fr.eu.org>
napisał(a):

Last time I needed to load a module manually was at least a decade ago :-)
Is it just "modprobe hid_multitouch"? I'll try.

According to lspci, pci0000:00/0000:00:15.0 uses module intel_lpss_pci

$ pp=/sys;for p in devices pci0000:00 /0000:00:15.0 i2c_designware.0 i2c-1
i2c-SNSL002D:00 0018:2C2F:002D.0001 input input10;do pp=${pp}/${p};if [ -e
$pp -a -e $pp/driver/module ]; then printf "%-120s %s\n" $pp $(realpath
$pp/driver/module);fi;done
/sys/devices/pci0000:00//0000:00:15.0
                                             /sys/module/intel_lpss_pci
/sys/devices/pci0000:00//0000:00:15.0/i2c_designware.0/i2c-1/i2c-SNSL002D:00
                                            /sys/module/i2c_hid_acpi
/sys/devices/pci0000:00//0000:00:15.0/i2c_designware.0/i2c-1/i2c-SNSL002D:00/0018:2C2F:002D.0001
                        /sys/module/hid_multitouch

$ pp=/sys;for p in devices pci0000:00 /0000:00:15.0 i2c_designware.0 i2c-1
i2c-SNSL002D:00 0018:2C2F:002D.0001 input input10;do pp=${pp}/${p};if [ -e
$pp -a -e $pp/device/driver/module ]; then printf "%-120s %s\n" $pp
$(realpath $pp/device/driver/module);fi;done
/sys/devices/pci0000:00//0000:00:15.0/i2c_designware.0/i2c-1/i2c-SNSL002D:00/0018:2C2F:002D.0001/input/input10
          /sys/module/hid_multitouch

 $ udevadm info --attribute-walk
/sys/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1/i2c-SNSL002D:00/0018:2C2F:002D.0001/input/input10|cat

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device
'/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1/i2c-SNSL002D:00/0018:2C2F:002D.0001/input/input10':
    KERNEL=="input10"
    SUBSYSTEM=="input"
    DRIVER==""
    ATTR{capabilities/abs}=="2e0800000000003"
    ATTR{capabilities/ev}=="1b"
    ATTR{capabilities/ff}=="0"
    ATTR{capabilities/key}=="e520 10000 0 0 0 0"
    ATTR{capabilities/led}=="0"
    ATTR{capabilities/msc}=="20"
    ATTR{capabilities/rel}=="0"
    ATTR{capabilities/snd}=="0"
    ATTR{capabilities/sw}=="0"
    ATTR{id/bustype}=="0018"
    ATTR{id/product}=="002d"
    ATTR{id/vendor}=="2c2f"
    ATTR{id/version}=="0100"
    ATTR{inhibited}=="0"
    ATTR{name}=="SNSL002D:00 2C2F:002D Touchpad"
    ATTR{phys}=="i2c-SNSL002D:00"
    ATTR{power/async}=="disabled"
    ATTR{power/control}=="auto"
    ATTR{power/runtime_active_kids}=="0"
    ATTR{power/runtime_active_time}=="0"
    ATTR{power/runtime_enabled}=="disabled"
    ATTR{power/runtime_status}=="unsupported"
    ATTR{power/runtime_suspended_time}=="0"
    ATTR{power/runtime_usage}=="0"
    ATTR{properties}=="5"
    ATTR{uniq}==""

  looking at parent device
'/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1/i2c-SNSL002D:00/0018:2C2F:002D.0001':
    KERNELS=="0018:2C2F:002D.0001"
    SUBSYSTEMS=="hid"
    DRIVERS=="hid-multitouch"
    ATTRS{country}=="00"
    ATTRS{power/async}=="enabled"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_kids}=="0"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_enabled}=="disabled"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{quirks}=="334864"

  looking at parent device
'/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1/i2c-SNSL002D:00':
    KERNELS=="i2c-SNSL002D:00"
    SUBSYSTEMS=="i2c"
    DRIVERS=="i2c_hid_acpi"
    ATTRS{name}=="SNSL002D:00"
    ATTRS{power/async}=="enabled"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_kids}=="0"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_enabled}=="disabled"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{power/wakeup}=="enabled"
    ATTRS{power/wakeup_abort_count}=="0"
    ATTRS{power/wakeup_active}=="0"
    ATTRS{power/wakeup_active_count}=="116761"
    ATTRS{power/wakeup_count}=="0"
    ATTRS{power/wakeup_expire_count}=="0"
    ATTRS{power/wakeup_last_time_ms}=="15346576"
    ATTRS{power/wakeup_max_time_ms}=="0"
    ATTRS{power/wakeup_total_time_ms}=="14"

  looking at parent device
'/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1':
    KERNELS=="i2c-1"
    SUBSYSTEMS=="i2c"
    DRIVERS==""
    ATTRS{delete_device}=="(not readable)"
    ATTRS{name}=="Synopsys DesignWare I2C adapter"
    ATTRS{new_device}=="(not readable)"
    ATTRS{power/async}=="enabled"
    ATTRS{power/runtime_active_kids}=="0"
    ATTRS{power/runtime_enabled}=="enabled"
    ATTRS{power/runtime_status}=="suspended"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{waiting_for_supplier}=="0"

  looking at parent device
'/devices/pci0000:00/0000:00:15.0/i2c_designware.0':
    KERNELS=="i2c_designware.0"
    SUBSYSTEMS=="platform"
    DRIVERS=="i2c_designware"
    ATTRS{driver_override}=="(null)"
    ATTRS{power/async}=="enabled"
    ATTRS{power/autosuspend_delay_ms}=="1000"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_kids}=="0"
    ATTRS{power/runtime_active_time}=="1220072"
    ATTRS{power/runtime_enabled}=="enabled"
    ATTRS{power/runtime_status}=="suspended"
    ATTRS{power/runtime_suspended_time}=="14140226"
    ATTRS{power/runtime_usage}=="0"

  looking at parent device '/devices/pci0000:00/0000:00:15.0':
    KERNELS=="0000:00:15.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="intel-lpss"
    ATTRS{ari_enabled}=="0"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x0c8000"
    ATTRS{consistent_dma_mask_bits}=="64"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{device}=="0x7e78"
    ATTRS{dma_mask_bits}=="32"
    ATTRS{driver_override}=="(null)"
    ATTRS{enable}=="1"
    ATTRS{irq}=="32"
    ATTRS{local_cpulist}=="0-21"
    ATTRS{local_cpus}=="3fffff"
    ATTRS{msi_bus}=="1"
    ATTRS{numa_node}=="-1"
    ATTRS{power/async}=="enabled"
    ATTRS{power/control}=="auto"
    ATTRS{power/pm_qos_latency_tolerance_us}=="auto"
    ATTRS{power/runtime_active_kids}=="0"
    ATTRS{power/runtime_active_time}=="1225886"
    ATTRS{power/runtime_enabled}=="enabled"
    ATTRS{power/runtime_status}=="suspended"
    ATTRS{power/runtime_suspended_time}=="14136215"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{power_state}=="D3hot"
    ATTRS{remove}=="(not readable)"
    ATTRS{rescan}=="(not readable)"
    ATTRS{resource0}=="(not readable)"
    ATTRS{revision}=="0x20"
    ATTRS{subsystem_device}=="0x2235"
    ATTRS{subsystem_vendor}=="0x17aa"
    ATTRS{vendor}=="0x8086"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""
    ATTRS{power/async}=="enabled"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_kids}=="13"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_enabled}=="disabled"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{waiting_for_supplier}=="0"

#1104057#30
Date:
2025-04-25 16:59:42 UTC
From:
To:
These three modules are present in the installer. The first two were
listed as loaded in the installer.

This driver is provided by module hid_multitouch.

This driver is provided by module i2c_hid_acpi.

This driver is provided by built-in module i2c_designware_platform.

This driver is provided by module intel-lpss-pci.

So all required modules seem to be present in the installer and I have
no clue about what else is missing.
Maybe checking along the device path in the installer will give a hint.

#1104057#35
Date:
2025-04-25 17:26:04 UTC
From:
To:
I just tried loading the modules manually, and it didn't help:

Specifically I used modprobe to make sure hid_multitouch intel_lpss_pci
and i2c_hid_acpi were loaded, and this didn't help.

pt., 25 kwi 2025 o 18:59 Pascal Hambourg <pascal@plouf.fr.eu.org>
napisał(a):

I also tried loading i2c_designware but there was no such module. This
would explain why :-D

What do you mean by this exactly?

I could also try creating a diff between modules loaded in the installer
and on the installed system and load them one by one (if available) looking
if this helps.

Marcin

#1104057#40
Date:
2025-04-25 20:24:17 UTC
From:
To:
Hi,

Marcin Owsiany <porridge@debian.org> (2025-04-25):

The key was “built-in” before module: it's built into the kernel image,
and doesn't show up as a separate module (.ko). See the config file:

    CONFIG_I2C_DESIGNWARE_PLATFORM=y

(y means built-in, m would be for module, n for disabled.)

The whole story is very close to things that had been strange at times
(lpss things couple with i2c that don't seem to have any relationships
to/from actual HID modules, but if and when loaded correctly make the
input devices show up and become useful/usable).

Not sure what exact grain of sand is gripping this particular machine.


Cheers,

#1104057#45
Date:
2025-04-26 09:34:39 UTC
From:
To:
In the installed system and in the installer:

p=$(realpath
/sys/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1/i2c-SNSL002D:00/0018:2C2F:002D.0001)
while [ -n "$p" -a "$p" != '/' -a "$p" != '.' ]; do
   udevadm info --query=property --property=DEVPATH,NAME,DRIVER,MODALIAS\
                --no-pager $p
   p=$(dirname "$p")
done 2>/dev/null
a number of modules to try. Maybe try the following ones first:

thinkpad_acpi
think_lmi
firmware_attributes_class
wmi_bmof
spd5118
evdev
hid_multitouch
intel_pmc_bxt
hid_generic
ucsi_acpi
i2c_hid_acpi
intel_lpss_pci
i2c_i801
wmi

However all those listed /before/ hid_multitouch were loaded /after/ it,
so they should not be relevant, but who knows...

One other test you could do:
- add parameter "break" to the kernel command line in GRUB menu
- at the initramfs prompt, check if the touchpad is listed in
/proc/bus/input/devices
- if yes, check loaded modules in /proc/modules
- when done, resume normal boot with ctrl+d

#1104057#50
Date:
2025-04-26 11:29:55 UTC
From:
To:
Found it!

Loaded installer in rescue mode, mounted and launched a shell in the
installed system.

root@debian:/home/porridge# # touchpad does not work
root@debian:/home/porridge# dmesg|tail
[...]
[   72.090285] EXT4-fs (dm-1): mounted filesystem
fe627a07-f171-4074-b516-adb72b21bab0 r/w with ordered data mode. Quota
mode: none.
root@debian:/home/porridge# modprobe pinctrl_meteorlake
root@debian:/home/porridge# # touchpad now works!
root@debian:/home/porridge# dmesg|tail
[...]
[   72.090285] EXT4-fs (dm-1): mounted filesystem
fe627a07-f171-4074-b516-adb72b21bab0 r/w with ordered data mode. Quota
mode: none.
[  660.196233] input: SNSL002D:00 2C2F:002D Mouse as
/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-SNSL002D:00/0018:2C2F:002D.0001/input/input3
[  660.196408] input: SNSL002D:00 2C2F:002D Touchpad as
/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-SNSL002D:00/0018:2C2F:002D.0001/input/input4
[  660.196476] hid-generic 0018:2C2F:002D.0001: input,hidraw0: I2C HID
v1.00 Mouse [SNSL002D:00 2C2F:002D] on i2c-SNSL002D:00
[  660.316781] input: SNSL002D:00 2C2F:002D Mouse as
/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-SNSL002D:00/0018:2C2F:002D.0001/input/input6
[  660.317289] input: SNSL002D:00 2C2F:002D Touchpad as
/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-SNSL002D:00/0018:2C2F:002D.0001/input/input7
[  660.317674] hid-multitouch 0018:2C2F:002D.0001: input,hidraw0: I2C HID
v1.00 Mouse [SNSL002D:00 2C2F:002D] on i2c-SNSL002D:00
root@debian:/home/porridge#

#1104057#55
Date:
2025-04-26 11:32:16 UTC
From:
To:
Just for completeness, here is the output from your scriptlet on installed
system:

DEVPATH=/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1/i2c-SNSL002D:00/0018:2C2F:002D.0001
DRIVER=hid-multitouch
MODALIAS=hid:b0018g0004v00002C2Fp0000002D
DEVPATH=/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1/i2c-SNSL002D:00
DRIVER=i2c_hid_acpi
MODALIAS=acpi:SNSL002D:PNP0C50:
DEVPATH=/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1
DEVPATH=/devices/pci0000:00/0000:00:15.0/i2c_designware.0
DRIVER=i2c_designware
MODALIAS=platform:i2c_designware
DEVPATH=/devices/pci0000:00/0000:00:15.0
DRIVER=intel-lpss
MODALIAS=pci:v00008086d00007E78sv000017AAsd00002235bc0Csc80i00

#1104057#60
Date:
2025-04-26 12:19:31 UTC
From:
To:
Installer team: Is it possible to include this modules, and maybe the
other pinctrl modules, in the graphical installer initramfs at least ?

FWIW they are included in the initramfs built by initramfs-tools because
they may be needed by other drivers.
See /usr/share/initramfs-tools/hook-functions.

#1104057#65
Date:
2025-04-26 12:30:59 UTC
From:
To:
Pascal Hambourg <pascal@plouf.fr.eu.org> (2025-04-26):

This one certainly. A quick survey (on amd64 only) suggests the whole
bunch would be 68k so very OK:

    /kernel/drivers/pinctrl/cirrus/pinctrl-cs42l43.ko.xz
    /kernel/drivers/pinctrl/intel/pinctrl-alderlake.ko.xz
    /kernel/drivers/pinctrl/intel/pinctrl-elkhartlake.ko.xz
    /kernel/drivers/pinctrl/intel/pinctrl-emmitsburg.ko.xz
    /kernel/drivers/pinctrl/intel/pinctrl-intel-platform.ko.xz
    /kernel/drivers/pinctrl/intel/pinctrl-jasperlake.ko.xz
    /kernel/drivers/pinctrl/intel/pinctrl-lakefield.ko.xz
    /kernel/drivers/pinctrl/intel/pinctrl-meteorlake.ko.xz
    /kernel/drivers/pinctrl/intel/pinctrl-meteorpoint.ko.xz

I'm not sure how much more and in which case how pertinent others would
be on say arm* architectures, so it'd be best to get some feedback from
the kernel team: new udeb, fold that into existing udeb(s), etc.?

This doesn't have to be a decision made right this minute, I can easily
pick and choose one particular module on an interim basis, from within
the debian-installer package (and its build system).


Cheers,