# Touchpad not working on Asus UX420U

## bakhanbeigi

Hi all.

I installed Gentoo on my laptop for the first time and the touch pad is not working. Could you[/code] help me to fix it?

dmesg: https://pastebin.com/YBhm7Mqn

lspci:

```
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 02)

00:02.0 VGA compatible controller: Intel Corporation HD Graphics 620 (rev 02)

00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 02)

00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)

00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)

00:15.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 (rev 21)

00:15.1 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #1 (rev 21)

00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)

00:17.0 SATA controller: Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode] (rev 21)

00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #1 (rev f1)

00:1c.7 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #8 (rev f1)

00:1f.0 ISA bridge: Intel Corporation Sunrise Point LPC Controller/eSPI Controller (rev 21)

00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)

00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)

00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)

01:00.0 3D controller: NVIDIA Corporation GM108M [GeForce 940MX] (rev a2)

02:00.0 Network controller: Intel Corporation Wireless 8260 (rev 3a)

```

lsmod

```
yottanami@yottagen /usr/src/linux $ sudo lsmod

Module                  Size  Used by

ccm                    20480  6

snd_soc_skl           180224  0

snd_soc_hdac_hda       24576  1 snd_soc_skl

snd_hda_ext_core       36864  2 snd_soc_hdac_hda,snd_soc_skl

snd_soc_sst_ipc        20480  1 snd_soc_skl

snd_soc_sst_dsp        36864  1 snd_soc_skl

snd_soc_acpi_intel_match    57344  1 snd_soc_skl

snd_soc_acpi           16384  2 snd_soc_acpi_intel_match,snd_soc_skl

snd_soc_core          344064  2 snd_soc_hdac_hda,snd_soc_skl

snd_compress           28672  1 snd_soc_core

snd_pcm_dmaengine      16384  1 snd_soc_core

snd_hda_codec_hdmi     73728  1

x86_pkg_temp_thermal    20480  0

intel_powerclamp       20480  0

ac97_bus               16384  1 snd_soc_core

snd_hda_codec_generic    98304  1

coretemp               20480  0

kvm_intel             274432  0

ledtrig_audio          16384  1 snd_hda_codec_generic

snd_hda_intel          57344  0

iwlmvm                491520  0

kvm                  1040384  1 kvm_intel

snd_intel_dspcfg       28672  2 snd_hda_intel,snd_soc_skl

snd_intel_sdw_acpi     20480  1 snd_intel_dspcfg

irqbypass              16384  1 kvm

asus_nb_wmi            28672  0

iTCO_wdt               16384  0

snd_hda_codec         176128  4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_soc_hdac_hda

asus_wmi               45056  1 asus_nb_wmi

crct10dif_pclmul       16384  1

mac80211             1175552  1 iwlmvm

mei_hdcp               24576  0

ee1004                 20480  0

libarc4                16384  1 mac80211

i2c_designware_platform    16384  0

snd_hda_core          110592  7 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_ext_core,snd_hda_codec,snd_soc_hdac_hda,snd_soc_skl

iTCO_vendor_support    16384  1 iTCO_wdt

uvcvideo              118784  0

btusb                  57344  0

sparse_keymap          16384  1 asus_wmi

i2c_designware_core    36864  1 i2c_designware_platform

ghash_clmulni_intel    16384  0

intel_rapl_msr         20480  0

wmi_bmof               16384  0

platform_profile       16384  1 asus_wmi

i915                 3059712  5

btrtl                  28672  1 btusb

videobuf2_vmalloc      20480  1 uvcvideo

nouveau              2412544  1

iwlwifi               372736  1 iwlmvm

btbcm                  20480  1 btusb

snd_hwdep              16384  1 snd_hda_codec

videobuf2_memops       20480  1 videobuf2_vmalloc

rapl                   20480  0

intel_cstate           20480  0

btintel                45056  1 btusb

snd_pcm               143360  8 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_compress,snd_soc_core,snd_soc_skl,snd_hda_core,snd_pcm_dmaengine

videobuf2_v4l2         36864  1 uvcvideo

mxm_wmi                16384  1 nouveau

drm_ttm_helper         16384  1 nouveau

pcspkr                 16384  0

serio_raw              20480  0

i2c_algo_bit           16384  2 i915,nouveau

snd_timer              49152  1 snd_pcm

videobuf2_common       69632  4 videobuf2_vmalloc,videobuf2_v4l2,uvcvideo,videobuf2_memops

intel_uncore          204800  0

efi_pstore             16384  0

bluetooth             761856  5 btrtl,btintel,btbcm,btusb

snd                   114688  9 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_timer,snd_compress,snd_soc_core,snd_pcm

ttm                    86016  3 drm_ttm_helper,i915,nouveau

cfg80211             1036288  3 iwlmvm,iwlwifi,mac80211

soundcore              16384  1 snd

drm_kms_helper        307200  2 i915,nouveau

videodev              270336  3 videobuf2_v4l2,uvcvideo,videobuf2_common

mei_me                 45056  1

i2c_i801               32768  0

cec                    61440  2 drm_kms_helper,i915

ecdh_generic           16384  1 bluetooth

i2c_smbus              20480  1 i2c_i801

rc_core                65536  1 cec

rfkill                 32768  4 asus_wmi,bluetooth,cfg80211

mei                   151552  3 mei_hdcp,mei_me

ecc                    40960  1 ecdh_generic

mc                     65536  4 videodev,videobuf2_v4l2,uvcvideo,videobuf2_common

processor_thermal_device_pci_legacy    16384  0

processor_thermal_device    20480  1 processor_thermal_device_pci_legacy

drm                   634880  9 drm_kms_helper,drm_ttm_helper,i915,ttm,nouveau

processor_thermal_rfim    16384  1 processor_thermal_device

joydev                 28672  0

uinput                 20480  0

processor_thermal_mbox    16384  2 processor_thermal_rfim,processor_thermal_device

intel_lpss_pci         28672  0

processor_thermal_rapl    20480  1 processor_thermal_device

intel_lpss             16384  1 intel_lpss_pci

intel_rapl_common      28672  2 intel_rapl_msr,processor_thermal_rapl

idma64                 20480  0

intel_xhci_usb_role_switch    16384  0

i2c_dev                24576  0

int3403_thermal        20480  0

roles                  16384  1 intel_xhci_usb_role_switch

mfd_core               20480  1 intel_lpss

intel_soc_dts_iosf     20480  1 processor_thermal_device_pci_legacy

intel_pch_thermal      20480  0

i2c_core              102400  12 i2c_designware_platform,videodev,i2c_designware_core,drm_kms_helper,i2c_algo_bit,ee1004,i2c_smbus,i2c_i801,i915,i2c_dev,nouveau,drm

int340x_thermal_zone    20480  2 int3403_thermal,processor_thermal_device

video                  57344  3 asus_wmi,i915,nouveau

wmi                    36864  4 asus_wmi,wmi_bmof,mxm_wmi,nouveau

backlight              24576  6 video,drm_kms_helper,asus_wmi,i915,nouveau,drm

acpi_als               20480  1

industrialio_triggered_buffer    16384  1 acpi_als

intel_pmc_core         53248  0

kfifo_buf              16384  1 industrialio_triggered_buffer

int3400_thermal        20480  0

acpi_thermal_rel       16384  1 int3400_thermal

industrialio           94208  3 industrialio_triggered_buffer,acpi_als,kfifo_buf

mac_hid                16384  0

acpi_pad              184320  0

asus_wireless          20480  0

efivarfs               16384  1

ext4                  925696  1

mbcache                16384  1 ext4

jbd2                  167936  1 ext4

sd_mod                 61440  1

t10_pi                 16384  1 sd_mod

crc32_pclmul           16384  0

crc32c_intel           24576  2

aesni_intel           380928  4

crypto_simd            16384  1 aesni_intel

xhci_pci               20480  0

cryptd                 28672  2 crypto_simd,ghash_clmulni_intel

xhci_pci_renesas       20480  1 xhci_pci

xhci_hcd              327680  1 xhci_pci

ahci                   45056  1

libahci                45056  1 ahci

```

