gnome-shell icon indicating copy to clipboard operation
gnome-shell copied to clipboard

Alder Lake laptops: cursor drifts to bottom right corner when in clamshell mode

Open leviport opened this issue 2 years ago • 15 comments

This was reported by the support team and reproduced in the lab on both oryp9 and gaze17. When connected to an external monitor, closing the lid causes the mouse cursor to drift to the bottom right corner of the screen:

https://user-images.githubusercontent.com/13512097/191784602-d8eb9280-8ae3-4592-8443-b96ab1666502.mp4

Logs collected by Nathaniel when reproducing this issue: pop-support_1663691410.zip

I wasn't sure which repo this belonged in, so feel free to move it.

leviport avatar Sep 22 '22 15:09 leviport

I'd try looking at the output of sudo libinput debug-events while this is happening. If that shows spurious POINTER_MOTION events, those are being omitted by the kernel, suggesting it isn't an issue in Gnome Shell or other higher level components.

ids1024 avatar Sep 22 '22 15:09 ids1024

Perhaps the touchpad emits motion events when it's physically touching or close to the screen, and the firmware needs to disable touchpad input when the lid sensor shows the laptop is closed?

ids1024 avatar Sep 22 '22 15:09 ids1024

All of the reported cases were running Pop!_OS 22.04 LTS and I don't believe any customer has reported it on Ubuntu 22.04 LTS.

ahoneybun avatar Sep 23 '22 14:09 ahoneybun

One of our shell extensions then? I'd still recommend running the command @ids1024 mentioned to see if there are any events.

jackpot51 avatar Sep 23 '22 15:09 jackpot51

I have at least one customer who says it only happens in NVIDIA mode so I wonder if Hybrid mode is also affected.

ahoneybun avatar Sep 23 '22 15:09 ahoneybun

I have it happening with Hybrid Mode and non-hybrid mode. I also performed a fresh install of just Ubuntu 22.04.1 LTS this morning and the same issue still occurs. I have edited the longind.conf file to do nothing when the lid is closed, still the same effect.

chrfrancis avatar Oct 01 '22 16:10 chrfrancis

I also found this issue and tried the fix suggested, still the same outcome. https://www.linuxquestions.org/questions/slackware-14/how-to-disable-suspend-when-laptop-lid-is-closed-4175692244/

chrfrancis avatar Oct 01 '22 19:10 chrfrancis

I also ran sudo libinput debug-events as suggested and it did print POINTER_MOTION events.

chrfrancis avatar Oct 02 '22 16:10 chrfrancis

Was having this issue on my System76 lap top running Pop OS. Removing the psmouse module seems to fix. modprobe -r psmouse

KevinCreel avatar Oct 07 '22 20:10 KevinCreel

I just tried this, and it also worked for me.

chrfrancis avatar Oct 08 '22 23:10 chrfrancis

Would I just add psmouse to the blacklist.conf file in /etc/modprobe.d if I wanted to remove it during boot?

chrfrancis avatar Oct 09 '22 00:10 chrfrancis

@chrfrancis For some reason that didn't work for me, I had to create a cron entry:

sudo crontab -e

@reboot modprobe -r psmouse

KevinCreel avatar Oct 10 '22 13:10 KevinCreel

As referenced by @leviport, I'm suffering from the mouse jumping around as well. Disabling psmouse module stops it from jumping. I have some extra debug info that will hopefully help.

Once psmouse is disabled, it begins spamming some logs about trying to connect AT Raw Set 2 keyboard. journalctl -f -b shows:

