关机后键盘不工作(华硕 Zenbook 13 OLED UM325S)

关机后键盘不工作(华硕 Zenbook 13 OLED UM325S)

我刚刚在我的新 ASUS Zenbook 13 OLED UM325S 上安装了 Ubuntu 20.04。

冷启动后键盘无法工作。如果设备在 Cryptsetup 阶段或之后重新启动,键盘将在下次启动时开始工作。Cryptsetup 也会受到影响,因此如果没有外部键盘,则无法进入加密安装。

我的 grub 入口;GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

发现

  1. serio_raw冷启动时内核模块不会加载。在此发现要旨
  2. AT Translated Set 2 keyboard是笔记本电脑键盘。冷启动后看不到,但重启后可见。要点在这里。
  3. 我无法使用 xinput 来管理设备的属性,正如@Sancho.s 在下面他的回答中所建议的那样。有时 xinput 不显示任何连接的键盘,它只显示虚拟设备。libinput另一方面,可以正确显示所有设备。
  4. WMI ASUS 热键正在工作,所以偶尔我会看到,当 F1-F12 与该键组合使用时,亮度调整、声音等会起作用fn

尝试让它发挥作用

  1. serio_raw我使用initramfs和强制加载了两个模块,但load-modules.d没有成功。模块加载,但不影响键盘问题。
  2. 但是尝试运行后xinput set-prop "AT Translated Set 2 keyboard" "Device Enabled" 1,xinput 失败,因为未找到设备。

目前的解决方法是连接外部键盘,等待 Cryptsetup 启动,然后按下CTRL+ALT+DEL并正常启动。如果我从 GRUB 重新启动,则没有任何效果。

谢谢

答案1

我将以你出色的工作为基础,找出“工作条件”之间的差异(西昆士兰大学)和“非工作条件”(西北航空中心)。
笔记:我很惊讶你必须做下面建议的任何事,但如果它有效......对你来说是好事。


您可能需要在启动时明确强制加载模块serio_rawsystemd尝试将其添加到/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

然后再次冷启动。请发表反馈。


您还可以检查系统状态西北航空中心通过sshing 进入它。从键盘配置的角度来看,这也许比使用外部键盘“侵入性更小”。


有关的

  1. https://unix.stackexchange.com/questions/89538/how-to-tell-which-keyboard-was-used-to-press-a-key

答案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,所以我没有测试过它,请告诉我它是否适合您。

相关内容