cat /etc/modules-load.d/i2c.conf

```
intel_lpss_pci

i2c_dev

i2c_hid

uinput

```

----------

## pietinger

bakhanbeigi,

Welcome to Gentoo Forums !

My first guess would be you are missing

```
[*]   Intel Sunrisepoint pinctrl and GPIO driver
```

If your touchpad doesnt work after enabling this, please check all other options from this post: https://forums.gentoo.org/viewtopic-p-8692426.html#8692426

P.S.: I just have seen "hid_multitouch" is also missing !

----------

## MoldyOne

I think I may know the answer to this. Check and ensure you have HID over I2C transport layer ACPI Driver in your kernel config

Device Drivers > HID Support > I2C HID support > HID over I2C transport layer ACPI Driver

----------

## bakhanbeigi

Enabling HID over I2C transport layer ACPI Driver and Intel Sunrisepoint pinctrl and GPIO driver did not help. I also enabled hid_multitouch.

I am not sure if it is because of kernel modules because I even tried genkernel all config. In Gentoo live touchpad works correctly so I used the live kernel too but it was not helping.

Could it be related of the boot parameters?

----------

## bakhanbeigi

dmesg https://pastebin.com/0GC355zm

```

xinput list

⎡ Virtual core pointer                          id=2    [master pointer  (3)]

⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]

⎜   ↳ Microsoft Microsoft Nano Transceiver 1.1 Consumer Control id=13   [slave  pointer  (2)]

⎜   ↳ Microsoft Microsoft Nano Transceiver 1.1  id=16   [slave  pointer  (2)]

⎣ Virtual core keyboard                         id=3    [master keyboard (2)]

    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]

    ↳ Power Button                              id=6    [slave  keyboard (3)]

    ↳ Asus Wireless Radio Control               id=7    [slave  keyboard (3)]

    ↳ Video Bus                                 id=8    [slave  keyboard (3)]

    ↳ Video Bus                                 id=9    [slave  keyboard (3)]

    ↳ Power Button                              id=10   [slave  keyboard (3)]

    ↳ Sleep Button                              id=11   [slave  keyboard (3)]

    ↳ Microsoft Microsoft Nano Transceiver 1.1  id=12   [slave  keyboard (3)]

    ↳ Microsoft Microsoft Nano Transceiver 1.1 System Control   id=14   [slave  keyboard (3)]

    ↳ Microsoft Microsoft Nano Transceiver 1.1  id=15   [slave  keyboard (3)]

    ↳ USB2.0 HD UVC WebCam: USB2.0 HD           id=17   [slave  keyboard (3)]

    ↳ Asus WMI hotkeys                          id=18   [slave  keyboard (3)]

    ↳ AT Translated Set 2 keyboard              id=19   [slave  keyboard (3)]

    ↳ Microsoft Microsoft Nano Transceiver 1.1 Consumer Control id=20   [slave  keyboard (3)

```

