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>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 <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 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 <para>If everything is working correctly, there should be no errors, and the
output of the last command will be:</para> output of the last command will be:</para>
<para><screen>[Requesting program interpreter: /tools/lib/ld-linux.so.2] <blockquote><screen>[Requesting program interpreter: /tools/lib/ld-linux.so.2]</screen></blockquote>
</screen></para>
<para>If you did not receive the output as shown above, then something is <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 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 <para>If everything is working correctly, there should be no errors, and the
output of the last command will be:</para> output of the last command will be:</para>
<para><screen>[Requesting program interpreter: /lib/ld-linux.so.2] <blockquote><screen>[Requesting program interpreter: /lib/ld-linux.so.2]</screen></blockquote>
</screen></para>
<para>If you did not receive the output as shown above, then something is <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 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> <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 <note><para>The test suite for Binutils in this section is considered
<emphasis>critical</emphasis>. Do not skip it under any circumstances.</para> <emphasis>critical</emphasis>. Our advice is to not skip it under any
</note> circumstances.</para> </note>
<para>This package is known to behave badly when you have changed its <para>This package is known to behave badly when you have changed its
default optimization flags (including the -march and -mcpu options). default optimization flags (including the -march and -mcpu options).

View File

@ -4,7 +4,8 @@
<title>Installation of GCC</title> <title>Installation of GCC</title>
<note><para>The test suite for GCC in this section is considered <emphasis> <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 <para>This package is known to behave badly when you have changed its
default optimization flags (including the -march and -mcpu options). 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> <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 <para>Test the results, but don't stop at errors (you'll remember the few
known ones):</para> 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> 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> <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 <para>Before starting to build Glibc, remember to unpack the Glibc-linuxthreads
again inside the <filename>glibc-&glibc-version;</filename> directory, and to 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 the man and info pages of <emphasis>mknod</emphasis> if you need more
information.</para> information.</para>
<para>Also, if earlier in Chapter 6 you were unable to mount the devpts <para>Additionally, if you were unable to mount the devpts filesystem earlier in
filesystem because your host uses devfs, we will now mount that devfs the "Mounting the proc and devpts file systems" section, now is the time to
system over top of this new static /dev structure. This poses no problems, try the alternatives. If your kernel supports the devfs file system, run the
as the device nodes created are still present, they are just hidden by the following command to mount devfs:</para>
new devfs filesystem. Run the following command to mount devfs, if necessary:
</para>
<para><screen><userinput>mount -t devfs devfs /dev</userinput></screen></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> </sect2>

View File

@ -2,34 +2,23 @@
<title>Mounting the proc and devpts file systems</title> <title>Mounting the proc and devpts file systems</title>
<?dbhtml filename="proc.html" dir="chapter06"?> <?dbhtml filename="proc.html" dir="chapter06"?>
<para>In order for certain programs to function properly, the proc and devpts <para>In order for certain programs to function properly, the
file systems must be available within the chroot environment. <emphasis>proc</emphasis> and <emphasis>devpts</emphasis> file systems must be
As a file system can be mounted as many times and in as many places available within the chroot environment. A file system can be mounted as many
as you like, it's not a problem that the these file systems are already times and in as many places as you like, thus it's not a problem that the these
mounted on your host system -- especially so because they are virtual file systems are already mounted on your host system -- especially so because
file systems.</para> they are virtual file systems.</para>
<para>The proc file system is mounted under <para>The <emphasis>proc</emphasis> file system is the process information
<filename class="directory">/proc</filename> by running the pseudo-filesystem that the kernel uses to provide status information about the
following command:</para> 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><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 <para>You might get warning messages from the mount command, such as
these:</para> these:</para>
@ -40,14 +29,34 @@ not enough memory</screen></blockquote>
isn't installed completely yet and some files are missing. The mount itself 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> 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 <para>The <emphasis>devpts</emphasis> file system was mentioned earlier and is
on your system configuration (such as the host system's Glibc version that was now the most common way for pseudo terminals (PTYs) to be implemented.</para>
used to compile the mount program with).</para>
<para>Remember, if for any reason you stop working on your LFS, and <para>The devpts file system is mounted on
start again later, it's important to check that these filesystems are still <filename class="directory">/dev/pts</filename> by running:</para>
mounted inside the chroot environment. Otherwise, some programs might
end up compiled incorrectly.</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> </sect1>

View File

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