aboutsummaryrefslogtreecommitdiffstats
path: root/chapter08
diff options
context:
space:
mode:
authorJeremy Huntwork <jhuntwork@linuxfromscratch.org>2006-01-06 01:59:08 +0000
committerJeremy Huntwork <jhuntwork@linuxfromscratch.org>2006-01-06 01:59:08 +0000
commitfa21b3dc894b9964620968dfae6685d69ce89fb9 (patch)
tree2353b9af8cae48156b98e651873d483e994e352a /chapter08
parent60e34b52810dd47567ca18aa2c86fe4cd7c9fd01 (diff)
Initial support of UTF-8. Thanks Alexander Patrakov.
git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@7245 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
Diffstat (limited to 'chapter08')
-rw-r--r--chapter08/fstab.xml39
-rw-r--r--chapter08/kernel.xml16
2 files changed, 47 insertions, 8 deletions
diff --git a/chapter08/fstab.xml b/chapter08/fstab.xml
index 439057b4f..fb7961346 100644
--- a/chapter08/fstab.xml
+++ b/chapter08/fstab.xml
@@ -65,4 +65,43 @@ EOF</userinput></screen>
<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>
diff --git a/chapter08/kernel.xml b/chapter08/kernel.xml
index fcac33a39..457e1c2fb 100644
--- a/chapter08/kernel.xml
+++ b/chapter08/kernel.xml
@@ -48,6 +48,13 @@
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>
@@ -57,14 +64,7 @@
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>
+ <!-- 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