----------

## NeddySeagoon

bakhanbeigi,

Please post the output of 

```
lspci -nnk
```

and your kernel .config file.

All mentions of touchpad are missing from your dmesg.  

The -k in lspci -nnk shows the kernel drivers in use, so you need no run it with whatever kernel you are using and want to fix.

----------

## bakhanbeigi

Last dmesg was after compiling the kernel with live linux settings.

Here is after enabling the drivers. It also affect on screen resolution and probably Nvidia driver.

http://dpaste.com/DSUA8Q65W

https://pastebin.com/DCC5hc2C

```

lspci -nnk

00:00.0 Host bridge [0600]: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers [8086:5904] (rev 02)

        Subsystem: ASUSTeK Computer Inc. Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers [1043:16e0]

        Kernel driver in use: skl_uncore

00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 620 [8086:5916] (rev 02)

        Subsystem: ASUSTeK Computer Inc. HD Graphics 620 [1043:16e0]

        Kernel modules: i915

00:04.0 Signal processing controller [1180]: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem [8086:1903] (rev 02)

        Subsystem: ASUSTeK Computer Inc. Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem [1043:16e0]

        Kernel driver in use: proc_thermal

        Kernel modules: processor_thermal_device_pci_legacy

00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller [8086:9d2f] (rev 21)

        Subsystem: ASUSTeK Computer Inc. Sunrise Point-LP USB 3.0 xHCI Controller [1043:201f]

        Kernel driver in use: xhci_hcd

        Kernel modules: xhci_pci

00:14.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Thermal subsystem [8086:9d31] (rev 21)

        Subsystem: ASUSTeK Computer Inc. Sunrise Point-LP Thermal subsystem [1043:16e0]

        Kernel driver in use: intel_pch_thermal

        Kernel modules: intel_pch_thermal

00:15.0 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 [8086:9d60] (rev 21)

        Subsystem: ASUSTeK Computer Inc. Sunrise Point-LP Serial IO I2C Controller [1043:16e0]

        Kernel driver in use: intel-lpss

        Kernel modules: intel_lpss_pci

00:15.1 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #1 [8086:9d61] (rev 21)

        Subsystem: ASUSTeK Computer Inc. Sunrise Point-LP Serial IO I2C Controller [1043:16e0]

        Kernel driver in use: intel-lpss

        Kernel modules: intel_lpss_pci

00:16.0 Communication controller [0780]: Intel Corporation Sunrise Point-LP CSME HECI #1 [8086:9d3a] (rev 21)

        Subsystem: ASUSTeK Computer Inc. Sunrise Point-LP CSME HECI [1043:16e0]

        Kernel driver in use: mei_me

        Kernel modules: mei_me

00:17.0 SATA controller [0106]: Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode] [8086:9d03] (rev 21)

        Subsystem: ASUSTeK Computer Inc. Sunrise Point-LP SATA Controller [AHCI mode] [1043:16e0]

        Kernel driver in use: ahci

        Kernel modules: ahci

00:1c.0 PCI bridge [0604]: Intel Corporation Sunrise Point-LP PCI Express Root Port #1 [8086:9d10] (rev f1)

        Kernel driver in use: pcieport

00:1c.7 PCI bridge [0604]: Intel Corporation Sunrise Point-LP PCI Express Root Port #8 [8086:9d17] (rev f1)

        Kernel driver in use: pcieport

00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point LPC Controller/eSPI Controller [8086:9d4e] (rev 21)

        Subsystem: ASUSTeK Computer Inc. Sunrise Point LPC Controller/eSPI Controller [1043:16e0]

00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-LP PMC [8086:9d21] (rev 21)

        Subsystem: ASUSTeK Computer Inc. Sunrise Point-LP PMC [1043:16e0]

00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-LP HD Audio [8086:9d71] (rev 21)

        Subsystem: ASUSTeK Computer Inc. Sunrise Point-LP HD Audio [1043:1530]

        Kernel driver in use: snd_hda_intel

        Kernel modules: snd_hda_intel, snd_soc_skl

00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-LP SMBus [8086:9d23] (rev 21)

        Subsystem: ASUSTeK Computer Inc. Sunrise Point-LP SMBus [1043:16e0]

        Kernel modules: i2c_i801

01:00.0 3D controller [0302]: NVIDIA Corporation GM108M [GeForce 940MX] [10de:134d] (rev a2)

        Subsystem: ASUSTeK Computer Inc. GM108M [GeForce 940MX] [1043:138e]

        Kernel modules: nouveau, nvidia_drm, nvidia

02:00.0 Network controller [0280]: Intel Corporation Wireless 8260 [8086:24f3] (rev 3a)

        Subsystem: Intel Corporation Wireless 8260 [8086:0110]

        Kernel driver in use: iwlwifi

        Kernel modules: iwlwifi

```

