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:
committed by
Richard Purdie
parent
7d2d54683c
commit
bdeb6db2fb
@@ -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 ‐ 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>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user