Dec 01 12:55:00 pop-os /usr/libexec/gdm-x-session[2899]: (II) config/udev: Adding input device AT Raw Set 2 keyboard (/dev/input/event256)
Dec 01 12:55:00 pop-os /usr/libexec/gdm-x-session[2899]: (**) AT Raw Set 2 keyboard: Applying InputClass "libinput keyboard catchall"
Dec 01 12:55:00 pop-os /usr/libexec/gdm-x-session[2899]: (II) Using input driver 'libinput' for 'AT Raw Set 2 keyboard'
Dec 01 12:55:00 pop-os /usr/libexec/gdm-x-session[2899]: (II) systemd-logind: got fd for /dev/input/event256 13:256 fd 107 paused 0
Dec 01 12:55:00 pop-os /usr/libexec/gdm-x-session[2899]: (**) AT Raw Set 2 keyboard: always reports core events
Dec 01 12:55:00 pop-os /usr/libexec/gdm-x-session[2899]: (**) Option "Device" "/dev/input/event256"
Dec 01 12:55:00 pop-os /usr/libexec/gdm-x-session[2899]: (II) event256 - AT Raw Set 2 keyboard: is tagged by udev as: Keyboard
Dec 01 12:55:00 pop-os /usr/libexec/gdm-x-session[2899]: (II) event256 - AT Raw Set 2 keyboard: device is a keyboard
Dec 01 12:55:00 pop-os /usr/libexec/gdm-x-session[2899]: (II) event256 - AT Raw Set 2 keyboard: device removed
Dec 01 12:55:00 pop-os /usr/libexec/gdm-x-session[2899]: (**) Option "config_info" "udev:/sys/devices/platform/i8042/serio1/input/input976/event256"
Dec 01 12:55:00 pop-os /usr/libexec/gdm-x-session[2899]: (II) XINPUT: Adding extended input device "AT Raw Set 2 keyboard" (type: KEYBOARD, id 23)
Dec 01 12:55:00 pop-os /usr/libexec/gdm-x-session[2899]: (**) Option "xkb_layout" "us"
Dec 01 12:55:00 pop-os /usr/libexec/gdm-x-session[2899]: (II) event256 - AT Raw Set 2 keyboard: is tagged by udev as: Keyboard
Dec 01 12:55:00 pop-os /usr/libexec/gdm-x-session[2899]: (II) event256 - AT Raw Set 2 keyboard: device is a keyboard
Dec 01 12:55:00 pop-os /usr/libexec/gdm-x-session[2899]: (II) event256 - AT Raw Set 2 keyboard: device removed
Dec 01 12:55:00 pop-os acpid[988]: input device has been disconnected, fd 40
Dec 01 12:55:00 pop-os /usr/libexec/gdm-x-session[2899]: (II) config/udev: removing device AT Raw Set 2 keyboard
Dec 01 12:55:00 pop-os /usr/libexec/gdm-x-session[2899]: (**) Option "fd" "107"
Dec 01 12:55:00 pop-os /usr/libexec/gdm-x-session[2899]: (II) UnloadModule: "libinput"
Dec 01 12:55:00 pop-os /usr/libexec/gdm-x-session[2899]: (II) systemd-logind: releasing fd for 13:256
Dec 01 12:55:01 pop-os kernel: input: AT Raw Set 2 keyboard as /devices/platform/i8042/serio1/input/input978
Dec 01 12:55:01 pop-os systemd-logind[1039]: Watching system buttons on /dev/input/event256 (AT Raw Set 2 keyboard)

The keyboard shows up in xinput --list sproadically, as it's discovered/undiscovered:

⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
...
    ↳ AT Raw Set 2 keyboard                   	id=23	[slave  keyboard (3)]

Using journalctl -f -b -u systemd-logind also gives a repeating message:

Dec 01 12:55:04 pop-os systemd-logind[1039]: Watching system buttons on /dev/input/event256 (AT Raw Set 2 keyboard)
Dec 01 12:55:04 pop-os systemd-logind[1039]: Watching system buttons on /dev/input/event256 (AT Raw Set 2 keyboard)
Dec 01 12:55:05 pop-os systemd-logind[1039]: Watching system buttons on /dev/input/event256 (AT Raw Set 2 keyboard)
Dec 01 12:55:07 pop-os systemd-logind[1039]: Failed to open /dev/input/event256: No such file or directory
Dec 01 12:55:09 pop-os systemd-logind[1039]: Watching system buttons on /dev/input/event256 (AT Raw Set 2 keyboard)
Dec 01 12:55:10 pop-os systemd-logind[1039]: Watching system buttons on /dev/input/event256 (AT Raw Set 2 keyboard)

The visual evidence is that every time it loops to reconnect the "keyboard", the UI hangs up, for less than a second, then continues. This is noticeable watching video streams, playing games, and typing/moving windows around.

Hopefully this sparks a thought on what the cause is.

piurafunk avatar Dec 01 '22 20:12 piurafunk

While working with a customer on this issue, I think I've come up with a way to paper over the issue:

  1. Blacklist the "psmouse" module: sudo kernelstub -a "modprobe.blacklist=psmouse"
  2. Create a xorg configlet to keep from spamming the logs (and UI hangs): sudo gedit /usr/share/X11/xorg.conf.d/99-oryx9.conf With the content:
Section "InputDevice"
  Identifier "AT Raw Set 2 keyboard"
  Driver "libinput"
  Option "Device"   "/dev/input/event257"
  Option "SendEventsMode" "disabled"
EndSection

Section "InputDevice"
  Identifier "AT Raw Set 2 keyboard"
  Driver "libinput"
  Option "Device" "/dev/input/event258"
  Option "SendEventsMode" "disabled"
EndSection

So far this is a fix on at least one system.

thomas-zimmerman avatar Dec 19 '22 15:12 thomas-zimmerman

This sudo kernelstub -a "modprobe.blacklist=psmouse" worked for me also ; thank you

radupopa2010 avatar Dec 23 '22 19:12 radupopa2010