Documentation ============= .. toctree:: :maxdepth: 1 documentation/packaging documentation/integration documentation/compat documentation/compat-drivers documentation/compat-drivers/hacking documentation/compat-drivers/additional-patches documentation/backports/hacking documentation/backports/hacking/todo The Backports Project aims to backport current Linux **upstream** device drivers for use with older kernels. The objective (1) is to provide a central mechanism for backporting the device drivers of *any* subsystem, thereby enabling (2) *both* users **and** developers to always focus on upstream Linux kernel development. The project shall **never** include proprietary drivers, and is designed to disallow its use with proprietary drivers. Every backports release has been test compiled *for usage* against all supported kernels. The oldest release is (currently) 3.0. Linux kernel releases can become deprecated. You are encouraged to use supported stable kernels as listed on `kernel.org `__. Workflows --------- Backports provides users with a choice of two workflows: #. **kernel integration mode** (:doc:`documentation/integration`) - future kernel source tree and older kernel source tree must be present on the same machine at the same time - backports suite **integrates** the subsystems/drivers of the future kernel directly into the older kernel #. **package releases mode** (:doc:`documentation/packaging`) - future kernel source tree and older kernel source tree do not need to be present on the same machine at the same time - on machine hosting future kernel source tree, backport package is generated - on machine hosting older kernel, backport package is built out-of-tree against older kernel - backport package is loosely akin to a patch file Backported Subsystems --------------------- Device drivers are available for the following subsystems: - Ethernet - Wireless - Bluetooth - NFC - ieee802154 - Media - Regulator Backported Drivers ------------------ Whether or not a device driver is available from a subsytem will depend on whether or not a developer decided to backport it **and** if the device driver is backported down to the kernel you are on. If you see the driver on **make menuconfig** it means you can use it. An alternative is to look at the git tree `dependencies `__ file. Note that the `dependencies `__ **does not** exist on a final release, it only exists on the development git tree and the one linked here is the one on the master branch -- you should look at the `release branches `__ for their respective dependencies file if using an older release. Someone is welcome to come up with a fancy page that provides the device driver <--> kernel dependency map page. If a device driver is available on **make menuconfig** but is not listed on the `dependencies `__ file it means it is available for usage on all supported kernel. Users should just install what they *know* they need, if not sure don't enable a driver. Typically Linux distributions would use the backports project and build modules for you and you'd have a backports package available for your distribution.