Index: chapter08/chapter08.xml
===================================================================
--- chapter08/chapter08.xml	(revision 1a891522eeb6915498901721c578f1372c5e582e)
+++ chapter08/chapter08.xml	(revision e1ca33a59d57fc0d767d0b6d9b23df4b8b50d76f)
@@ -1,16 +1,19 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
+<!DOCTYPE chapter 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;
 ]>
+
 <chapter id="chapter-bootable" xreflabel="Chapter 8">
-<?dbhtml dir="chapter08"?>
-<title>Making the LFS System Bootable</title>
-<?dbhtml filename="chapter08.html"?>
+  <?dbhtml dir="chapter08"?>
+  <?dbhtml filename="chapter08.html"?>
 
-<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="introduction.xml"/>
-<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="fstab.xml"/>
-<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="kernel.xml"/>
-<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="grub.xml"/>
+  <title>Making the LFS System Bootable</title>
+
+  <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="introduction.xml"/>
+  <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="fstab.xml"/>
+  <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="kernel.xml"/>
+  <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="grub.xml"/>
 
 </chapter>
Index: chapter08/fstab.xml
===================================================================
--- chapter08/fstab.xml	(revision 1a891522eeb6915498901721c578f1372c5e582e)
+++ chapter08/fstab.xml	(revision e1ca33a59d57fc0d767d0b6d9b23df4b8b50d76f)
@@ -1,17 +1,22 @@
 <?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" [
+<!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-bootable-fstab">
-<title>Creating the /etc/fstab File</title>
-<?dbhtml filename="fstab.html"?>
+  <?dbhtml filename="fstab.html"?>
 
-<indexterm zone="ch-bootable-fstab"><primary sortas="e-/etc/fstab">/etc/fstab</primary></indexterm>
+  <title>Creating the /etc/fstab File</title>
 
-<para>The <filename>/etc/fstab</filename> file is used by some programs to
-determine where file systems are to be mounted by default, in which order, and
-which must be checked (for integrity errors) prior to mounting. Create a new
-file systems table like this:</para>
+  <indexterm zone="ch-bootable-fstab">
+    <primary sortas="e-/etc/fstab">/etc/fstab</primary>
+  </indexterm>
+
+  <para>The <filename>/etc/fstab</filename> file is used by some programs to
+  determine where file systems are to be mounted by default, in which order, and
+  which must be checked (for integrity errors) prior to mounting. Create a new
+  file systems table like this:</para>
 
 <screen><userinput>cat &gt; /etc/fstab &lt;&lt; "EOF"
@@ -30,35 +35,73 @@
 EOF</userinput></screen>
 
-<para>Replace <replaceable>[xxx]</replaceable>,
-<replaceable>[yyy]</replaceable>, and <replaceable>[fff]</replaceable>
-with the values appropriate for the system, for example, <filename
-class="partition">hda2</filename>, <filename
-class="partition">hda5</filename>, and <systemitem
-class="filesystem">ext2</systemitem>. For details on the six
-fields in this file, see <command>man 5 fstab</command>.</para>
+  <para>Replace <replaceable>[xxx]</replaceable>,
+  <replaceable>[yyy]</replaceable>, and <replaceable>[fff]</replaceable>
+  with the values appropriate for the system, for example, <filename
+  class="partition">hda2</filename>, <filename
+  class="partition">hda5</filename>, and <systemitem
+  class="filesystem">ext2</systemitem>. For details on the six
+  fields in this file, see <command>man 5 fstab</command>.</para>
 
-<para>The <filename class="directory">/dev/shm</filename> mount point
-for <systemitem class="filesystem">tmpfs</systemitem> is included to
-allow enabling POSIX-shared memory. The kernel must have the required
-support built into it for this to work (more about this is in the next
-section). Please note that very little software currently uses
-POSIX-shared memory.  Therefore, consider the <filename
-class="directory">/dev/shm</filename> mount point optional. For more
-information, see
-<filename>Documentation/filesystems/tmpfs.txt</filename> in the kernel
-source tree.</para>
+  <para>The <filename class="directory">/dev/shm</filename> mount point
+  for <systemitem class="filesystem">tmpfs</systemitem> is included to
+  allow enabling POSIX-shared memory. The kernel must have the required
+  support built into it for this to work (more about this is in the next
+  section). Please note that very little software currently uses
+  POSIX-shared memory.  Therefore, consider the <filename
+  class="directory">/dev/shm</filename> mount point optional. For more
+  information, see
+  <filename>Documentation/filesystems/tmpfs.txt</filename> in the kernel
+  source tree.</para>
 
