diff options
Diffstat (limited to 'chapter07/console.xml')
-rw-r--r-- | chapter07/console.xml | 81 |
1 files changed, 76 insertions, 5 deletions
diff --git a/chapter07/console.xml b/chapter07/console.xml index 3e5bfdc22..8e59c4bc9 100644 --- a/chapter07/console.xml +++ b/chapter07/console.xml @@ -7,15 +7,66 @@ <title>Configuring the Linux Console</title> <?dbhtml filename="console.html"?> -<para>Create the configuration file:</para> +<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> 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.</para> + +<para>The <command>console</command> script uses the +<filename>/etc/sysconfig/console</filename> as a configuration file. +Decide which keymap and screen font will be used. The +language-specific HOWTO can help with this. 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 the loadkeys and setfont manual pages +and determine the correct arguments for these programs. Once decided, +create the configuration file with the following command:</para> <screen><userinput>cat >/etc/sysconfig/console <<"EOF" <literal>KEYMAP="<replaceable>[arguments for loadkeys]</replaceable>" FONT="<replaceable>[arguments for setfont]</replaceable>"</literal> EOF</userinput></screen> -<para>If you see that keycode 14 is Backspace and not Delete, -create the following keymap snippet to fix this issue:</para> +<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 >/etc/sysconfig/console <<"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, +<application>Emacs</application> 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):</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 -p /etc/kbd && cat > /etc/kbd/bs-sends-del <<"EOF" <literal> keycode 14 = Delete Delete Delete Delete @@ -27,12 +78,32 @@ create the following keymap snippet to fix this issue:</para> altgr control alt keycode 111 = Boot</literal> EOF</userinput></screen> -<para>Then tell the <command>console</command> script to load this snippet -after the main keymap:</para> +<para>Tell the <command>console</command> script to load this +snippet after the main keymap:</para> <screen><userinput>cat >>/etc/sysconfig/console <<"EOF" <literal>KEYMAP_CORRECTION="/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> |