| This is the documentation for the keytab-lilo.pl program. It was |
| taken verbatim from the LILO-20 README file; only this header was |
| added. |
| |
| LILO program code, documentation and auxiliary programs are |
| Copyright 1992-1997 Werner Almesberger. |
| All rights reserved. |
| |
| Redistribution and use in source and binary forms of parts of or the |
| whole original or derived work are permitted provided that the |
| original work is properly attributed to the author. The name of the |
| author may not be used to endorse or promote products derived from |
| this software without specific prior written permission. This work |
| is provided "as is" and without any express or implied warranties. |
| |
| To use a LILO keyboard table with Syslinux, specify the KBDMAP command |
| in syslinux.cfg, for example: |
| |
| kbdmap de.ktl |
| |
| ============================================================================ |
| |
| Keyboard translation |
| -------------------- |
| |
| The PC keyboard emits so-called scan codes, which are basically key |
| numbers. The BIOS then translates those scan codes to the character codes |
| of the characters printed on the key-caps. By default, the BIOS normally |
| assumes that the keyboard has a US layout. Once an operating system is |
| loaded, this operating system can use a different mapping. |
| |
| At boot time, LILO only has access to the basic services provided by the |
| BIOS and therefore receives the character codes for an US keyboard. It |
| provides a simple mechanism to re-map the character codes to what is |
| appropriate for the actual layout.* |
| |
| * The current mechanism isn't perfect, because it sits on top of the |
| scan code to character code translation performed by the BIOS. This |
| means that key combinations that don't produce any useful character on |
| the US keyboard will be ignored by LILO. The advantage of this approach |
| is its simplicity. |
| |
| |
| Compiling keyboard translation tables |
| - - - - - - - - - - - - - - - - - - - |
| |
| LILO obtains layout information from the keyboard translation tables Linux |
| uses for the text console. They are usually stored in |
| /usr/lib/kbd/keytables. LILO comes with a program keytab-lilo.pl that reads |
| those tables and generates a table suitable for use by the map installer. |
| keytab-lilo.pl invokes the program loadkeys to print the tables in a format |
| that is easy to parse.* |
| |
| * On some systems, only root can execute loadkeys. It is then necessary |
| to run keytab-lilo.pl as root too. |
| |
| keytab-lilo.pl is used as follows: |
| |
| keytab-lilo.pl [ -p <old_code>=<new_code> ] ... |
| [<path>]<default_layout>[.<extension>] ] |
| [<path>]<kbd_layout>[.<extension>] ] |
| |
| -p <old_code>=<new_code> |
| Specifies corrections ("patches") to the mapping obtained from the |
| translation table files. E.g. if pressing the upper case "A" should |
| yield an at sign, -p 65=64 would be used. The -p option can be |
| repeated any number of times. The codes can also be given as |
| hexadecimal or as octal numbers if they are prefixed with 0x or 0, |
| respectively. |
| <path> The directory in which the file resides. The default path is |
| /usr/lib/kbd/keytables. |
| <extension> Usually the trailing .map, which is automatically added if |
| the file name doesn't contain dots. |
| <default_layout> Is the layout which specifies the translation by the |
| BIOS. If none is specified, us is assumed. |
| <kbd_layout> Is the actual layout of the keyboard. |
| |
| keytab-lilo.pl writes the resulting translation table as a binary string to |
| standard output. Such tables can be stored anywhere with any name, but the |
| suggested naming convention is /boot/<kbd>.ktl ("Keyboard Table for Lilo"), |
| where <kbd> is the name of the keyboard layout. |
| |
| Example: |
| |
| keytab-lilo.pl de >/boot/de.ktl |