I am not sure what the problem is, this is my theory: that keyboard is a little bit troublesome and is not being recognized but just needs some special handling to work.
I have to check how GRUB deals with keyboard input but the fact it works there gives me hope.
The kernel has a number of parameters that can be tweaked to deal with oddball hardware, sadly I don’t know much and I just harvest those from other issues, so there’s a bunch more of those to try.
Some combination of the atkbd
and i8042
ones from kernel-parameters.txt is a good bet.
You may also try some other kernel variant like -mainline or -lts.
To be honest I’m puzzled that I can’t find anything online specifically about the MECHREVO keyboard.
OK, I think it’s this: 蛟龙16K在高版本linux下内置键盘失灵问题【机械革命吧】_百度贴吧
automatic translation
Model: Jiaolong 16K (Jiaolong16K Series GM6BG0Q)
This model has a built-in keyboard failure problem on a high-version linux kernel, specifically, the linux version is greater than or equal to 6.0.
This problem has been since the patch ACPI: skip IRQ override on AMD Zen platforms (kernel.org) The patch began to appear after canceling the special handling of ACPI interrupts for the AMD Ryzen platform.
After my investigation and debugging, the keyboard interrupt description in the ACPI DSDT table of Jiaolong 16K BIOS is wrong. The keyboard interrupt in DSDT is described as edge-sensitive and active low (Edge ActiveLow), but the machine keyboard is actually edge-sensitive, Active high (Edge ActiveHigh).
Before this patch, linux made special processing for interrupts with BUG. If an edge-sensitive, active-low interrupt was read, it would be considered a bug in the BIOS, and it would be processed directly as an edge-sensitive, active-high interrupt. However, this approach has caused some Ryzen notebook keyboards to fail, because the keyboards of these notebooks are edge-sensitive and low-level effective, so the above-mentioned patch cancels this approach.
However, the Jiaolong 16K keyboard should be edge-sensitive and active-high, but it is written as edge-sensitive and active-low in the BIOS. Therefore, after applying this patch, the keyboard of Jiaolong 16K cannot work normally.
Therefore, I hope that I can contact the technicians of Mechanical Revolution, and I can completely solve this problem through a BIOS update, and it can also prevent other problems in the future.
The picture contains text for a kernel patch to fix it, I don’t know if maybe there’s a simpler work around now that the problem is known. [see last edit, there is] Maybe some of the acpi
parameters, but judging by other issues I’ve read, messing with those may have adverse effects elsewhere.

There’s a comment about contacting the manufacturer, maybe they’ll provide a BIOS update (or maybe not).
More translations from that page:
In the relevant discussions I found, it was mentioned that a notebook motherboard GMxRGxx from the same party also had this problem. According to the code name, Jiaolong’s motherboard should be very close to that motherboard. In this case, I guess there are problems with the several notebooks of the Jiaolong series. in trouble
I did an update of the dsdt table, using initrd to replace the dsdt table at boot time as a temporary bypass, use the tutorial search engine to search Upgrading ACPI tables via initrd. Download link http ps:// ww i.lan zoup.co m/i3n 8m0qy 4tih
yep the download link is written funny, however, that’s one way about it (other than waiting for either a BIOS fix or a workaround patch in the kernel – or recompiling it with the patch above that is).
Fix the link removing weird characters and an extra p in https. Got the file just in case.
Upgrading ACPI tables via initrd — The Linux Kernel documentation
DSDT - ArchWiki
whether this means compiling it yourself or trusting some stranger on the Internet is at your discretion.
Beware that both the kernel patch and the file are for a similar but different model, you’d have to adjust the patch and likely the file is not usable on your machine.