The Debian GNU/Linux FAQ
Chapter 10 - Debian and the kernel

10.1 Can I install and compile a kernel without some Debian-specific tweaking?

Yes.

There's only one common catch: the Debian C libraries are built with the most
recent stable releases of the kernel headers. If you
happen to need to compile a program with kernel headers newer than the ones
from the stable branch, then you should either upgrade the package containing
the headers (libc6-dev), or use the new headers from an unpacked
tree of the newer kernel. That is, if the kernel sources are in
/usr/src/linux, then you should add
-I/usr/src/linux/include/ to your command line when compiling.

10.2 What tools does Debian provide to build custom kernels?

Users who wish to (or must) build a custom kernel are encouraged to download
the package kernel-package. This package contains the script to
build the kernel package, and provides the capability to create a Debian
linux-image-version package just by running the command

make-kpkg --initrd kernel_image

in the top-level kernel source directory. Help is available by executing the
command

make-kpkg --help

and through the manual page make-kpkg(1).

Users must separately download the source code for the most recent kernel (or
the kernel of their choice) from their favorite Linux archive site, unless a
linux-source-version package is available (where
version stands for the kernel version).

Detailed instructions for using the kernel-package package are
given in the file /usr/share/doc/kernel-package/README.gz.

10.3 How can I make a custom boot floppy?

This task is greatly aided by the Debian package boot-floppies,
normally found in the admin section of the Debian FTP archive.
Shell scripts in this package produce boot floppies in the
SYSLINUX format. These are MS-DOS formatted floppies
whose master boot records have been altered so that they boot Linux directly
(or whatever other operating system has been defined in the
syslinux.cfg file on the floppy). Other scripts in this package
produce emergency root disks and can even reproduce the base disks.

You will find more information about this in the
/usr/share/doc/boot-floppies/README file after installing the
boot-floppies package.

10.4 What special provisions does Debian provide to deal with modules?

Debian's modconf package provides a shell script
(/usr/sbin/modconf) which can be used to customize the
configuration of modules. This script presents a menu-based interface,
prompting the user for particulars on the loadable device drivers in his
system. The responses are used to customize the file
/etc/modules.conf (which lists aliases, and other arguments that
must be used in conjunction with various modules) through files in
/etc/modutils/, and /etc/modules (which lists the
modules that must be loaded at boot time).

Like the (new) Configure.help files that are now available to
support the construction of custom kernels, the modconf package
comes with a series of help files (in /usr/lib/modules_help/)
which provide detailed information on appropriate arguments for each of the
modules.

10.5 Can I safely de-install an old kernel package, and if so, how?

Yes. The linux-image-NNN.prerm script checks to see
whether the kernel you are currently running is the same as the kernel you are
trying to de-install. Therefore you can remove unwanted kernel image packages
using this command: