summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--documentation/kernel-dev/kernel-dev-concepts-appx.xml107
1 files changed, 62 insertions, 45 deletions
diff --git a/documentation/kernel-dev/kernel-dev-concepts-appx.xml b/documentation/kernel-dev/kernel-dev-concepts-appx.xml
index 6d236855dd..a7ce72b8ef 100644
--- a/documentation/kernel-dev/kernel-dev-concepts-appx.xml
+++ b/documentation/kernel-dev/kernel-dev-concepts-appx.xml
@@ -9,7 +9,7 @@
9 <title>Yocto Project Kernel Development and Maintenance</title> 9 <title>Yocto Project Kernel Development and Maintenance</title>
10 10
11 <para> 11 <para>
12 Kernels available through the Yocto Project (Linux Yocto kernels), 12 Kernels available through the Yocto Project (Yocto Linux kernels),
13 like other kernels, are based off the Linux kernel releases from 13 like other kernels, are based off the Linux kernel releases from
14 <ulink url='http://www.kernel.org'></ulink>. 14 <ulink url='http://www.kernel.org'></ulink>.
15 At the beginning of a major Linux kernel development cycle, the 15 At the beginning of a major Linux kernel development cycle, the
@@ -29,18 +29,18 @@
29 29
30 <para> 30 <para>
31 This balance allows the Yocto Project team to deliver the most 31 This balance allows the Yocto Project team to deliver the most
32 up-to-date Linux Yocto kernel possible, while still ensuring that 32 up-to-date Yocto Linux kernel possible, while still ensuring that
33 the team has a stable official release for the baseline Linux 33 the team has a stable official release for the baseline Linux
34 kernel version. 34 kernel version.
35 </para> 35 </para>
36 36
37 <para> 37 <para>
38 As implied earlier, the ultimate source for Linux Yocto kernels 38 As implied earlier, the ultimate source for Yocto Linux kernels
39 are released kernels from <filename>kernel.org</filename>. 39 are released kernels from <filename>kernel.org</filename>.
40 In addition to a foundational kernel from 40 In addition to a foundational kernel from
41 <filename>kernel.org</filename>, the available Yocto Linux kernels 41 <filename>kernel.org</filename>, the available Yocto Linux kernels
42 contain a mix of important new mainline developments, non-mainline 42 contain a mix of important new mainline developments, non-mainline
43 developments (when there is no alternative), Board Support Package 43 developments (when no alternative exists), Board Support Package
44 (BSP) developments, and custom features. 44 (BSP) developments, and custom features.
45 These additions result in a commercially released Yocto 45 These additions result in a commercially released Yocto
46 Project Linux kernel that caters to specific embedded designer 46 Project Linux kernel that caters to specific embedded designer
@@ -70,6 +70,16 @@
70 This kernel is based on the Linux 4.4 released kernel. 70 This kernel is based on the Linux 4.4 released kernel.
71 </para></listitem> 71 </para></listitem>
72 <listitem><para> 72 <listitem><para>
73 <emphasis><filename>linux-yocto-4.6</filename>:</emphasis>
74 A temporary kernel that is not tied to any Yocto Project
75 release.
76 </para></listitem>
77 <listitem><para>
78 <emphasis><filename>linux-yocto-4.8</filename>:</emphasis>
79 The stable yocto Project kernel to use with the Yocto
80 Project Release 2.2.
81 </para></listitem>
82 <listitem><para>
73 <emphasis><filename>linux-yocto-4.9</filename>:</emphasis> 83 <emphasis><filename>linux-yocto-4.9</filename>:</emphasis>
74 The stable Yocto Project kernel to use with the Yocto 84 The stable Yocto Project kernel to use with the Yocto
75 Project Release 2.3. 85 Project Release 2.3.
@@ -94,6 +104,10 @@
94 tree. 104 tree.
95 This repository is useful when working on the linux-yocto 105 This repository is useful when working on the linux-yocto
96 kernel. 106 kernel.
107 For more information on this "Advanced Kernel Metadata",
108 see the
109 "<link linkend='kernel-dev-advanced'>Working With Advanced Metadata (<filename>yocto-kernel-cache</filename>)</link>"
110 Chapter.
97 </para></listitem> 111 </para></listitem>
98 <listitem><para> 112 <listitem><para>
99 <emphasis><filename>linux-yocto-dev</filename>:</emphasis> 113 <emphasis><filename>linux-yocto-dev</filename>:</emphasis>
@@ -157,9 +171,9 @@
157 introduces new bugs. 171 introduces new bugs.
158 These consequences are the basic properties of upstream 172 These consequences are the basic properties of upstream
159 Linux kernel development and are managed by the Yocto Project 173 Linux kernel development and are managed by the Yocto Project
160 team's Linux Yocto kernel development strategy. 174 team's Yocto Linux kernel development strategy.
161 It is the Yocto Project team's policy to not back-port minor 175 It is the Yocto Project team's policy to not back-port minor
162 features to the released Linux Yocto kernel. 176 features to the released Yocto Linux kernel.
163 They only consider back-porting significant technological 177 They only consider back-porting significant technological
164 jumps &dash; and, that is done after a complete gap analysis. 178 jumps &dash; and, that is done after a complete gap analysis.
165 The reason for this policy is that back-porting any small to 179 The reason for this policy is that back-porting any small to
@@ -169,19 +183,19 @@
169 183
170 <para> 184 <para>
171 The policies described in this section result in both a stable 185 The policies described in this section result in both a stable
172 and a cutting edge Linux Yocto kernel that mixes forward ports of 186 and a cutting edge Yocto Linux kernel that mixes forward ports of
173 existing Linux kernel features and significant and critical new 187 existing Linux kernel features and significant and critical new
174 functionality. 188 functionality.
175 Forward porting Linux kernel functionality into the Linux Yocto 189 Forward porting Linux kernel functionality into the Yocto Linux
176 kernels available through the Yocto Project can be thought of as 190 kernels available through the Yocto Project can be thought of as
177 a "micro uprev." 191 a "micro uprev."
178 The many “micro uprevs” produce a Linux Yocto kernel version with 192 The many “micro uprevs” produce a Yocto Linux kernel version with
179 a mix of important new mainline, non-mainline, BSP developments 193 a mix of important new mainline, non-mainline, BSP developments
180 and feature integrations. 194 and feature integrations.
181 This Yocto Linux kernel gives insight into new features and 195 This Yocto Linux kernel gives insight into new features and
182 allows focused amounts of testing to be done on the kernel, 196 allows focused amounts of testing to be done on the kernel,
183 which prevents surprises when selecting the next major uprev. 197 which prevents surprises when selecting the next major uprev.
184 The quality of these cutting edge Linux Yocto kernels is evolving 198 The quality of these cutting edge Yocto Linux kernels is evolving
185 and the kernels are used in leading edge feature and BSP 199 and the kernels are used in leading edge feature and BSP
186 development. 200 development.
187 </para> 201 </para>
@@ -211,13 +225,12 @@
211 <itemizedlist> 225 <itemizedlist>
212 <listitem><para> 226 <listitem><para>
213 Git is the obvious SCM for meeting the Yocto Linux 227 Git is the obvious SCM for meeting the Yocto Linux
214 kernel organizational and structural goals 228 kernel organizational and structural goals described
215 described in this section. 229 in this section.
216 Not only is Git the SCM for Linux kernel 230 Not only is Git the SCM for Linux kernel development in
217 development in <filename>kernel.org</filename> but, 231 <filename>kernel.org</filename> but, Git continues to
218 Git continues to grow in popularity and supports 232 grow in popularity and supports many different work
219 many different work flows, front-ends and 233 flows, front-ends and management techniques.
220 management techniques.
221 </para></listitem> 234 </para></listitem>
222 <listitem><para> 235 <listitem><para>
223 You can find documentation on Git at 236 You can find documentation on Git at
@@ -251,12 +264,11 @@
251 </para> 264 </para>
252 265
253 <para> 266 <para>
254 This "tree-like" architecture results in a tree that has 267 This "tree-like" architecture results in a structure that has
255 features organized to be specific for particular 268 features organized to be specific for particular functionality,
256 functionality, single kernel types, or a subset of kernel 269 single kernel types, or a subset of kernel types.
257 types. 270 Thus, the user has the ability to see the added features and the
258 Thus, the user has the ability to see the added 271 commits that make up those features.
259 features and the commits that make up those features.
260 In addition to being able to see added features, the user 272 In addition to being able to see added features, the user
261 can also view the history of what made up the baseline 273 can also view the history of what made up the baseline
262 Linux kernel. 274 Linux kernel.
@@ -388,7 +400,8 @@
388 <para> 400 <para>
389 Because commits only change at significant release points in the 401 Because commits only change at significant release points in the
390 product life cycle, developers can work on a branch created 402 product life cycle, developers can work on a branch created
391 from the last relevant commit in the shipped Yocto Project kernel. 403 from the last relevant commit in the shipped Yocto Project Linux
404 kernel.
392 As mentioned previously, the structure is transparent to the 405 As mentioned previously, the structure is transparent to the
393 developer because the kernel tree is left in this state after 406 developer because the kernel tree is left in this state after
394 cloning and building the kernel. 407 cloning and building the kernel.
@@ -476,7 +489,9 @@
476 section. 489 section.
477 You can also reference the 490 You can also reference the
478 "<link linkend='using-devtool-to-patch-the-kernel'>Using <filename>devtool</filename> to Patch the Kernel</link>" 491 "<link linkend='using-devtool-to-patch-the-kernel'>Using <filename>devtool</filename> to Patch the Kernel</link>"
479 section for a detailed example that modifies the kernel. 492 and
493 "<link linkend='using-traditional-kernel-development-to-patch-the-kernel'>Using Traditional Kernel Development to Patch the Kernel</link>"
494 sections for detailed example that modifies the kernel.
480 </para> 495 </para>
481 </section> 496 </section>
482 497
@@ -513,30 +528,32 @@
513 528
514 <para> 529 <para>
515 To determine whether or not a given option is "hardware" or 530 To determine whether or not a given option is "hardware" or
516 "non-hardware", the kernel Metadata contains files that 531 "non-hardware", the kernel Metadata in
532 <filename>yocto-kernel-cache</filename> contains files that
517 classify individual or groups of options as either hardware 533 classify individual or groups of options as either hardware
518 or non-hardware. 534 or non-hardware.
519 To better show this, consider a situation where the 535 To better show this, consider a situation where the
520 Yocto Project kernel cache contains the following files: 536 <filename>yocto-kernel-cache</filename> contains the following
537 files:
521 <literallayout class='monospaced'> 538 <literallayout class='monospaced'>
522 kernel-cache/features/drm-psb/hardware.cfg 539 yocto-kernel-cache/features/drm-psb/hardware.cfg
523 kernel-cache/features/kgdb/hardware.cfg 540 yocto-kernel-cache/features/kgdb/hardware.cfg
524 kernel-cache/ktypes/base/hardware.cfg 541 yocto-kernel-cache/ktypes/base/hardware.cfg
525 kernel-cache/bsp/mti-malta32/hardware.cfg 542 yocto-kernel-cache/bsp/mti-malta32/hardware.cfg
526 kernel-cache/bsp/fsl-mpc8315e-rdb/hardware.cfg 543 yocto-kernel-cache/bsp/fsl-mpc8315e-rdb/hardware.cfg
527 kernel-cache/bsp/qemu-ppc32/hardware.cfg 544 yocto-kernel-cache/bsp/qemu-ppc32/hardware.cfg
528 kernel-cache/bsp/qemuarma9/hardware.cfg 545 yocto-kernel-cache/bsp/qemuarma9/hardware.cfg
529 kernel-cache/bsp/mti-malta64/hardware.cfg 546 yocto-kernel-cache/bsp/mti-malta64/hardware.cfg
530 kernel-cache/bsp/arm-versatile-926ejs/hardware.cfg 547 yocto-kernel-cache/bsp/arm-versatile-926ejs/hardware.cfg
531 kernel-cache/bsp/common-pc/hardware.cfg 548 yocto-kernel-cache/bsp/common-pc/hardware.cfg
532 kernel-cache/bsp/common-pc-64/hardware.cfg 549 yocto-kernel-cache/bsp/common-pc-64/hardware.cfg
533 kernel-cache/features/rfkill/non-hardware.cfg 550 yocto-kernel-cache/features/rfkill/non-hardware.cfg
534 kernel-cache/ktypes/base/non-hardware.cfg 551 yocto-kernel-cache/ktypes/base/non-hardware.cfg
535 kernel-cache/features/aufs/non-hardware.kcf 552 yocto-kernel-cache/features/aufs/non-hardware.kcf
536 kernel-cache/features/ocf/non-hardware.kcf 553 yocto-kernel-cache/features/ocf/non-hardware.kcf
537 kernel-cache/ktypes/base/non-hardware.kcf 554 yocto-kernel-cache/ktypes/base/non-hardware.kcf
538 kernel-cache/ktypes/base/hardware.kcf 555 yocto-kernel-cache/ktypes/base/hardware.kcf
539 kernel-cache/bsp/qemu-ppc32/hardware.kcf 556 yocto-kernel-cache/bsp/qemu-ppc32/hardware.kcf
540 </literallayout> 557 </literallayout>
541 The following list provides explanations for the various 558 The following list provides explanations for the various
542 files: 559 files: