This section discusses how to configure the console initscript that sets up the keyboard map and the console font. If non-ASCII characters (British pound and Euro character are examples of non-ASCII characters) will not be used and the keyboard is a U.S. one, skip this section. Without the configuration file, the console initscript will do nothing.
The console script uses
the /etc/sysconfig/console as a
configuration file. Decide which keymap and screen font will be used.
The language-specific HOWTO can help with this. A pre-made
/etc/sysconfig/console file with known
settings for several countries was installed with the LFS-Bootscripts
package, so the relevant section can be uncommented if the country is
supported. If still in doubt, look in the /usr/share/kbd directory for valid keymaps and
screen fonts. Read the loadkeys and setfont manual pages and
determine the correct arguments for these programs. Once decided,
create the configuration file with the following command:
cat >/etc/sysconfig/console <<"EOF"
KEYMAP="[arguments for loadkeys]"
FONT="[arguments for setfont]"
EOF
For example, for Spanish users who also want to use the Euro character (accessible by pressing AltGr+E), the following settings are correct:
cat >/etc/sysconfig/console <<"EOF"
KEYMAP="es euro2"
FONT="lat9-16 -u iso01"
EOF
The FONT line above is correct only for
the ISO 8859-15 character set. If using ISO 8859-1 and, therefore,
a pound sign instead of Euro, the correct FONT line would be:
FONT="lat1-16"
If the KEYMAP or FONT variable is not set, the console initscript will not run the
corresponding program.
In some keymaps, the Backspace and Delete keys send characters different from ones in the default keymap built into the kernel. This confuses some applications. For example, Emacs displays its help (instead of erasing the character before the cursor) when Backspace is pressed. To check if the keymap in use is effected (this works only for i386 keymaps):
zgrep '\W14\W' [/path/to/your/keymap]
If the keycode 14 is Backspace instead of Delete, create the following keymap snippet to fix this issue:
mkdir -p /etc/kbd && cat > /etc/kbd/bs-sends-del <<"EOF"
keycode 14 = Delete Delete Delete Delete
alt keycode 14 = Meta_Delete
altgr alt keycode 14 = Meta_Delete
keycode 111 = Remove
altgr control keycode 111 = Boot
control alt keycode 111 = Boot
altgr control alt keycode 111 = Boot
EOF
Tell the console script to load this snippet after the main keymap:
cat >>/etc/sysconfig/console <<"EOF"
KEYMAP_CORRECTION="/etc/kbd/bs-sends-del"
EOF
To compile the keymap directly into the kernel instead of setting it
every time from the console bootscript, follow the
instructions given in Section 7.13, “Linux-2.4.34.5 .” Doing this ensures that
the keyboard will always work as expected, even when booting into
maintenance mode (by passing init=/bin/sh to the kernel), because
the console bootscript
will not be run in that situation. Additionally, the kernel will not
set the screen font automatically. This should not pose many problems
because ASCII characters will be handled correctly, and it is
unlikely that a user would need to rely on non-ASCII characters while
in maintenance mode.
Since the kernel will set up the keymap, it is possible to omit the
KEYMAP variable from the /etc/sysconfig/console configuration file. It can
also be left in place, if desired, without consequence. Keeping it
could be beneficial if running several different kernels where it is
difficult to ensure that the keymap is compiled into every one of
them.