<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
  "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../../general.ent">
  %general-entities;
]>

<sect1 id="ch-scripts-console">
  <?dbhtml filename="console.html"?>
  <title>Configuring the Linux Console</title>

  <indexterm zone="ch-scripts-console">
    <primary sortas="d-console">console</primary>
  <secondary>configuring</secondary></indexterm>

  <para>This section discusses how to configure the <command>console</command>
  bootscript that sets up the keyboard map and the console font. If non-ASCII
  characters (e.g., the British pound sign and Euro character) will not be
  used and the keyboard is a U.S. one, skip this section. Without the
  configuration file, the <command>console</command> bootscript will do
  nothing.</para>

  <para>The <command>console</command> script reads the
  <filename>/etc/sysconfig/console</filename> file for configuration
  information. Decide which keymap and screen font will be used. Various
  language-specific HOWTO's can also help with this (see <ulink
  url="http://www.tldp.org/HOWTO/HOWTO-INDEX/other-lang.html"/>. A pre-made
  <filename>/etc/sysconfig/console</filename> file with known settings for
  several countries was installed with the CLFS-Bootscripts package, so the
  relevant section can be uncommented if the country is supported. If still
  in doubt, look in the <filename class="directory">/usr/share/kbd</filename>
  directory for valid keymaps and screen fonts. Read
  <filename>loadkeys(1)</filename> and <filename>setfont(8)</filename> to
  determine the correct arguments for these programs. Once decided, create
  the configuration file with the following command:</para>

<screen><userinput>cat &gt;/etc/sysconfig/console &lt;&lt;"EOF"
<literal>KEYMAP="<replaceable>[arguments for loadkeys]</replaceable>"
FONT="<replaceable>[arguments for setfont]</replaceable>"</literal>
EOF</userinput></screen>

  <para>For example, for Spanish users who also want to use the Euro
  character (accessible by pressing AltGr+E), the following settings are
  correct:</para>

<screen><userinput>cat &gt;/etc/sysconfig/console &lt;&lt;"EOF"
<literal>KEYMAP="es euro2"
FONT="lat9-16 -u iso01"</literal>
EOF</userinput></screen>

  <note>
    <para>The <envar>FONT</envar> 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 <envar>FONT</envar> line would be:</para>

<screen><userinput>FONT="lat1-16"</userinput></screen>

  </note>

    <para>If the <envar>KEYMAP</envar> or <envar>FONT</envar> variable is not
    set, the <command>console</command> initscript will not run the
    corresponding program.</para>

    <para>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 affected (this works only for i386
    keymaps):</para>

<screen><userinput>zgrep '\W14\W' <replaceable>[/path/to/your/keymap]</replaceable></userinput></screen>

  <para>If the keycode 14 is Backspace instead of Delete, create the
  following keymap snippet to fix this issue:</para>

<screen><userinput>mkdir -pv /etc/kbd &amp;&amp; cat &gt; /etc/kbd/bs-sends-del &lt;&lt;"EOF"
<literal>                  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</literal>
EOF</userinput></screen>

  <para>Tell the <command>console</command> script to load this
  snippet after the main keymap:</para>

<screen><userinput>cat &gt;&gt;/etc/sysconfig/console &lt;&lt;"EOF"
<literal>KEYMAP_CORRECTIONS="/etc/kbd/bs-sends-del"</literal>
EOF</userinput></screen>

  <para>To compile the keymap directly into the kernel instead of setting it
  every time from the <command>console</command> bootscript, follow the
  instructions given in <xref linkend="ch-bootable-kernel" role="."/> Doing
  this ensures that the keyboard will always work as expected, even when
  booting into maintenance mode (by passing <option>init=/bin/sh</option> to
  the kernel), because the <command>console</command> 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.</para>

  <para>Since the kernel will set up the keymap, it is possible to omit the
  <envar>KEYMAP</envar> variable from the
  <filename>/etc/sysconfig/console</filename> 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.</para>

</sect1>
