aboutsummaryrefslogtreecommitdiffstats
path: root/chapter06/proc.xml
diff options
context:
space:
mode:
Diffstat (limited to 'chapter06/proc.xml')
-rw-r--r--chapter06/proc.xml52
1 files changed, 52 insertions, 0 deletions
diff --git a/chapter06/proc.xml b/chapter06/proc.xml
new file mode 100644
index 000000000..919abf6a8
--- /dev/null
+++ b/chapter06/proc.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<sect1 id="ch-system-proc">
+<title>Mounting the proc and devpts file systems</title>
+<?dbhtml filename="proc.html"?>
+
+<para>In order for certain programs to function properly, the
+<emphasis>proc</emphasis> and <emphasis>devpts</emphasis> file systems must be
+available within the chroot environment. The proc file system is the process
+information pseudo file system through which the kernel provides information
+about the status of the system. And the devpts file system is nowadays the most
+common way pseudo terminals (PTYs) are implemented. Since kernel version 2.4, a
+file system can be mounted as many times and in as many places as you like,
+thus it's not a problem that these file systems are already mounted on your
+host system, especially so because they are virtual file systems.</para>
+
+<para>First become <emphasis>root</emphasis>, as only <emphasis>root</emphasis>
+can mount file systems in unusual places. Then check again that the LFS
+environment variable is set correctly by running <userinput>echo
+$LFS</userinput> and making sure it shows the path to your LFS partition's
+mount point, which is <filename class="directory">/mnt/lfs</filename> if you
+followed our example.</para>
+
+<para>Now make the mount points for these filesystems:</para>
+
+<screen><userinput>mkdir -p $LFS/{proc,dev/pts}</userinput></screen>
+
+<para>Mount the <emphasis>proc</emphasis> file system with:</para>
+
+<screen><userinput>mount proc $LFS/proc -t proc</userinput></screen>
+
+<para>And mount the <emphasis>devpts</emphasis> file system with:</para>
+
+<screen><userinput>mount devpts $LFS/dev/pts -t devpts</userinput></screen>
+
+<para>This last command might fail with an error like:</para>
+
+<blockquote><screen>filesystem devpts not supported by kernel</screen></blockquote>
+
+<para>The most likely cause for this is that your host system's kernel was
+compiled without support for the devpts file system (you can check which file
+systems your kernel supports with <command>cat /proc/filesystems</command>,
+for example). A few PTYs are needed to be able to run the suites for Binutils
+and GCC later on. If your kernel does not support devpts, do not worry, there
+is another way to get them working inside the chroot environment. We'll cover
+this shortly in the <xref linkend="ch-system-MAKEDEV"/> section.</para>
+
+<para>Remember that if for any reason you stop working on your LFS, and start
+again later, it's important to check that these file systems are mounted again
+before entering the chroot environment, otherwise problems could occur.</para>
+
+</sect1>