aboutsummaryrefslogtreecommitdiffstats
path: root/chapter07/console.xml
blob: 231a5fcae6faf5594e25b082e2a4115a22c5f15d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?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">
<title>Configuring the Linux Console</title>
<?dbhtml filename="console.html"?>

<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 LFS-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
<parameter>init=/bin/sh</parameter> 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>