几周前,我将 Acer 笔记本电脑的 18.04 版从 19.04 版升级到了 20.04 版。一切都很顺利。几周后,我记得我没有进行任何重大更新或操作,但启动后我发现笔记本电脑的内置键盘和触摸板没有任何反应,无论是在登录屏幕还是从此以后。
当我启动 Windows 时,两个程序都正常工作,所以这不是硬件问题。我尝试了网络上与此相关的所有搜索结果,安装软件包、卸载软件包、重新安装软件包,但都不起作用。
在此过程中,我了解了一些情况,从而缩小了事情的范围。
- 这些设备在某些较低层面上显然是没问题的;当系统处于睡眠/暂停状态时,按下一个键或触摸板很容易将其唤醒——之后,它们就拒绝再次工作。
- 奇怪的是,亮度组合键(Fn+ ←/ →)和关闭屏幕的组合键(Fn+ F6)可以工作,但其他组合键如音量键(Fn+ ↑/ ↓)却不能不是工作。
sudo libinput debug-events --device /dev/input/event4 --show-keycodes
当我运行并键入键时,我会看到所有预期的键输出。- 当我插入外部 USB 键盘和鼠标时,它们可以正常工作,而内部键盘和触摸板保持不变。
- 9月18日当我使用齿轮图标登录“Ubuntu”而不是“Ubuntu on Wayland”等时,触摸板可以工作,但键盘保持不变。如果我设置
WaylandEnable=False
和/etc/gdm3/custom.conf
,sudo systemctl restart gdm3.service
我的触摸板在登录屏幕上也可以工作;键盘仍然坏了。Wayland 有问题?但即使使用 X 也对我的键盘没有帮助。
因此,这似乎与 GNOME 有关。当然,我尝试重新安装 gnome-this 和 gnome-that 并重新启动,但仍然没有成功。以下是系统日志中的相关部分(journalctl -b
):
Sep 17 11:36:20 joel-Aspire-E5-511 systemd[1188]: Startup finished in 17.580s.
Sep 17 11:36:20 joel-Aspire-E5-511 gnome-shell[1314]: Registering session with GDM
Sep 17 11:36:20 joel-Aspire-E5-511 gsd-media-keys[1462]: Failed to grab accelerator for keybinding settings:rfkill
Sep 17 11:36:20 joel-Aspire-E5-511 gsd-media-keys[1462]: Failed to grab accelerator for keybinding settings:playback-repeat
Sep 17 11:36:20 joel-Aspire-E5-511 gsd-media-keys[1462]: Failed to grab accelerator for keybinding settings:playback-random
Sep 17 11:36:20 joel-Aspire-E5-511 gsd-media-keys[1462]: Failed to grab accelerator for keybinding settings:hibernate
Sep 17 11:36:20 joel-Aspire-E5-511 colord[948]: failed to get session [pid 1460]: No data available
Sep 17 11:36:20 joel-Aspire-E5-511 systemd[1188]: GNOME session X11 services is not active.
Sep 17 11:36:20 joel-Aspire-E5-511 systemd[1188]: Dependency failed for GNOME XSettings.
Sep 17 11:36:20 joel-Aspire-E5-511 systemd[1188]: gsd-xsettings.target: Job gsd-xsettings.target/start failed with result 'dep>
Sep 17 11:36:20 joel-Aspire-E5-511 systemd[1188]: Starting GNOME XSettings...
Sep 17 11:36:20 joel-Aspire-E5-511 dbus-daemon[1231]: [session uid=121 pid=1231] Activating service name='org.freedesktop.port>
Sep 17 11:36:20 joel-Aspire-E5-511 dbus-daemon[1231]: [session uid=121 pid=1231] Successfully activated service 'org.freedeskt>
Sep 17 11:36:20 joel-Aspire-E5-511 gnome-shell[1575]: The XKEYBOARD keymap compiler (xkbcomp) reports:
Sep 17 11:36:20 joel-Aspire-E5-511 gnome-shell[1575]: > Warning: Unsupported maximum keycode 569, clipping.
Sep 17 11:36:20 joel-Aspire-E5-511 gnome-shell[1575]: > X11 cannot support keycodes above 255.
Sep 17 11:36:20 joel-Aspire-E5-511 gnome-shell[1575]: > Internal error: Could not resolve keysym Invalid
Sep 17 11:36:20 joel-Aspire-E5-511 gnome-shell[1575]: Errors from xkbcomp are not fatal to the X server
Sep 17 11:36:21 joel-Aspire-E5-511 systemd[1188]: Started GNOME XSettings.
我试图弄清楚究竟何时gnome-shell
调用xkbcomp
以及如何调用它;我搜索了它的源代码但找不到答案。我了解了什么systemd
是,并查看了类似的文件gsd-xsettings.target
,但仍然无法追踪如何或在何处xkbcomp
调用。如果我在网上搜索xkbcomp
错误消息,我会得到一些看似相关但在细节上有所不同的东西(例如,不是无法解析 keysym Invalid
,而是其他东西),并且追查它们没有成功。
在 Xorg 日志旁边——我很困惑,我有两个:~/.local/share/xorg/Xorg.0.log
和/var/lib/gdm3/.local/share/xorg/Xorg.0.log
。GDM 的时间戳比本地的时间戳小,所以这是否意味着这个先出现?
无论如何,GDM 日志显示许多设备(例如视频总线、网络摄像头)“配置为键盘”,并且日志文件以“无法设置模式 - 权限被拒绝”结尾。这可能相关吗?我的本地 Xorg 日志中还有一部分显示了更复杂的设备添加/删除(例如“视频总线:设备是键盘”)。
(我想显示日志,但包括相关部分会使问题太长。)
我在这里发布这个问题作为最后的手段:这一切之间有什么关系,发生了什么,我该如何诊断/修复我的键盘和触摸板出现的问题?
9月18日好的,我通过 GRUB 有三个内核版本可用:5.4.0-47
、、5.4.0-45
。4.15.0-112
前两个版本不起作用,最后一个版本解决了我的问题。这表明这是一个内核错误,原则上可以缩小到某个版本。
我想尝试5.4.0-42
评论者 Kasonnara 提到的方法,但这看起来比我最初想象的要复杂得多。这个答案似乎没有任何特定版本5.4.0-xxx
,而它有所有其他版本。我必须从源代码构建它吗?
9月24日好的,原来我只需要运行sudo apt install linux-image-5.4.0-42-generic
。我启动它发现键盘作品但触摸板不。另外,右上角的菜单中似乎没有 Wifi,而且我没有互联网连接。
我知道 4.15.0-112 很好,而 5.4.0-42 有问题。我明白了这里在“已发布的版本”下,20.04 (Focal) 附带 5.4.0-26。因此,我安装并启动了它。键盘仍在工作,触摸板和 WiFi 仍坏了。
我现在非常困惑,因为升级到 20.04 后它工作了好几个星期。它肯定运行的是内核 5.4.0-26 吧?
我仍然可以缩小范围键盘问题,但是 5.4.0-43 和 -44 似乎不是 Ubuntu 软件包(我进入E: Unable to locate package
;apt
可以确认只需将 3 或 4 更改为 5 就会显示一个有效的已安装软件包)。
因此,到目前为止,我得出的结论是,5.4.0-42 和 -45 之间的某个东西损坏了我的键盘。触摸板的情况就不那么清楚了;我可以说 4.15.0-112 和 5.4.0-26 之间有问题,但不太清楚,因为后者应该是我在安装 20.04 后使用的正常工作的内核。
接下来,我创建了一个 20.04 可启动 USB 棒并运行“试用 Ubuntu”。键盘和触摸板工作正常,当我cat /proc/version
...我看到了Linux version 5.4.0-42-generic
。
gthis
这是否意味着它根本不是内核问题?我完全愿意承认这与 X 或 Wayland 或 GNOME 或或或其他有关gthat.d
...我只是不够专业,不知道下一步该怎么做...
11月25日Windows 太糟糕了,迫使我重新修复这个问题。最后我咬紧牙关,备份了我的个人文件,重新安装。键盘和触摸板仍然不工作!(有上述警告,例如亮度组合有效)。现在我的列表中不再有旧的 4.15 内核了!!
重申:Ubuntu 20.04 LTS安装 USB在我的键盘和触摸板上工作正常,但实际安装的系统打破了它!
我真的很沮丧。没人能帮我吗?无论我需要自己做哪些神秘的步骤,我都会去做!只要给我指点一下就行了!
具体来说,如果能找到一种方法来跟踪按键事件的生命周期,从硬件到按键出现在屏幕上的时间,我会受益匪浅。同样,我确信问题出在 GNOME 或某个中间层。但我不知道如何从那里缩小范围。
12 月 19 日对了,就这样,终于提交了针对gdm3的bug报告:https://bugs.launchpad.net/ubuntu/+source/gdm3/+bug/1908801
12 月 24 日我现在比以前更加困惑了。我已经尝试了上面的内核 5.4.0-42,它修复了键盘,但没有修复触摸板。我的错误报告中的评论提到了这一点,我想既然我已经重新安装了,为什么不再试一次呢?令我大吃一惊的是,从登录屏幕开始,键盘和触摸板现在都可以正常工作了。哇。好吧,很高兴终于有了一个解决方法。
此外,我安装了lightdm
比较显示管理器。在 5.4.0-42 上,像 一样gdm
,它没有出现任何问题。我安装的唯一其他内核是 5.4.0-54,在它上面gdm
看不到任何键盘或触摸板输入,而lightdm
只能看到触摸板。此外,lightdm
即使单击该选项,屏幕键盘也不会出现,但这可能是因为 GNOME 工具只能与 GDM 配合使用。
知道这一点很有用。因此,我们又增加了一些谜团:
- GDM 和 LightDM 有什么共同点,导致它们无法在内核 5.4.0-54 中看到键盘输入?
- GDM 和 LightDM 做了什么不同的事情,导致只有 LightDM 可以在 5.4.0-54 中看到我的触摸板?
2021 年 1 月 21 日我的 Ubuntu 错误被标记为重复其他新年刚过不久。它说这个问题似乎在 5.4.0-58 中已经“解决”。我安装了 0-58 并观察到——好极了!我的键盘现在可在 5.4.0-58 上识别!现在我可以再次使用键盘输入的命令进行调试。
不幸的是,触摸板不是——更糟糕的是,这次有无踪迹xinput
列表中标有“触摸板”或暗示该内容的任何内容,甚至journalctl -b
日志也是如此。现在看起来触摸板甚至无法被识别低级硬件发现等级。
谷歌搜索“5.4.0-58 触摸板”会显示一两个最近的错误/邮件主题,与 (a) 触摸板静音 (b) Acer Aspire 型号 (c) 0-58 有关。我将从开始尝试主题中的建议这里并报告结果...
- 第一个建议是添加内核参数
i8042.reset
:不行 - 第二是使用
i8042.nopnp
-成功!触摸板现已恢复。非常感谢该邮件线程中的人们。
不幸的是,我后来意识到现在它无法识别 0-58 中的 WiFi 接口,即使在恢复模式 root 终端下也是如此。0-54 的 WiFi 很好。即使没有上述内核参数,此问题仍然存在。
在谷歌搜索了网络特定内容后,我意识到,嗯,有高于 5.4 的内核发布(虽然不太清楚在哪里可以找到)。我运行后apt --upgradeable|grep linux
,它向我展示了各种与 5.8 相关的升级,包括hwe
和image
一些我不明白的东西。
好吧,我apt --upgrade
按照这种方法操作,升级到了 5.8,现在一切都正常了(虽然我看到有些人提到这些东西在 5.8 上不起作用,但我似乎没问题。)
所以,对此感到高兴。但是,我的好奇心还没有得到满足。要找出 Ubuntu 有哪些内核版本、它们代表了哪些更改等,已经相当困难了。我如何才能找出哪些更改解决了键盘问题?
但谜团仍未解开。