summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2023-10-31 10:36:16 +0000
committerLeah Rowe <leah@libreboot.org>2023-10-31 10:36:16 +0000
commit026d57fff45b4649b5a2548faeea346141f3d6eb (patch)
treed2ad22e7f8f483c89d8a77bd56e4a4ae604fbb25
parent29e9c32e32f8e947f51a3efe375dab3ef8e1987e (diff)
GRUB: don't spew "Unknown key 0xff" in error
Faulty keyboards make GRUB unusable. Normally it happens when a user plugs in a faulty USB keyboard, but if it's the laptop keyboard, then GRUB becomes unusable and the user cannot boot anything. So, your laptop keyboard is a ticking timebomb if you use GRUB; with this patch, that's no longer the case. Signed-off-by: Leah Rowe <leah@libreboot.org>
-rw-r--r--config/grub/patches/0003-keyboardfix/0002-keylayouts-don-t-print-Unknown-key-message.patch38
1 files changed, 38 insertions, 0 deletions
diff --git a/config/grub/patches/0003-keyboardfix/0002-keylayouts-don-t-print-Unknown-key-message.patch b/config/grub/patches/0003-keyboardfix/0002-keylayouts-don-t-print-Unknown-key-message.patch
new file mode 100644
index 00000000..fbef86a4
--- /dev/null
+++ b/config/grub/patches/0003-keyboardfix/0002-keylayouts-don-t-print-Unknown-key-message.patch
@@ -0,0 +1,38 @@
+From 0a6abeb40ac4284fbff6ef5958989d561b6290a7 Mon Sep 17 00:00:00 2001
+From: Leah Rowe <leah@libreboot.org>
+Date: Tue, 31 Oct 2023 10:33:28 +0000
+Subject: [PATCH 1/1] keylayouts: don't print "Unknown key" message
+
+on keyboards with stuck keys, this results in GRUB just
+spewing it repeatedly, preventing use of GRUB.
+
+in such cases, it's still possible to use the keyboard,
+and we should let the user at least boot.
+
+it often appears when people plug in faulty usb keyboards,
+but can appear for laptop keyboards too; one of my e6400
+has stuck keys.
+
+with this patch, grub should be a bit more reliable in
+terms of user experience, when the keyboard is faulty.
+
+Signed-off-by: Leah Rowe <leah@libreboot.org>
+---
+ grub-core/commands/keylayouts.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/grub-core/commands/keylayouts.c b/grub-core/commands/keylayouts.c
+index aa3ba34f2..445fa0601 100644
+--- a/grub-core/commands/keylayouts.c
++++ b/grub-core/commands/keylayouts.c
+@@ -174,7 +174,6 @@ grub_term_map_key (grub_keyboard_key_t code, int status)
+ key = map_key_core (code, status, &alt_gr_consumed);
+
+ if (key == 0 || key == GRUB_TERM_SHIFT) {
+- grub_printf ("Unknown key 0x%x detected\n", code);
+ return GRUB_TERM_NO_KEY;
+ }
+
+--
+2.39.2
+