DEV Community

Mohamed M El-Kalioby
Mohamed M El-Kalioby Subscriber

Posted on

Ubuntu Freezing Touchpad After Login on Matebook X

Problem

On my Huawei MateBook X Pro running Ubuntu 26.04 LTS, the built-in touchpad would behave strangely immediately after logging in.

The touchpad would:

  1. Work normally for a few seconds.
  2. Freeze for several seconds.
  3. Start working again.
  4. Occasionally repeat the behavior during the initial startup period.
  5. Eventually work normally.

The problem occurred after Ubuntu started and was not a permanent touchpad failure.

I initially suspected USB autosuspend or general touchpad power management, but the problem turned out to be related to the Goodix touchpad firmware probing performed by fwupd.


Hardware and Software

My system:

Laptop:     Huawei MateBook X Pro
OS:         Ubuntu 26.04 LTS
Kernel:     7.0.0-30-generic
Touchpad:   GXTP7863
Device ID:  27C6:01E0
Interface:  I2C HID
Enter fullscreen mode Exit fullscreen mode

The touchpad appears in libinput as:

Device:                  GXTP7863:00 27C6:01E0 Touchpad
Kernel:                  /dev/input/event4
Id:                       i2c:27c6:01e0
Capabilities:             pointer gesture
Enter fullscreen mode Exit fullscreen mode

Diagnosing the Problem

First, install the libinput command-line tools if necessary:

sudo apt update
sudo apt install libinput-tools
Enter fullscreen mode Exit fullscreen mode

Then:

libinput list-devices
Enter fullscreen mode Exit fullscreen mode

The important device was:

GXTP7863:00 27C6:01E0 Touchpad
Enter fullscreen mode Exit fullscreen mode

I then checked the kernel messages:

sudo dmesg | grep -Ei 'i2c|hid|touchpad|elan|synaptics|goodix'
Enter fullscreen mode Exit fullscreen mode

The important errors were:

i2c_designware i2c_designware.0: controller timed out
i2c_designware i2c_designware.0: timeout in disabling adapter
i2c_hid_acpi i2c-GXTP7863:00: failed to get a report from device: -110
Enter fullscreen mode Exit fullscreen mode

At first this looked like an I2C HID or kernel problem.

However, checking the complete boot log revealed something more interesting.


The Important Discovery

The following message appeared at almost exactly the same time as the touchpad freeze:

fwupd: failed to add device ... using on goodixtp:
failed to setup: gtx8 read version failed:
failed to read cfg version:
failed get report:
ioctl error: Connection timed out [110]
Enter fullscreen mode Exit fullscreen mode

This was followed by:

i2c_designware.0: controller timed out
Enter fullscreen mode Exit fullscreen mode

The touchpad is a Goodix device, and fwupd was attempting to communicate with it using its goodixtp plugin.

This interaction caused the I2C communication with the touchpad to time out temporarily.


Solution

The solution was to disable the goodixtp plugin in fwupd.

Edit the fwupd configuration:

sudo nano /etc/fwupd/fwupd.conf
Enter fullscreen mode Exit fullscreen mode

Add:

[fwupd]
DisabledPlugins=goodixtp
Enter fullscreen mode Exit fullscreen mode

If the [fwupd] section already exists, don't create a second section. Just add:

DisabledPlugins=goodixtp
Enter fullscreen mode Exit fullscreen mode

Then restart fwupd:

sudo systemctl restart fwupd
Enter fullscreen mode Exit fullscreen mode

Finally, reboot:

sudo reboot
Enter fullscreen mode Exit fullscreen mode

After rebooting, the touchpad should work normally without the initial freezing.


Verify the Fix

After reboot, check the boot log:

journalctl -b -k | grep -Ei 'i2c|hid|GXTP|touchpad|timeout'
Enter fullscreen mode Exit fullscreen mode

You should no longer see the goodixtp firmware probing causing the I2C timeout.

You can also check whether fwupd is still trying to use the plugin:

journalctl -b | grep -i goodixtp
Enter fullscreen mode Exit fullscreen mode

The important thing is that the touchpad no longer freezes during startup.


Why This Happens

The MateBook X Pro uses a Goodix touchpad connected through the system's I2C controller.

The Linux input stack sees it as:

GXTP7863:00 27C6:01E0
Enter fullscreen mode Exit fullscreen mode

The normal communication path is approximately:

Touchpad
   ↓
Goodix GXTP7863
   ↓
I2C HID
   ↓
Intel DesignWare I2C controller
   ↓
Linux input subsystem
   ↓
libinput
   ↓
MATE desktop
Enter fullscreen mode Exit fullscreen mode

During startup, fwupd can also attempt to communicate with the Goodix touchpad through its goodixtp plugin:

fwupd
   ↓
goodixtp
   ↓
Goodix GXTP7863
   ↓
I2C
Enter fullscreen mode Exit fullscreen mode

On this MateBook configuration, that firmware probe can cause the I2C controller to time out:

i2c_designware.0: controller timed out
Enter fullscreen mode Exit fullscreen mode

which results in:

i2c_hid_acpi:
failed to get a report from device: -110
Enter fullscreen mode Exit fullscreen mode

The result is a temporarily unresponsive touchpad.

Disabling the goodixtp plugin prevents fwupd from performing that problematic probe.


Quick Fix After Reinstalling Ubuntu

For future reference, the essential fix is:

sudo nano /etc/fwupd/fwupd.conf
Enter fullscreen mode Exit fullscreen mode

Add:

[fwupd]
DisabledPlugins=goodixtp
Enter fullscreen mode Exit fullscreen mode

Then:

sudo systemctl restart fwupd
sudo reboot
Enter fullscreen mode Exit fullscreen mode

Useful Diagnostic Commands

If the problem returns after a future Ubuntu installation, first identify the touchpad:

libinput list-devices
Enter fullscreen mode Exit fullscreen mode

Look for:

GXTP7863:00 27C6:01E0
Enter fullscreen mode Exit fullscreen mode

Then check:

journalctl -b | grep -Ei 'i2c|hid|GXTP|goodix|fwupd|timeout'
Enter fullscreen mode Exit fullscreen mode

The key symptoms are:

GXTP7863:00 27C6:01E0
Enter fullscreen mode Exit fullscreen mode

combined with:

i2c_designware.0: controller timed out
Enter fullscreen mode Exit fullscreen mode

and:

fwupd ... goodixtp ...
Enter fullscreen mode Exit fullscreen mode

If those appear together, disabling goodixtp is the first thing to try.


Final Configuration

The important configuration to remember is:

File:

/etc/fwupd/fwupd.conf
Enter fullscreen mode Exit fullscreen mode

Setting:

[fwupd]
DisabledPlugins=goodixtp
Enter fullscreen mode Exit fullscreen mode

This fixed the MateBook X Pro touchpad startup freezing issue for me on Ubuntu 26.04 LTS.

Top comments (0)