----------

## NeddySeagoon

bakhanbeigi,

[    4.165728] drm: Unknown symbol i2c_unregister_device (err -2)

The kernel and modules don't match, so you are lucky anything works.

The kernel you booted was 

```
[    0.000000] Linux version 5.15.26-gentoo-x86_64 (root@livecd) (x86_64-pc-linux-gnu-gcc (Gentoo 11.2.1_p20220115 p4) 11.2.1 20220115, GNU ld (Gentoo 2.37_p1 p2) 2.37) #1 SMP Thu Mar 10 23:38:16 CET 2022
```

It was built at Thu Mar 10 23:38:16 CET 2022.

With all those Unknown symbol errors, you have made a newer version of that kernel and installed its modules but are not running the matching kernel.

We need to fix that first.

----------

## bakhanbeigi

Thanks for the response.

Maybe I am missing something. 

These are the steps that I follow.

```

make menuconfig

make 

make modules_install

make install

grub-mkconfig -o /boot/grub/grub.cfg 

```

the make install process most of the time is really quick:

```

yottagen /usr/src/linux-5.15.26-gentoo # sudo make install

arch/x86/Makefile:142: CONFIG_X86_X32 enabled but no binutils support

sh ./arch/x86/boot/install.sh 5.15.26-gentoo-x86_64 \

        arch/x86/boot/bzImage System.map "/boot"

yottagen /usr/src/linux-5.15.26-gentoo # grub-mkconfig -o /boot/grub/grub.cfg 

Generating grub configuration file ...

Found linux image: /boot/vmlinuz-5.15.26-gentoo-x86_64

Found initrd image: /boot/initramfs-5.15.26-gentoo-x86_64.img

Found linux image: /boot/vmlinuz-5.15.26-gentoo-x86_64.old

Found initrd image: /boot/initramfs-5.15.26-gentoo-x86_64.img

Warning: os-prober will not be executed to detect other bootable partitions.

Systems on them will not be added to the GRUB boot configuration.

Check GRUB_DISABLE_OS_PROBER documentation entry.

Adding boot menu entry for UEFI Firmware Settings ...

done

```

Does it need any other step to update boot loader?

----------

## NeddySeagoon

bakhanbeigi,

You are missing a 

```
mount /boot
```

Your steps correctly install the kernel to the wrong place.

/boot must be mounted before the 

```
make install 
```

step.

There are two places on your system called boot.

/boot, with the leading /, is the /boot directory on the root filesystem.

boot (no leading /) is the boot partition

To write files to the boot partition and not the /boot directory on the root filesystem, the partition must be attached at /boot.

At system start up, grub can only only read the boot partition.

----------

## bakhanbeigi

Thanks for the guidance 

Here is the new dmesg:

http://dpaste.com/6SKBWDW32

http://dpaste.com/A49C92NTT

```

lspci -nnk

00:00.0 Host bridge [0600]: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers [8086:5904] (rev 02)

        Subsystem: ASUSTeK Computer Inc. Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers [1043:16e0]

        Kernel driver in use: skl_uncore

00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 620 [8086:5916] (rev 02)

        Subsystem: ASUSTeK Computer Inc. HD Graphics 620 [1043:16e0]

        Kernel driver in use: i915

        Kernel modules: i915

00:04.0 Signal processing controller [1180]: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem [8086:1903] (rev 02)

        Subsystem: ASUSTeK Computer Inc. Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem [1043:16e0]

        Kernel driver in use: proc_thermal

        Kernel modules: processor_thermal_device_pci_legacy

00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller [8086:9d2f] (rev 21)

        Subsystem: ASUSTeK Computer Inc. Sunrise Point-LP USB 3.0 xHCI Controller [1043:201f]

        Kernel driver in use: xhci_hcd

        Kernel modules: xhci_pci

00:14.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Thermal subsystem [8086:9d31] (rev 21)

        Subsystem: ASUSTeK Computer Inc. Sunrise Point-LP Thermal subsystem [1043:16e0]

        Kernel driver in use: intel_pch_thermal

        Kernel modules: intel_pch_thermal

00:15.0 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 [8086:9d60] (rev 21)

        Subsystem: ASUSTeK Computer Inc. Sunrise Point-LP Serial IO I2C Controller [1043:16e0]

        Kernel driver in use: intel-lpss

        Kernel modules: intel_lpss_pci

00:15.1 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #1 [8086:9d61] (rev 21)

        Subsystem: ASUSTeK Computer Inc. Sunrise Point-LP Serial IO I2C Controller [1043:16e0]

        Kernel driver in use: intel-lpss

        Kernel modules: intel_lpss_pci

00:16.0 Communication controller [0780]: Intel Corporation Sunrise Point-LP CSME HECI #1 [8086:9d3a] (rev 21)

        Subsystem: ASUSTeK Computer Inc. Sunrise Point-LP CSME HECI [1043:16e0]

        Kernel driver in use: mei_me

        Kernel modules: mei_me

00:17.0 SATA controller [0106]: Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode] [8086:9d03] (rev 21)

        Subsystem: ASUSTeK Computer Inc. Sunrise Point-LP SATA Controller [AHCI mode] [1043:16e0]

        Kernel driver in use: ahci

        Kernel modules: ahci

00:1c.0 PCI bridge [0604]: Intel Corporation Sunrise Point-LP PCI Express Root Port #1 [8086:9d10] (rev f1)

        Kernel driver in use: pcieport

00:1c.7 PCI bridge [0604]: Intel Corporation Sunrise Point-LP PCI Express Root Port #8 [8086:9d17] (rev f1)

        Kernel driver in use: pcieport

00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point LPC Controller/eSPI Controller [8086:9d4e] (rev 21)

        Subsystem: ASUSTeK Computer Inc. Sunrise Point LPC Controller/eSPI Controller [1043:16e0]

00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-LP PMC [8086:9d21] (rev 21)

        Subsystem: ASUSTeK Computer Inc. Sunrise Point-LP PMC [1043:16e0]

00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-LP HD Audio [8086:9d71] (rev 21)

        Subsystem: ASUSTeK Computer Inc. Sunrise Point-LP HD Audio [1043:1530]

        Kernel driver in use: snd_hda_intel

        Kernel modules: snd_hda_intel, snd_soc_skl

00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-LP SMBus [8086:9d23] (rev 21)

        Subsystem: ASUSTeK Computer Inc. Sunrise Point-LP SMBus [1043:16e0]

        Kernel driver in use: i801_smbus

        Kernel modules: i2c_i801

01:00.0 3D controller [0302]: NVIDIA Corporation GM108M [GeForce 940MX] [10de:134d] (rev a2)

        Subsystem: ASUSTeK Computer Inc. GM108M [GeForce 940MX] [1043:138e]

        Kernel driver in use: nvidia

        Kernel modules: nouveau, nvidia_drm, nvidia

02:00.0 Network controller [0280]: Intel Corporation Wireless 8260 [8086:24f3] (rev 3a)

        Subsystem: Intel Corporation Wireless 8260 [8086:0110]

        Kernel driver in use: iwlwifi

        Kernel modules: iwlwifi

```

