Score:1

ASUS TUF A15 2023 Keyboard Not Working

ma flag

I've recently acquired an ASUS Tuf A15 with a Ryzen 7000 CPU (https://www.asus.com/laptops/for-gaming/tuf-gaming/asus-tuf-gaming-a15-2023/techspec/). Keyboard is not working. Is there a patch already for this? This is relatively new as of this writing and I have found the following discussions on it:

Laptop won't work without a USB keyboard attached to it. Hope someone can help.

Marco avatar
br flag
Have you tried to ask ASUS support ?
user1668926 avatar
ma flag
No but in the forum they have. It wasn't very useful. Seems to be a hardware issue.
Marco avatar
br flag
I think we at "Ask Ubuntu" feel highly honored that you think here are more experienced kernel hackers than on kernel.org. Thanks, but we are not. If there is no solution from "kernel.org" there is really no solution at all.
user1668926 avatar
ma flag
lol. But I hope it does add content to the Internet to know that it's an ongoing problem. I tried installing Kernel 6.3.5 using mainline but it's still buggy. I guess I'm one machine down and have to revert to my old one.
Marco avatar
br flag
If you have the possibility you might think about returning this laptop to the vendor.
user1668926 avatar
ma flag
No refunds. :( I hope kernel.org hackers get a fix soon. been following the thread in the links I sent. There seems to be progress but it hasn't made it to the mainline yet.
cn flag
It's not hardware issue bro. Same device, same issue... In Windows, works fine but in Ubuntu 23.10, not working.
user1668926 avatar
ma flag
It's a kernel issue. They have been able to successfully make it work as per https://bugzilla.kernel.org/show_bug.cgi?id=217336 but still not merged to mainline kernel. Maybe will have to wait.
Alex avatar
tz flag
@Marco ASUS policy is to not assist with Linux-related issues, so it won't help
Score:1
ck flag

UPDATE: The patch finally made its way to the official Kernel 6.4.7 release.

Sad to see that the patch still did not make its way to Kernel 6.4.2...

There are dozens of tutorials of how to patch and build your Kernel, but we can save some power by doing this just once ;)

Here is my build of Kernel 6.4.2+ (6.4.2 with patch that is already in mainline), built with Ubuntu mainline configuration of Krenel 6.4.

Note that you should never ever trust .deb packages that you find on the internet ;)

I hope that this is post is going to be obsolete by the time Kernel 6.4.3 is released...

https://mega.nz/file/6qYkiIZQ#Y8w79Ilh0n61B-A_8O7v5fg6lMKYLeDXg1LCOXg8kZU

user1668926 avatar
ma flag
Thank you. I do hope it will make it to 6.4.3. Seems to already be on linus' branch according to https://bugzilla.kernel.org/show_bug.cgi?id=217336 but there are still persisting problems. I've decided to wait until it becomes official instead of randomly trying things out in the Internet. The machine was quite expensive.
Marek Šanta avatar
ck flag
The patch applied in my build is Mario's without modification, and it is on top of the official 6.4.2 release. Also, the problems mentioned (interrupt storm) are unrelated to this patch - it is a different issue. It works well on my FA507NU machine so far. However, there is now 6.5-rc1 in official Ubuntu's mainline repos, so you can try that :) (but I did not test that one yet)
user1668926 avatar
ma flag
6.4.3 was just released. Is the patch there? Sorry couldn't really tell. My only frame of reference is to look at drivers/acpi/resource.c and check if the zen if statmeent is taken out. I've seen somewhere that that made the keyboard to work. Will try out 6.5rc1 from ubuntu mainline kernel tool.
Marek Šanta avatar
ck flag
Seems like it did not get into 6.4.3 either... It is in 6.5-rc1 and I am afraid that it won't be backported to stable versions any time soon. Also, 6.5-rc1 is still in very early stage and can be unstable...
user1668926 avatar
ma flag
And so the wait continues. If it's in 6.5-rc1 I do hope Ubuntu 23.10 uses 6.5 then.
user1668926 avatar
ma flag
Also how'd you know that it's 6.5-rc1? I couldn't find the patch in https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/acpi/resource.c?h=v6.5-rc1
Marek Šanta avatar
ck flag
Here is the diff: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/diff/drivers/acpi/resource.c?id=v6.5-rc1&id2=v6.4 Also, I finally tried 6.5-rc1 on my system and I could not even get to the login screen :D
user1668926 avatar
ma flag
6.4.3 didn't work? Based on the latest update (7-11), that `if` statement with the`ZEN` stuff is not present. In the bugzilla thread, removing that apparently made the keyboard work. This is the file in question (6.4.3): https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/acpi/resource.c?h=v6.4.3
Marek Šanta avatar
ck flag
No, the line was still in 6.4.6. The patch finally got to 6.4.7 official codebase, so enjoy. Sadly, Ubuntu Mainline team did not make a successful build so far :D
Score:0
pk flag

There is still no patch for this in the mainline, but you can try to patch the kernel yourself.

Here is a quick tutorial on how to do it:

  1. Download and save the patch:

    --- 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,
    
  2. Download the latest Linux kernel from https://kernel.org/ and extract it to a folder

  3. Switch directory and patch the kernel:

    cd linux-6.4.1 // Your extracted kernel directory here
    patch -p1 < /path/to/patch
    
  4. Build the kernel:

    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
    
  5. Update grub:

    sudo update-grub
    

and restart. Let me know if this patch worked for you :)

Edit: There is now a patch in the mainline. No need to do this now.

user1668926 avatar
ma flag
I haven't tried this. The machine is quite expensive so a bit hesitant to experiment with things. I'm on an older machine so I'll have to wait for 6.5 I think. Been following this thread regularly: https://bugzilla.kernel.org/show_bug.cgi?id=217336 Keyboard seems to be fixed but not yet on mainline. And there's that interrupt storm problem still.
MCSifreedsk33 avatar
pk flag
There is nothing you can break by building your own kernel. I've tried this since i have the same computer as you, and it works. If you're scared by installing a kernel, why bother to install and use linux? You could've just used Windows.
user1668926 avatar
ma flag
I've been a long time linux user but I couldn't risk my current work setup (software dev) and stability just to make new hardware work. Best i could risk is to test what's available in ubuntu mainline.
MCSifreedsk33 avatar
pk flag
@user1668926 Fair enough, i guess... I still don't think that you can break anything in your new computer by compiling a custom kernel, but you do you. You would have to be _very_ skilled to do that :D. This was just a temporary patch based on the before mentioned https://bugzilla.kernel.org/show_bug.cgi?id=217336 patch to get you up and running before it makes it to the mainline. There are no disadvantages to this approach making it as stable as a downloaded and pre-compiled kernel. Still hope this answer helped you a bit!
user1668926 avatar
ma flag
Yeah it is helpful. If I can get a backup laptop for work, I might consider this. It is helpful. Thank you. I really can't wait to use the hardware. A little bit impatient already. Not even sure if it will make it to Ubuntu 23.10.
I sit in a Tesla and translated this thread with Ai:

mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.