<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <font face="monospace">In principle, GRUB2 allows you to change the
      keyboard layout through its 'at_keyboard' input terminal.<br>
      You can use the 'grub-mklayout' utility to create a GRUB keyboard
      layout, e.g., for dvorak:<br>
      <br>
         ckbcomp dvorak | grub-mklayout -o dvorak.gkb<br>
      <br>
      Create a 'layouts' subdirectory under your 'grub' directory, and
      copy the GRUB keyboard layout to it, e.g.:<br>
      <br>
         mkdir /boot/grub/layouts<br>
         cp dvorak.gkb /boot/grub/layouts<br>
      <br>
      The 'keymap' command under GRUB (e.g., in your 'grub.cfg') will
      then load the keymap:<br>
      <br>
         keymap dvorak<br>
      <br>
      To actually use the keymap, you will have to switch the the
      'at_keyboard' input terminal:<br>
      <br>
         terminal_input at_keyboard<br>
      <br>
      Trouble is, under a PC BIOS system, the 'at_keyboard' input
      terminal is broken.<br>
      It is unclear to me how (or even, whether) it can be fixed.<br>
      <br>
      Since I, too, got frustrated that I couldn't change the keyboard
      layout, I decided to try and create my own 'ext_kbd' input
      terminal, for personal use.<br>
      The 'ext_kbd' input terminal implements something akin to the
      'setkey' command that was available under what is now known as
      GRUB Legacy.<br>
      It won't go into upstream, since it deviates from the
      infrastructure that GRUB already provides for changing the
      keyboard layout.<br>
      <br>
      In any case, I'll attach a patch that will add support for my
      'ext_kbd' module to GRUB, in case anyone is interested enough to
      try it.<br>
      If you decide to apply the patch, then you will subsequently have
      to run './autogen.sh' before you run './configure'. Otherwise, the
      build process will not pick up the definition of the 'ext_kbd'
      module that the patch adds to the 'grub-core/Makefile.core.def'
      file.<br>
      <br>
      I'm afraid that this is the best that I can do for now.<br>
      <br>
      -- Luc.<br>
      <br>
    </font>
  </body>
</html>