If you are new to Unix, you probably should go out and buy some books
and do some reading. The
contains a number of references to books and Usenet news groups which
should help you out. You can also take a look at the
User-Friendly Unix FAQ.
Linux is an implementation of Unix. The
Linux Documentation Project (LDP) collects a number of HOWTOs and online books
relating to Linux. Most of these documents can be installed locally;
just install the
doc-linux-html package (HTML
versions) or the
doc-linux-text package (ASCII
versions), then look in
versions of the LDP HOWTOs are also available as Debian packages.
Information specific to Debian can be found below.
Debian is a little different from other distributions. Even if you're familiar with Linux in other distributions, there are things you should know about Debian to help you to keep your system in a good, clean state. This chapter contains material to help you get oriented; it is not intended to be a tutorial for how to use Debian, but just a very brief glimpse of the system for the very rushed.
The most important concept to grasp is the Debian packaging system. In essence, large parts of your system should be considered under the control of the packaging system. These include:
/var(you could make
/var/localand be safe in there)
For instance, if you replace
/usr/bin/perl, that will
work, but then if you upgrade your
the file you put there will be replaced. Experts can get
around this by putting packages on ``hold'' in
If you need information about a particular program, you should first try man program, or info program.
There is lots of useful documentation in
well. In particular,
/usr/doc/FAQ contains lots of interesting information.
Debian web site contains a large quantity of documentation about Debian. In
particular, see the
Debian FAQ and
Debian Mailing List Archives. The Debian community is self-supporting; to subscribe to
one or more of the Debian mailing lists, see the
Mail List Subscription page.
Why would someone want to compile a new kernel? It is often not necessary since the default kernel shipped with Debian handles most configurations. However, it is useful to compile a new kernel in order to:
Don't be afraid to try compiling the kernel. It's fun and profitable.
To compile a kernel the Debian way, you need some packages:
kernel-source-2.0.36 (the most recent
version at the time of this writing),
a few others which are probably already installed (see
/usr/doc/kernel-package/README.gz for the complete
list). Note that you don't have to compile your kernel the
``Debian way''; but we find that using the packaging system to manage
your kernel is actually safer and easier. In fact, you can get your
kernel sources right from Linus instead of
kernel-source-2.0.36, yet still use the
kernel-package compilation method.
Note that you'll find complete documentation on using
/usr/doc/kernel-package. This section just contains a
Hereafter, we'll assume your kernel source will be located in
/usr/local/src and that your kernel version is
2.0.36. As root, create a directory under
/usr/local/src and change the owner of that directory to
your normal non-root account. As your normal non-root account, change
your directory to where you want to unpack the kernel sources (cd
/usr/local/src), extract the kernel sources (tar xzf
/usr/src/kernel-source-2.0.36.tar.gz), change your
directory to it (cd kernel-source-2.0.36/). Now, you
can configure your kernel (make xconfig if X11 is installed
and configured, make menuconfig otherwise). Take the time to
read the online help and choose carefully. When in doubt, it is
typically better to include the device driver (the software which
manages hardware peripherals, such as ethernet cards, SCSI
controllers, and so on) you are unsure about. Be careful: other
options, not related to a specific hardware, should be left at the
default value if you do not understand them. Do not forget to select
"Kernel daemon support (e.g. autoload of modules)" in "Loadable module
support" (it is not selected by default) or your Debian installation
will experience problems.
Clean the source tree and reset the
parameters. To do that, do /usr/sbin/make-kpkg clean.
Now, compile the kernel: fakeroot /usr/sbin/make-kpkg --revision=custom.1.0 kernel_image. The version number of ``1.0'' can be changed at will; this is just a version number that you will use to track your kernel builds. Likewise, you can put any word you like in place of ``custom'' (i.e., a host name). Kernel compilation may take quite a while, depending on the power of your machine.
If you require PCMCIA support, you'll also need to install the
pcmcia-source package. Unpack the gzipped tar file
as root in the directory
/usr/src (it's important that
modules are found where they are expected to be found, namely,
/usr/src/modules). Then, as root, do make-kpkg
Once the compilation is complete, you can install your custom kernel
like any package. As root, do dpkg -i
The subarch part is an optional sub-architecture, such as ``i586'', depending on what kernel options you set.
dpkg -i kernel-image... will install the kernel, along with
some other nice supporting files. For instance, the
System.map will be properly installed (helpful for
debugging kernel problems), and
/boot/config-2.0.36 will be installed,
containing your current configuration set. Your new
kernel-image-2.0.36 package is also clever
enough to automatically use
lilo to update the kernel
image information allowing you to boot, so there's no need to re-run
lilo. If you have created a modules package, you'll need
to install that package as well.
It is time to reboot the system: read carefully any warning that the above step may have produced, then shutdown -r now.
For more information on
Debian 2.1 is not certified for use with the Linux 2.2 kernel.
However, if you are willing to download some packages from
ftp://ftp.debian.org/debian/dists/unstable/, you should be able to have a functioning
For a list of packages which are known to be incompatible with the 2.2
Errata: Running Linux 2.2.x in slink. More updates on the situation may be found at
Debian 2.1 Release Information.