Chapter 10. Debian and the kernel

Table of Contents

10.1. Can I install and compile a kernel without some Debian-specific tweaking?
10.2. What tools does Debian provide to build custom kernels?
10.3. What special provisions does Debian provide to deal with modules?
10.4. Can I safely de-install an old kernel package, and if so, how?
10.5. Where can I get more information about Linux packages for Debian?

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 (linux-libc-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 use the Debian package target included with recent versions of the kernel build system. After configuring the kernel, simply run the following command:

make deb-pkg

The new kernel package will be created in the directory one level above the kernel source tree, and it may be installed using dpkg -i.

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).

10.3. What special provisions does Debian provide to deal with modules?

A configuration file containing modules to be manually loaded at boot time is kept at /etc/modules. However, editing this file is rarely needed.

Other module configuration is kept in the /etc/modprobe.d/ directory. More information about the format of those files can be found in the modprobe.conf(5) manual page.

10.4. 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:

dpkg --purge linux-image-NNN

(replace NNN with your kernel version and revision number, of course)

10.5. Where can I get more information about Linux packages for Debian?

Further information is maintained in the Debian Linux Kernel Handbook.