cvs commit: www/test/lfs faq.html

jeroen at linuxfromscratch.org jeroen at linuxfromscratch.org
Mon Aug 25 22:41:55 PDT 2003


jeroen      03/08/25 23:41:55

  Added:       test/lfs faq.html
  Log:
  Split up the FAQ part 2 - add the LFS FAQ.
  
  Revision  Changes    Path
  1.1                  www/test/lfs/faq.html
  
  Index: faq.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
  
  <head>
  	<title>LFS - FAQ</title>
  	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  	<meta http-equiv="Content-Style-Type" content="text/css" />
  	<meta name="description" content="Linux From Scratch - build your own Linux distribution from scratch" />
  	<meta name="keywords" content="Linux, LinuxFromScratch, Linux From Scratch, build your own Linux, DIY Linux, do-it-yourself Linux, create your own Linux" />
  	<meta http-equiv="imagetoolbar" content="false" />
  	<meta name="MSSmartTagsPreventParsing" content="true" />
  	<link rel="stylesheet" type="text/css" href="../style/screen.css" media="screen" />
  	<link rel="stylesheet" type="text/css" href="../style/print.css" media="print" />
  	<link rel="icon" href="../images/favicon.ico" type="image/x-icon" />
  </head>
  
  <body id="body" class="faq">
  
  <div id="header">
  	<ul id="sectionnav">
  		<li><a href="#content" class="hidden" accesskey="2">Skip to content</a></li>
  		<li><a href="../blfs/news.html" accesskey="b"><span class="accesskey">B</span>eyond LFS</a></li>
  		<li><a href="../alfs/news.html" accesskey="a"><span class="accesskey">A</span>utomated LFS</a></li>
  		<li><a href="../hints/news.html" accesskey="h"><span class="accesskey">H</span>ints</a></li>
  	</ul>
  	<h1><a href="news.html" accesskey="l">Linux From Scratch</a></h1><span class="hidden"> - </span>
  	<h2><a href="whatislfs.html">Your distro. Your rules.</a></h2>
  	<div id="search">
  		<form method="get" action="http://search.linuxfromscratch.org">
  		<p>
  			<label title="Enter your search terms"><input size="15" type="text" name="query" onfocus="if(this.value==this.defaultValue) this.value='';" value="enter text here" maxlength="255" accesskey="s" /></label>
  			<label title="Submit the search terms"><input type="submit" value="search" /></label><br />
  			<a href="../search.html" title="For more search options, click here" accesskey="4"><span class="accesskey">S</span>earch options</a>
  			</p>
  		</form>
  	</div>
  </div>
  
  <div id="container">
  	<div id="content">
  	<em><a href="#projectnav" class="hidden">Skip to the project navigation</a></em><span class="hidden"> - </span>
  	<em><a href="#generalnav" class="hidden">Skip to sitewide navigation</a></em>
  
  <h2>The LFS FAQ</h2>
  <h3>Originally by Seth W. Klein - now maintained by <a href="mailto:jeroen at linuxfromscratch.org">Jeroen Coumans</a></h3>
  
  <div id="pagenav">
  	<ul>
  		<li><a href="../faq/#generalfaq">General FAQ</a></li>
  		<li><a href="#header">LFS FAQ</a></li>
  		<li><a href="../blfs/faq.html">BLFS FAQ</a></li>
  		<li><a href="../faq/#oldfaq">Old FAQ's</a></li>
  		<li><a href="../faq/#changelog">Changelog</a></li>
  		<li><a href="../faq/#thanks">Thanks</a></li>
  	</ul>
  </div>
  
  <h4><a href="#fre">Frequently Requested Enhancements</a></h4>
  <ul>
  	<li><a href="#add-grub">Why not use GRUB instead of LILO?</a></li>
  	<li><a href="#why-not-new-lilo">Why not upgrade LILO to the latest version?</a></li>
  	<li><a href="#why-not-faq">Why not include the FAQ in the book?</a></li>
  	<li><a href="#why-vim">Why is vim in the book?</a></li>
  	<li><a href="#why-ed">Why is ed in the book?</a></li>
  	<li><a href="#why-not-package-management">Why isn't some package manager in the book?</a></li>
  	<li><a href="#no-poweroff">How do I make my machine poweroff when shut down?</a></li>
  	<li><a href="#kernel-header-copy">Why copy the kernel headers instead of linking them?</a></li>
  </ul>
  
  <h4><a href="#resources">When reading and building LFS</a></h4>
  <ul>
  	<li><a href="#what-dist">What distribution should I use to start from?</a></li>
  	<li><a href="#kernel-modules">How do I compile a kernel or set up modules?</a></li>
  	<li><a href="#gcc-warnings">Are compiler warnings from GCC bad?</a></li>
  	<li><a href="#should-i-keep-sources">Do I need to keep the source after installing?</a></li>
  	<li><a href="#really-small">How do I make that really small install the book mentions?</a></li>
  	<li><a href="#alpha-fixes">Is there information about LFS on the Alpha?</a></li>
  	<li><a href="#cross-compile">How do I cross compile LFS?</a></li>
  	<li><a href="#dos-text">What's a DOS format text file?</a></li>
  </ul>
  
  <h4><a href="#generrors">General compilation errors</a></h4>
  <ul>
  	<li><a href="#gnu-patches">I used a patch from GNU to upgrade. Is that OK?</a></li>
  	<li><a href="#optimizations">When using optimization flags (setting CFLAGS)</a></li>
  	<li><a href="#config-hang-size_t">Why does configure hang at "checking for signed size_t type..."?</a></li>
  	<li><a href="#dirty-sources">I didn't delete the source tree after my last attempt. Do I need to?</a></li>
  	<li><a href="#perm-denied">I'm getting `/dev/null: Permission denied'</a></li>
  	<li><a href="#sig11">signal 11 (internal error: Segmentation fault)</a></li>
  	<li><a href="#any-no-such-file">No such file or directory</a></li>
  	<li><a href="#configure-no-such-file">bash: ./configure: No such file or directory</a></li>
  	<li><a href="#bad-interpreter-permission-denied">./configure: bad interpreter: Permission denied</a></li>
  	<li><a href="#conf-guess-fail">configure can't guess my host type.</a></li>
  	<li><a href="#config-not-gnu-c">checking whether we are using GNU C... no</a></li>
  	<li><a href="#cannot-find-lc">ld: cannot find -lc</a></li>
  	<li><a href="#where-ncurses-mandrake">Where's libncurses.a in Mandrake?</a></li>
  </ul>
  
  <h4><a href="#packerrors">Package-specific errors</a></h4>
  <ul>
  	<li><a href="#conflicting-gethostname">Bash: conflicting types for `gethostname'</a></li>
  	<li><a href="#yytext_ptr-undeclared">Modutils: lex.l:429: `yytext_ptr' undeclared"while building modutils</a></li>
  	<li><a href="#perl-missing-separator">Perl fails with "*** missing separator.  Stop."</a></li>
  	<li><a href="#unknown-pseudo-op-hidden">GCC: Error: Unknown pseudo-op: `.hidden'</a></li>
  	<li><a href="#no-linuxthreads">Glibc: "... it is normal to compile GNU libc with the `linuxthreads' add-on..."</a></li>
  	<li><a href="#asm-global-directive">Glibc: "cannot determine asm global directive".</a></li>
  	<li><a href="#glibc-no-ld_map">Glibc: "ld.map: No such file or directory".</a></li>
  	<li><a href="#glibc-awk-fail">Glibc fails and mentions BEGIN and END.</a></li>
  	<li><a href="#sh-utils-getloadavg">Sh-tuils: "undefined reference to `getloadavg'".</a></li>
  	<li><a href="#cpp-fails-sanity-check">Ncurses: C++ preprocessor "/lib/cpp" fails sanity check</a></li>
  </ul>
  
  <h4><a href="#confboot">Configuration and booting issues</a></h4>
  <ul>
  	<li><a href="#lilo-errors">What do those LILO errors mean?</a></li>
  	<li><a href="#unable-to-mount-root">Kernel panic: VFS: unable to mount root fs</a></li>
  	<li><a href="#respawning-too-fast">init: Id "1" respawning too fast: disabled for 5 minutes</a></li>
  	<li><a href="#net-pf-x">I'm getting errors about net-pf-?.</a></li>
  	<li><a href="#char-major-10-135">modprobe: Can't locate module char-major-10-135</a></li>
  	<li><a href="#no-dev-rtc">modprobe: Can't locate module /dev/rtc</a></li>
  	<li><a href="#eth0-unknown-interface">eth0:unknown interface</a></li>
  	<li><a href="#spurious-8259A-interrupt">spurious 8259A interrupt: IRQ14</a></li>
  	<li><a href="#f-hostname">My hostname is getting set to "-f"!</a></li>
  	<li><a href="#less-prints-ad">Why does less (and therefore man) print <AD> instead of hyphens?</a></li>
  </ul>
  
  <h4 id="fre">Frequently Requested Enhancements</h4>
  <dl>
  	<dt id="add-grub">Why not use GRUB instead of LILO?</dt>
  		<dd>
  			<p>GRUB will very likely replace LILO in the book when the GRUB maintainers make a release they call stable. If you'd like to see that happen, you could bug the GRUB maintainers, since current releases seem perfectly stable.</p>
  			<p>If your current setup uses GRUB or you'd like to use it anyway, you should have no trouble following the GRUB documentation and the LFS "GRUB-Howto" Hint at <a href="http://hints.linuxfromscratch.org/hints/grub-howto.txt">http://hints.linuxfromscratch.org/hints/grub-howto.txt</a>.  If you do this, you can omit bin86, since it is only  used by LILO.</p>
  		</dd>
  	<dt id="why-not-new-lilo">Why not upgrade LILO to the latest version?</dt>
  		<dd>
  			<p>For now, the book is staying with LILO 22.2 because versions of LILO after 22.2 require <a href="http://nasm.sourceforge.net/">nasm</a>. While there should be no problem installing nasm, the book and many users are reluctant to install an extra package just for LILO. Many users are switching to GRUB. (The book would probably switch to GRUB if the GRUB maintainers made a release they called stable. You could bug the GRUB maintainers if you'd like to see this happen.)</p>
  			<p>Users who switch to GRUB can omit bin86, since it is only used by LILO.</p>
  		</dd>
  	<dt id="why-not-faq">Why not include the FAQ in the book?</dt>
  		<dd>
  			<p>Marc Heerdink may have said it best in a post to lfs-dev:</p>
  			<blockquote><p>The problem is that the FAQ is a dynamic document. The FAQ for a book release is released only after the book version itself, because the FAQ is updated to reflect the Qs asked about the current version of the book. A link is better, since you'll always have the most up-to-date answers handy.</p></blockquote>
  		</dd>
  	<dt id="why-vim">Why is vim in the book?</dt>
  		<dd>
  			<p>This is fairly well discussed in the thread starting at <a href="http://linuxfromscratch.org/pipermail/lfs-dev/2002-February/023030.html">http://linuxfromscratch.org/pipermail/lfs-dev/2002-February/023030.html</a>.</p>
  		</dd>
  	<dt id="why-ed">Why is ed in the book?</dt>
  		<dd>
  			<p>The book includes ed because patch uses it to process ed scripts. However, these are rare today; everyone uses diff format patches.</p>
  			<p>But ed does have other uses:</p>
  			<ul>
  				<li>For all who've learned to use it, ed is a very useful emergency editor. The MS Windows standard telnet client can deal with ed but has trouble with fullscreen editors (like vim). And a full featured vim requires not only ncurses, but X11 as well! Any trouble with those libraries will leave the system without an editor if ed isn't present.</li>
  				<li>Though it's not a reason to have ed in the book, some people actually like ed.</li>
  				<li>Understanding ed helps with understanding vi(m) and Unix history in general.</li>
  			</ul>
  		</dd>
  	<dt id="why-not-package-management">Why isn't some package manager in the book?</dt>
  		<dd>
  			<p>Package management - beyond that provided by tarballs and makefiles - is beyond the scope of the book. If nothing else does, the number of different "solutions" should hint at some of the reasons.</p>
  			<p>Here are a few of the options:</p>
  			<ul>
  				<li>No package management is really necessary. Unless it is desirable to monitor package file placement minutely, any package large enough to warrent removal for disk space reasons can be installed in /opt as detailed by the FHS (perhaps in /opt/foo-x.x with a link from /opt/foo), and new releases can usually be installed over the old, although major upgrades and libraries are generally best done by rebuilding the system from the bottom up.</li>
  				<li>RPM, the Redhat Package Manager, is used by a number of distributions. It is available from <a href="http://www.rpm.org/">http://www.rpm.org/</a>, and there is an RPM Hint to help with installation at <a href="http://hints.linuxfromscratch.org/hints/rpm.txt">http://hints.linuxfromscratch.org/hints/rpm.txt</a>.</li>
  				<li>There is an RPM based LFS at <a href="http://www.puxedo.org/lvr/">http://www.puxedo.org/lvr/</a></li>
  				<li>There are several implementations of symlink style package management:
  				<ul>
  					<li>Epkg is available from <a href="http://encap.cso.uiuc.edu/epkg/">http://encap.cso.uiuc.edu/epkg/</a>.</li>
  					<li>Graft is available from <a href="http://www.gormand.com.au/peters/tools/"  >http://www.gormand.com.au/peters/tools/</a>.</li>
  					<li>GNU Stow is available from <a href="http://www.gnu.org/software/stow/">http://www.gnu.org/software/stow/</a>.</li>
  					<li>Depot is available from <a href="http://asg.web.cmu.edu/depot/">http://asg.web.cmu.edu/depot/</a>.</li>
  					<li>And several more are listed in the Graft documentation at <a href="http://www.gormand.com.au/peters/tools/graft/graft.html#research">http://www.gormand.com.au/peters/tools/graft/graft.html#research</a>.</li>
  				</ul>
  				</li>
  				<li>The NetBSD package manager, pkgsrc, is available on other systems including Linux. It is at <a href="ftp://ftp.netbsd.org/pub/NetBSD/packages/bootstrap-pkgsrc/">ftp://ftp.netbsd.org/pub/NetBSD/packages/bootstrap-pkgsrc/</a>.</li>
  				<li>Originally based on a script written by LFS' own Gerard Beekmans, install-log records a list of files installed by a package as the package is installed. It is available from <a href="http://install-log.sourceforge.net/">http://install-log.sourceforge.net/</a>.</li>
  				<li>Gerard has since made additions to his script. It is available from <a href="http://linuxfromscratch.org/%7Egerard/log-install">http://linuxfromscratch.org/~gerard/log-install</a>  and <a href="http://linuxfromscratch.org/%7Egerard/pkgdel">http://linuxfromscratch.org/~gerard/pkgdel</a>.</li>
  				<li>CheckInstall attempts log system calls made by "make install". It is available from <a href="http://asic-linux.com.mx/%7Eizto/checkinstall/">http://asic-linux.com.mx/~izto/checkinstall/</a>.</li>
  				<li>pkgutils, used by the CRUX distribution, is available from <a href="http://www.fukt.bth.se/%7Eper/pkgutils/">http://www.fukt.bth.se/~per/pkgutils/</a>.</li>
  				<li>More information about these systems and information about other interesting systems is at <a href="http://hints.linuxfromscratch.org/hints.shtml#package">http://hints.linuxfromscratch.org/hints.shtml#package</a>.</li>
  			</ul>
  			<p>If you have an addition to the list, please do email its id, URL, and other information, to the FAQ maintainer or an appropriate LFS mailing list so it can be added here.</p>
  		</dd>
  	<dt id="no-poweroff">How do I make my machine poweroff when shut down?</dt>
  		<dd>
  			<p>Power Management is a kernel function, you need to enable it in the kernel. In the "General Setup" section of "make menuconfig", look for "Power Management Support" and read the help.</p>
  		</dd>
  	<dt id="kernel-header-copy">Why copy the kernel headers instead of linking them?</dt>
  		<dd>
  			<p>In short, we copy the kernel headers instead of linking them because the kernel headers should match the currently running libc, not the currently running kernel.</p>
  			<p>For the long answer see these:</p>
   			<ul>
  	 			<li>A post by Linus himself: <a href="http://www.uwsg.iu.edu/hypermail/linux/kernel/0007.3/0587.html">http://www.uwsg.iu.edu/hypermail/linux/kernel/0007.3/0587.html</a>.</li>
  				<li>Kernel Traffic #80, 4. Symlinks In The Kernel; Kernel/Library/etc Interface Dispute: <a href="http://kt.zork.net/kernel-traffic/kt20000814_80.txt">http://kt.zork.net/kernel-traffic/kt20000814_80.txt</a>  (This covers the thread in which the above  post occurred.)</li>
  			</ul>
  		</dd>
  </dl>
  <p><a href="#header">Back to the top.</a></p>
  
  <h4 id="resources">When reading and building LFS</h4>
  <dl>
  	<dt id="what-dist">What distribution should I use to start from?</dt>
  		<dd>
  			<p>Any recent distribution should be fine. If you have problems, try installing and/or updating the development packages. (Look for ones starting in "gcc", "glibc", or "libstdc++" or ending in "-dev".). If you want to make use LFS as your main system and you wish to install it without first installing a distribution, try <a href="http://www.knopper.net/knoppix/index-en.html">Knoppix</a> or <a href="http://test.linuxfromscratch.org/lfs/packages.html">an LFS boot cd</a>.</p>
  		</dd>
  	<dt id="kernel-modules">How do I compile a kernel or set up modules?</dt>
  		<dd>
  			<p>In addition to the kernel documentation at <a href="file:///usr/src/linux/Documentation">/usr/src/linux/Documentation</a> or wherever you unpacked your kernel source and the help in kernel config tool (make menuconfig), see the Module-HOWTO at <a href="http://www.tldp.org/HOWTO/Module-HOWTO/">http://www.tldp.org/HOWTO/Module-HOWTO/</a>, and the Kernel-HOWTO at <a href="http://www.tldp.org/HOWTO/Kernel-HOWTO/">http://www.tldp.org/HOWTO/Kernel-HOWTO/</a>.</p>
  		</dd>
  	<dt id="gcc-warnings">Are compiler warnings from GCC bad?</dt>
  		<dd>
  			<p>Short answer: no.</p>
  			<p>Long answer: probably, but only to someone working on the package you're trying to compile. Mostly, everything will be fine unless make quits with an error.</p>
  			<p>Here's an example:</p>
  			<ul class="code">
  				<li>sk ~/tmp $ cat > Makefile</li>
  				<li>main:</li>
  				<li>gcc main.c</li>
  				<li>sk ~/tmp $ cat > main.c</li>
  				<li>void main() { exit(0); }</li>
  				<li>sk ~/tmp $ make</li>
  				<li>gcc main.c</li>
  				<li><strong>main.c: In function `main':</strong></li>
  				<li><strong>main.c:1: warning: return type of `main' is not `int'</strong></li>
  				<li>sk ~/tmp $ ######## that worked ########</li>
  				<li>sk ~/tmp $</li>
  				<li>sk ~/tmp $ cat > main.c</li>
  				<li>int main() { e<span class="strong">xx</span>it(0) }</li>
  				<li>sk ~/tmp $ make</li>
  				<li>gcc main.c</li>
  				<li><strong>main.c: In function `main':</strong></li>
  				<li><strong>main.c:1: parse error before `}'</strong></li>
  				<li><strong>make: *** [main] Error 1</strong></li>
  				<li>sk ~/tmp $ ######## that failed ########</li>
  				<li>sk ~/tmp $</li>
  			</ul>
  		</dd>
  	<dt id="should-i-keep-sources">Do I need to keep the source after installing?</dt>
  		<dd>
  			<p>No, but see "<a href="#how-to-compile">How do i compile a package?</a>" for the details including an exception to that rule.</p>
  		</dd>
  	<dt id="really-small">How do I make that really small install the book mentions?</dt>
  		<dd>
  			<p>Gerard describes the process of making a 5MB LFS install in <a href="http://www.linuxfromscratch.org/pipermail/lfs-support/2001-October/000202.html">an email to lfs-support</a>,  and there are links to many resources in <a href="http://www.linuxfromscratch.org/pipermail/lfs-support/2002-June/007255.html">a post by Cor Lem</a> and a reply to it.</p>
  		</dd>
  	<dt id="alpha-fixes">Is there information about LFS on the Alpha?</dt>
  		<dd>
  			<p>Kelledin maintains a list of fixes for building on the Alpha platform at <a href="http://skarpsey.dyndns.org/alpha-lfs/alpha.html">http://skarpsey.dyndns.org/alpha-lfs/alpha.html</a>.</p>
  		</dd>
  	<dt id="cross-compile">How do I cross compile LFS?</dt>
  		<dd>
  			<p>It's often useful to compile LFS for one machine on another machine. Say using that fast 1Ghz Athlon to build an install for an old 486. While this is technically not cross compiling, binaries compiled for the Athlon cannot be run on the 486 because binaries compiled for the newer processor use features the older processor doesn't have. To make the newer system compile for the older, follow the hint at <a href="http://hints.linuxfromscratch.org/hints/crosscompiling-x86.txt">http://hints.linuxfromscratch.org/hints/crosscompiling-x86.txt</a>.</p>
  		</dd>
  	<dt id="dos-text">What's a DOS format text file?</dt>
  		<dd>
  			<p>It has to do with the characters used to end lines.</p>
  			<p>There are two that may be used:</p>
  			<ul>
  				<li>Line Feed: (LF) Octal:012 Decimal:10 Hex:0A C Style Escape:'\n' Moves down one line.</li>
  				<li>Carriage Return: (CR) Octal:015 Decimal:13 Hex:0D C Style Excape:'\r' Move to the left margin.</li>
  			</ul>
  			<p>Unix, DOS, and MacOS each use a different combination to end lines in text files:</p>
  			<ul>
  				<li>Unix: LF only. This is why when a Unix format text file is sent to a printer raw, it prints out<br />
  					  like<br />
  					    stairs<br />
  					      steps.<br /></li>
  				<li>DOS: CRLF both. Which is why if you do "cat -v" on a DOS file you'll see a "^M" (control m is carriage return) at the end of each line. And that is why scripts don't work when written with Microsoft Notepad. The kernel looks for "/bin/sh^M" which doesn't exist. There's a "/bin/sh", but nothing with a "^M" appended.</li>
  				<li>MacOs: CR only. Printers probably print every line atop the first, and Unix tools think the whole file is one line with "^M" all through it.</li>
  			</ul>
  			<p>To change DOS to Unix, use</p>
  			<ul class="code">
  				<li>cp <fileid> <fileid>.dos &&</li>
  				<li>cat <fileid>.dos | tr -d '\r' > <fileid></li>
  			</ul>
  			<p>Other conversions will probably require sed or a different use of tr and are left as an exercise for the reader.</p>
  		</dd>
  </dl>
  <p><a href="#header">Back to the top.</a></p>
  
  <h4 id="generrors">General compilation errors</h4>
  <dl>
  	<dt id="gnu-patches">I used a patch from GNU to upgrade. Is that OK?</dt>
  		<dd>
  			<p>Patches from GNU don't usually work. You can either download the full archive and try again or try the solution given by Gerard Beekmans:</p>
  			<p>The problem is that executable marked scripts are patched too and they then lose the executable bit, so you can't execute those scripts anymore until you run a "chmod +x" on them (or something similar, like chmod 755) before installing Glibc. Try chmod +x glibc-2.2.5/scripts/* (not 100% sure about the directory paths but it should be obvious where to do it when running an 'ls' on the glibc-2.2.5 directory). </p>
  		</dd>
  	<dt id="optimizations">When using optimization flags (setting CFLAGS)</dt>
  		<dd>
  			<p>If you're getting errors and you're setting CFLAGS or otherwise passing optimization flags to the compiler that may be the problem.</p>
  			<p>If you ask on the list and they can't figure it out immediately, they'll likely suggest trying it without optimization. So if you just retry it without before asking, you'll be one step ahead of them :)</p>
  			<p>Of particular note is that optimizing binutils, gcc, or glibc may cause any other package to fail to compile or run or to otherwise misbehave in strange and mysterious ways. Also, optimization that works for someone else may not work for you. Flags that used to work may mysteriously stop working. Even some small innocent hardware change can make the difference.</p>
  			<p>(If you don't know what optimization flags are, don't worry, you really don't need to.)</p>
  		</dd>
  	<dt id="config-hang-size_t">Why does configure hang at "checking for signed size_t type..."?</dt>
  		<dd>
  			<p>You over optimized gcc.</p>
  		</dd>
  	<dt id="dirty-sources">I didn't delete the source tree after my last attempt. Do I need to?</dt>
  		<dd>
  			<p>Yes, but see "<a href="#how-to-compile">How do i compile a package?</a>" for the details including an exception to that rule.</p>
  		</dd>
  	<dt id="perm-denied">I'm getting `/dev/null: Permission denied'</dt>
  		<dd>
  			<p>Does /dev/null look like this:</p>
  			<ul class="code">
  				<li>$ ls -l /dev/null</li>
  				<li>crw-rw-rw- 1 root root 1, 3 Aug  3  2000 /dev/null</li>
  			</ul>
  			<p>If not, it should. See the chmod(1), chown(1), and mknod(1) man pages and /usr/src/linux/Documentation/devices.txt if you need help fixing it.</p>
  			<p>If it does look right, the problem is probably your mount options. See the answer to "<a href="#bad-interpreter-permission-denied">./configure: bad interpreter: Permission denied</a>", above.</p>
  		</dd>
  	<dt id="sig11">signal 11 (internal error: Segmentation fault)</dt>
  		<dd>
  			<p>The long answer is at <a href="http://www.bitwizard.nl/sig11/">http://www.bitwizard.nl/sig11/</a>.</p>
  			<p>The short answer is that if restarting make gets a little further every time, you have a hardware problem. (If make, or whatever you're running, fails at the same place every time, then it is not hardware.)</p>
  			<p>Assuming you're not overclocking, the most likely hardware problem is bad memory which you can check with Memtest86 from <a href="http://www.memtest86.com/">http://www.memtest86.com/</a>. If that isn't it, see the long answer.</p>
  		</dd>
  	<dt id="any-no-such-file">No such file or directory</dt>
  		<dd>
  			<p>Examples of this error are:</p>
  			<ul class="code">
  				<li>/usr/bin/env: /static/bin/bash: No such file or directory</li>
  				<li>gcc: No such file or directory</li>
  			</ul>
  			<p>They usually occur when trying to enter (or shortly after entering) chroot in Chapter 6, and are caused by trying to run a dynamically linked binary at that point. You can check by running file on the binary. For example:<code>file $LFS/static/bin/bash</code>.</p>
  			<p>If it doesn't say something about "statically linked", there is a problem.</p>
  			<p>The solution is to go back to Chapter 5, delete and re-extract the source if you haven't already, and recompile the affected package. And this time, take extra care with the instructions for compiling it statically.</p>
  		</dd>
  	<dt id="configure-no-such-file">bash: ./configure: No such file or directory</dt>
  		<dd>
  			<p>See the entry: <a href="#how-to-compile">"How do I compile a package?"</a></p>
  		</dd>
  	<dt id="bad-interpreter-permission-denied">./configure: bad interpreter: Permission denied</dt>
  		<dd>
  			<p>You're most likely getting this while building bash in Chapter 5 of the LFS Book. The problem is most likely your mount options. You probably have a line in /etc/fstab like:</p>
  			<code>/dev/hda10  /mnt/lfs  ext2  user  1  2</code>
  			<p>'user' is the mount flag, and it's the problem. To quote from the mount man page:</p>
  			<blockquote><p>user:  Allow  an  ordinary  user to mount the file system. This  option  implies  the options noexec, nosuid, and nodev (unless overridden by subsequent options, as in the option line user,exec,dev,suid).</p></blockquote>
   			<p>So change the line in /etc/fstab like this:</p>
  			<code>/dev/hda10  /mnt/lfs  ext2  defaults  1  2</code>
  		</dd>
  	<dt id="conf-guess-fail">configure can't guess my host type.</dt>
  		<dd>
  			<p>Typical symptoms look like this:</p>
  			<ul class="code">
  				<li>sk ~/tmp-0.0 $ ./configure</li>
  				<li>creating cache ./config.cache</li>
  				<li>checking host system type...</li>
  				<li><strong>configure: error: can not guess host type; you must specify one</strong></li>
  				<li>sk ~/tmp-0.0 $</li>
  			</ul>
  			<p>The problem is usually that the script can't run the compiler. Usually it's just a missing /usr/bin/cc symlink. You can fix it like this:</p>
  			<code>cd /usr/bin && ln -s gcc cc</code>
  			<p>If that doesn't do it, check the file config.log created by configure. Errors go there and may indicate the problem.</p>
  		</dd>
  	<dt id="config-not-gnu-c">checking whether we are using GNU C... no</dt>
  		<dd>
  			<p>If you're getting an error from configure like:</p>
  			 <ul class="code">
  				<li>checking whether we are using GNU C... no</li>
  				<li>configure: error: GNU libc must be compiled using GNU CC</li>
  			</ul>
  			<p>It may be because egrep isn't working. Since egrep is a shell-script which calls grep, this actually means there's a problem with grep.</p>
  			<p>To test if grep is working <em>before</em> reinstalling the grep package in Chapter 6, run the following command from <em>outside</em> chroot:</p>
  			<code>file $LFS/bin/grep</code>
  			<p>If it doesn't say <code>statically linked</code> you have a problem and need to reinstall the grep package according to the instruction in chapter 5.</p>
  			<p>To test if egrep is working <em>after</em> reinstalling the grep package in Chapter 6, run the following command from <em>inside</em> chroot:</p>
  			<code>egrep root /etc/passwd</code>
  			<p>If it doesn't print root's line from /etc/passwd, again, you have a problem. (This test also works if you encounter the problem after rebooting into the new LFS system.)</p>
  		</dd>
  	<dt id="cannot-find-lc">ld: cannot find -lc</dt>
  		<dd>
  			<p>You get a message early in chapter 5 (LFS-4.1) or at the first pass of gcc (LFS CVS) which ends like this:</p>
  				<ul class="code">
  					<li>-static -o gengenrtl \ gengenrtl.o ../libiberty/libiberty.a</li>
  					<li>ld: cannot find -lc</li>
  					<li>collect2: ld returned 1 exit status</li>
  				</ul>
  			<p>Your host system is probably Mandrake 9 or higher. By default, its base system does not have a static C library (<code>/usr/lib/libc.a</code>) which is required for the static compilation of packages.</p> 
  			<p>You need to install the glibc-static-devel RPM, which is on the third CD. You can verify the succesfull installation by verifying that /usr/lib/libc.a exists. If you're using LFS 4.1, check that everything in <code>$LFS/static/bin</code> is built static by using <code>file $LFS/static/bin/*</code>. If a package is not statically linked, reinstall it with the instructions from chapter 5.</p>
  		</dd>
  	<dt id="where-ncurses-mandrake">Where's libncurses.a in Mandrake?</dt>
  		<dd>
  			<p>In Mandrake/RPMS2/libncurses5-devel-5.2-16mdk.1586.rpm on Disk 2. Version numbers might be a little different for you. (If you're missing libcurses.a (no "n"), reread the book's instructions for bash more carefully.)</p>
  		</dd>
  </dl>
  <p><a href="#header">Back to the top.</a></p>
  
  <h4 id="packerrors">Package-specific errors</h4>
  <dl>
  	<dt id="conflicting-gethostname">Bash: conflicting types for `gethostname'</dt>
  		<dd>
  			<p>If you get an error about <code>conflicting types for `gethostname'</code> when compiling bash in Chapter 5, you need to install the glibc-static-devel RPM. (It's on the third CD.)</p>
  		</dd>
  	<dt id="yytext_ptr-undeclared">Modutils: "lex.l:429: `yytext_ptr' undeclared" while building modutils</dt>
  		<dd>
  			<p>If, while compiling modutils, you get:</p>
  			 <ul class="code">
  				<li>/usr/bin/gcc -O2 -Wall -Wno-uninitialized -I. -I. -I./../include</li>
  				<li>-D_GNU_SOURCE  -DCONFIG_ROOT_CHECK_OFF=0 -c -o lex.o lex.c</li>
  				<li>lex.l: In function `yylex':</li>
  				<li>lex.l:429: `yytext_ptr' undeclared (first use in this function)</li>
  				<li>lex.l:429: (Each undeclared identifier is reported only once</li>
  				<li>lex.l:429: for each function it appears in.)</li>
  				<li>make[1]: *** [lex.o] Error 1</li>
  			</ul>
  			<p>Then <a href="../faq/#why-not-version">FBBG</a> (Hint: flex).</p>
  		</dd>
  	<dt id="perl-missing-separator">Perl fails with <code>*** missing separator. Stop.</code></dt>
  		<dd>
  			<p>It's missing a device file. (AFAIK, /dev/null, but maybe /dev/zero.) Anyway, either you forgot to run MAKEDEV, or MAKEDEV failed, or you're using devfs and forgot to mount --bind it under $LFS.</p>
   			<p>If MAKEDEV failed, often all the device's ids will end with a "-". AFAIK, this happens when MAKEDEV is run without $LFS/proc mounted.</p>
  			<p>The devices should look exactly like this:</p>
  			<ul class="code">
  				<li>sk at bubook:~ $ ls -l /dev/{null,zero}</li>
  				<li>crw-rw-rw-  1 root root 1, 3 Dec 31  1969 /dev/null</li>
  				<li>crw-rw-rw-  1 root root 1, 5 Dec 31  1969 /dev/zero</li>
  				<li>sk at bubook:~ $</li>
  			</ul>
  		</dd>
  	<dt id="unknown-pseudo-op-hidden">GCC: Error: Unknown pseudo-op: `.hidden'</dt>
  		<dd>
  			<p>If compiling GCC in Chapter 5 errors out with</p>
  			<code>Error: Unknown pseudo-op: `.hidden'</code>
  			<p>Try the solution given in <a href="http://www.linuxfromscratch.org/pipermail/lfs-support/2002-September/009562.html">the lfs-support archives</a>  and replies.</p>
  		</dd>
  	<dt id="no-linuxthreads">Glibc: "... it is normal to compile GNU libc with the `linuxthreads' add-on..."</dt>
  		<dd>
  			<p>The exact error looks like this:</p>
  			<ul class="code">
  				<li>*** On GNU/Linux systems it is normal to compile GNU libc with the</li>
  				<li>*** `linuxthreads' add-on.  Without that, the library will be</li>
  				<li>*** incompatible with normal GNU/Linux systems.</li>
  				<li>*** If you really mean to not use this add-on, run configure again</li>
  				<li>*** using the extra parameter `--disable-sanity-checks'.</li>
  			</ul>
  			<p>You have not unpacked glibc-linuxthreads-X.X.X.tar.bz2 <em>in the glibc-X.X.X directory.</em> Unpack it there and you'll be all set.</p>
  		</dd>
  	<dt id="asm-global-directive">Glibc: "cannot determine asm global directive".</dt>
  		<dd>
  			<p>The error, <code>configure: error: cannot determine asm global directive</code>, while configuring glibc indicates a problem with the binutils installation. Likely it isn't statically linked. (You can check with <code>file $LFS/static/bin/as</code>.) In any case, try reinstalling binutils.</p>
  		</dd>
  	<dt id="glibc-no-ld_map">Glibc: "ld.map: No such file or directory".</dt>
  		<dd>
  			<p>You're missing /dev/null. Either you forgot to create it when the glibc build instructions say to, or you're using devfs and forgot to "mount --bind /dev $LFS/dev" before chrooting. You may have to delete and recreate the glibc-N.N.N and glibc-build directories after fixing that.</p>
  		</dd>
  	<dt id="glibc-awk-fail">Glibc fails and mentions BEGIN and END.</dt>
  		<dd>
  			<p>If glibc fails to build with an error like this:</p>
  			<ul class="code">
  				<li>'BEGIN { subdirs = ""; inhibit = "" };  \</li>
  				<li>^# { next };  \</li>
  				<li>^[^-] { subdirs = subdirs " " $0 };  \</li>
  				<li>^- { inhibit = inhibit " " substr($0, 2) };  \</li>
  				<li>END { printf "sysdep-subdirs =%s\n", subdirs;  \</li>
  				<li>  printf "sysdep-inhibit-subdirs =%s\n", inhibit;  \</li>
  				<li>  print "sysd-dirs-done = t" }'  \</li>
  				<li> /dev/null linuxthreads/sysdeps/pthread/Subdirs</li>
  				<li>sysdeps/unix/inet/Subdirs sysdeps/unix/Subdirs ></li>
  				<li>/usr/src/glibc-build/sysd-dirs-tmp</li>
  				<li>/bin/sh: line 1: BEGIN { subdirs = ""; inhibit = "" };</li>
  				<li>^# { next };</li>
  				<li> ^[^-] { subdirs = subdirs " " $0 }; ^- { inhibit =</li>
  				<li>inhibit " " substr($0, 2) }; END</li>
  			</ul>
  			<p>then gawk is failing. The key is the BEGIN and END in the output. The probable reason is that it's not statically linked which you can fix by going back to Chapter 5 and recompiling it.</p>
  		</dd>
  	<dt id="sh-utils-getloadavg">Sh-utils: "undefined reference to `getloadavg'".</dt>
  		<dd>
  			<p>If you're trying to build static sh-utils and you're getting an error like this:</p>
  			<ul class="code">
  				<li>gcc  -g -O2  -static -o uptime  uptime.o ../lib/libsu.a -lutil</li>
  				<li>uptime.o: In function `print_uptime':</li>
  				<li>/lfs/tmp/sh-utils-2.0/src/uptime.c:125: undefined reference to `getloadavg'</li>
  				<li>collect2: ld returned 1 exit status</li>
  				<li>make[2]: *** [uptime] Error 1</li>
  				<li>make[2]: Leaving directory `/lfs/tmp/sh-utils-2.0/src'</li>
  				<li>make[1]: *** [all-recursive] Error 1</li>
  				<li>make[1]: Leaving directory `/lfs/tmp/sh-utils-2.0'</li>
  				<li>make: *** [all-recursive-am] Error 2</li>
  			</ul>
  			<p>I am unable to reproduce this error and so cannot present a tested solution, but two solutions have been posted by others. I suggest trying them in the following order:</p>
  			<ul>
  				<li><a href="http://216.239.39.104/search?q=cache:gSWmRAfYQy8J:archive.linuxfromscratch.org/mail-archives/blfs-support/2001/06/0507.html+&hl=en&ie=UTF-8">(Google's cache - link may disappear!)</a>:  This attempts to correct the incorrectly  generated config.h and should be the correct  solution if you can get it to work by  following the description given in the  post.</li>
  				<li>If that doesn't work, delete the sources, re-extract, and try this: <a href="http://216.239.37.104/search?q=cache:7pXMmfdvTzgJ:archive.linuxfromscratch.org/mail-archives/blfs-support/2001/06/0495.html+&hl=en&ie=UTF-8">(Google's cache - link may disappear!)</a>.  This attempts to avoid compiling uptime at all  since it won't be needed in chroot and  compiling uptime dynamically in chroot doesn't  have this problem.</li>
  			</ul>
  		</dd>
  	<dt id="cpp-fails-sanity-check">NCurses: C++ preprocessor "/lib/cpp" fails sanity check</dt>
  		<dd>
  			<p>Ncurses in chapter six ends with:</p>
  			<ul class="code">
  				<li>checking how to run the C++ preprocessor... /lib/cpp</li>
  				<li> configure: error: C++ preprocessor "/lib/cpp" fails sanity check</li>
  			</ul>
  			<p>The problem is that you have no c++ compiler. In chapter five, gcc is built without the C++ compiler. Before building ncurses gcc is built with the C++ compiler. Most probably, you forgot to extract the g++ tarball. There are more details in <a href="http://archives.linuxfromscratch.org/mail-archives/lfs-support/2003-July/018757.html">the mail archive</a>.</p>
  		</dd>
  </dl>
  <p><a href="#header">Back to the top.</a></p>
  
  <h4 id="confboot">Configuration and booting issues</h4>
  <dl>
  	<dt id="lilo-errors">What do those LILO errors mean?</dt>
  		<dd>
  			<p>The documentation in the LILO distribution lists all errors (such as when it prints "LI" and stops), but a quick overview is available at <a href="http://sdb.suse.de/sdb/en/html/kgw_lilo_errmsg.html">http://sdb.suse.de/sdb/en/html/kgw_lilo_errmsg.html</a>.</p>
  		</dd>
  	<dt id="unable-to-mount-root">Kernel panic: VFS: unable to mount root fs</dt>
  		<dd>
  			<p>There several reasons why the kernel might be unable to mount the root filesystem.</p>
  			<ul>
  				<li>Did you specify the correct partition in <code>/etc/lilo.conf</code>?</li>
  				<li>Did you remember to rerun lilo after changing <code>/etc/lilo.conf</code>?</li>
  				<li>Is support for the hard drive enabled in the kernel. For SCSI this means support for the specific SCSI adapter.</li>
  				<li>Is support for the hard drive compiled into the kernel, not just as a module. (Modules are stored on the filesystem. If a driver needed to access the filesystem is stored as a module on that filesystem, well ... you know ... ;)</li>
  				<li>Is support for the filesystem compiled into the kernel. Again, not a module. Support for ext2 is enabled by default, but others like ext3, reiser, jfs, and xfs are not.</li>
  			</ul>
  		</dd>
  	<dt id="respawning-too-fast">init: Id "1" respawning too fast: disabled for 5 minutes</dt>
  		<dd>
  			<p>When you see, in your syslogs, this line:</p>
  			<code>init: Id "1" respawning too fast: disabled for 5 minutes</code>
  			<p>It means you have an error in the /etc/inittab line beginning with the given id ("1" in this example).</p>
  		</dd>
  	<dt id="net-pf-x">I'm getting errors about net-pf-?.</dt>
  		<dd>
  			<p>When you compiled net-tools you enabled support for a protocol family (that's where the "pf" comes from) that you didn't enable support for in the kernel. (You probably just accepted the default answers.)</p>
  			<p>A full list of protocols is in /usr/include/linux/socket.h but here is a list of the likely culprits:</p>
  			<ul class="code">
  				<li>net-pf-3: Amateur Radio AX.25 (AF_AX25)</li>
  				<li>net-pf-4: Novell IPX (AF_IPX)</li>
  				<li>net-pf-5: AppleTalk DDP (AF_APPLETALK)</li>
  				<li>net-pf-6: Amateur Radio NET/ROM (AF_NETROM)</li>
  				<li>net-pf-9: Reserved for X.25 project (AF_X25)</li>
  			</ul>
  			<p>Naturally the fix is to recompile net-tools without support for the things you don't need. (Or recompile your kernel with support if you find you actually wanted them.) The workaround to put a line like the following in /etc/modules.conf</p>
  				<code>alias net-pf-? off</code>
  			<p>Replace the question mark with the correct number, of course. And rerun depmod.</p>
  			<p>If you get an error about net-pf-7, you probably need to enable support for the loopback network device (not block device) in your kernel. Or you may need to add the following line to /etc/modules.conf and rerun depmod.</p>
  			<code>alias net-pf-7 loop</code>
  		</dd>
  	<dt id="char-major-10-135">modprobe: Can't locate module char-major-10-135</dt>
  		<dd>
  			<p><code>char-major-10-135</code> refers to the character device, major 10, minor 135, which is /dev/rtc. It provides access to the BIOS clock, or RTC, the Real Time Clock. See /usr/src/linux/Documentation/rtc.txt for more information.</p>
   			<p>The error is because something, most likely hwclock, is trying to use /dev/rtc but you haven't configured kernel support for it in your kernel. Either delete /dev/rtc so hwclock won't try to use it or enable RTC support in your kernel. It's located in make menuconfig under "Character devices" -> "Enhanced Real Time Clock Support".</p>
  		</dd>
  	<dt id="no-dev-rtc">modprobe: Can't locate module /dev/rtc</dt>
  		<dd>
  			<p>See the question <a href="#char-major-10-135">"modprobe: Can't locate module char-major-10-135"</a>.</p>
  		</dd>
  	<dt id="eth0-unknown-interface">eth0:unknown interface:No such device [failed] </dt>
  		<dd>
  			<p>The full error looks like this:</p>
  			<ul class="code">
  				<li>eth0:unknown interface:No such device [failed]</li>
  				<li>Setting up default gateway...</li>
  				<li>SIOCADDRT:No such device [failed]</li>
  			</ul>
  			<p>eth0 is a virtual device with no /dev entry. It refers to the first detected network card in your system. The reason the kernel can't route find this device is because you forgot to add support for your network card in the kernel. The kernel detected the card but doesn't have a driver for it. The LFS boot script tries to bring up the network but fails because of this.</p>
  			<p>Recompile your kernel with the proper driver, either built in or as a module. If you compiled the network driver as a module, then also adjust /etc/modules.conf to alias the network card module as eth0; for example: <code>alias eth0 8139too</code>. If you don't know which network card you have, you can use <code>dmesg</code>, /proc/pci or <code>lspci</code> to find out.</p>
  		</dd>
  	<dt id="spurious-8259A-interrupt">spurious 8259A interrupt: IRQ14 </dt>
  		<dd>
  			<p>Short summary: It's a hardware problem (usually). Transient Line-noise/crosstalk persuades the PIC that something happened; this can result in a 'dummy' interrupt being raised, which happens to be IRQ7 with intel's 8259 design.The problem could possibly also be caused by (or instead be caused by) a device driver not properly masking its interrupts before servicing, this would be the suspect if the IRQ7's were happening in bursts, or more often than 'several' per day. (<a href="http://groups.google.com/groups?q=spurious+interrupt+8259&hl=de&scoring=d&selm=3C174EDD.9090306%40hotmail.com&rnum=10">Source and additional information</a>)</p>
  			<p>Since the message itself is harmless, it's enough to adjust the default loglevel outplut of klogd (the -c opion) in the syslogd bootscript. See <code>man klogd</code> for details. You can also try recompiling the kernel and unset CONFIG_LOCAL_APIC.</p>
  		</dd>
  	<dt id="f-hostname">My hostname is getting set to "-f"!</dt>
  		<dd>
  			<p>You need to install the net-tools package. (See the instructions in the LFS book.)</p>
   			<p>The hostname command your system is using is from sh-utils and doesn't support the -f option. When it is called with the -f option it assumes the hostname should be set to "-f". The hostname command from net-tools doesn't have this problem.</p>
  		</dd>
  	<dt id="less-prints-ad">Why does less (and therefore man) print <AD> instead of hyphens?</dt>
  		<dd>
  			<p>Because the LANG and LC_ALL environment variables aren't set. To fix that, set them in both the ~/.bash_profile and ~/.bashrc files for each user or in /etc/profile, which will take care of all users, by adding lines like this:</p>
  			<ul class="code">
  				<li>export LANG=en_US</li>
  				<li>export LC_ALL=POSIX</li>
  			</ul>
  			<p>Those lines can be added to /etc/profile with the following command:</p>
  			<code>echo -e 'export LANG=en_US\nexport LC_ALL=POSIX' >> /etc/profile</code>
  			<p>If you don't use US English you'll have to change the "en_US" part and possibly the values of various LC_* variables as well. Running the locale command lists many (all?) of the LC_* variables.</p>
  		</dd>
  </dl>
  <p><a href="#header">Back to the top.</a></p>
  
  </div> <!-- end content -->
  
  <div id="footer">
  	<ul>
  		<li><a href="#header">Back to the top.</a></li>
  		<li>© 1998-2003  Gerard Beekmans.</li>
  		<li>Site design by Jeroen Coumans.</li>
  	</ul>
  	<ul>
  		<li><a href="http://validator.w3.org/check/referer"><img src="../images/xhtml-1.1.png" alt="Valid XHTML 1.1!" height="15" width="80" /></a></li>
  		<li><a href="http://jigsaw.w3.org/css-validator/check/referer"><img src="../images/css.png" alt="Valid CSS!" height="15" width="80" /></a></li>
  	</ul>
  </div>
  
  <div id="projectnav">
  	<a href="#generalnav" class="hidden">Skip to general navigation</a>
  	<h2>Project:</h2>
  		<ul>
  		<li><a href="news.html">LFS News</a></li>
  		<li><a href="whatislfs.html" title="Introduction to LFS">What is Linux From Scratch?</a></li>
  		<li><a href="acknowledgements.html" title="People who earned credits for their contributions">Acknowledgements</a></li>
  		<li><a href="http://bugs.linuxfromscratch.org" title="Help us improve LFS by reporting bugs">Report a bug</a></li>	
  		<li><h3>Download:</h3>	
  			<ul>
  				<li><a href="http://archive.linuxfromscratch.org/lfs-museum/" title="Download older versions">Book Releases</a></li>
  				<li><a href="http://archive.linuxfromscratch.org/lfs-museum/stable/" title="Dowload the latest stable LFS version">Current stable</a></li>
  				<li><a href="packages.html" title="How to download all packages required by LFS">Packages</a></li>
  			</ul>
  		</li>
  		<li><h3>Read:</h3>
  			<ul>
  				<li><a href="hardcopy41.html" title="Information about the printed edition">Printed book</a></li>
  				<li><a href="stable.html" title="Release information and translations of LFS">Stable and translation</a></li>
  				<li><a href="cvs.html" title="Get the bleeding-edge development version">Development (CVS)</a></li>
  				<li><a href="http://lfs.sourceforge.net/wiki/LFS" title="Our development Wiki page">Developers Wiki</a></li>
  			</ul>
  		</li>
  	</ul>
  </div><!-- end projectnav -->
  
  <div id="generalnav">
  	<ul>
  		<li><h3>Contribute:</h3>
  			<ul>
  				<li><a href="../donation.html" title="Donate via paypal">Make a donation</a></li>
  				<li><a href="http://test.linuxfromscratch.org/cgi-bin/lfscounter.cgi" title="Get counted!">Register as LFS user</a></li>
  				<li><a href="../becomemirror.html" title="If you have some bandwidth to spare">Become a mirror</a></li>
  				<li><a href="../patches/" title="Submit patches for LFS or BLFS">Submit patches</a></li>
  			</ul>
  		</li>
  		<li><h3>Help and contact:</h3>
  			<ul>
  				<li><a href="faq.html" class="currentpage" title="Frequently Asked Questions (and answers!)">LFS FAQ</a></li>
  				<li><a href="../search.html" title="Advanced search page">Search</a></li>
  				<li><a href="../irc.html" title="Chat channels and nick names">IRC</a></li>
  				<li><a href="../newsgroups.html" title="For following development and advanced support">News groups</a></li>
  				<li><a href="../mail.html" title="For following development and advanced support">Mailing lists</a></li>
  				<li><a href="../people.html" title="Who is who and who does what">The LFS team</a></li>
  			</ul>
  		</li>
  		<li><h3>About this website:</h3>
  			<ul>
  				<li><a href="index.html" title="Home (mirror list)" accesskey="1">Home (Mirror list)</a></li>
  				<li><a href="../sitemap.html" title="Structured overview of the website" accesskey="3">Sitemap</a></li>
  				<li><a href="../accesskeys.html" title="Keyboard shortcuts for this site" accesskey="0">Accesskeys</a></li>
  				<li><a href="../website.html" title="General info about this site">Website information</a></li>
  				<li><a href="http://linuxfromscratch.org/mailman/listinfo/website" title="Mail us if you run into problems with this website" accesskey="9">Contact webmaster</a></li>
  			</ul>
  		</li>
  	</ul>
  </div><!-- end generalnav -->
  </div><!-- end container -->
  
  </body>
  </html>
  
  
  



More information about the website mailing list