----------

## pietinger

bakhanbeigi,

you have enabled almost all ...  :Wink:  ... also all needed stuff for an I2C-connected touchpad. But ...

... what is your exact notebook model ? We need this info to decide if you have a Synopsis Desginware PCIe Controller.

If yes, the only missing option I have found, is this:

```
Device Drivers  --->

    [*] PCI support  --->

        PCI controller drivers  --->

            DesignWare PCI Core Support  --->

                [*] Platform bus based DesignWare PCIe Controller - Host mode
```

If you dont have this controller, we need exact informations how you did this kernel config.

(Maybe ... only maybe there is a difference in loading these options as module and not static:

CONFIG_HID_MULTITOUCH=m

CONFIG_I2C_HID_ACPI=m)

----------

## bakhanbeigi

I enabled "Platform bus based DesignWare PCIe Controller - Host mode" and now touchpad is working, thanks all.

The only issue that I have is the middle key is not working. I mostly use it to paste selected texts it works with connected mouse but not the touchpad. Could it be related to the kernel modules?

I also have a general question. As now I have a kernel with a lot of extra modules and settings. Is there anyway find and get rid of unnecessary items? Or I should compile a minimal kernel and see what modules I need and make it bigger step by step?

----------

## pietinger

 *bakhanbeigi wrote:*   

