# Debian and the kernel

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

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

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

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

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

Further information is maintained in the Debian Linux Kernel Handbook.