gnome-shell
gnome-shell copied to clipboard
Alder Lake laptops: cursor drifts to bottom right corner when in clamshell mode
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.
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.
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?
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.
One of our shell extensions then? I'd still recommend running the command @ids1024 mentioned to see if there are any events.
I have at least one customer who says it only happens in NVIDIA mode so I wonder if Hybrid mode is also affected.
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.
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/
I also ran sudo libinput debug-events as suggested and it did print POINTER_MOTION events.
Was having this issue on my System76 lap top running Pop OS. Removing the psmouse module seems to fix.
modprobe -r psmouse
I just tried this, and it also worked for me.
Would I just add psmouse
to the blacklist.conf
file in /etc/modprobe.d
if I wanted to remove it during boot?
@chrfrancis For some reason that didn't work for me, I had to create a cron entry:
sudo crontab -e
@reboot modprobe -r psmouse
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.
While working with a customer on this issue, I think I've come up with a way to paper over the issue:
- Blacklist the "psmouse" module:
sudo kernelstub -a "modprobe.blacklist=psmouse"
- 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.
This sudo kernelstub -a "modprobe.blacklist=psmouse"
worked for me also ; thank you