You are not logged in.

#1 2023-07-19 01:15:24

Paria Stark
Member
Registered: 2023-05-12
Posts: 6

Touchpad jittery and unusable after hibernation

Hello,

I use a Dell XPS 9510 (no gpu), and I have an issue after hibernation.

Whenever I resume from hibernation, both direct hibernation and suspend -> hibernation hybrid sleep, my touchpad gets completely unusable until I hard reboot. Whenever I touch the touchpad, the mouse pointer starts jumping around and randomly clicking. The rest of the laptop works ok, fingerprint sensor included.

The issue started to occur some ~6 months prior to this. It was working perfectly before, and I did not change my hibernation configuration.

I hibernate to swapfile, here is my systemd-boot entry

title Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options rd.luks.name=bd69a7d6-e84d-4f1a-9d40-301ca4ff0b67=cryptroot root=/dev/mapper/cryptroot resume=UUID=e964f4fb-05fe-4bf8-a4f6-a8d5215af84e resume_offset=74866688 i915.edp_vswing=2

It seems like the touchpad is in a weird state after hibernation. Libinput drivers sees completely aberrant values sent from the touchpad compared to normal use after a fresh boot, so the issue seems to be lower level.

The only lead I have is a message spammed when I touch the touchpad in a full text tty after I hibernate

i2c_hid_acpi i2c-DLI0945:00: i2c _hid get_input: incomplete report (14/26141)

This led me to trying out removing then adding psmouse/i2c_hid_acpi/i2c_hid modules from the kernel after hibernating, but no luck, touchpad is still going crazy and unusable.

Any idea of how I can troubleshoot this ? Any particular logs to look for/provide ?

Thanks in advance.

Offline

#2 2023-08-19 00:19:27

Paria Stark
Member
Registered: 2023-05-12
Posts: 6

Re: Touchpad jittery and unusable after hibernation

Hello, I still have the issue unfortunately

Once the touchpad is in "broken mode", the issue is deeper than libinput since disabling it using this does not do anything.

$ xinput disable X

It does not even disable the touchpad, which moves the cursor around and randomly clicks when touched.

My guess would be something at kernel level. I have included my systemd-boot entry in the OP, but here is my mkinitcpio.conf

# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run.  Advanced users may wish to specify all system modules
# in this array.  For instance:
#     MODULES=(piix ide_disk reiserfs)
MODULES=()

# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image.  This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=()

# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way.  This is useful for config files.
FILES=()

# HOOKS
# This is the most important setting in this file.  The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added.  Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
##   This setup specifies all modules in the MODULES setting above.
##   No raid, lvm2, or encrypted root is needed.
#    HOOKS=(base)
#
##   This setup will autodetect all modules for your system and should
##   work as a sane default
#    HOOKS=(base udev autodetect block filesystems)
#
##   This setup will generate a 'full' image which supports most systems.
##   No autodetection is done.
#    HOOKS=(base udev block filesystems)
#
##   This setup assembles a pata mdadm array with an encrypted root FS.
##   Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
#    HOOKS=(base udev block mdadm encrypt filesystems)
#
##   This setup loads an lvm2 volume group on a usb device.
#    HOOKS=(base udev block lvm2 filesystems)
#
##   NOTE: If you have /usr on a separate partition, you MUST include the
#    usr, fsck and shutdown hooks.
HOOKS=(base systemd autodetect keyboard sd-vconsole modconf block sd-encrypt filesystems keyboard fsck)

# COMPRESSION
# Use this to compress the initramfs image. By default, zstd compression
# is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="zstd"
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"

# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()

I have done some modprobe -r exploration, mainly around psmouse, i2c_hid and i2c_hid_acpi
- Removing these three modules is the only way to disable the touchpad once it's in a "broken" state
- Booting from hibernation while having this module not removed always puts the touchpad in this "broken" state
- Removing these modules before hibernating then booting back, then reloading only psmouse puts the touchpad in an "okayish" mode, with weird behavior and no two finger scrolling (basically libinput does not recognize the device). Then, reloading the i2c modules puts the touchpad back into "broken" mode.


Let me know if there is anything more I can do to troubleshoot, I really don't have any more ideas.

Offline

#3 2023-08-20 01:20:44

walkingstickfan
Member
From: USA
Registered: 2021-05-10
Posts: 107

Re: Touchpad jittery and unusable after hibernation

What kind of touchpad do you have? I ask because I use synclient to control a Synaptics touchpad on my laptop and to control a Logitech T650 glass touchpad for use on my desktop. I'm not experiencing the issues that you are having, but I use ASUS computers. Have you tried hibernating to your drive instead of a swapfile?

To use synclient, you'll need to install one or more of the following (I have all three installed): xf86-input-evdev, xf86-input-libinput, and xf86-input-synaptics. I believe installing the xf86-input-synaptics file creates a configuration template file under /usr/share/X11/xorg.conf.d/70-synaptics.conf. You'll need to copy the configuration template file to /etc/X11/xorg.conf.d/ and then configure the copied file.

I use the Openbox window manager, so I add a few lines to the autostart file under the ~/.config/openbox folder to start synclient.

### TOUCHPAD: comment out the next two entries if you don't have one

## Configure touchpad. See 'man synaptics' for more info.
## Now might be using libinput
synclient VertEdgeScroll=1 HorizEdgeScroll=1 TapButton1=1 TapButton2=3 &

## Disable touchpad while typing
syndaemon -i .5 -K -t -R -d &

### TOUCHPAD END

Last edited by walkingstickfan (2023-08-20 01:44:49)


Arch Linux with Openbox & Tint2

Offline

#4 2023-09-19 20:39:13

Paria Stark
Member
Registered: 2023-05-12
Posts: 6

Re: Touchpad jittery and unusable after hibernation

I may have solved the problem !

I stumbled upon this bug report: https://www.dell.com/community/en/conve … a8debff98d

Following the instruction of the last message seems to have fixed the issue for now.
If you use systemd as I do, the fix is

#/etc/systemd/sleep.conf

[Sleep]
HibernateMode=platform

I will do some further testing with hybrid sleep etc, and if it is conclusive, I will mark this as solved and add an entry to the XPS wiki !
Hope it helps someone out there.

Offline

#5 2023-11-01 18:44:03

shuruper
Member
Registered: 2020-06-21
Posts: 67

Re: Touchpad jittery and unusable after hibernation

Well done Paria Stark! Thank you very much for this tip, it works so far.
I'll also report back if there will be some complications.

Offline

Board footer

Powered by FluxBB