-<para>There are other lines which may be added to the
-<filename>/etc/fstab</filename> file. One example is a line for USB
-devices:</para>
+  <para>There are other lines which may be added to the
+  <filename>/etc/fstab</filename> file. One example is a line for USB
+  devices:</para>
 
 <screen>usbfs        /proc/bus/usb usbfs   devgid=14,devmode=0660 0 0 </screen>
 
-<para>This option will only work if <quote>Support for Host-side USB</quote> and
-<quote>USB device filesystem</quote> are configured in the kernel. If
-<quote>Support for Host-side USB</quote> is compiled as a module, then
-<filename>usbcore</filename> must be listed in
-<filename>/etc/sysconfig/modules</filename>.</para>
+  <para>This option will only work if <quote>Support for Host-side USB</quote>
+  and <quote>USB device filesystem</quote> are configured in the kernel. If
+  <quote>Support for Host-side USB</quote> is compiled as a module, then
+  <filename>usbcore</filename> must be listed in
+  <filename>/etc/sysconfig/modules</filename>.</para>
+
+  <para>Filesystems with MS-DOS or Windows origin (i.e.: vfat, ntfs, smbfs, cifs,
+  iso9660, udf) need the <quote>iocharset</quote> mount option in order for
+  non-ASCII characters in file names to be interpreted properly. The value
+  of this option should be the same as the character set of your locale,
+  adjusted in such a way that the kernel understands it. This works if the
+  relevant character set definition (found under File systems -&gt;
+  Native Language Support) has been compiled into the kernel
+  or built as a module. The <quote>codepage</quote> option is also needed for
+  vfat and smbfs filesystems. It
+  should be set to the codepage number used under MS-DOS in your country. E.g.,
+  in order to mount USB flash drives, a ru_RU.KOI8-R user would need the
+  following line in <filename>/etc/fstab</filename>:</para>
+
+<screen>/dev/sda1    /media/flash vfat noauto,user,quiet,showexec,iocharset=koi8r,codepage=866 0 0</screen>
+
+  <para>The corresponding line for ru_RU.UTF-8 users is:</para>
+
+<screen>/dev/sda1    /media/flash vfat noauto,user,quiet,showexec,iocharset=utf8,codepage=866 0 0</screen>
+
+  <note><para>In the latter case, the kernel emits the following message:</para>
+
+<screen><computeroutput>FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!</computeroutput></screen>
+
+  <para>This negative recommendation should be ignored, since all other values
+  of the <quote>iocharset</quote> option result in wrong display of filenames in
+  UTF-8 locales.</para></note>
+
+  <para>It is also possible to specify default codepage and iocharset values for
+  some filesystems during kernel configuration. The relevant parameters
+  are named
+  <quote>Default NLS Option</quote> (CONFIG_NLS_DEFAULT),
+  <quote>Default Remote NLS Option</quote> (CONFIG_SMB_NLS_DEFAULT),
+  <quote>Default codepage for FAT</quote> (CONFIG_FAT_DEFAULT_CODEPAGE), and
+  <quote>Default iocharset for FAT</quote> (CONFIG_FAT_DEFAULT_IOCHARSET).
+  There is no way to specify these settings for the
+  ntfs filesystem at kernel compilation time.</para>
+  <!-- Personally, I find it more foolproof to always specify the iocharset and
+  codepage in /etc/fstab for MS-based filesystems - Alexander E. Patrakov -->
 
 </sect1>
-
Index: chapter08/grub.xml
===================================================================
--- chapter08/grub.xml	(revision 1a891522eeb6915498901721c578f1372c5e582e)
+++ chapter08/grub.xml	(revision e1ca33a59d57fc0d767d0b6d9b23df4b8b50d76f)
@@ -1,87 +1,92 @@
 <?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" [
+<!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-bootable-grub">
-<title>Making the LFS System Bootable</title>
-<?dbhtml filename="grub.html"?>
+  <?dbhtml filename="grub.html"?>
 
-<indexterm zone="ch-bootable-grub">
-<primary sortas="a-Grub">GRUB</primary>
-<secondary>configuring</secondary></indexterm>
+  <title>Making the LFS System Bootable</title>
 
-<para>Your shiny new LFS system is almost complete. One of the last
-things to do is to ensure that the system can be properly booted. The
-instructions below apply only to computers of IA-32 architecture,
-meaning mainstream PCs. Information on <quote>boot loading</quote> for
-other architectures should be available in the usual resource-specific
-locations for those architectures.</para>
+  <indexterm zone="ch-bootable-grub">
+    <primary sortas="a-Grub">GRUB</primary>
+    <secondary>configuring</secondary>
+  </indexterm>
 
