summaryrefslogtreecommitdiffstats
path: root/source/documentation.rst
diff options
Diffstat (limited to 'source/documentation.rst')
-rw-r--r--source/documentation.rst92
1 files changed, 92 insertions, 0 deletions
diff --git a/source/documentation.rst b/source/documentation.rst
new file mode 100644
index 0000000..f04e08b
--- /dev/null
+++ b/source/documentation.rst
@@ -0,0 +1,92 @@
+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
+<https://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
+<https://git.kernel.org/cgit/linux/kernel/git/mcgrof/backports.git/tree/dependencies>`__
+file. Note that the `dependencies
+<https://git.kernel.org/cgit/linux/kernel/git/mcgrof/backports.git/tree/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
+<https://git.kernel.org/cgit/linux/kernel/git/mcgrof/backports.git/refs/>`__
+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
+<https://git.kernel.org/cgit/linux/kernel/git/mcgrof/backports.git/tree/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.