我刚刚在我的新 ASUS Zenbook 13 OLED UM325S 上安装了 Ubuntu 20.04。
冷启动后键盘无法工作。如果设备在 Cryptsetup 阶段或之后重新启动,键盘将在下次启动时开始工作。Cryptsetup 也会受到影响,因此如果没有外部键盘,则无法进入加密安装。
我的 grub 入口;GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
发现
serio_raw
冷启动时内核模块不会加载。在此发现要旨。AT Translated Set 2 keyboard
是笔记本电脑键盘。冷启动后看不到,但重启后可见。要点在这里。- 我无法使用 xinput 来管理设备的属性,正如@Sancho.s 在下面他的回答中所建议的那样。有时 xinput 不显示任何连接的键盘,它只显示虚拟设备。
libinput
另一方面,可以正确显示所有设备。 - WMI ASUS 热键正在工作,所以偶尔我会看到,当 F1-F12 与该键组合使用时,亮度调整、声音等会起作用
fn
。
尝试让它发挥作用
serio_raw
我使用initramfs
和强制加载了两个模块,但load-modules.d
没有成功。模块加载,但不影响键盘问题。- 但是尝试运行后
xinput set-prop "AT Translated Set 2 keyboard" "Device Enabled" 1
,xinput 失败,因为未找到设备。
目前的解决方法是连接外部键盘,等待 Cryptsetup 启动,然后按下CTRL+ALT+DEL
并正常启动。如果我从 GRUB 重新启动,则没有任何效果。
谢谢
答案1
我将以你出色的工作为基础,找出“工作条件”之间的差异(西昆士兰大学)和“非工作条件”(西北航空中心)。
笔记:我很惊讶你必须做下面建议的任何事,但如果它有效......对你来说是好事。
您可能需要在启动时明确强制加载模块serio_raw
。systemd
尝试将其添加到/etc/modules
(来源)。或者创建/etc/modules-load.d/serio_raw.conf
包含的文件serio_raw
。冷启动并发布反馈(这对您之前发现的差异有何影响?请参阅这检查模块是否插入)。
如果您需要尽早加载模块(您提到“cryptsetup 要求我在加密驱动器上输入密码”),则在引导加载期间initrd
,您可以使用initramfs 工具或者德拉库特。
这和这可能会有帮助。另请参阅官方信息, 或者这。
如果仅此不起作用,假设您xinput list
在西昆士兰大学没有外接键盘,AT Translated Set 2 keyboard
是内置键盘(来源)。
添加命令自动执行
$ xinput list-props "AT Translated Set 2 keyboard"
在启动时查看是否得到类似的信息
Device 'AT Translated Set 2 keyboard':
Device Enabled (124): 0
...
冷启动时。如果是,添加命令的自动执行
$ xinput set-prop "AT Translated Set 2 keyboard" "Device Enabled" 1
然后再次冷启动。请发表反馈。
您还可以检查系统状态西北航空中心通过ssh
ing 进入它。从键盘配置的角度来看,这也许比使用外部键盘“侵入性更小”。
有关的:
答案2
您的问题表明 Linux 内核根本检测不到键盘。这似乎与 X-Server 无关。否则,您将能够输入密码来解密磁盘或在虚拟终端上解密。
虽然现在台式机键盘通常通过 USB 连接,但笔记本电脑键盘却很特殊。例如,我的 DELL Precision 5520 键盘连接到 SuperIO 芯片的 i8042 键盘控制器。标准 AT 和 PS/2 键盘通常都是这种情况。如果它被编译为模块,则该模块将被称为“i8042”。然而,Ubuntu 会将 serio_i8042 直接编译到内核中(参见:https://kernel.ubuntu.com/~kernel-ppa/config/hirsute/linux/5.10.0-14.15/amd64-config.flavour.generic)。
如果您搜索 i8042 和“Zenbook”,似乎会发现驱动程序和 Zenbook 存在已知问题,这与 Zenbook 禁用了 i8042 自检有关。这曾经导致挂起/恢复后键盘出现问题。第一次修补此问题是在 2016 年使用提交 77b425399f6d 进行的,最近有一个补丁可以修复 Zenbook Flip 内核 5.4.243 的此问题(参见:https://lore.kernel.org/lkml/[电子邮件保护]/)。Convertible 补丁似乎在 Kernel 5.11.057 之前破坏了某些东西,该版本已于 2021 年 3 月修复。(https://lore.kernel.org/lkml/[电子邮件保护]/)。我的 Ubuntu 当前运行的是内核 5.11.0-34,这意味着它仍然存在此问题 - 您的内核也可能存在此问题。我建议您尝试更新到更高版本的内核,看看这是否能解决您的问题。
您可以从以下位置下载适用于更高版本内核的 .deb 软件包:https://kernel.ubuntu.com/~kernel-ppa/mainline/?C=N;O=D- 或者您可以使用主线工具来安装更新的内核:
sudo add-apt-repository ppa:cappelikan/ppa
sudo apt update
sudo apt install mainline
sudo mainline --install-latest
然后您必须重新启动并从引导加载程序(通常是 grub)中选择最新的内核。
如果问题与 kernelbug 有关,那么您的键盘现在应该可以工作了。您还可以查看 /proc/bus/input/devices 以查看您的键盘是否出现在那里。
答案3
最后,这个解决方案对我来说是有效的。
我正在使用 ASUS Zenbook 13 OLED UM325S 和 Kubuntu 20.04
编辑文件:/etc/default/grub
更换波纹管
GRUB_CMDLINE_LINUX=""
和
GRUB_CMDLINE_LINUX="i8042.reset i8042.nomux i8042.nopnp i8042.noloop"
更新引导加载程序
sudo update-grub
答案4
我的 ASUS Zenbook UM325UA 也遇到了同样的问题。
A邮政linux.org 指出Arch wiki 中的条目针对另一台 ASUS ZenBook 存在同样的问题,并给出了一个模糊但有效的解决方案。
经过反复尝试,我发现i8042
必须加载模块才能在启动时使键盘正常工作。至于为什么在重启后没有它也能正常工作,我仍然不知道。
在 Arch Linux 上,必须包含以下模块/etc/mkinitcpio.conf
:
# For early (initramfs) keyboard
# In the MODULES section
MODULES=(i8042)
之后必须重新创建。
在 Ubuntu 上,根据initramfs-tools
手册页,i8042
模块应该在文件中列出/etc/initramfs-tools/modules
,然后必须使用重新创建图像update-initramfs -u
。
我没有使用 Ubuntu,所以我没有测试过它,请告诉我它是否适合您。