summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--documentation/dev-manual/dev-manual-model.xml69
-rw-r--r--documentation/kernel-dev/kernel-dev-concepts-appx.xml207
2 files changed, 150 insertions, 126 deletions
diff --git a/documentation/dev-manual/dev-manual-model.xml b/documentation/dev-manual/dev-manual-model.xml
index 30428b22f3..bd6a85b987 100644
--- a/documentation/dev-manual/dev-manual-model.xml
+++ b/documentation/dev-manual/dev-manual-model.xml
@@ -86,71 +86,6 @@
86 <title>Kernel Overview</title> 86 <title>Kernel Overview</title>
87 87
88 <para> 88 <para>
89 Traditionally, when one thinks of a patched kernel, they think of a base kernel
90 source tree and a fixed structure that contains kernel patches.
91 The Yocto Project, however, employs mechanisms that, in a sense, result in a kernel source
92 generator.
93 By the end of this section, this analogy will become clearer.
94 </para>
95
96 <para>
97 You can find a web interface to the Yocto Project kernel source repositories at
98 <ulink url='&YOCTO_GIT_URL;'></ulink>.
99 If you look at the interface, you will see to the left a grouping of
100 Git repositories titled "Yocto Linux Kernel."
101 Within this group, you will find several kernels supported by
102 the Yocto Project:
103 <itemizedlist>
104 <listitem><para><emphasis>
105 <filename>linux-yocto-4.1</filename></emphasis> - The
106 stable Yocto Project kernel to use with the Yocto
107 Project Release 2.0.
108 This kernel is based on the Linux 4.1 released kernel.
109 </para></listitem>
110 <listitem><para><emphasis>
111 <filename>linux-yocto-4.4</filename></emphasis> - The
112 stable Yocto Project kernel to use with the Yocto
113 Project Release 2.1.
114 This kernel is based on the Linux 4.4 released kernel.
115 </para></listitem>
116 <listitem><para><emphasis>
117 <filename>linux-yocto-4.9</filename></emphasis> - The
118 stable Yocto Project kernel to use with the Yocto
119 Project Release 2.3.
120 This kernel is based on the Linux 4.9 released kernel.
121 </para></listitem>
122 <listitem><para><emphasis>
123 <filename>linux-yocto-4.10</filename></emphasis> - The
124 default stable Yocto Project kernel to use with the
125 Yocto Project Release 2.3.
126 This kernel is based on the Linux 4.10 released kernel.
127 </para></listitem>
128 <listitem><para><emphasis>
129 <filename>linux-yocto-dev</filename></emphasis> - A
130 development kernel based on the latest upstream release
131 candidate available.
132 </para></listitem>
133 </itemizedlist>
134 <note>
135 Long Term Support Initiative (LTSI) for Yocto Project kernels
136 is as follows:
137 <itemizedlist>
138 <listitem><para>For Yocto Project releases 1.7, 1.8, and 2.0,
139 the LTSI kernel is <filename>linux-yocto-3.14</filename>.
140 </para></listitem>
141 <listitem><para>For Yocto Project releases 2.1, 2.2, and 2.3,
142 the LTSI kernel is <filename>linux-yocto-4.1</filename>.
143 </para></listitem>
144 <listitem><para><filename>linux-yocto-4.1</filename>,
145 <filename>linux-yocto-4.4</filename>, and
146 <filename>linux-yocto-4.9</filename> are all LTS
147 kernels.
148 </para></listitem>
149 </itemizedlist>
150 </note>
151 </para>
152
153 <para>
154 The kernels are maintained using the Git revision control system 89 The kernels are maintained using the Git revision control system
155 that structures them using the familiar "tree", "branch", and "leaf" scheme. 90 that structures them using the familiar "tree", "branch", and "leaf" scheme.
156 Branches represent diversions from general code to more specific code, while leaves 91 Branches represent diversions from general code to more specific code, while leaves
@@ -215,8 +150,8 @@
215 We will just talk about working with the temporary source code. 150 We will just talk about working with the temporary source code.
216 For more information on how to get kernel source code onto your 151 For more information on how to get kernel source code onto your
217 host system, see the 152 host system, see the
218 "<link linkend='local-kernel-files'>Yocto Project Kernel</link>" 153 "<link linkend='local-kernel-files'>Setting Up to Work On a Kernel</link>"
219 bulleted item earlier in the manual. 154 section.
220 </para> 155 </para>
221 156
222 <para> 157 <para>
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 &dash; 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