GNU/Linux Desktop Survival Guide
by Graham Williams
From Manoj Srivastava <firstname.lastname@example.org> on debian-user 6 Nov 2001.
Using make-kpkg is a very convenient way of compiling your kernels for Debian GNU/Linux. The Packagekernel-package takes all the required steps for compiling a kernel so that the user need not remember the actual sub-steps involved. Installation of the resulting kernel is then trivial.
The Debian way allows you to keep multiple versions of kernel images on the same machine with little effort. Even multiple flavours of the same kernel version can easily be accommodated, You could have kernel-image-2.4.16-686 and kernel-image-2.4.16-p3hmsmp available and choosable at boot time through lilo.
Other kernel module packages are also hooked into the Debian way of dealing with kernels so that you can simply compile them as part of the kernel compile process. This includes pcmcia-source and alsa-source. Such modules generally rely on the particular kernel version.
Debian also has the nice feature of keeping the configuration file for each kernel image in /boot.
You can optionally apply patches to the kernel (supplied as deb files) and build a patched kernel automatically.
You can compile a kernel for another computer, for example using a fast machine to compile the kernel for installation on a slower machine. This is really nice since the modules are all included in the deb; and one does not have to deal with modules manually. The postinst looks at a configuration file on the installation machine (as opposed to the machine that the image was compiled on), and allows the local admin to decide on issues of symbolic links, and whether the boot loader stuff must be run, and whether one wants to create a boot floppy or not. The postinst and the postrm scripts allow the local admin on the installation machine to add a script into runtime hooks; this can allow, amongst other things, grub users to add and remove kernel image stanzas from the grub menu (example scripts to do this are in the package).