--- Kernel-HOWTO.sgml.19970526 Mon May 26 11:48:40 1997 +++ Kernel-HOWTO.sgml Sun Oct 18 23:22:45 1998 @@ -5,8 +5,9 @@
The Linux Kernel HOWTO -<author>Brian Ward, <tt>bri@blah.math.tu-graz.ac.at</tt> -<date>v0.80, 26 May 1997 +<author>Brian Ward, <tt>bri@blah.math.tu-graz.ac.at</tt>, small revisions +by William Stearns, <htmlurl url="mailto:wstearns@pobox.com" name="wstearns@pobox.com"> +<date>v0.81, 18 Oct 1998 <abstract> This is a detailed guide to kernel configuration, compilation, upgrades, @@ -45,7 +46,7 @@ similar.<p> The latest ``production'' kernel version at the time of this writing was -2.0.30, meaning that the references and examples correspond to that +2.0.35, meaning that the references and examples correspond to that release. Even though I try to make this document as version-independent as possible, the kernel is constantly under development, so if you get a newer release, it will inevitably have some differences. Again, this should @@ -54,7 +55,7 @@ There are two versions of the linux kernel source, ``production'' and ``development.'' Production releases begin with 1.0.x and are currently the even-numbered releases; 1.0.x was production, 1.2.x is production, as -well as 2.0.x. These kernels are considered to be the +are 2.0.x and the soon-to-be-released 2.2.x. These kernels are considered to be the most stable, bug-free versions available at the time of release. The development kernels (1.1.x, 1.3.x, etc) are meant as testing kernels, for people willing to test out new and possibly very buggy kernels. You have @@ -122,6 +123,12 @@ recommended version of gcc should tell you if you need to upgrade your libc. This is not a difficult procedure, but it is important to follow the instructions. + +Your kernel may include a file called +<file>/usr/src/linux/Documentation/Changes</file>. This file has a list +of other packages that may be found on your system and the minimum versions +necessary to use this kernel. The file tells you how to check the version +installed on your system. <p> <sect1>What's a loadable module? <p> @@ -173,8 +180,8 @@ <sect1>Getting the source <p> -You can obtain the source via anonymous ftp from <tt>ftp.funet.fi</tt> in -<tt>/pub/Linux/PEOPLE/Linus</tt>, a mirror, or other sites. +You can obtain the source via anonymous ftp from +<htmlurl url="ftp://linux.kernel.org/pub/linux/kernel">, a mirror, or other sites. It is typically labelled <tt>linux-x.y.z.tar.gz</tt>, where <tt>x.y.z </tt> is the version number. Newer (better?) versions and the patches are typically in subdirectories such as `<tt>v1.1</tt>' and `<tt>v1.2</tt>' @@ -184,7 +191,7 @@ <p> I <it>strongly</it> suggest that you use a mirror ftp site instead -of ftp.funet.fi. Here is a short list of mirrors and other sites: +of linux.kernel.org. Here is a short list of mirrors and other sites: <p> <verb> USA: sunsite.unc.edu:/pub/Linux/kernel @@ -198,8 +205,7 @@ </verb> In general, a mirror of <tt>sunsite.unc.edu</tt> is a good place to look. -The file -<tt>/pub/Linux/MIRRORS</tt> contains a list of known mirrors. If you do not +If you do not have ftp access, a list of BBS systems which carry linux is posted periodically to comp.os.linux.announce; try to obtain this. <p> @@ -478,7 +484,7 @@ <sect2>Other configuration options<p> Not all of the configuration options are listed here because they change too often or fairly self-evident (for instance, 3Com 3C509 support to -compile the device drive for this particular ethernet card). +compile the device driver for this particular ethernet card). There exists a fairly comprehensive list of all the options (plus a way to place them into the <tt>Configure</tt> script) put together by Axel Boldt (<tt>axel@uni-paderborn.de</tt>) with the following URL:<p> @@ -492,7 +498,8 @@ where the <tt>x.yz</tt> is the version number.<p> For later (2.0.x and later) kernels, this has been integrated into the -source tree. +source tree. Most of the options available to you during the configuration +process have a help screen taken from this file. <p> <sect2>Kernel hacking <p> @@ -519,6 +526,14 @@ with the `<tt>rdev</tt>' command once the new kernel is in place. <p> +If you would like to compile a kernel that can use the additional processors +on a computer with more than one, you will need to enable this via the Makefile. +There will be a line that looks like &dquot;<tt>SMP = 0</tt>&dquot;. It may +be SMP=0 or SMP=1 - the value used is actually irrelevant. To compile a kernel +for a single processor, put a <tt>#</tt> at the beginning of the line if +there is not already one there. To support more than one processor, remove +the <tt>#</tt> if it exists. + <sect>Compiling the kernel <p> <sect1>Cleaning and depending <p> @@ -559,6 +574,10 @@ decompresses itself when executed. <p> +If the build process comes up with an error that your kernel is too large, +try <tt>make bzImage</tt> or <tt>make bzdisk</tt>. This <bf>b</bf>ig zImage +format loads the kernel in a slightly different way. + <sect1>Other ``make''ables <p> `<tt>make mrproper</tt>' will do a more extensive `<tt>clean</tt>'ing. @@ -771,6 +790,9 @@ is (or at least was) frequently updated for new kernel releases.). With most newer device drivers being developed as loadable modules, though, the frequecy of ``nonstandard'' patches is decreasing significantly. + +See <ref id="resources" Name="Additional Resources"> for some sites +that have useful patches. <p> <sect>Additional packages<p> @@ -789,9 +811,11 @@ <sect1>util-linux<p> Rik Faith (<tt>faith@cs.unc.edu</tt>) put together a large collection of linux utilities which are, by odd coincidence, called util-linux. These are -now maintained by Nicolai Langfeldt (<tt>util-linux@math.uio.no</tt>). +now maintained by Nicolai Langfeldt +(<htmlurl url="mailto:util-linux@math.uio.no" name="util-linux@math.uio.no">). Available via -anonymous ftp from sunsite.unc.edu in <tt>/pub/Linux/system/misc</tt>, it +anonymous ftp from sunsite.unc.edu in +<htmlurl url="http://sunsite.unc.edu/pub/Linux/system/misc">, it contains programs such as <tt>setterm</tt>, <tt>rdev</tt>, and <tt>ctrlaltdel</tt>, which are relevant to the kernel. As Rik says, <it>do not install without thinking;</it> you do not need to install everything in @@ -895,7 +919,7 @@ It tends to disturb people when it's suggested that their hardware has problems. Well, I'm not making this up. There is an FAQ for it -- it's at -<tt>http://www.bitwizard.nl/sig11/</tt>. +<htmlurl url="http://www.bitwizard.nl/sig11/">. <p> <sect1>New version of the kernel doesn't seem to boot<p> @@ -975,7 +999,8 @@ <p> Using LILO with big drives (more than 1024 cylinders) can cause problems. -See the LILO mini-HOWTO or documentation for help on that. +See the <htmlurl url="mini/LILO.html" name="LILO mini-HOWTO"> +or documentation for help on that. <p> <sect1>It says `warning: bdflush not running' <p> @@ -1276,18 +1301,22 @@ </verb> <p> -<sect>Other relevant HOWTOs that might be useful<p> +<sect>Other relevant resources that might be useful<p><label id="resources"> <itemize> -<item> Sound-HOWTO: sound cards and utilities -<item> SCSI-HOWTO: all about SCSI controllers and devices -<item> NET-2-HOWTO: networking -<item> PPP-HOWTO: PPP networking in particular -<item> PCMCIA-HOWTO: about the drivers for your notebook -<item> ELF-HOWTO: ELF: what it is, converting.. -<item> Hardware-HOWTO: overview of supported hardware -<item> Module-HOWTO: more on kernel modules -<item> Kerneld mini-HOWTO: about kerneld -<item> BogoMips mini-HOWTO: in case you were wondering +<item> <htmlurl url="Sound-HOWTO.html" name="Sound-HOWTO">: sound cards and utilities +<item> <htmlurl url="NET-3-HOWTO.html" name="NET-2-HOWTO">: networking +<item> <htmlurl url="PPP-HOWTO.html" name="PPP-HOWTO">: PPP networking in particular +<item> <htmlurl url="PCMCIA-HOWTO.html" name="PCMCIA-HOWTO">: about the drivers for your notebook +<item> <htmlurl url="ELF-HOWTO.html" name="ELF-HOWTO">: ELF: what it is, converting.. +<item> <htmlurl url="Hardware-HOWTO.html" name="Hardware-HOWTO">: overview of supported hardware +<item> <htmlurl url="mini/Modules.html" name="Modules mini-HOWTO">: more on kernel modules +<item> <htmlurl url="mini/Kerneld.html" name="Kerneld mini-HOWTO">: about kerneld +<item> <htmlurl url="mini/BogoMips.html" name="BogoMips mini-HOWTO">: in case you were wondering +<item> <htmlurl url="http://www.tux.org/lkml/">: Frequently Asked Questions about the Linux kernel +<item> <htmlurl url="http://www.linuxhq.com">: Pointers to some Linux patches +<item> <htmlurl url="ftp://ftp.uk.linux.org/pub/linux/alan">: Alan Cox's site for patches +<item> <htmlurl url="http://www.phys.uu.nl/~riel/mm-patch/">: Rik van Riel's memory management patch website. +<item> <htmlurl url="http://www.pobox.com/~wstearns/buildkernel/">: Buildkernel - an automated script that handles much of the build process automatically. </itemize> <sect>Misc<p> @@ -1375,6 +1404,7 @@ ``free'' documentation concept/distribution notice<p> <tt>dak@Pool.Informatik.RWTH-Aachen.DE</tt> (David Kastrup): NFS thing<p> <tt>esr@snark.thyrsus.com</tt> (Eric Raymond): various tidbits<p> +<tt>wstearns@pobox.com</tt> (William Stearns): general updates<p> The people who have sent me mail with questions and problems have also been quite helpful.