Kbd-1.12

The Kbd package contains key-table files and keyboard utilities.

Approximate build time:  0.1 SBU
Required disk space:     12 MB

Kbd installation depends on: Bash, Binutils, Bison, Coreutils, Diffutils, Flex, GCC, Gettext, Glibc, Grep, Gzip, M4, Make, Sed.

Installation of Kbd

By default some of Kbd's utilities (setlogcons, setvesablank and getunimap) are not installed. First enable the compilation of these utilities:

patch -Np1 -i ../kbd-1.12-more-programs-1.patch

Now prepare Kbd for compilation:

./configure

Compile the package:

make

Now install it:

make install

Configuring your keyboard

Few things are more annoying than using Linux while a wrong keymap for your keyboard is loaded. If you have a standard US keyboard, however, you can skip this section, as the US keymap is the default as long as you don't change it.

To change the default keymap, create the /usr/share/kbd/keymaps/defkeymap.map.gz symlink by running the following command:

ln -s path/to/keymap /usr/share/kbd/keymaps/defkeymap.map.gz

Of course, replace path/to/keymap with the path and name of your keyboard's map file. For example, if you have a Dutch keyboard, you would use /usr/share/kbd/keymaps/i386/qwerty/nl.map.gz.

Another way to set your keyboard's layout is to compile the keymap into the kernel. This ensures that your keyboard will always work as expected, even when you boot into maintenance mode (by passing `init=/bin/sh' to the kernel), as then the bootscript that normally sets up your keymap isn't run.

When in Chapter 8 you're ready to compile the kernel, run the following command to patch the current default keymap into the source (you will have to repeat this command whenever you unpack a new kernel):

loadkeys -m /usr/share/kbd/keymaps/defkeymap.map.gz > \
    /usr/src/linux-2.4.25/drivers/char/defkeymap.c

Contents of Kbd

Installed programs: chvt, deallocvt, dumpkeys, fgconsole, getkeycodes, getunimap, kbd_mode, kbdrate, loadkeys, loadunimap, mapscrn, openvt, psfaddtable (link to psfxtable), psfgettable (link to psfxtable), psfstriptable (link to psfxtable), psfxtable, resizecons, setfont, setkeycodes, setleds, setlogcons, setmetamode, setvesablank, showconsolefont, showkey, unicode_start and unicode_stop

Short descriptions

chvt changes the foreground virtual terminal.

deallocvt deallocates unused virtual terminals.

dumpkeys dumps the keyboard translation tables.

fgconsole prints the number of the active virtual terminal.

getkeycodes prints the kernel scancode-to-keycode mapping table.

getunimap prints the currently used unimap.

kbd_mode reports or sets the keyboard mode.

kbdrate sets the keyboard repeat and delay rates.

loadkeys loads the keyboard translation tables.

loadunimap loads the kernel unicode-to-font mapping table.

mapscrn is an obsolete program that used to load a user-defined output character mapping table into the console driver. This is now done by setfont.

openvt starts a program on a new virtual terminal (VT).

psf* are a set of tools for handling Unicode character tables for console fonts.

resizecons changes the kernel idea of the console size.

setfont lets you change the EGA/VGA fonts on the console.

setkeycodes loads kernel scancode-to-keycode mapping table entries, useful if you have some unusual keys on your keyboard.

setleds sets the keyboard flags and LEDs. Many people find it useful to have "Num Lock" on by default, setleds +num achieves this.

setlogcons sends kernel messages to the console.

setmetamode defines the keyboard meta-key handling.

setvesablank lets you fiddle with the built-in hardware screensaver (no toasters, just a blank screen).

showconsolefont shows the current EGA/VGA console screen font.

showkey reports the scancodes and keycodes and ASCII codes of the keys pressed on the keyboard.

unicode_start puts the keyboard and console in unicode mode.

unicode_stop reverts keyboard and console from unicode mode.