-<para>Boot loading can be a complex area, so a few cautionary
-words are in order. Be familiar with the current boot loader and any other
-operating systems present on the hard drive(s) that need to be
-bootable. Make sure that an emergency boot disk is ready to
-<quote>rescue</quote> the computer if the computer becomes
-unusable (un-bootable).</para>
+  <para>Your shiny new LFS system is almost complete. One of the last
+  things to do is to ensure that the system can be properly booted. The
+  instructions below apply only to computers of IA-32 architecture,
+  meaning mainstream PCs. Information on <quote>boot loading</quote> for
+  other architectures should be available in the usual resource-specific
+  locations for those architectures.</para>
 
-<para>Earlier, we compiled and installed the GRUB boot loader software
-in preparation for this step. The procedure involves writing some
-special GRUB files to specific locations on the hard drive. We highly
-recommend creating a GRUB boot floppy diskette as a backup. Insert a
-blank floppy diskette and run the following commands:</para>
+  <para>Boot loading can be a complex area, so a few cautionary
+  words are in order. Be familiar with the current boot loader and any other
+  operating systems present on the hard drive(s) that need to be
+  bootable. Make sure that an emergency boot disk is ready to
+  <quote>rescue</quote> the computer if the computer becomes
+  unusable (un-bootable).</para>
+
+  <para>Earlier, we compiled and installed the GRUB boot loader software
+  in preparation for this step. The procedure involves writing some
+  special GRUB files to specific locations on the hard drive. We highly
+  recommend creating a GRUB boot floppy diskette as a backup. Insert a
+  blank floppy diskette and run the following commands:</para>
 
 <screen><userinput>dd if=/boot/grub/stage1 of=/dev/fd0 bs=512 count=1
 dd if=/boot/grub/stage2 of=/dev/fd0 bs=512 seek=1</userinput></screen>
 
-<para>Remove the diskette and store it somewhere safe. Now, run the
-<command>grub</command> shell:</para>
+  <para>Remove the diskette and store it somewhere safe. Now, run the
+  <command>grub</command> shell:</para>
 
 <screen><userinput>grub</userinput></screen>
 
-<para>GRUB uses its own naming structure for drives and partitions in
-the form of <emphasis>(hdn,m)</emphasis>, where <emphasis>n</emphasis>
-is the hard drive number and <emphasis>m</emphasis> is the partition
-number, both starting from zero. For example, partition <filename
-class="partition">hda1</filename> is <emphasis>(hd0,0)</emphasis> to
-GRUB and <filename class="partition">hdb3</filename> is
-<emphasis>(hd1,2)</emphasis>. In contrast to Linux, GRUB does not
-consider CD-ROM drives to be hard drives. For example, if using a CD
-on <filename class="partition">hdb</filename> and a second hard drive
-on <filename class="partition">hdc</filename>, that second hard drive
-would still be <emphasis>(hd1)</emphasis>.</para>
+  <para>GRUB uses its own naming structure for drives and partitions in
+  the form of <emphasis>(hdn,m)</emphasis>, where <emphasis>n</emphasis>
+  is the hard drive number and <emphasis>m</emphasis> is the partition
+  number, both starting from zero. For example, partition <filename
+  class="partition">hda1</filename> is <emphasis>(hd0,0)</emphasis> to
+  GRUB and <filename class="partition">hdb3</filename> is
+  <emphasis>(hd1,2)</emphasis>. In contrast to Linux, GRUB does not
+  consider CD-ROM drives to be hard drives. For example, if using a CD
+  on <filename class="partition">hdb</filename> and a second hard drive
+  on <filename class="partition">hdc</filename>, that second hard drive
+  would still be <emphasis>(hd1)</emphasis>.</para>
 
-<para>Using the above information, determine the appropriate
-designator for the root partition (or boot partition, if a separate
-one is used). For the following example, it is assumed that the root
-(or separate boot) partition is <filename
-class="partition">hda4</filename>.</para>
+  <para>Using the above information, determine the appropriate
+  designator for the root partition (or boot partition, if a separate
+  one is used). For the following example, it is assumed that the root
+  (or separate boot) partition is <filename
+  class="partition">hda4</filename>.</para>
 
-<para>Tell GRUB where to search for its
-<filename>stage{1,2}</filename> files. The Tab key can be used
-everywhere to make GRUB show the alternatives:</para>
+  <para>Tell GRUB where to search for its
+  <filename>stage{1,2}</filename> files. The Tab key can be used
+  everywhere to make GRUB show the alternatives:</para>
 
 <screen><userinput>root (hd0,3)</userinput></screen>
 
