mirror of
https://git.yoctoproject.org/poky
synced 2026-01-29 21:08:42 +01: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:
committed by
Richard Purdie
parent
7d2d54683c
commit
bdeb6db2fb
@@ -7,80 +7,169 @@
|
||||
|
||||
<section id='kernel-big-picture'>
|
||||
<title>Yocto Project Kernel Development and Maintenance</title>
|
||||
|
||||
<para>
|
||||
Kernels available through the Yocto Project, like other kernels, are based off the Linux
|
||||
kernel releases from <ulink url='http://www.kernel.org'></ulink>.
|
||||
At the beginning of a major development cycle, the Yocto Project team
|
||||
chooses its kernel based on factors such as release timing, the anticipated release
|
||||
timing of final upstream <filename>kernel.org</filename> versions, and Yocto Project
|
||||
Kernels available through the Yocto Project (Linux Yocto kernels),
|
||||
like other kernels, are based off the Linux kernel releases from
|
||||
<ulink url='http://www.kernel.org'></ulink>.
|
||||
At the beginning of a major Linux kernel development cycle, the
|
||||
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.
|
||||
Typically, the kernel chosen is in the
|
||||
final stages of development by the community.
|
||||
In other words, the kernel is in the release
|
||||
candidate or "rc" phase and not yet a final release.
|
||||
But, by being in the final stages of external development, the team knows that the
|
||||
<filename>kernel.org</filename> final release will clearly be within the early stages of
|
||||
the Yocto Project development window.
|
||||
Typically, the Linux kernel chosen is in the final stages of
|
||||
development by the Linux community.
|
||||
In other words, the Linux kernel is in the release candidate
|
||||
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 <filename>kernel.org</filename> final release
|
||||
will clearly be within the early stages of the Yocto Project
|
||||
development window.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This balance allows the team to deliver the most up-to-date kernel
|
||||
possible, while still ensuring that the team has a stable official release for
|
||||
the baseline Linux kernel version.
|
||||
This balance allows the Yocto Project team to deliver the most
|
||||
up-to-date Linux Yocto kernel possible, while still ensuring that
|
||||
the team has a stable official release for the baseline Linux
|
||||
kernel version.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The ultimate source for kernels available through the Yocto Project are released kernels
|
||||
from <filename>kernel.org</filename>.
|
||||
In addition to a foundational kernel from <filename>kernel.org</filename>, the
|
||||
kernels available contain a mix of important new mainline
|
||||
developments, non-mainline developments (when there is no alternative),
|
||||
Board Support Package (BSP) developments,
|
||||
and custom features.
|
||||
These additions result in a commercially released Yocto Project Linux kernel that caters
|
||||
to specific embedded designer needs for targeted hardware.
|
||||
As implied earlier, the ultimate source for Linux Yocto kernels
|
||||
are released kernels from <filename>kernel.org</filename>.
|
||||
In addition to a foundational kernel from
|
||||
<filename>kernel.org</filename>, the available Yocto Linux kernels
|
||||
contain a mix of important new mainline developments, non-mainline
|
||||
developments (when there is no alternative), Board Support Package
|
||||
(BSP) developments, and custom features.
|
||||
These additions result in a commercially released Yocto
|
||||
Project Linux kernel that caters to specific embedded designer
|
||||
needs for targeted hardware.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Once a 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.
|
||||
You can find a web interface to the Yocto Linux kernels in the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#source-repositories'>Source Repositories</ulink>
|
||||
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
|
||||
to include feature development upstream is through a kernel uprev process.
|
||||
Back-porting hundreds of individual fixes and minor features from various
|
||||
kernel versions is not sustainable and can easily compromise quality.
|
||||
to include feature development upstream is through a kernel uprev
|
||||
process.
|
||||
Back-porting hundreds of individual fixes and minor features from
|
||||
various kernel versions is not sustainable and can easily
|
||||
compromise quality.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
During the uprev cycle, the Yocto Project team uses an ongoing analysis of
|
||||
kernel development, BSP support, and release timing to select the best
|
||||
possible <filename>kernel.org</filename> version.
|
||||
The team continually monitors community kernel
|
||||
development to look for significant features of interest.
|
||||
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.
|
||||
During the uprev cycle, the Yocto Project team uses an ongoing
|
||||
analysis of Linux kernel development, BSP support, and release
|
||||
timing to select the best possible <filename>kernel.org</filename>
|
||||
Linux kernel version on which to base subsequent Yocto Linux
|
||||
kernel development.
|
||||
The team continually monitors Linux community kernel development
|
||||
to look for significant features of interest.
|
||||
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>
|
||||
Generally speaking, every new kernel both adds features and introduces new bugs.
|
||||
These consequences are the basic properties of upstream kernel development and are
|
||||
managed by the Yocto Project team's kernel strategy.
|
||||
It is the Yocto Project team's policy to not back-port minor features to the released kernel.
|
||||
They only consider back-porting significant technological jumps - 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 kernel can easily create mismatches, incompatibilities and very
|
||||
subtle errors.
|
||||
Generally speaking, every new Linux kernel both adds features and
|
||||
introduces new bugs.
|
||||
These consequences are the basic properties of upstream
|
||||
Linux kernel development and are managed by the Yocto Project
|
||||
team's Linux Yocto kernel development strategy.
|
||||
It is the Yocto Project team's policy to not back-port minor
|
||||
features to the released Linux Yocto kernel.
|
||||
They only consider back-porting significant technological
|
||||
jumps ‐ 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>
|
||||
These policies result in both a stable and a cutting
|
||||
edge kernel that mixes forward ports of existing features and significant and critical
|
||||
new functionality.
|
||||
Forward porting functionality in the kernels available through the Yocto Project kernel
|
||||
can be thought of as a "micro uprev."
|
||||
The many “micro uprevs” produce a kernel version with a mix of
|
||||
important new mainline, non-mainline, BSP developments and feature integrations.
|
||||
This kernel gives insight into new features and 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 kernels is evolving and the kernels are used in leading edge
|
||||
feature and BSP development.
|
||||
The policies described in this section result in both a stable
|
||||
and a cutting edge Linux Yocto kernel that mixes forward ports of
|
||||
existing Linux kernel features and significant and critical new
|
||||
functionality.
|
||||
Forward porting Linux kernel functionality into the Linux Yocto
|
||||
kernels available through the Yocto Project can be thought of as
|
||||
a "micro uprev."
|
||||
The many “micro uprevs” produce a Linux Yocto kernel version with
|
||||
a mix of important new mainline, non-mainline, BSP developments
|
||||
and feature integrations.
|
||||
This Yocto Linux kernel gives insight into new features and
|
||||
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>
|
||||
</section>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user