> I enabled "Platform bus based DesignWare PCIe Controller - Host mode" and now touchpad is working, thanks all.

 

Great news. You are welcome.  :Smile: 

 *bakhanbeigi wrote:*   

> [...] Or I should compile a minimal kernel and see what modules I need and make it bigger step by step?

 

I think this is easier ... My recommendation is to boot with an UbuntuLiveCD and then notice all needed kernel modules with

```
# lspci -k

# lsmod | more
```

(see also: https://wiki.gentoo.org/wiki/User:Pietinger/Tutorials/Manual_kernel_configuration )Last edited by pietinger on Thu May 05, 2022 7:39 pm; edited 1 time in total

----------

## NeddySeagoon

bakhanbeigi,

There are two ways to make a lean mean kernel. The two ways converge, sort of.

You start where you are now and take things out. When it breaks, you add something back. :)

The other way in to start with everything off, then add things until it boots, then add more until it works the way you like.

You may still have extra baggage. It all depends on understanding the changes you make.

That's time consuming. You need no read the help on every option.

The are a few obvious easy targets. Al least, I've known about then a long time. So long, I don't know where I learned about them.

You only have USB 3 hardware, so USB 1 and USB 2 support are not required.

There is a small trap fer the unwary. USB3 storage devices may support USB Attached SCSI. That's all the good things that SCSI has always done, NCQ, overlapping commands, DMA and so on. Kernel support for that is UAS, so you want that on.

Without UAS, you only get block mode data transfers. That's like HDD PIO modes. The CPU moves every byte. Its slow and CPU intensive but it still works.

Even with UAS support in the kernel, devices that do not support it will operate in block mode.  

Your HDD controller is ahci. There is no hardware support for anything else, so you can turn off all the other HDD controllers.

Two hints: 

1. don't be in a hurry

2. keep a working kernel or two, so that when you build a dud, (we all do that) recovery is choosing a working kernel from the grub menu.

Pappys rather old guide explains the method in some detail.  

There is my even older overview. The methods remain correct but the detail has changed.

----------

## pietinger

Neddy,

like always ... a great exemplification ... please let me add:

This I have learned from you:

 *NeddySeagoon wrote:*   

> [...] USB3 storage devices may support USB Attached SCSI. That's all the good things that SCSI has always done, NCQ, overlapping commands, DMA and so on. Kernel support for that is UAS, so you want that on.

 

... and therefore I had added it into my Wiki article (as default):

```
[*]     USB Attached SCSI
```

This is also in my article included:

 *NeddySeagoon wrote:*   

> You only have USB 3 hardware, so USB 1 and USB 2 support are not required.

 

=>

```
        [*]   xHCI HCD (USB 3.0) support

#If you have an old USB 2.0 or 1.1; look into your list from: "lspci -k"

#If you dont find any module named ehci, ohci or uhci in your list you dont have it !

        [?]   EHCI HCD (USB 2.0) support

        [?]   OHCI HCD (USB 1.1) support

        [?]   UHCI HCD (most Intel and VIA) support
```

I would be very happy if you would extend my article with your experience (and maybe improve my poor english  :Wink:  )

Many greetings,

Peter

----------