-<warning><para>The following command will overwrite the current boot
-loader. Do not run the command if this is not desired, for example, if
-using a third party boot manager to manage the Master Boot Record
-(MBR). In this scenario, it would make more sense to install
-GRUB into the <quote>boot sector</quote> of the LFS partition. In this
-case, this next command would become <userinput>setup
-(hd0,3)</userinput>.</para></warning>
+  <warning>
+    <para>The following command will overwrite the current boot loader. Do not
+    run the command if this is not desired, for example, if using a third party
+    boot manager to manage the Master Boot Record (MBR). In this scenario, it
+    would make more sense to install GRUB into the <quote>boot sector</quote>
+    of the LFS partition. In this case, this next command would become
+    <userinput>setup (hd0,3)</userinput>.</para>
+  </warning>
 
-<para>Tell GRUB to install itself into the MBR of
-<filename class="partition">hda</filename>:</para>
+  <para>Tell GRUB to install itself into the MBR of
+  <filename class="partition">hda</filename>:</para>
 
 <screen><userinput>setup (hd0)</userinput></screen>
 
-<para>If all went well, GRUB will have reported finding its files in
-<filename class="directory">/boot/grub</filename>. That's all there is
-to it. Quit the <command>grub</command> shell:</para>
+  <para>If all went well, GRUB will have reported finding its files in
+  <filename class="directory">/boot/grub</filename>. That's all there is
+  to it. Quit the <command>grub</command> shell:</para>
 
 <screen><userinput>quit</userinput></screen>
 
-<para>Create a <quote>menu list</quote> file defining GRUB's boot menu:</para>
+  <para>Create a <quote>menu list</quote> file defining GRUB's boot menu:</para>
 
 <screen><userinput>cat &gt; /boot/grub/menu.lst &lt;&lt; "EOF"
@@ -103,6 +108,6 @@
 EOF</userinput></screen>
 
-<para>Add an entry for the host distribution if desired. It might look
-like this:</para>
+  <para>Add an entry for the host distribution if desired. It might look
+  like this:</para>
 
 <screen><userinput>cat &gt;&gt; /boot/grub/menu.lst &lt;&lt; "EOF"
@@ -113,6 +118,6 @@
 EOF</userinput></screen>
 
-<para>If dual-booting Windows, the following entry will allow
-booting it:</para>
+  <para>If dual-booting Windows, the following entry will allow
+  booting it:</para>
 
 <screen><userinput>cat &gt;&gt; /boot/grub/menu.lst &lt;&lt; "EOF"
@@ -122,11 +127,11 @@
 EOF</userinput></screen>
 
-<para>If <command>info grub</command> does not provide all necessary material, additional
-information regarding GRUB is located on its website at:
-<ulink url="http://www.gnu.org/software/grub/"/>.</para>
+  <para>If <command>info grub</command> does not provide all necessary material,
+  additional information regarding GRUB is located on its website at:
+  <ulink url="http://www.gnu.org/software/grub/"/>.</para>
 
-<para>The FHS stipulates that GRUB's <filename>menu.lst</filename> file should be symlinked to
-<filename class="symlink">/etc/grub/menu.lst</filename>.  To satisfy this requirement, issue the 
-following command:</para>
+  <para>The FHS stipulates that GRUB's <filename>menu.lst</filename> file should
+  be symlinked to <filename class="symlink">/etc/grub/menu.lst</filename>. To
+  satisfy this requirement, issue the following command:</para>
 
 <screen><userinput>mkdir -v /etc/grub &amp;&amp;
@@ -134,3 +139,2 @@
 
 </sect1>
-
Index: chapter08/introduction.xml
===================================================================
--- chapter08/introduction.xml	(revision 1a891522eeb6915498901721c578f1372c5e582e)
+++ chapter08/introduction.xml	(revision e1ca33a59d57fc0d767d0b6d9b23df4b8b50d76f)
@@ -1,16 +1,18 @@
 <?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" [
+<!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-bootable-introduction">
-<title>Introduction</title>
-<?dbhtml filename="introduction.html"?>
+  <?dbhtml filename="introduction.html"?>
 
-<para>It is time to make the LFS system bootable. This chapter
-discusses creating an <filename>fstab</filename> file, building a
-kernel for the new LFS system, and installing the GRUB boot loader so
-that the LFS system can be selected for booting at startup.</para>
+  <title>Introduction</title>
+
+  <para>It is time to make the LFS system bootable. This chapter
+  discusses creating an <filename>fstab</filename> file, building a
+  kernel for the new LFS system, and installing the GRUB boot loader so
+  that the LFS system can be selected for booting at startup.</para>
 
 </sect1>
