diff options
author | Mcgrof <anonymous.contributor@example.org> | 2014-11-17 23:09:40 +0000 |
---|---|---|
committer | Konstantin Ryabitsev <konstantin@linuxfoundation.org> | 2024-10-04 15:47:33 -0400 |
commit | 906e826d47426bd6051999e223cf31a0cc920db8 (patch) | |
tree | d04e0b08bd07b6438e3a032107c2233f5c6532c6 | |
parent | 69ec3269e8b60bac35fa76cbdc3c7b537168d485 (diff) | |
download | backports-906e826d47426bd6051999e223cf31a0cc920db8.tar.gz |
Update Documentation/integration
-rw-r--r-- | wiki/Documentation_integration.mediawiki | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/wiki/Documentation_integration.mediawiki b/wiki/Documentation_integration.mediawiki index d525a5c..2eb3485 100644 --- a/wiki/Documentation_integration.mediawiki +++ b/wiki/Documentation_integration.mediawiki @@ -4,12 +4,21 @@ title: Documentation/integration * [[Documentation/packaging|Backports package releases]] -The backports project first started out by supporting making releases as [[Documentation/packaging|packaged tarballs]] whereby users can compile future versions of device drivers on older versions of Linux. As of tag backports-20141114 (first release branch will be based on origin/linux-3.19.y) backports supports kernel integration support, this allows to '''atomically''' '''integrate''' future versions of device drivers, apply required patches to backport them, add hooks into kconfig to make them visible and usable, as well as dealing with conflicts with older versions of these same drivers. By supporting kernel integration the backports project can now support enabling use of automatically backported subsystems and drivers on older kernels without requiring modules, everything can be built-in. +The backports project first started out by supporting making releases as [[Documentation/packaging|packaged tarballs]] whereby users can compile future versions of device drivers on older versions of Linux. As of tag backports-20141114 (first release branch will be based on origin/linux-3.19.y) backports supports '''kernel integration''' support, this allows to '''atomically''' '''integrate''' future versions of device drivers, apply required patches to backport them, add hooks into kconfig to make them visible and usable, as well as dealing with conflicts with older versions of these same drivers. By supporting kernel integration the backports project can now support enabling use of automatically backported subsystems and drivers on older kernels without requiring modules, everything can be built-in. <h2>Kernel integration summary</h2> In order to understand how kernel integration works familiarize yourself first [[Documentation/backports/hacking#Backports_development_flow|the backports development flow]] and [[Documentation/backports/hacking#Backports_git_tree_tags_and_branches|the backports git tags and branches]]. Usage of integration involves a ''kernel source'' and ''kernel target''. As with [[Documentation/packaging|backports packaging] each tag has a respective upstream linux-next or linux stable respective tag which can be used as a ''kernel source''. The ''kernel target'' is a kernel tree of an older Linux release. For example if you want to integrate linux-next tag next-20141114 onto v3.15 you may want will want to use the tag backports-20141114 on the backports tree; the ''kernel source'' will be the linux-next tree tag next-20141114 (you can either reset the tree to that tag or use --git-revision tag to ./gentree.py) and the ''kernel target'' can be a linux git tree reset to the v3.15 tag. Each backports tag should be usable on all older supported kernels, this means you could have used as a ''kernel target'' a tree set to v3.0, v3.1.. up to today's latest release. +<h2>Kernel integration use case</h2> + +'''Kernel integration''' is an advanced technique part of the backports project which should make automate the task of completely integrating a specific version of a device driver based on future / current upstream releases on older kernel trees. This is typically more important where products are being supported using old kernels but the required device driver is only available on a future version of Linux. Linux distributions which want to make releases based on slightly older version of Linux but need newer device drivers can also make use of this. Kernel integration support enables two new important features when using backports now: + +* built-in support (non modular) +* support for backporting features / components which the kernel only supported via built-in + +''How you use integration is up to you'', we provide tools to help with the process and at least for now '''make the first integration seamless'''. If you are resetting your tree every time you base your release on a new version of Linux you can use kernel integration to bump the supported device drivers up to the latest known stable release for example, thereby minimizing the amount of manual cherry picks required. The backports project only provides patches required to backport device drivers from a future version of Linux down to a specific release of Linux, although it does not maintain specific cherry picks outside of what is required to get the driver to work on older versions of Linux specific cherry picks can easily be aggregated on top of the carried set of patches. Use of backports for cherry picking it outside of the scope of support for the project but it simply consists of adding your patches onto the patches/ directory, either in legacy patch form or SmPL form, if this strategy is followed its recommended a new directory be used to track these patches and a way to know if they need to be carried over when moving to a new version of Linux / backports. + <h2>Integrating a release</h2> The same script that is used for generating [[Documentation/packaging|backports packaged tarballs]] is used for kernel integration, gentree.py as there is a lot of code to share between both strategies. An example will be provided of how to integrate a future set of supported device drivers onto an older release tree of the Linux kernel. Any kernel tree >= 3.0 can be used as a ''kernel target'', the ''kernel source'' will be any tag after next-20141114 from linux-next and backports-20141114, as well as any Linux release after v3.19 using the respective backports stable branch for that release. The example we provide here integrates linux-next next-20141114 onto the Linux kernel tree reset to v3.15. |