使用“xinput --disable”切换触摸板` 终止用户会话

使用“xinput --disable”切换触摸板` 终止用户会话

[在 Xorg 上使用 gdm 运行 Arch linux 5.11.12-arch1-1 的主机。]

多年来,只要我有一个活动的终端会话,我就会直接从键盘或 cli 即时禁用/启用我的触摸板。我通过按下一个组合键来执行此操作,该组合键绑定到现在在网络上几乎随处可见的小脚本的执行,或者通过在终端中发出该脚本的两个核心命令之一来完成此操作:

 $ /usr/bin/xinput --disable 14
 $ /usr/bin/xinput --enable 14

其中 14 是我的笔记本电脑触摸板的 xorg 特定设备 ID。 xorg-xinput版本为1.6.3-2,于2020年5月19日从1.6.3-1升级。

现在,每当发出两个命令之一时,用户会话及其中的所有内容都会退出。主机恢复并向用户呈现新的 gdm 登录屏幕。
在网络和 SE 知识库中搜索找不到类似的问题。这似乎是一个完全合法的xorg相关 cmd ( xinput) 与 X 或gdm崩溃之间的奇怪混淆。

有人指点一下吗?

答案1

这可能是 X 服务器 ( xorg-server) 崩溃。systemd核心转储的日志跟踪是这里对于同一启动上的两个崩溃事件。堆栈跟踪始终包括:

Stack trace of thread 3428:
#0  0x00007f1c5e6b9ef5 raise (libc.so.6 + 0x3cef5)
#1  0x00007f1c5e6a3862 abort (libc.so.6 + 0x26862)
#2  0x00005625301406ea OsAbort (Xorg + 0x14a6ea)
#3  0x00005625301421b1 FatalError (Xorg + 0x14c1b1)
#4  0x0000562530147e09 n/a (Xorg + 0x151e09)
#5  0x00007f1c5e6b9f80 __restore_rt (libc.so.6 + 0x3cf80)
#6  0x00007f1c5051efd0 libinput_device_config_send_events_get_modes (libinput.so.10 + 0x11fd0)
#7  0x00007f1c5058a139 n/a (libinput_drv.so + 0x9139)
#8  0x00007f1c5058ea19 n/a (libinput_drv.so + 0xda19)
#9  0x0000562530105a87 XIChangeDeviceProperty (Xorg + 0x10fa87)
#10 0x00005625301066af n/a (Xorg + 0x1106af)
#11 0x0000562530030195 n/a (Xorg + 0x3a195)
#12 0x00007f1c5e6a4b25 __libc_start_main (libc.so.6 + 0x27b25)
#13 0x00005625300305de _start (Xorg + 0x3a5de)

驱动xf86-input-libinput程序似乎涉及一些内存损坏,最终导致崩溃(参见讨论这里)。

值得一提的是,2021 年 4 月 9 日是我第一次注意到这个问题的时候。它与gdm+ linux 内核/标头正在升级(来自 /var/log/pacman.log)同时发生。xf86-input-libinput不过,它可能与几天前的重大升级同时发生:

[2021-04-06T15:52:54+0200] [ALPM] upgraded xf86-input-libinput (0.30.0-1 -> 1.0.0-1)
[2021-04-09T08:29:29] [ALPM] upgraded linux (5.11.11.arch1-1 -> >> 5.11.12.arch1-1)

编辑:我恢复了更多 Gnome 相关的内容,在问题首次出现时的时间窗口内注册了升级:

$ cat /var/log/pacman.log | grep upgraded | grep -e "2021-04-06\|2021-04-07\|2021-04-08\|2021-04-09" | grep -E " g.*"

[2021-04-09T08:29:30] [ALPM] upgraded glib2 (2.68.0-5 -> 2.68.1-1)
[2021-04-09T08:29:30] [ALPM] upgraded gsettings-desktop-schemas (40.0-2 -> 40.0-3)
[2021-04-09T08:29:30] [ALPM] upgraded gnome-session (3.38.0+14+g87d92fec-1 -> 40beta+4+gd44888fb-1)
[2021-04-09T08:29:30] [ALPM] upgraded gst-plugins-bad-libs (1.18.4-3 -> 1.18.4-4)
[2021-04-09T08:29:30] [ALPM] upgraded gnome-settings-daemon (3.38.1-1 -> 40.0-1)
[2021-04-09T08:29:30] [ALPM] upgraded gnome-shell (1:3.38.4-1 -> 1:40.0-1)
[2021-04-09T08:29:30] [ALPM] upgraded gdm (3.38.2.1-1 -> 40.0-1)
[2021-04-09T08:29:30] [ALPM] upgraded gnome-clocks (40.0-1 -> 40.0-2)
[2021-04-09T08:29:30] [ALPM] upgraded gst-plugins-bad (1.18.4-3 -> 1.18.4-4)
[2021-04-09T08:29:31] [ALPM] upgraded gnome-control-center (3.38.5-1 -> 40.0-1)
[2021-04-09T08:29:31] [ALPM] upgraded gnome-notes (40.0-1 -> 40.0-2)
[2021-04-09T08:29:31] [ALPM] upgraded gnome-panel (3.38.0-1 -> 3.40.0-1)
[2021-04-09T08:29:31] [ALPM] upgraded gnome-shell-extensions (3.38.2-1 -> 40.0-1)
[2021-04-09T08:29:31] [ALPM] upgraded gnome-tweaks (3.34.1-1 -> 40.0-1)

这个问题在我的平台上可以完美重现,我将其作为错误提交这里。一切似乎都指向一个libinput驱动程序错误,只有在使用 专门启用/禁用触摸板时才会激活该错误xinput

相关内容