Table of Contents
The kernels in Debian are distributed in binary form, built from the Debian
kernel source. It is important to recognize that Debian kernel source may be
(and in most cases is) different from the upstream (or "pristine") kernel
source, distributed from www.kernel.org and its mirrors. Due to
licensing restrictions, unclear license information, or failure to comply with
the Debian Free Software Guidelines (DFSG), parts of the kernel are removed in
order to distribute the source in the main
section of the
Debian archive. Such removal produces
linux_
tarball,
which serves as the original upstream source. version
.orig.tar.xzversion
is
the actual upstream version.
The guidelines for firmware removal were set by the Handling source-less firmware in the Linux kernel General Resolution and the position statement by the release managers. As of version 2.6.31-1, all known sourceless firmware has been removed from the Debian package, but much of it is included in the firmware-nonfree package. Additional information about firmware licensing and removals may be found at the Debian Wiki page KernelFirmwareLicensing.
The source from which the Debian binary kernels are built is obtained by taking
the source from
linux_
(that is,
pristine kernel source with problematic parts removed) and applying a set of
Debian patches. These patches typically implement essential fixes for serious
bugs and security holes. The Debian version of the kernel packages has the
form version
.orig.tar.xzversion
-
revision
where
version
is the upstream version of the
kernel (like 3.2.20) and revision
determines the patchlevel. For example, the packages with version 3.2.20-1 are
built from the linux_3.2.20.orig.tar.xz
source, patched up
to patchlevel 1. Certain packages include extra 'featuresets' not included in
the upstream source, such as rt
.
The general policy of the Debian kernel team is that a patch must either fix a bug or add hardware support, and must be based on a change already accepted by the upstream kernel maintainers. The change does not need to have been included in an upstream release yet. This policy allows the team to drop most patches when moving to a new upstream version, rather than having to maintain an increasing series of Debian-specific patches. The recommended procedure for inclusion of patches introducing optional features is to submit to the upstream maintainer.