-
Index: chapter08/kernel.xml
===================================================================
--- chapter08/kernel.xml	(revision 1a891522eeb6915498901721c578f1372c5e582e)
+++ chapter08/kernel.xml	(revision e1ca33a59d57fc0d767d0b6d9b23df4b8b50d76f)
@@ -1,212 +1,243 @@
 <?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" [
+<!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-bootable-kernel" role="wrap">
-<title>Linux-&linux-version;</title>
-<?dbhtml filename="kernel.html"?>
-
-<indexterm zone="ch-bootable-kernel"><primary sortas="a-Linux">Linux</primary></indexterm>
-
-<sect2 role="package"><title/>
-<para>The Linux package contains the Linux kernel.</para>
-
-<segmentedlist>
-<segtitle>&buildtime;</segtitle>
-<segtitle>&diskspace;</segtitle>
-<seglistitem><seg>4.20 SBU</seg>
-<seg>181 MB</seg></seglistitem>
-</segmentedlist>
-
-<segmentedlist>
-<segtitle>&dependencies;</segtitle>
-<seglistitem><seg>Bash, Binutils, Coreutils, Findutils,
-GCC, Glibc, Grep, Gzip, Kbd, Make, Module-Init-Tools, Perl, and Sed</seg></seglistitem>
-</segmentedlist>
-</sect2>
-
-<sect2 role="installation">
-<title>Installation of the kernel</title>
-
-<para>Building the kernel involves a few steps&mdash;configuration, compilation,
-and installation. Read the <filename>README</filename> file in the kernel source
-tree for alternative methods to the way this book configures the kernel.</para>
-
-<para>Prepare for compilation by running the following command:</para>
+  <?dbhtml filename="kernel.html"?>
+
+  <title>Linux-&linux-version;</title>
+
+  <indexterm zone="ch-bootable-kernel">
+    <primary sortas="a-Linux">Linux</primary>
+  </indexterm>
+
+  <sect2 role="package">
+    <title/>
+
+    <para>The Linux package contains the Linux kernel.</para>
+
+    <segmentedlist>
+      <segtitle>&buildtime;</segtitle>
+      <segtitle>&diskspace;</segtitle>
+
+      <seglistitem>
+        <seg>4.20 SBU</seg>
+        <seg>181 MB</seg>
+      </seglistitem>
+    </segmentedlist>
+
+    <segmentedlist>
+      <segtitle>&dependencies;</segtitle>
+
+      <seglistitem>
+        <seg>Bash, Binutils, Coreutils, Findutils, GCC, Glibc, Grep, Gzip,
+        Make, Modutils, Perl, and Sed</seg>
+      </seglistitem>
+    </segmentedlist>
+
+  </sect2>
+
+  <sect2 role="installation">
+    <title>Installation of the kernel</title>
+
+    <para>Building the kernel involves a few steps&mdash;configuration,
+    compilation, and installation. Read the <filename>README</filename> file
+    in the kernel source tree for alternative methods to the way this book
+    configures the kernel.</para>
+
+    <para>By default, the Linux kernel generates wrong sequences of bytes when
+    dead keys are used in UTF-8 keyboard mode. Also, one cannot copy and paste
+    non-ASCII characters when UTF-8 mode is active. Fix these issues with the
+    patch:</para>
+
+<screen><userinput>patch -Np1 -i ../&linux-utf8-patch;</userinput></screen>
+
+    <para>Prepare for compilation by running the following command:</para>
 
 <screen><userinput>make mrproper</userinput></screen>
 
-<para>This ensures that the kernel tree is absolutely clean. The
-kernel team recommends that this command be issued prior to each
-kernel compilation. Do not rely on the source tree being clean after
-un-tarring.</para>
-
-<para>If, in <xref linkend="ch-scripts-console" role=","/> it was decided to
-compile the keymap into the kernel, issue the command below:</para>
-
-<screen role="nodump"><userinput>loadkeys -m /usr/share/kbd/keymaps/<replaceable>[path to  keymap]</replaceable> &gt; \
-    drivers/char/defkeymap.c</userinput></screen>
-
-<para>For example, if using a Dutch keyboard, use
-<filename>/usr/share/kbd/keymaps/i386/qwerty/nl.map.gz</filename>.</para>
-
-<para>Configure the kernel via a menu-driven interface. BLFS has some
-information regarding particular kernel configuration requirements of
-packages outside of LFS at <ulink
-url="&blfs-root;view/svn/longindex.html#kernel-config-index"/>:</para>
+    <para>This ensures that the kernel tree is absolutely clean. The
+    kernel team recommends that this command be issued prior to each
+    kernel compilation. Do not rely on the source tree being clean after
+    un-tarring.</para>
+
+    <!-- Support for compiling a keymap into the kernel is deliberately removed -->
+
+    <para>Configure the kernel via a menu-driven interface. BLFS has some
+    information regarding particular kernel configuration requirements of
+    packages outside of LFS at <ulink
+    url="&blfs-root;view/svn/longindex.html#kernel-config-index"/>:</para>
 
 <screen role="nodump"><userinput>make menuconfig</userinput></screen>
 
