This page was put together by merging parts of the Linux NET-2/NET-3 HOWTO and the Linux Kernel HOWTO so that most of the present (November 1995) kernel options are documented in one place instead of two. Please refer to both documents for additional information.
Note: Some of this is reiteration/clarification of a similar
section in Linus' README file.
The command 'make config' while in /usr/src/linux starts
a configure script which asks you many questions. It requires bash,
so verify that bash is /bin/bash, /bin/sh,
or $BASH.
You are ready to answer the questions, usually with 'y' (yes) or
'n' (no). Some of the
more obvious and non-critical options are not described here; see the section
"Other configuration options" for short descriptions of a few others.
If you don't have a math coprocessor (you have a bare 386 or
486SX), you must say 'y' to this. If you do have a coprocessor and
you still say 'y', don't worry too much -- the coprocessor is
still used and the emulation ignored. The only consequence is that the
kernel will be larger (costing RAM).
You probably need to support this; it means that the kernel will support standard PC hard disks, which most people have. This driver does not include SCSI drives; they come later in the configuration.
You will then be asked about the "old disk-only" and "new IDE" drivers. You want to choose one of them; the main difference is that the old driver only supports two disks on a single interface, and the new one supports a secondary interface and IDE/ATAPI cdrom drives. The new driver is 4k larger than the old one and is also supposedly "improved," meaning that aside from containing a different number of bugs, it might improve your disk performance, especially if you have newer hardware.
In principle, you would only say 'y' if your machine is on a network
such as the internet, or you want to use SLIP, PPP, term, etc to
dial up for internet access. However, as many packages (such as X windows)
require networking support even if your machine does not live on a real
network, you should say 'y'. Later on, you will be asked if you
want to support TCP/IP networking; again, say 'y' here if you
are not absolutely sure.
There exist buggy 386 DMA controllers
which have problems with addressing anything more than 16 MB of
RAM; you want to say 'y' in the (rare) case that you have one.
One of the best definitions of IPC (Interprocess Communication) is in the
Perl book's glossary. Not surprisingly, Perl employs it to let processes
talk to each other, as well as many other packages, so it is not a good
idea to say n unless you know exactly what you are doing.
Newer kernels have a number of options that you are asked about when
you do a make config. Generally you will not need to change
these, but some of the options might be useful to you in certain
circumstances.
This optimizes the kernel for use on a 486 processor. The new kernel will be slightly larger, but will work fine on a 386.
If you have a SCSI device, say 'y'. You will be prompted for
further information, such as support for CD-ROM, disks, and what kind
of SCSI adapter you have. See the SCSI-HOWTO for greater detail.
If you have a network card, or you would like to use SLIP, PPP, or a
parallel port adapter, say 'y'. The config script will prompt
for which kind of card you have, and which protocol to use.
The configure script then asks if you wish to support the following filesystems:
y'.
y'.
ps') use it. Try
'cat /proc/meminfo' or 'cat /proc/devices' sometime.
Some shells (rc, in particular) use /proc/self/fd (known as
/dev/fd
on other systems) for I/O. You should almost certainly say 'y' to
this; many important linux tools depend on it.
y'.
Ok, type 'mount'. The output will look something like this:
blah# mount
/dev/hda1 on / type ext2 (defaults)
/dev/hda3 on /usr type ext2 (defaults)
none on /proc type proc (defaults)
/dev/fd0 on /mnt type msdos (defaults)
Look at each line; the word next to 'type' is the filesystem
type. In this example, my / and /usr filesystems are
second extended, I'm using /proc, and there's a floppy
disk mounted using the msdos (bleah) filesystem.
You can try 'cat /proc/filesystems' if you have /proc
currently enabled; it will list your current kernel's filesystems.
The configuration of rarely-used, non-critical filesystems can cause kernel bloat; see the section on modules for a way to avoid this.
Here, you enable the drivers for your printer, busmouse, PS/2 mouse
(many notebooks use the PS/2 mouse protocol for their built-in trackballs),
some tape drives, and other such "character" devices. Say 'y'
when appropriate.
Note: Selection is a program which allows the use of the mouse outside of X Windows for cut and paste between virtual consoles. It's fairly nice if you have a serial mouse, because it coexists well with X Windows, but you need to do special tricks for others. Selection support was a configuration option at one time, but is now standard.
If you feel a great desire to hear biff bark, say
'y',
and later on, another config program will compile and ask you all about your
sound board. (A note on sound card configuration: when it asks you if you
want to install the full version of the driver, you can say 'n'
and save some kernel memory by picking only the features which you deem
necessary.)
From Linus' README:
the "kernel hacking" configuration details usually result in a bigger or slower kernel (or both), and can even make the kernel less stable by configuring some routines to actively try to break bad code to find kernel problems (kmalloc()). Thus you should probably answer 'n' to the questions for a "production" kernel.
Last Modified: 11 December 1995
St. Louis Unix Users Group - Linux SIG