Legacy GRUB had a 'setkey' command to remap the keyboard keys.
GRUB2 no longer has this command.  Instead, it provides an 'at_keyboard'
input terminal module, which can load a GRUB keymap.
Unfortunately, at least on the i386-pc platform, 'at_keyboard' is problematic,
in that it easily causes hangups.

For now, I'm unsure what needs to be done to fix 'at_keyboard', which is why
I decided to look for a different solution.  Whether I can fix the 'at_keyboard'
input terminal, and in what time frame, remains to be seen.

This patch set reintroduces a 'setkey' command, to support changing the keyboard
map, similarly to what was possible under Legacy GRUB.

The first patch just makes a simple edit to a comment line in the 'memory.h'
header file.  It updates the URL for the 'bios_data_area.html' web page, which
contains helpful information about BIOS, and specifically, the keyboard
interface.

The second patch implements the 'nusetkey' module, which provides the 'setkey'
command. In addition, it provides a 'setnumpad' command, to change the
behavior of the numeric keypad.

The third patch implements the 'nuconsole' input terminal, which works in
conjunction with the 'nusetkey' module to support keyboard map changes.

Finally, the fourth patch provides updates to the GRUB manual.
It documents the 'keymap' command (which loads a keyboard map for use by
the 'at_keyboard' or 'usb_keyboard' input terminals), plus the 'setkey' and
'setnumpad' commands implemented by the 'nusetkey' module.

Luc Van Rompaey (4):
  update URL to bios_data_area.html on comment line
  implement the nusetkey module
  implement the nuconsole input terminal
  add documentation for keymap, setkey, and setnumpad commands

 docs/grub.texi                        | 150 +++++++++
 grub-core/Makefile.core.def           |  12 +
 grub-core/commands/i386/pc/nusetkey.c | 583 ++++++++++++++++++++++++++++++++++
 grub-core/term/i386/pc/nuconsole.c    | 111 +++++++
 include/grub/i386/pc/memory.h         |   2 +-
 include/grub/i386/pc/nusetkey.h       |  25 ++
 6 files changed, 882 insertions(+), 1 deletion(-)
 create mode 100644 grub-core/commands/i386/pc/nusetkey.c
 create mode 100644 grub-core/term/i386/pc/nuconsole.c
 create mode 100644 include/grub/i386/pc/nusetkey.h

-- 
2.1.4


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to