В Sat, 11 Jul 2015 20:28:20 +0200 Luc Van Rompaey <luc.vanromp...@gmail.com> пишет:
> 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. > Do you have some more data? Fixing it would be preferable. > 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. > GRUB2 already has framework for custom keyboard layouts. Why not reuse grub_term_map_key() from keylayouts same as at_keyboard and usb_keyboard do? Map scan code to GRUB_KEYBOARD_* and let grub_term_map_key() to care about keyboard mapping. This has additional advantage of supporting localized keyboard tables (your approach does not, it only changes ASCII layouts). > 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. > You already sent this one, it hardly belongs to this patch series. > 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. > Why NumLock is not sufficient? > The third patch implements the 'nuconsole' input terminal, which works in > conjunction with the 'nusetkey' module to support keyboard map changes. > Making them two different modules in your case is pointless; nuconsole cannot work without nusetkey and nusetkey is used only by nuconsole. Also, something like ext_keyboard would probably be more appropriate. > 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 > _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel