Chapter 6 - Clarify remaining PTY issues.

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@2893 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
This commit is contained in:
Greg Schafer 2003-09-27 03:38:15 +00:00
parent 72b845e681
commit 7e602eabe6
9 changed files with 88 additions and 48 deletions

View File

@ -16,7 +16,7 @@ simple test:</para>
<para>If you receive the message:</para>
<para><screen>The system has no more ptys. Ask your system administrator to create more.</screen></para>
<blockquote><screen>The system has no more ptys. Ask your system administrator to create more.</screen></blockquote>
<para>Your host distribution is not set up for proper PTY operation. In this
case there is no point in running the test suites for GCC and Binutils until you

View File

@ -53,8 +53,7 @@ readelf -l a.out | grep ': /tools'</userinput></screen></para>
<para>If everything is working correctly, there should be no errors, and the
output of the last command will be:</para>
<para><screen>[Requesting program interpreter: /tools/lib/ld-linux.so.2]
</screen></para>
<blockquote><screen>[Requesting program interpreter: /tools/lib/ld-linux.so.2]</screen></blockquote>
<para>If you did not receive the output as shown above, then something is
seriously wrong. You will need to investigate and retrace your steps to find

View File

@ -46,8 +46,7 @@ readelf -l a.out | grep ': /lib'</userinput></screen></para>
<para>If everything is working correctly, there should be no errors, and the
output of the last command will be:</para>
<para><screen>[Requesting program interpreter: /lib/ld-linux.so.2]
</screen></para>
<blockquote><screen>[Requesting program interpreter: /lib/ld-linux.so.2]</screen></blockquote>
<para>If you did not receive the output as shown above, then something is
seriously wrong. You will need to investigate and retrace your steps to find

View File

@ -2,9 +2,25 @@
<sect2><title>Installation of Binutils</title>
<para>Now is an appropriate time to verify that your pseudo terminals (PTYs) are
working properly inside the chroot environment. We will again quickly check that
everything is set up correctly by performing a simple test:</para>
<para><screen><userinput>expect -c "spawn ls"</userinput></screen></para>
<para>If you receive the message:</para>
<blockquote><screen>The system has no more ptys. Ask your system administrator to create more.</screen></blockquote>
<para>Your chroot environment is not set up for proper PTY operation. In this
case there is no point in running the test suites for Binutils and GCC until you
are able to resolve the issue. Please refer back to the "Mounting the proc and
devpts file systems" and "Creating devices (Makedev)" sections and perform the
recommended steps to fix the problem.</para>
<note><para>The test suite for Binutils in this section is considered
<emphasis>critical</emphasis>. Do not skip it under any circumstances.</para>
</note>
<emphasis>critical</emphasis>. Our advice is to not skip it under any
circumstances.</para> </note>
<para>This package is known to behave badly when you have changed its
default optimization flags (including the -march and -mcpu options).

View File

@ -4,7 +4,8 @@
<title>Installation of GCC</title>
<note><para>The test suite for GCC in this section is considered <emphasis>
critical</emphasis>. Do not skip it under any circumstances.</para></note>
critical</emphasis>. Our advice is to not skip it under any
circumstances.</para></note>
<para>This package is known to behave badly when you have changed its
default optimization flags (including the -march and -mcpu options).
@ -42,6 +43,11 @@ cd ../gcc-build</userinput></screen></para>
<para><screen><userinput>make</userinput></screen></para>
<note><para>At this point it is strongly recommended to repeat the sanity check
we performed earlier in the chapter. Refer back to the "Re-adjusting the
toolchain" section and repeat the check. If the results are wrong then most
likely, you erroneously applied the GCC Specs patch from Chapter 5.</para></note>
<para>Test the results, but don't stop at errors (you'll remember the few
known ones):</para>

View File

@ -10,7 +10,8 @@ the Glibc install, because the Glibc autoconf tests would then give bogus
results and thus defeat our goal of achieving a clean build.</para>
<note><para>The test suite for Glibc in this section is considered <emphasis>
critical</emphasis>. Do not skip it under any circumstances.</para></note>
critical</emphasis>. Our advice is to not skip it under any
circumstances.</para></note>
<para>Before starting to build Glibc, remember to unpack the Glibc-linuxthreads
again inside the <filename>glibc-&glibc-version;</filename> directory, and to

View File

@ -35,14 +35,24 @@ create devices via the <emphasis>mknod</emphasis> program. Please refer to
the man and info pages of <emphasis>mknod</emphasis> if you need more
information.</para>
<para>Also, if earlier in Chapter 6 you were unable to mount the devpts
filesystem because your host uses devfs, we will now mount that devfs
system over top of this new static /dev structure. This poses no problems,
as the device nodes created are still present, they are just hidden by the
new devfs filesystem. Run the following command to mount devfs, if necessary:
</para>
<para>Additionally, if you were unable to mount the devpts filesystem earlier in
the "Mounting the proc and devpts file systems" section, now is the time to
try the alternatives. If your kernel supports the devfs file system, run the
following command to mount devfs:</para>
<para><screen><userinput>mount -t devfs devfs /dev</userinput></screen></para>
<para>This will mount the devfs file system over the top of the new static
<filename>/dev</filename> structure. This poses no problems, as the device nodes
created are still present, they are just hidden by the new devfs
filesystem.</para>
<para>If this still doesn't work, the only option left is to use the MAKEDEV
script to create the ptyXX and ttyXX range of files that would otherwise not be
needed. Ensure you are still in the <filename>/dev</filename> directory then run
<userinput>./MAKEDEV -v pty</userinput>. The downside of this is, we are
creating an extra 512 device special files which will not be needed when we
finally boot into the finished LFS system.</para>
</sect2>

View File

@ -2,34 +2,23 @@
<title>Mounting the proc and devpts file systems</title>
<?dbhtml filename="proc.html" dir="chapter06"?>
<para>In order for certain programs to function properly, the proc and devpts
file systems must be available within the chroot environment.
As a file system can be mounted as many times and in as many places
as you like, it's not a problem that the these file systems are already
mounted on your host system -- especially so because they are virtual
file systems.</para>
<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. A file system can be mounted as many
times and in as many places as you like, thus it's not a problem that the these
file systems are already mounted on your host system -- especially so because
they are virtual file systems.</para>
<para>The proc file system is mounted under
<filename class="directory">/proc</filename> by running the
following command:</para>
<para>The <emphasis>proc</emphasis> file system is the process information
pseudo-filesystem that the kernel uses to provide status information about the
status of the system.</para>
<para>The proc file system is mounted on
<filename class="directory">/proc</filename> by running the following
command:</para>
<para><screen><userinput>mount proc /proc -t proc</userinput></screen></para>
<para>The devpts file system is mounted to <filename class="directory">/dev/pts
</filename> by running:</para>
<para><screen><userinput>mount devpts /dev/pts -t devpts</userinput></screen>
</para>
<para>Should this command fail with an error to the effect of:</para>
<blockquote><screen>filesystem devpts not supported by kernel</screen></blockquote>
<para>This most likely means that your host system uses devfs, and does not
have the necessary support for devpts in the kernel. To work around this
problem, we will place the host's devfs system on top of the new /dev
structure later, in the section where we run the MAKEDEV script.</para>
<para>You might get warning messages from the mount command, such as
these:</para>
@ -40,14 +29,34 @@ not enough memory</screen></blockquote>
isn't installed completely yet and some files are missing. The mount itself
will be successful and that's all we care about at this point.</para>
<para>The last error (not enough memory) doesn't always show up. It depends
on your system configuration (such as the host system's Glibc version that was
used to compile the mount program with).</para>
<para>The <emphasis>devpts</emphasis> file system was mentioned earlier and is
now the most common way for pseudo terminals (PTYs) to be implemented.</para>
<para>Remember, if for any reason you stop working on your LFS, and
start again later, it's important to check that these filesystems are still
mounted inside the chroot environment. Otherwise, some programs might
end up compiled incorrectly.</para>
<para>The devpts file system is mounted on
<filename class="directory">/dev/pts</filename> by running:</para>
<para><screen><userinput>mount devpts /dev/pts -t devpts</userinput></screen></para>
<para>Should this command fail with an error to the effect of:</para>
<blockquote><screen>filesystem devpts not supported by kernel</screen></blockquote>
<para>The most likely cause 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 by peeking into its internals with a command such as
<userinput>cat /proc/filesystems</userinput>. If for some reason, devpts is
listed there but the mount still doesn't work, check instead for a different
file system variety called <emphasis>devfs</emphasis>. If devfs is listed then
we'll be able to work around the problem by mounting the host's devfs file
system on top of the new <filename>/dev</filename> structure which we'll create
later on in the "Creating devices (Makedev)" section. If devfs was not listed,
do not worry because there is yet a third way to get PTYs working inside the
chroot environment. We'll cover this shortly in the aforementioned Makedev
section.</para>
<para>Remember, if for any reason you stop working on your LFS, and start again
later, it's important to check that these filesystems are still mounted inside
the chroot environment, otherwise problems are likely to occur.</para>
</sect1>

View File

@ -3,8 +3,8 @@
"/usr/share/docbook/docbookx.dtd" [
<!ENTITY version "20030926">
<!ENTITY releasedate "September 26th, 2003">
<!ENTITY version "20030927">
<!ENTITY releasedate "September 27th, 2003">
<!ENTITY nbsp " ">
<!ENTITY ftp-root "ftp://ftp.linuxfromscratch.org">