-<para>Alternatively, <command>make oldconfig</command> may be more appropriate in some
-situations. See the <filename>README</filename> file for more
-information.</para>
-
-<para>If desired, skip kernel configuration by copying the kernel
-config file, <filename>.config</filename>, from the host system
-(assuming it is available) to the unpacked <filename
-class="directory">linux-&linux-version;</filename> directory. However,
-we do not recommend this option. It is often better to explore all the
-configuration menus and create the kernel configuration from
-scratch.</para>
-
-<note><para>NPTL requires the kernel to be compiled with GCC-3.x or later, in this case
-&gcc-version;. It is not recommended to compile the kernel with GCC-2.95.x, as
-this causes failures in the Glibc test suite. Normally, this wouldn't be
-mentioned as LFS doesn't build GCC-2.95.x. Unfortunately, the kernel
-documentation is outdated and still claims GCC-2.95.3 is the recommended
-compiler.</para></note>
-
-<para>Compile the kernel image and modules:</para>
+    <para>Alternatively, <command>make oldconfig</command> may be more
+    appropriate in some situations. See the <filename>README</filename>
+    file for more information.</para>
+
+    <para>If desired, skip kernel configuration by copying the kernel
+    config file, <filename>.config</filename>, from the host system
+    (assuming it is available) to the unpacked <filename
+    class="directory">linux-&linux-version;</filename> directory. However,
+    we do not recommend this option. It is often better to explore all the
+    configuration menus and create the kernel configuration from
+    scratch.</para>
+
+    <note>
+      <para>NPTL requires the kernel to be compiled with GCC-3.x or later, in
+      this case &gcc-version;. It is not recommended to compile the kernel with
+      GCC-2.95.x, as this causes failures in the Glibc test suite. Normally,
+      this wouldn't be mentioned as LFS doesn't build GCC-2.95.x. Unfortunately,
+      the kernel documentation is outdated and still claims GCC-2.95.3 is the
+      recommended compiler.</para>
+    </note>
+
+    <para>Compile the kernel image and modules:</para>
 
 <screen><userinput>make</userinput></screen>
 
-<para>If using kernel modules, an <filename>/etc/modprobe.conf</filename> file
-may be needed. Information pertaining to modules and kernel configuration is
-located in the kernel documentation in the <filename
-class="directory">linux-&linux-version;/Documentation</filename> directory.
-Also, <filename>modprobe.conf(5)</filename> may be of interest.</para>
-
-<para>Be very careful when reading other documentation relating to kernel
-modules because it usually applies to 2.4.x kernels only. As far as we know,
-kernel configuration issues specific to Hotplug and Udev are not documented.
-The problem is that Udev will create a device node only if Hotplug or a
-user-written script inserts the corresponding module into the kernel, and not
-all modules are detectable by Hotplug. Note that statements like the one below
-in the <filename>/etc/modprobe.conf</filename> file do not work with
-Udev:</para>
-
-<para><screen>alias char-major-XXX some-module</screen></para>
-
-<para>Because of the complications with Hotplug, Udev, and modules, we
-strongly recommend starting with a completely non-modular kernel
-configuration, especially if this is the first time using Udev.</para>
-
-<para>Install the modules, if the kernel configuration uses them:</para>
+    <para>If using kernel modules, an <filename>/etc/modprobe.conf</filename> file
+    may be needed. Information pertaining to modules and kernel configuration is
+    located in the kernel documentation in the <filename
+    class="directory">linux-&linux-version;/Documentation</filename> directory.
+    Also, <filename>modprobe.conf(5)</filename> may be of interest.</para>
+
+    <para>Be very careful when reading other documentation relating to kernel
+    modules because it usually applies to 2.4.x kernels only. As far as we know,
+    kernel configuration issues specific to Hotplug and Udev are not documented.
+    The problem is that Udev will create a device node only if Hotplug or a
+    user-written script inserts the corresponding module into the kernel, and not
+    all modules are detectable by Hotplug. Note that statements like the one below
+    in the <filename>/etc/modprobe.conf</filename> file do not work with
+    Udev:</para>
+
+<screen><literal>alias char-major-XXX some-module</literal></screen>
+
+    <para>Because of the complications with Hotplug, Udev, and modules, we
+    strongly recommend starting with a completely non-modular kernel
+    configuration, especially if this is the first time using Udev.</para>
+
+    <para>Install the modules, if the kernel configuration uses them:</para>
 
 <screen><userinput>make modules_install</userinput></screen>
 
