我最近买了一台搭载 Ryzen 7000 CPU 的 ASUS Tuf A15(https://www.asus.com/laptops/for-gaming/tuf-gaming/asus-tuf-gaming-a15-2023/techspec/)。键盘无法正常工作。是否有针对此问题的补丁?截至撰写本文时,此问题相对较新,我发现了以下相关讨论:
- https://bugzilla.kernel.org/show_bug.cgi?id=217336
- https://forums.opensuse.org/t/keyboard-not-working-on-laptop-amd-asus-tuf/165741/14
如果没有连接 USB 键盘,笔记本电脑将无法工作。希望有人能帮忙。
答案1
主线中仍然没有针对此问题的补丁,但您可以尝试自己修补内核。
以下是有关如何操作的快速教程:
下载并保存补丁:
--- a/drivers/acpi/resource.c +++ b/drivers/acpi/resource.c @@ -527,6 +527,35 @@ { } }; +static const struct dmi_system_id asus_tuf_amd_laptop[] = { + { + .ident = "ASUS TUF Gaming A15", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_BOARD_NAME, "FA507NV"), + }, + }, { + .ident = "ASUS TUF Gaming A15", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_BOARD_NAME, "FA507XU"), + }, + }, { + .ident = "ASUS TUF Gaming A15", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_BOARD_NAME, "FA507XV"), + }, + }, { + .ident = "ASUS TUF Gaming A15", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_BOARD_NAME, "FA507XI"), + }, + }, + { } +}; + struct irq_override_cmp { const struct dmi_system_id *system; unsigned char irq; @@ -539,6 +568,7 @@ static const struct irq_override_cmp override_table[] = { { medion_laptop, 1, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0, false }, { asus_laptop, 1, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0, false }, + { asus_tuf_amd_laptop, 1, ACPI_EDGE_SENSITIVE, ACPI_ACTIVE_HIGH, 0, true }, { lenovo_laptop, 6, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0, true }, { lenovo_laptop, 10, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0, true }, { tongfang_gm_rg, 1, ACPI_EDGE_SENSITIVE, ACPI_ACTIVE_LOW, 1, true }, @@ -601,6 +631,11 @@ !acpi_get_override_irq(gsi, &t, &p)) { u8 trig = t ? ACPI_LEVEL_SENSITIVE : ACPI_EDGE_SENSITIVE; u8 pol = p ? ACPI_ACTIVE_LOW : ACPI_ACTIVE_HIGH; + + if (gsi == 1) { + trig = ACPI_LEVEL_SENSITIVE; + pol = ACPI_ACTIVE_LOW; + } if (triggering != trig || polarity != pol) { pr_warn("ACPI: IRQ %d override to %s%s, %s%s\n", gsi,
从以下网址下载最新的 Linux 内核https://kernel.org/并将其解压到一个文件夹中
切换目录并修补内核:
cd linux-6.4.1 // Your extracted kernel directory here patch -p1 < /path/to/patch
构建内核:
cp -f /boot/config-$(uname -r) .config make -j 16 # Just press enter when it asks something sudo make modules_install -j 16 sudo make install
更新 grub:
sudo update-grub
然后重启。如果这个补丁对你有用,请告诉我 :)
编辑:现在主线中有一个补丁。现在不需要这样做。
答案2
更新:补丁最终进入内核 6.4.7 官方版本。
很遗憾看到补丁仍然没有进入内核 6.4.2......
关于如何修补和构建内核的教程有很多,但我们只需执行一次即可节省一些电量;)
这是我构建的内核 6.4.2+(带有补丁的 6.4.2 已经在主线中),使用 Ubuntu 主线配置 Krenel 6.4 构建。
请注意,您永远不应该相信在互联网上找到的 .deb 包;)
我希望这个帖子在内核 6.4.3 发布时会变得过时...
https://mega.nz/file/6qYkiIZQ#Y8w79Ilh0n61B-A_8O7v5fg6lMKYLeDXg1LCOXg8kZU
答案3
想象一下购买一台笔记本电脑却不能使用键盘和 WiFi。
三天后,这里有一个简单的解决方案,可以升级到内核 6.5 并使用华硕 TUF A15 2023 键盘(在 PopOS 22.04 上测试):
sudo apt install linux-oem-22.04d