Librem 14- What kernel config options for the touchpad?

So my Librem 14 finally arrived yesterday and I’ve been getting Gentoo installed. Currently I’m trying to get my touchpad to work properly.

I know that mice in general function since I can hook up a USB mouse with the kernel I built and it works fine. I know that the touchpad itself functions, since it works when I use the kernel from the PureOS repo. However I’m not getting a device for it under /dev/input when using the kernel I built.

I attempted to just set every option under Device Drivers > Input device support > Mice as a module but none of them loaded except psmouse, but that didn’t enable the touchpad. Are there additional kernel settings that must be set to get it to recognize the touchpad?

1 Like

Hello!

I don’t know the answer but in a PureOS installation there is probably a file called something like /boot/config-5.11.0-22-generic or similar, you could look in that file to see all kernel settings that were used when the PureOS kernel was built.

The touchpad is I2C HID compliant, so these are the drivers needed, no manufacturer specific drivers.

Symbol: I2C_HID [=m]                                                                                                                                                │  
  │ Type  : tristate                                                                                                                                                    │  
  │ Defined at drivers/hid/i2c-hid/Kconfig:5                                                                                                                            │  
  │   Prompt: HID over I2C transport layer                                                                                                                              │  
  │   Depends on: I2C [=y] && INPUT [=y]                                                                                                                                │  
  │   Location:                                                                                                                                                         │  
  │     -> Device Drivers                                                                                                                                               │  
  │       -> HID support                                                                                                                                                │  
  │ (1)     -> I2C HID support                                                                                                                                          │  
  │ Selects: HID [=m]             

Cheers
nicole

3 Likes

It seems that i2c_designware_core and i2c_designware_platform modules (CONFIG_I2C_DESIGNWARE_CORE, CONFIG_I2C_DESIGNWARE_PLATFORM) are also needed as well as I2C_HID:

$ dmesg | grep i2c
[ 8.006633] i2c i2c-0: 1/1 memory slots populated (from DMI)
[ 8.516933] input: HTIX5288:00 0911:5288 Mouse as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-8/i2c-HTIX5288:00/0018:0911:5288.0001/input/input9
[ 8.517264] input: HTIX5288:00 0911:5288 Touchpad as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-8/i2c-HTIX5288:00/0018:0911:5288.0001/input/input10
[ 8.517699] hid-generic 0018:0911:5288.0001: input,hidraw0: I2C HID v1.00 Mouse [HTIX5288:00 0911:5288] on i2c-HTIX5288:00
[ 8.966800] input: HTIX5288:00 0911:5288 Mouse as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-8/i2c-HTIX5288:00/0018:0911:5288.0001/input/input16
[ 8.966900] input: HTIX5288:00 0911:5288 Touchpad as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-8/i2c-HTIX5288:00/0018:0911:5288.0001/input/input17
[ 8.966954] hid-multitouch 0018:0911:5288.0001: input,hidraw0: I2C HID v1.00 Mouse [HTIX5288:00 0911:5288] on i2c-HTIX5288:00
$ lsmod | grep i2c
i2c_designware_platform 16384 0
i2c_designware_core 36864 1 i2c_designware_platform
i2c_i801 32768 0
i2c_smbus 20480 1 i2c_i801
i2c_hid_acpi 16384 0
i2c_hid 32768 1 i2c_hid_acpi

At least for me the touchpad worked only after I set all these options.