-<para>After kernel compilation is complete, additional steps are
-required to complete the installation. Some files need to be copied to
-the <filename class="directory">/boot</filename> directory.</para>
-
-<para>The path to the kernel image may vary depending on the platform
-being used. The following command assumes an x86 architecture:</para>
+    <para>After kernel compilation is complete, additional steps are
+    required to complete the installation. Some files need to be copied to
+    the <filename class="directory">/boot</filename> directory.</para>
+
+    <para>The path to the kernel image may vary depending on the platform
+    being used. The following command assumes an x86 architecture:</para>
 
 <screen><userinput>cp -v arch/i386/boot/bzImage /boot/lfskernel-&linux-version;</userinput></screen>
 
-<para><filename>System.map</filename> is a symbol file for the kernel.
-It maps the function entry points of every function in the kernel API,
-as well as the addresses of the kernel data structures for the running
-kernel. Issue the following command to install the map file:</para>
+    <para><filename>System.map</filename> is a symbol file for the kernel.
+    It maps the function entry points of every function in the kernel API,
+    as well as the addresses of the kernel data structures for the running
+    kernel. Issue the following command to install the map file:</para>
 
 <screen><userinput>cp -v System.map /boot/System.map-&linux-version;</userinput></screen>
 
-<para>The kernel configuration file <filename>.config</filename>
-produced by the <command>make menuconfig</command> step
-above contains all the configuration selections for the kernel
-that was just compiled. It is a good idea to keep this file for future
-reference:</para>
+    <para>The kernel configuration file <filename>.config</filename>
+    produced by the <command>make menuconfig</command> step
+    above contains all the configuration selections for the kernel
+    that was just compiled. It is a good idea to keep this file for future
+    reference:</para>
 
 <screen><userinput>cp -v .config /boot/config-&linux-version;</userinput></screen>
 
