diff options
| author | Scott Rifenbark <srifenbark@gmail.com> | 2017-06-29 09:32:57 -0700 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-07-12 00:28:14 +0100 |
| commit | bdeb6db2fbc8563b03ea17d9c18a5fa19830e12f (patch) | |
| tree | 5e9e4a99616de64056b3f3c9fbe549b14283350a /documentation/kernel-dev | |
| parent | 7d2d54683c05637ea7ec048f7afc3fd45fb58e7f (diff) | |
| download | poky-bdeb6db2fbc8563b03ea17d9c18a5fa19830e12f.tar.gz | |
kernel-dev, dev-manual: Moved Yocto Linux kernel overview
Fixes [YOCTO #11630]
I took the Yocto Linux kernel overview list of kernels out of the
dev-manual and moved them to the "Yocto Project Kernel Development
and Maintenance" section in Appendix A of the kernel-dev manual.
This is a much more logical area to introduce this type of Yocto
Linux kernel information.
(From yocto-docs rev: 0a5154cb4c23697f2b8e2341c8e1dc07362443d2)
Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/kernel-dev')
| -rw-r--r-- | documentation/kernel-dev/kernel-dev-concepts-appx.xml | 207 |
1 files changed, 148 insertions, 59 deletions
diff --git a/documentation/kernel-dev/kernel-dev-concepts-appx.xml b/documentation/kernel-dev/kernel-dev-concepts-appx.xml index 8ecd04d32c..3606301cc7 100644 --- a/documentation/kernel-dev/kernel-dev-concepts-appx.xml +++ b/documentation/kernel-dev/kernel-dev-concepts-appx.xml | |||
| @@ -7,80 +7,169 @@ | |||
| 7 | 7 | ||
| 8 | <section id='kernel-big-picture'> | 8 | <section id='kernel-big-picture'> |
| 9 | <title>Yocto Project Kernel Development and Maintenance</title> | 9 | <title>Yocto Project Kernel Development and Maintenance</title> |
| 10 | |||
| 10 | <para> | 11 | <para> |
| 11 | Kernels available through the Yocto Project, like other kernels, are based off the Linux | 12 | Kernels available through the Yocto Project (Linux Yocto kernels), |
| 12 | kernel releases from <ulink url='http://www.kernel.org'></ulink>. | 13 | like other kernels, are based off the Linux kernel releases from |
| 13 | At the beginning of a major development cycle, the Yocto Project team | 14 | <ulink url='http://www.kernel.org'></ulink>. |
| 14 | chooses its kernel based on factors such as release timing, the anticipated release | 15 | At the beginning of a major Linux kernel development cycle, the |
| 15 | timing of final upstream <filename>kernel.org</filename> versions, and Yocto Project | 16 | Yocto Project team chooses a Linux kernel based on factors such as |
| 17 | release timing, the anticipated release timing of final upstream | ||
| 18 | <filename>kernel.org</filename> versions, and Yocto Project | ||
| 16 | feature requirements. | 19 | feature requirements. |
| 17 | Typically, the kernel chosen is in the | 20 | Typically, the Linux kernel chosen is in the final stages of |
| 18 | final stages of development by the community. | 21 | development by the Linux community. |
| 19 | In other words, the kernel is in the release | 22 | In other words, the Linux kernel is in the release candidate |
| 20 | candidate or "rc" phase and not yet a final release. | 23 | or "rc" phase and has yet to reach final release. |
| 21 | But, by being in the final stages of external development, the team knows that the | 24 | But, by being in the final stages of external development, the |
| 22 | <filename>kernel.org</filename> final release will clearly be within the early stages of | 25 | team knows that the <filename>kernel.org</filename> final release |
| 23 | the Yocto Project development window. | 26 | will clearly be within the early stages of the Yocto Project |
| 27 | development window. | ||
| 24 | </para> | 28 | </para> |
| 29 | |||
| 30 | <para> | ||
| 31 | This balance allows the Yocto Project team to deliver the most | ||
| 32 | up-to-date Linux Yocto kernel possible, while still ensuring that | ||
| 33 | the team has a stable official release for the baseline Linux | ||
| 34 | kernel version. | ||
| 35 | </para> | ||
| 36 | |||
| 25 | <para> | 37 | <para> |
| 26 | This balance allows the team to deliver the most up-to-date kernel | 38 | As implied earlier, the ultimate source for Linux Yocto kernels |
| 27 | possible, while still ensuring that the team has a stable official release for | 39 | are released kernels from <filename>kernel.org</filename>. |
| 28 | the baseline Linux kernel version. | 40 | In addition to a foundational kernel from |
| 41 | <filename>kernel.org</filename>, the available Yocto Linux kernels | ||
| 42 | contain a mix of important new mainline developments, non-mainline | ||
| 43 | developments (when there is no alternative), Board Support Package | ||
| 44 | (BSP) developments, and custom features. | ||
| 45 | These additions result in a commercially released Yocto | ||
| 46 | Project Linux kernel that caters to specific embedded designer | ||
| 47 | needs for targeted hardware. | ||
| 29 | </para> | 48 | </para> |
| 49 | |||
| 30 | <para> | 50 | <para> |
| 31 | The ultimate source for kernels available through the Yocto Project are released kernels | 51 | You can find a web interface to the Yocto Linux kernels in the |
| 32 | from <filename>kernel.org</filename>. | 52 | <ulink url='&YOCTO_DOCS_REF_URL;#source-repositories'>Source Repositories</ulink> |
| 33 | In addition to a foundational kernel from <filename>kernel.org</filename>, the | 53 | at |
| 34 | kernels available contain a mix of important new mainline | 54 | <ulink url='&YOCTO_GIT_URL;'></ulink>. |
| 35 | developments, non-mainline developments (when there is no alternative), | 55 | If you look at the interface, you will see to the left a |
| 36 | Board Support Package (BSP) developments, | 56 | grouping of Git repositories titled "Yocto Linux Kernel". |
| 37 | and custom features. | 57 | Within this group, you will find several Linux Yocto kernels |
| 38 | These additions result in a commercially released Yocto Project Linux kernel that caters | 58 | developed and included with Yocto Project releases: |
| 39 | to specific embedded designer needs for targeted hardware. | 59 | <itemizedlist> |
| 60 | <listitem><para> | ||
| 61 | <emphasis><filename>linux-yocto-4.1</filename>:</emphasis> | ||
| 62 | The stable Yocto Project kernel to use with the Yocto | ||
| 63 | Project Release 2.0. | ||
| 64 | This kernel is based on the Linux 4.1 released kernel. | ||
| 65 | </para></listitem> | ||
| 66 | <listitem><para> | ||
| 67 | <emphasis><filename>linux-yocto-4.4</filename>:</emphasis> | ||
| 68 | The stable Yocto Project kernel to use with the Yocto | ||
| 69 | Project Release 2.1. | ||
| 70 | This kernel is based on the Linux 4.4 released kernel. | ||
| 71 | </para></listitem> | ||
| 72 | <listitem><para> | ||
| 73 | <emphasis><filename>linux-yocto-4.9</filename>:</emphasis> | ||
| 74 | The stable Yocto Project kernel to use with the Yocto | ||
| 75 | Project Release 2.3. | ||
| 76 | This kernel is based on the Linux 4.9 released kernel. | ||
| 77 | </para></listitem> | ||
| 78 | <listitem><para> | ||
| 79 | <emphasis><filename>linux-yocto-4.10</filename>:</emphasis> | ||
| 80 | The default stable Yocto Project kernel to use with the | ||
| 81 | Yocto Project Release 2.3. | ||
| 82 | This kernel is based on the Linux 4.10 released kernel. | ||
| 83 | </para></listitem> | ||
| 84 | <listitem><para> | ||
| 85 | <emphasis><filename>linux-yocto-dev</filename>:</emphasis> | ||
| 86 | A development kernel based on the latest upstream release | ||
| 87 | candidate available. | ||
| 88 | </para></listitem> | ||
| 89 | </itemizedlist> | ||
| 90 | <note><title>Notes</title> | ||
| 91 | Long Term Support Initiative (LTSI) for Yocto Linux | ||
| 92 | kernels is as follows: | ||
| 93 | <itemizedlist> | ||
| 94 | <listitem><para> | ||
| 95 | For Yocto Project releases 1.7, 1.8, and 2.0, | ||
| 96 | the LTSI kernel is | ||
| 97 | <filename>linux-yocto-3.14</filename>. | ||
| 98 | </para></listitem> | ||
| 99 | <listitem><para> | ||
| 100 | For Yocto Project releases 2.1, 2.2, and 2.3, | ||
| 101 | the LTSI kernel is <filename>linux-yocto-4.1</filename>. | ||
| 102 | </para></listitem> | ||
| 103 | <listitem><para> | ||
| 104 | <filename>linux-yocto-4.1</filename>, | ||
| 105 | <filename>linux-yocto-4.4</filename>, and | ||
| 106 | <filename>linux-yocto-4.9</filename> are all LTS | ||
| 107 | kernels. | ||
| 108 | </para></listitem> | ||
| 109 | </itemizedlist> | ||
| 110 | </note> | ||
| 40 | </para> | 111 | </para> |
| 112 | |||
| 41 | <para> | 113 | <para> |
| 42 | Once a kernel is officially released, the Yocto Project team goes into | 114 | Once a Yocto Linux kernel is officially released, the Yocto |
| 43 | their next development cycle, or upward revision (uprev) cycle, while still | 115 | Project team goes into their next development cycle, or upward |
| 44 | continuing maintenance on the released kernel. | 116 | revision (uprev) cycle, while still continuing maintenance on the |
| 117 | released kernel. | ||
| 45 | It is important to note that the most sustainable and stable way | 118 | It is important to note that the most sustainable and stable way |
| 46 | to include feature development upstream is through a kernel uprev process. | 119 | to include feature development upstream is through a kernel uprev |
| 47 | Back-porting hundreds of individual fixes and minor features from various | 120 | process. |
| 48 | kernel versions is not sustainable and can easily compromise quality. | 121 | Back-porting hundreds of individual fixes and minor features from |
| 122 | various kernel versions is not sustainable and can easily | ||
| 123 | compromise quality. | ||
| 49 | </para> | 124 | </para> |
| 125 | |||
| 50 | <para> | 126 | <para> |
| 51 | During the uprev cycle, the Yocto Project team uses an ongoing analysis of | 127 | During the uprev cycle, the Yocto Project team uses an ongoing |
| 52 | kernel development, BSP support, and release timing to select the best | 128 | analysis of Linux kernel development, BSP support, and release |
| 53 | possible <filename>kernel.org</filename> version. | 129 | timing to select the best possible <filename>kernel.org</filename> |
| 54 | The team continually monitors community kernel | 130 | Linux kernel version on which to base subsequent Yocto Linux |
| 55 | development to look for significant features of interest. | 131 | kernel development. |
| 56 | The team does consider back-porting large features if they have a significant advantage. | 132 | The team continually monitors Linux community kernel development |
| 57 | User or community demand can also trigger a back-port or creation of new | 133 | to look for significant features of interest. |
| 58 | functionality in the Yocto Project baseline kernel during the uprev cycle. | 134 | The team does consider back-porting large features if they have a |
| 135 | significant advantage. | ||
| 136 | User or community demand can also trigger a back-port or creation | ||
| 137 | of new functionality in the Yocto Project baseline kernel during | ||
| 138 | the uprev cycle. | ||
| 59 | </para> | 139 | </para> |
| 140 | |||
| 60 | <para> | 141 | <para> |
| 61 | Generally speaking, every new kernel both adds features and introduces new bugs. | 142 | Generally speaking, every new Linux kernel both adds features and |
| 62 | These consequences are the basic properties of upstream kernel development and are | 143 | introduces new bugs. |
| 63 | managed by the Yocto Project team's kernel strategy. | 144 | These consequences are the basic properties of upstream |
| 64 | It is the Yocto Project team's policy to not back-port minor features to the released kernel. | 145 | Linux kernel development and are managed by the Yocto Project |
| 65 | They only consider back-porting significant technological jumps - and, that is done | 146 | team's Linux Yocto kernel development strategy. |
| 66 | after a complete gap analysis. | 147 | It is the Yocto Project team's policy to not back-port minor |
| 67 | The reason for this policy is that back-porting any small to medium sized change | 148 | features to the released Linux Yocto kernel. |
| 68 | from an evolving kernel can easily create mismatches, incompatibilities and very | 149 | They only consider back-porting significant technological |
| 69 | subtle errors. | 150 | jumps ‐ and, that is done after a complete gap analysis. |
| 151 | The reason for this policy is that back-porting any small to | ||
| 152 | medium sized change from an evolving Linux kernel can easily | ||
| 153 | create mismatches, incompatibilities and very subtle errors. | ||
| 70 | </para> | 154 | </para> |
| 155 | |||
| 71 | <para> | 156 | <para> |
| 72 | These policies result in both a stable and a cutting | 157 | The policies described in this section result in both a stable |
| 73 | edge kernel that mixes forward ports of existing features and significant and critical | 158 | and a cutting edge Linux Yocto kernel that mixes forward ports of |
| 74 | new functionality. | 159 | existing Linux kernel features and significant and critical new |
| 75 | Forward porting functionality in the kernels available through the Yocto Project kernel | 160 | functionality. |
| 76 | can be thought of as a "micro uprev." | 161 | Forward porting Linux kernel functionality into the Linux Yocto |
| 77 | The many “micro uprevs” produce a kernel version with a mix of | 162 | kernels available through the Yocto Project can be thought of as |
| 78 | important new mainline, non-mainline, BSP developments and feature integrations. | 163 | a "micro uprev." |
| 79 | This kernel gives insight into new features and allows focused | 164 | The many “micro uprevs” produce a Linux Yocto kernel version with |
| 80 | amounts of testing to be done on the kernel, which prevents | 165 | a mix of important new mainline, non-mainline, BSP developments |
| 81 | surprises when selecting the next major uprev. | 166 | and feature integrations. |
| 82 | The quality of these cutting edge kernels is evolving and the kernels are used in leading edge | 167 | This Yocto Linux kernel gives insight into new features and |
| 83 | feature and BSP development. | 168 | allows focused amounts of testing to be done on the kernel, |
| 169 | which prevents surprises when selecting the next major uprev. | ||
| 170 | The quality of these cutting edge Linux Yocto kernels is evolving | ||
| 171 | and the kernels are used in leading edge feature and BSP | ||
| 172 | development. | ||
| 84 | </para> | 173 | </para> |
| 85 | </section> | 174 | </section> |
| 86 | 175 | ||
