소스 검색

Chapter 6 - Clarify remaining PTY issues.

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@2893 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
Greg Schafer 22 년 전
부모
커밋
7e602eabe6

+ 1 - 1
chapter05/gcc-pass2-inst.xml

@@ -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

+ 1 - 2
chapter05/lockingglibc.xml

@@ -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]
-</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
 <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

+ 1 - 2
chapter06/adjustingtoolchain.xml

@@ -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]
-</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
 <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

+ 18 - 2
chapter06/binutils-inst.xml

@@ -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>
-</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
 <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).

+ 7 - 1
chapter06/gcc-inst.xml

@@ -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>
 
 

+ 2 - 1
chapter06/glibc-inst.xml

@@ -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

+ 16 - 6
chapter06/makedev-inst.xml

@@ -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
-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><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>
 
 

+ 40 - 31
chapter06/mountproc.xml

@@ -2,33 +2,22 @@
 <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
-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><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>The proc file system is mounted on
+<filename class="directory">/proc</filename> by running the following
+command:</para>
 
 
-<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><screen><userinput>mount proc /proc -t proc</userinput></screen></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
-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>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>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 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>
 
 

+ 2 - 2
index.xml

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