-<para>It is important to note that the files in the kernel source
-directory are not owned by <emphasis>root</emphasis>. Whenever a
-package is unpacked as user <emphasis>root</emphasis> (like we did
-inside chroot), the files have the user and group IDs of whatever
-they were on the packager's computer. This is usually not a problem
-for any other package to be installed because the source tree is
-removed after the installation. However, the Linux source tree is
-often retained for a long time.  Because of this, there is a chance
-that whatever user ID the packager used will be assigned to somebody
-on the machine. That person would then have write access to the kernel
-source.</para>
-
-<para>If the kernel source tree is going to be retained, run
-<command>chown -R 0:0</command> on the <filename
-class="directory">linux-&linux-version;</filename> directory to ensure
-all files are owned by user <emphasis>root</emphasis>.</para>
-
-<warning><para>Some kernel documentation recommends creating a symlink from
-<filename class="symlink">/usr/src/linux</filename> pointing to the kernel
-source directory.  This is specific to kernels prior to the 2.6 series and
-<emphasis>must not</emphasis> be created on an LFS system as it can cause
-problems for packages you may wish to build once your base LFS system is
-complete.</para>
-
-<para>Also, the headers in the system's
-<filename class="directory">include</filename> directory should
-<emphasis>always</emphasis> be the ones against which Glibc was compiled,
-that is, the ones from the Linux-Libc-Headers package, and therefore, should
-<emphasis>never</emphasis> be replaced by the kernel headers.</para></warning>
-
-</sect2>
-
-
-<sect2 id="contents-kernel" role="content"><title>Contents of Linux</title>
-
-<segmentedlist>
-<segtitle>Installed files</segtitle>
-<seglistitem><seg>config-&linux-version;, lfskernel-&linux-version;,
-and System.map-&linux-version;</seg></seglistitem>
-</segmentedlist>
-
-<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
-<?dbfo list-presentation="list"?>
-<?dbhtml list-presentation="table"?>
-
-<varlistentry id="config">
-<term><filename>config-&linux-version;</filename></term>
-<listitem>
-<para>Contains all the configuration selections for the kernel</para>
-<indexterm zone="ch-bootable-kernel config"><primary sortas="e-/boot/config">/boot/config-&linux-version;</primary></indexterm>
-</listitem>
-</varlistentry>
-
-<varlistentry id="lfskernel">
-<term><filename>lfskernel-&linux-version;</filename></term>
-<listitem>
-<para>The engine of the Linux system. When turning on the computer,
-the kernel is the first part of the operating system that gets loaded.
-It detects and initializes all components of the computer's hardware,
-then makes these components available as a tree of files to the
-software and turns a single CPU into a multitasking machine capable
-of running scores of programs seemingly at the same time</para>
-<indexterm zone="ch-bootable-kernel lfskernel"><primary sortas="b-lfskernel">lfskernel-&linux-version;</primary></indexterm>
-</listitem>
-</varlistentry>
-
-<varlistentry id="System.map">
-<term><filename>System.map-&linux-version;</filename></term>
-<listitem>
-<para>A list of addresses and symbols; it maps the entry points and
-addresses of all the functions and data structures in the
-kernel</para>
-<indexterm zone="ch-bootable-kernel System.map"><primary sortas="e-/boot/System.map">/boot/System.map-&linux-version;</primary></indexterm>
-</listitem>
-</varlistentry>
-</variablelist>
-
-</sect2>
+    <para>It is important to note that the files in the kernel source
+    directory are not owned by <emphasis>root</emphasis>. Whenever a
+    package is unpacked as user <emphasis>root</emphasis> (like we did
+    inside chroot), the files have the user and group IDs of whatever
+    they were on the packager's computer. This is usually not a problem
+    for any other package to be installed because the source tree is
+    removed after the installation. However, the Linux source tree is
+    often retained for a long time.  Because of this, there is a chance
+    that whatever user ID the packager used will be assigned to somebody
+    on the machine. That person would then have write access to the kernel
+    source.</para>
+
+    <para>If the kernel source tree is going to be retained, run
+    <command>chown -R 0:0</command> on the <filename
+    class="directory">linux-&linux-version;</filename> directory to ensure
+    all files are owned by user <emphasis>root</emphasis>.</para>
+
+    <warning>
+      <para>Some kernel documentation recommends creating a symlink from
+      <filename class="symlink">/usr/src/linux</filename> pointing to the kernel
+      source directory.  This is specific to kernels prior to the 2.6 series and
+      <emphasis>must not</emphasis> be created on an LFS system as it can cause
+      problems for packages you may wish to build once your base LFS system is
+      complete.</para>
+
+      <para>Also, the headers in the system's
+      <filename class="directory">include</filename> directory should
+      <emphasis>always</emphasis> be the ones against which Glibc was compiled,
+      that is, the ones from the Linux-Libc-Headers package, and therefore, should
+      <emphasis>never</emphasis> be replaced by the kernel headers.</para>
+    </warning>
+
+  </sect2>
+
+
+  <sect2 id="contents-kernel" role="content">
+    <title>Contents of Linux</title>
+
+    <segmentedlist>
+      <segtitle>Installed files</segtitle>
+
+      <seglistitem>
+        <seg>config-&linux-version;, lfskernel-&linux-version;, and
+        System.map-&linux-version;</seg>
+      </seglistitem>
+    </segmentedlist>
+
+    <variablelist>
+      <bridgehead renderas="sect3">Short Descriptions</bridgehead>
+      <?dbfo list-presentation="list"?>
+      <?dbhtml list-presentation="table"?>
+
+      <varlistentry id="config">
+        <term><filename>config-&linux-version;</filename></term>
+        <listitem>
+          <para>Contains all the configuration selections for the kernel</para>
+          <indexterm zone="ch-bootable-kernel config">
+            <primary sortas="e-/boot/config">/boot/config-&linux-version;</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="lfskernel">
+        <term><filename>lfskernel-&linux-version;</filename></term>
+        <listitem>
+          <para>The engine of the Linux system. When turning on the computer,
+          the kernel is the first part of the operating system that gets loaded.
+          It detects and initializes all components of the computer's hardware,
+          then makes these components available as a tree of files to the
+          software and turns a single CPU into a multitasking machine capable
+          of running scores of programs seemingly at the same time</para>
+          <indexterm zone="ch-bootable-kernel lfskernel">
+            <primary sortas="b-lfskernel">lfskernel-&linux-version;</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="System.map">
+        <term><filename>System.map-&linux-version;</filename></term>
+        <listitem>
+          <para>A list of addresses and symbols; it maps the entry points and
+          addresses of all the functions and data structures in the
+          kernel</para>
+          <indexterm zone="ch-bootable-kernel System.map">
+            <primary sortas="e-/boot/System.map">/boot/System.map-&linux-version;</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+    </variablelist>
+
+  </sect2>
 
 </sect1>
