1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-30 00:20:08 +00:00

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>
This commit is contained in:
Scott Rifenbark
2017-06-29 09:32:57 -07:00
committed by Richard Purdie
parent 7d2d54683c
commit bdeb6db2fb
2 changed files with 150 additions and 126 deletions
+2 -67
View File
@@ -85,71 +85,6 @@
<section id='kernel-overview'> <section id='kernel-overview'>
<title>Kernel Overview</title> <title>Kernel Overview</title>
<para>
Traditionally, when one thinks of a patched kernel, they think of a base kernel
source tree and a fixed structure that contains kernel patches.
The Yocto Project, however, employs mechanisms that, in a sense, result in a kernel source
generator.
By the end of this section, this analogy will become clearer.
</para>
<para>
You can find a web interface to the Yocto Project kernel source repositories at
<ulink url='&YOCTO_GIT_URL;'></ulink>.
If you look at the interface, you will see to the left a grouping of
Git repositories titled "Yocto Linux Kernel."
Within this group, you will find several kernels supported by
the Yocto Project:
<itemizedlist>
<listitem><para><emphasis>
<filename>linux-yocto-4.1</filename></emphasis> - The
stable Yocto Project kernel to use with the Yocto
Project Release 2.0.
This kernel is based on the Linux 4.1 released kernel.
</para></listitem>
<listitem><para><emphasis>
<filename>linux-yocto-4.4</filename></emphasis> - The
stable Yocto Project kernel to use with the Yocto
Project Release 2.1.
This kernel is based on the Linux 4.4 released kernel.
</para></listitem>
<listitem><para><emphasis>
<filename>linux-yocto-4.9</filename></emphasis> - The
stable Yocto Project kernel to use with the Yocto
Project Release 2.3.
This kernel is based on the Linux 4.9 released kernel.
</para></listitem>
<listitem><para><emphasis>
<filename>linux-yocto-4.10</filename></emphasis> - The
default stable Yocto Project kernel to use with the
Yocto Project Release 2.3.
This kernel is based on the Linux 4.10 released kernel.
</para></listitem>
<listitem><para><emphasis>
<filename>linux-yocto-dev</filename></emphasis> - A
development kernel based on the latest upstream release
candidate available.
</para></listitem>
</itemizedlist>
<note>
Long Term Support Initiative (LTSI) for Yocto Project kernels
is as follows:
<itemizedlist>
<listitem><para>For Yocto Project releases 1.7, 1.8, and 2.0,
the LTSI kernel is <filename>linux-yocto-3.14</filename>.
</para></listitem>
<listitem><para>For Yocto Project releases 2.1, 2.2, and 2.3,
the LTSI kernel is <filename>linux-yocto-4.1</filename>.
</para></listitem>
<listitem><para><filename>linux-yocto-4.1</filename>,
<filename>linux-yocto-4.4</filename>, and
<filename>linux-yocto-4.9</filename> are all LTS
kernels.
</para></listitem>
</itemizedlist>
</note>
</para>
<para> <para>
The kernels are maintained using the Git revision control system The kernels are maintained using the Git revision control system
that structures them using the familiar "tree", "branch", and "leaf" scheme. that structures them using the familiar "tree", "branch", and "leaf" scheme.
@@ -215,8 +150,8 @@
We will just talk about working with the temporary source code. We will just talk about working with the temporary source code.
For more information on how to get kernel source code onto your For more information on how to get kernel source code onto your
host system, see the host system, see the
"<link linkend='local-kernel-files'>Yocto Project Kernel</link>" "<link linkend='local-kernel-files'>Setting Up to Work On a Kernel</link>"
bulleted item earlier in the manual. section.
</para> </para>
<para> <para>
@@ -7,80 +7,169 @@
<section id='kernel-big-picture'> <section id='kernel-big-picture'>
<title>Yocto Project Kernel Development and Maintenance</title> <title>Yocto Project Kernel Development and Maintenance</title>
<para> <para>
Kernels available through the Yocto Project, like other kernels, are based off the Linux Kernels available through the Yocto Project (Linux Yocto kernels),
kernel releases from <ulink url='http://www.kernel.org'></ulink>. like other kernels, are based off the Linux kernel releases from
At the beginning of a major development cycle, the Yocto Project team <ulink url='http://www.kernel.org'></ulink>.
chooses its kernel based on factors such as release timing, the anticipated release At the beginning of a major Linux kernel development cycle, the
timing of final upstream <filename>kernel.org</filename> versions, and Yocto Project Yocto Project team chooses a Linux kernel based on factors such as
release timing, the anticipated release timing of final upstream
<filename>kernel.org</filename> versions, and Yocto Project
feature requirements. feature requirements.
Typically, the kernel chosen is in the Typically, the Linux kernel chosen is in the final stages of
final stages of development by the community. development by the Linux community.
In other words, the kernel is in the release In other words, the Linux kernel is in the release candidate
candidate or "rc" phase and not yet a final release. or "rc" phase and has yet to reach final release.
But, by being in the final stages of external development, the team knows that the But, by being in the final stages of external development, the
<filename>kernel.org</filename> final release will clearly be within the early stages of team knows that the <filename>kernel.org</filename> final release
the Yocto Project development window. will clearly be within the early stages of the Yocto Project
development window.
</para> </para>
<para> <para>
This balance allows the team to deliver the most up-to-date kernel This balance allows the Yocto Project team to deliver the most
possible, while still ensuring that the team has a stable official release for up-to-date Linux Yocto kernel possible, while still ensuring that
the baseline Linux kernel version. the team has a stable official release for the baseline Linux
kernel version.
</para> </para>
<para> <para>
The ultimate source for kernels available through the Yocto Project are released kernels As implied earlier, the ultimate source for Linux Yocto kernels
from <filename>kernel.org</filename>. are released kernels from <filename>kernel.org</filename>.
In addition to a foundational kernel from <filename>kernel.org</filename>, the In addition to a foundational kernel from
kernels available contain a mix of important new mainline <filename>kernel.org</filename>, the available Yocto Linux kernels
developments, non-mainline developments (when there is no alternative), contain a mix of important new mainline developments, non-mainline
Board Support Package (BSP) developments, developments (when there is no alternative), Board Support Package
and custom features. (BSP) developments, and custom features.
These additions result in a commercially released Yocto Project Linux kernel that caters These additions result in a commercially released Yocto
to specific embedded designer needs for targeted hardware. Project Linux kernel that caters to specific embedded designer
needs for targeted hardware.
</para> </para>
<para> <para>
Once a kernel is officially released, the Yocto Project team goes into You can find a web interface to the Yocto Linux kernels in the
their next development cycle, or upward revision (uprev) cycle, while still <ulink url='&YOCTO_DOCS_REF_URL;#source-repositories'>Source Repositories</ulink>
continuing maintenance on the released kernel. at
<ulink url='&YOCTO_GIT_URL;'></ulink>.
If you look at the interface, you will see to the left a
grouping of Git repositories titled "Yocto Linux Kernel".
Within this group, you will find several Linux Yocto kernels
developed and included with Yocto Project releases:
<itemizedlist>
<listitem><para>
<emphasis><filename>linux-yocto-4.1</filename>:</emphasis>
The stable Yocto Project kernel to use with the Yocto
Project Release 2.0.
This kernel is based on the Linux 4.1 released kernel.
</para></listitem>
<listitem><para>
<emphasis><filename>linux-yocto-4.4</filename>:</emphasis>
The stable Yocto Project kernel to use with the Yocto
Project Release 2.1.
This kernel is based on the Linux 4.4 released kernel.
</para></listitem>
<listitem><para>
<emphasis><filename>linux-yocto-4.9</filename>:</emphasis>
The stable Yocto Project kernel to use with the Yocto
Project Release 2.3.
This kernel is based on the Linux 4.9 released kernel.
</para></listitem>
<listitem><para>
<emphasis><filename>linux-yocto-4.10</filename>:</emphasis>
The default stable Yocto Project kernel to use with the
Yocto Project Release 2.3.
This kernel is based on the Linux 4.10 released kernel.
</para></listitem>
<listitem><para>
<emphasis><filename>linux-yocto-dev</filename>:</emphasis>
A development kernel based on the latest upstream release
candidate available.
</para></listitem>
</itemizedlist>
<note><title>Notes</title>
Long Term Support Initiative (LTSI) for Yocto Linux
kernels is as follows:
<itemizedlist>
<listitem><para>
For Yocto Project releases 1.7, 1.8, and 2.0,
the LTSI kernel is
<filename>linux-yocto-3.14</filename>.
</para></listitem>
<listitem><para>
For Yocto Project releases 2.1, 2.2, and 2.3,
the LTSI kernel is <filename>linux-yocto-4.1</filename>.
</para></listitem>
<listitem><para>
<filename>linux-yocto-4.1</filename>,
<filename>linux-yocto-4.4</filename>, and
<filename>linux-yocto-4.9</filename> are all LTS
kernels.
</para></listitem>
</itemizedlist>
</note>
</para>
<para>
Once a Yocto Linux kernel is officially released, the Yocto
Project team goes into their next development cycle, or upward
revision (uprev) cycle, while still continuing maintenance on the
released kernel.
It is important to note that the most sustainable and stable way It is important to note that the most sustainable and stable way
to include feature development upstream is through a kernel uprev process. to include feature development upstream is through a kernel uprev
Back-porting hundreds of individual fixes and minor features from various process.
kernel versions is not sustainable and can easily compromise quality. Back-porting hundreds of individual fixes and minor features from
various kernel versions is not sustainable and can easily
compromise quality.
</para> </para>
<para> <para>
During the uprev cycle, the Yocto Project team uses an ongoing analysis of During the uprev cycle, the Yocto Project team uses an ongoing
kernel development, BSP support, and release timing to select the best analysis of Linux kernel development, BSP support, and release
possible <filename>kernel.org</filename> version. timing to select the best possible <filename>kernel.org</filename>
The team continually monitors community kernel Linux kernel version on which to base subsequent Yocto Linux
development to look for significant features of interest. kernel development.
The team does consider back-porting large features if they have a significant advantage. The team continually monitors Linux community kernel development
User or community demand can also trigger a back-port or creation of new to look for significant features of interest.
functionality in the Yocto Project baseline kernel during the uprev cycle. The team does consider back-porting large features if they have a
significant advantage.
User or community demand can also trigger a back-port or creation
of new functionality in the Yocto Project baseline kernel during
the uprev cycle.
</para> </para>
<para> <para>
Generally speaking, every new kernel both adds features and introduces new bugs. Generally speaking, every new Linux kernel both adds features and
These consequences are the basic properties of upstream kernel development and are introduces new bugs.
managed by the Yocto Project team's kernel strategy. These consequences are the basic properties of upstream
It is the Yocto Project team's policy to not back-port minor features to the released kernel. Linux kernel development and are managed by the Yocto Project
They only consider back-porting significant technological jumps - and, that is done team's Linux Yocto kernel development strategy.
after a complete gap analysis. It is the Yocto Project team's policy to not back-port minor
The reason for this policy is that back-porting any small to medium sized change features to the released Linux Yocto kernel.
from an evolving kernel can easily create mismatches, incompatibilities and very They only consider back-porting significant technological
subtle errors. jumps &dash; and, that is done after a complete gap analysis.
The reason for this policy is that back-porting any small to
medium sized change from an evolving Linux kernel can easily
create mismatches, incompatibilities and very subtle errors.
</para> </para>
<para> <para>
These policies result in both a stable and a cutting The policies described in this section result in both a stable
edge kernel that mixes forward ports of existing features and significant and critical and a cutting edge Linux Yocto kernel that mixes forward ports of
new functionality. existing Linux kernel features and significant and critical new
Forward porting functionality in the kernels available through the Yocto Project kernel functionality.
can be thought of as a "micro uprev." Forward porting Linux kernel functionality into the Linux Yocto
The many “micro uprevs” produce a kernel version with a mix of kernels available through the Yocto Project can be thought of as
important new mainline, non-mainline, BSP developments and feature integrations. a "micro uprev."
This kernel gives insight into new features and allows focused The many “micro uprevs” produce a Linux Yocto kernel version with
amounts of testing to be done on the kernel, which prevents a mix of important new mainline, non-mainline, BSP developments
surprises when selecting the next major uprev. and feature integrations.
The quality of these cutting edge kernels is evolving and the kernels are used in leading edge This Yocto Linux kernel gives insight into new features and
feature and BSP development. allows focused amounts of testing to be done on the kernel,
which prevents surprises when selecting the next major uprev.
The quality of these cutting edge Linux Yocto kernels is evolving
and the kernels are used in leading edge feature and BSP
development.
</para> </para>
</section> </section>