1
0
mirror of https://git.yoctoproject.org/poky synced 2026-06-02 13:29:49 +00:00

documentation/kernel-manual: Scrubbed the Yocto Project term

Changed all occurrences of "Yocto Project" to terms better suited
to reality.

(From yocto-docs rev: fdd7b8c2bcbaf566cad336c67c582c2a24aa9dc1)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Scott Rifenbark
2012-07-02 10:51:45 -07:00
committed by Richard Purdie
parent d779c83e71
commit e70dc3ab99
3 changed files with 64 additions and 74 deletions
+27 -40
View File
@@ -9,10 +9,10 @@
<section id='concepts-org'> <section id='concepts-org'>
<title>Introduction</title> <title>Introduction</title>
<para> <para>
This chapter provides conceptual information about the Yocto Project kernel: This chapter provides conceptual information about the kernel:
<itemizedlist> <itemizedlist>
<listitem><para>Kernel Goals</para></listitem> <listitem><para>Kernel Goals</para></listitem>
<listitem><para>Yocto Project Kernel Development and Maintenance Overview</para></listitem> <listitem><para>Kernel Development and Maintenance Overview</para></listitem>
<listitem><para>Kernel Architecture</para></listitem> <listitem><para>Kernel Architecture</para></listitem>
<listitem><para>Kernel Tools</para></listitem> <listitem><para>Kernel Tools</para></listitem>
</itemizedlist> </itemizedlist>
@@ -25,8 +25,8 @@
The complexity of embedded kernel design has increased dramatically. The complexity of embedded kernel design has increased dramatically.
Whether it is managing multiple implementations of a particular feature or tuning and Whether it is managing multiple implementations of a particular feature or tuning and
optimizing board specific features, flexibility and maintainability are key concerns. optimizing board specific features, flexibility and maintainability are key concerns.
The Yocto Project Linux kernel is presented with the embedded The Linux kernels available through the Yocto Project are presented with the embedded
developer's needs in mind and has evolved to assist in these key concerns. developer's needs in mind and have evolved to assist in these key concerns.
For example, prior methods such as applying hundreds of patches to an extracted For example, prior methods such as applying hundreds of patches to an extracted
tarball have been replaced with proven techniques that allow easy inspection, tarball have been replaced with proven techniques that allow easy inspection,
bisection and analysis of changes. bisection and analysis of changes.
@@ -34,7 +34,7 @@
collaboration with the thousands of upstream development projects. collaboration with the thousands of upstream development projects.
</para> </para>
<para> <para>
With all these considerations in mind, the Yocto Project kernel and development team With all these considerations in mind, the Yocto Project's kernel and development team
strives to attain these goals: strives to attain these goals:
<itemizedlist> <itemizedlist>
<listitem><para>Allow the end user to leverage community best practices to seamlessly <listitem><para>Allow the end user to leverage community best practices to seamlessly
@@ -63,12 +63,12 @@
<section id='kernel-big-picture'> <section id='kernel-big-picture'>
<title>Yocto Project Kernel Development and Maintenance Overview</title> <title>Yocto Project Kernel Development and Maintenance Overview</title>
<para> <para>
The Yocto Project kernel, like other kernels, is based off the Linux kernel release Kernels available through the Yocto Project, like other kernels, are based off the Linux
from <ulink url='http://www.kernel.org'></ulink>. kernel releases from <ulink url='http://www.kernel.org'></ulink>.
At the beginning of a major development cycle, the Yocto Project team At the beginning of a major development cycle, the Yocto Project team
chooses its Yocto Project kernel chooses its kernel based on factors such as release timing, the anticipated release
based on factors like release timing, the anticipated release timing of final timing of final upstream <filename>kernel.org</filename> versions, and Yocto Project
upstream <filename>kernel.org</filename> versions, and Yocto Project feature requirements. feature requirements.
Typically, the kernel chosen is in the Typically, the kernel chosen is in the
final stages of development by the community. final stages of development by the community.
In other words, the kernel is in the release In other words, the kernel is in the release
@@ -80,21 +80,21 @@
<para> <para>
This balance allows the team to deliver the most up-to-date kernel This balance allows the team to deliver the most up-to-date kernel
as possible, while still ensuring that the team has a stable official release for as possible, while still ensuring that the team has a stable official release for
the baseline kernel version. the baseline Linux kernel version.
</para> </para>
<para> <para>
The ultimate source for the Yocto Project kernel is a released kernel The ultimate source for kernels available through the Yocto Project are released kernels
from <filename>kernel.org</filename>. from <filename>kernel.org</filename>.
In addition to a foundational kernel from <filename>kernel.org</filename>, the released In addition to a foundational kernel from <filename>kernel.org</filename>, the
Yocto Project kernel contains a mix of important new mainline kernels available through the contain a mix of important new mainline
developments, non-mainline developments (when there is no alternative), developments, non-mainline developments (when there is no alternative),
Board Support Package (BSP) developments, Board Support Package (BSP) developments,
and custom features. and custom features.
These additions result in a commercially released Yocto Project kernel that caters These additions result in a commercially released Yocto Project Linux kernel that caters
to specific embedded designer needs for targeted hardware. to specific embedded designer needs for targeted hardware.
</para> </para>
<para> <para>
Once a Yocto Project kernel is officially released, the Yocto Project team goes into Once a kernel is officially released, the Yocto Project team goes into
their next development cycle, or upward revision (uprev) cycle, while still their next development cycle, or upward revision (uprev) cycle, while still
continuing maintenance on the released kernel. 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
@@ -127,8 +127,8 @@
These policies result in both a stable and a cutting These policies result in both a stable and a cutting
edge kernel that mixes forward ports of existing features and significant and critical edge kernel that mixes forward ports of existing features and significant and critical
new functionality. new functionality.
Forward porting functionality in the Yocto Project kernel can be thought of as a Forward porting functionality in the kernels available through the Yocto Project kernel
"micro uprev." can be thought of as a "micro uprev."
The many “micro uprevs” produce a kernel version with a mix of The many “micro uprevs” produce a kernel version with a mix of
important new mainline, non-mainline, BSP developments and feature integrations. important new mainline, non-mainline, BSP developments and feature integrations.
This kernel gives insight into new features and allows focused This kernel gives insight into new features and allows focused
@@ -142,7 +142,8 @@
<section id='kernel-architecture'> <section id='kernel-architecture'>
<title>Kernel Architecture</title> <title>Kernel Architecture</title>
<para> <para>
This section describes the architecture of the Yocto Project kernel and provides information This section describes the architecture of the kernels available through the
Yocto Project and provides information
on the mechanisms used to achieve that architecture. on the mechanisms used to achieve that architecture.
</para> </para>
@@ -156,7 +157,7 @@
upstream <filename>kernel.org</filename>. upstream <filename>kernel.org</filename>.
</para> </para>
<para> <para>
You can think of the Yocto Project kernel as consisting of a baseline kernel with You can think of a Yocto Project kernel as consisting of a baseline Linux kernel with
added features logically structured on top of the baseline. added features logically structured on top of the baseline.
The features are tagged and organized by way of a branching strategy implemented by the The features are tagged and organized by way of a branching strategy implemented by the
source code manager (SCM) Git. source code manager (SCM) Git.
@@ -305,9 +306,9 @@
<section id='kernel-configuration'> <section id='kernel-configuration'>
<title>Kernel Configuration</title> <title>Kernel Configuration</title>
<para> <para>
Kernel configuration, along with kernel features, defines how a Linux Yocto Kernel configuration, along with kernel features, defines how a kernel
kernel image is built. image is built for the Yocto Project.
Through configuration settings, you can customize a Linux Yocto kernel to be Through configuration settings, you can customize a Yocto Project kernel to be
specific to particular hardware. specific to particular hardware.
For example, you can specify sound support or networking support. For example, you can specify sound support or networking support.
This section describes basic concepts behind Kernel configuration within the This section describes basic concepts behind Kernel configuration within the
@@ -316,9 +317,9 @@
</para> </para>
<para> <para>
Conceptually, Linux Yocto kernel configuration occurs similarly to that needed for any Conceptually, configuration of a Yocto Project kernel occurs similarly to that needed for any
Linux kernel. Linux kernel.
The Linux Yocto kernel build process uses a <filename>.config</filename> file, which The build process for a Yocto Project kernel uses a <filename>.config</filename> file, which
is created through the Linux Kernel Coinfiguration (LKC) tool. is created through the Linux Kernel Coinfiguration (LKC) tool.
You can directly set various configurations in the You can directly set various configurations in the
<filename>.config</filename> file by using the <filename>menuconfig</filename> <filename>.config</filename> file by using the <filename>menuconfig</filename>
@@ -352,7 +353,7 @@
list of kernel options just as they would appear syntactically in the list of kernel options just as they would appear syntactically in the
<filename>.config</filename> file. <filename>.config</filename> file.
Configuration fragments are typically logical groupings and are assembled Configuration fragments are typically logical groupings and are assembled
by the Yocto Project build system to produce input used by the LKC by the OpenEmbedded build system to produce input used by the LKC
that ultimately generates the <filename>.config</filename> file.</para> that ultimately generates the <filename>.config</filename> file.</para>
<para>The <para>The
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-KERNEL_FEATURES'>KERNEL_FEATURES</ulink></filename> <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-KERNEL_FEATURES'>KERNEL_FEATURES</ulink></filename>
@@ -384,20 +385,6 @@
with the <filename>kernel.org</filename> history and development.</para></listitem> with the <filename>kernel.org</filename> history and development.</para></listitem>
</itemizedlist> </itemizedlist>
</para> </para>
<!--<para>
WRITER NOTE: Put this in for post 1.1 if possible:
The tools that construct a kernel tree will be discussed later in this
document. The following tools form the foundation of the Yocto Project
kernel toolkit:
<itemizedlist>
<listitem><para>git : distributed revision control system created by Linus Torvalds</para></listitem>
<listitem><para>guilt: quilt on top of git</para></listitem>
<listitem><para>*cfg : kernel configuration management and classification</para></listitem>
<listitem><para>kgit*: Yocto Project kernel tree creation and management tools</para></listitem>
<listitem><para>scc : series &amp; configuration compiler</para></listitem>
</itemizedlist>
</para> -->
</section> </section>
</chapter> </chapter>
<!-- <!--
@@ -9,26 +9,26 @@
<section id='book-intro'> <section id='book-intro'>
<title>Introduction</title> <title>Introduction</title>
<para> <para>
The Yocto Project presents the kernel as a fully patched, history-clean Git The Yocto Project presents kernels as a fully patched, history-clean Git
repository. repositories.
The Git tree represents the selected features, board support, Each repository represents selected features, board support,
and configurations extensively tested by the Yocto Project. and configurations extensively tested by the Yocto Project.
The Yocto Project kernel allows the end user to leverage community Yocto Project kernels allow the end user to leverage community
best practices to seamlessly manage the development, build and debug cycles. best practices to seamlessly manage the development, build and debug cycles.
</para> </para>
<para> <para>
This manual describes the Yocto Project kernel by providing information This manual describes Yocto Project kernels by providing information
on its history, organization, benefits, and use. on history, organization, benefits, and use.
The manual consists of two sections: The manual consists of two sections:
<itemizedlist> <itemizedlist>
<listitem><para><emphasis>Concepts:</emphasis> Describes concepts behind the kernel. <listitem><para><emphasis>Concepts:</emphasis> Describes concepts behind a kernel.
You will understand how the kernel is organized and why it is organized in You will understand how a kernel is organized and why it is organized in
the way it is. You will understand the benefits of the kernel's organization the way it is. You will understand the benefits of a kernel's organization
and the mechanisms used to work with the kernel and how to apply it in your and the mechanisms used to work with the kernel and how to apply it in your
design process.</para></listitem> design process.</para></listitem>
<listitem><para><emphasis>Using the Kernel:</emphasis> Describes best practices <listitem><para><emphasis>Using a Kernel:</emphasis> Describes best practices
and "how-to" information and "how-to" information
that lets you put the kernel to practical use. that lets you put a kernel to practical use.
Some examples are how to examine changes in a branch and how to Some examples are how to examine changes in a branch and how to
save kernel modifications.</para></listitem> save kernel modifications.</para></listitem>
</itemizedlist> </itemizedlist>
+26 -23
View File
@@ -10,7 +10,7 @@
<section id='actions-org'> <section id='actions-org'>
<title>Introduction</title> <title>Introduction</title>
<para> <para>
This chapter describes how to accomplish tasks involving the kernel's tree structure. This chapter describes how to accomplish tasks involving a kernel's tree structure.
The information is designed to help the developer that wants to modify the Yocto The information is designed to help the developer that wants to modify the Yocto
Project kernel and contribute changes upstream to the Yocto Project. Project kernel and contribute changes upstream to the Yocto Project.
The information covers the following: The information covers the following:
@@ -25,7 +25,7 @@
<section id='tree-construction'> <section id='tree-construction'>
<title>Tree Construction</title> <title>Tree Construction</title>
<para> <para>
This section describes construction of the Yocto Project kernel repositories This section describes construction of the Yocto Project kernel source repositories
as accomplished by the Yocto Project team to create kernel repositories. as accomplished by the Yocto Project team to create kernel repositories.
These kernel repositories are found at These kernel repositories are found at
<ulink url='&YOCTO_GIT_URL;/cgit.cgi'>&YOCTO_GIT_URL;/cgit.cgi</ulink> <ulink url='&YOCTO_GIT_URL;/cgit.cgi'>&YOCTO_GIT_URL;/cgit.cgi</ulink>
@@ -34,25 +34,27 @@
compiling and executing the set of feature descriptions for every BSP/feature compiling and executing the set of feature descriptions for every BSP/feature
in the product. in the product.
Those feature descriptions list all necessary patches, Those feature descriptions list all necessary patches,
configuration, branching, tagging and feature divisions found in the kernel. configuration, branching, tagging and feature divisions found in a kernel.
Thus, the Yocto Project kernel repository (or tree) is built. Thus, the Yocto Project kernel repository (or tree) is built.
</para> </para>
<para> <para>
The existence of this tree allows you to access and clone a particular The existence of this tree allows you to access and clone a particular
Linux Yocto kernel repository and use it to build images based on their configurations Yocto Project kernel repository and use it to build images based on their configurations
and features. and features.
</para> </para>
<para> <para>
You can find the files used to describe all the valid features and BSPs You can find the files used to describe all the valid features and BSPs
in the Yocto Project kernel in any clone of the Linux Yocto kernel source repository Git tree. in the Yocto Project kernel in any clone of the Yocto Project kernel source repository
Git tree.
For example, the following command clones the Yocto Project baseline kernel that For example, the following command clones the Yocto Project baseline kernel that
branched off of <filename>linux.org</filename> version 3.4: branched off of <filename>linux.org</filename> version 3.4:
<literallayout class='monospaced'> <literallayout class='monospaced'>
$ git clone git://git.yoctoproject.org/linux-yocto-3.4 $ git clone git://git.yoctoproject.org/linux-yocto-3.4
</literallayout> </literallayout>
For another example of how to set up a local Git repository of the Linux Yocto For another example of how to set up a local Git repository of the Yocto Project
kernel files, see the kernel files, see the
"<ulink url='&YOCTO_DOCS_DEV_URL;#local-kernel-files'>Linux Yocto Kernel</ulink>" bulleted item in The Yocto Project Development Manual. "<ulink url='&YOCTO_DOCS_DEV_URL;#local-kernel-files'>Linux Yocto Kernel</ulink>" bulleted
item in The Yocto Project Development Manual.
</para> </para>
<para> <para>
Once you have cloned the kernel Git repository on your local machine, you can Once you have cloned the kernel Git repository on your local machine, you can
@@ -85,7 +87,7 @@
</para> </para>
<para> <para>
The following steps describe what happens when the Yocto Project Team constructs The following steps describe what happens when the Yocto Project Team constructs
the Yocto Linux kernel source Git repository (or tree) found at the Yocto Project kernel source Git repository (or tree) found at
<ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink> given the <ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink> given the
introduction of a new top-level kernel feature or BSP. introduction of a new top-level kernel feature or BSP.
These are the actions that effectively create the tree These are the actions that effectively create the tree
@@ -130,7 +132,7 @@
</para> </para>
<para> <para>
The kernel tree is now ready for developer consumption to be locally cloned, The kernel tree is now ready for developer consumption to be locally cloned,
configured, and built into a Linux Yocto kernel specific to some target hardware. configured, and built into a Yocto Project kernel specific to some target hardware.
<note><para>The generated <filename>meta-*</filename> directories add to the kernel <note><para>The generated <filename>meta-*</filename> directories add to the kernel
as shipped with the Yocto Project release. as shipped with the Yocto Project release.
Any add-ons and configuration data are applied to the end of an existing branch. Any add-ons and configuration data are applied to the end of an existing branch.
@@ -149,7 +151,7 @@
<section id='build-strategy'> <section id='build-strategy'>
<title>Build Strategy</title> <title>Build Strategy</title>
<para> <para>
Once a local Git repository of the Linux Yocto kernel exists on a development system, Once a local Git repository of the Yocto Project kernel exists on a development system,
you can consider the compilation phase of kernel development - building a kernel image. you can consider the compilation phase of kernel development - building a kernel image.
Some prerequisites exist that are validated by the build process before compilation Some prerequisites exist that are validated by the build process before compilation
starts: starts:
@@ -166,7 +168,7 @@
</itemizedlist> </itemizedlist>
<para> <para>
The Yocto Project makes sure these conditions exist before attempting compilation. The OpenEmbedded build system makes sure these conditions exist before attempting compilation.
Other means, however, do exist, such as as bootstrapping a BSP, see Other means, however, do exist, such as as bootstrapping a BSP, see
the "<link linkend='workflow-examples'>Workflow Examples</link>". the "<link linkend='workflow-examples'>Workflow Examples</link>".
</para> </para>
@@ -308,7 +310,7 @@
<title>Show a Particular Feature or Branch Change</title> <title>Show a Particular Feature or Branch Change</title>
<para> <para>
Developers use tags in the Yocto Project tree to divide changes for significant Developers use tags in the Yocto Project kernel tree to divide changes for significant
features or branches. features or branches.
Once you know a particular tag, you can use Git commands Once you know a particular tag, you can use Git commands
to show changes associated with the tag and find the branches that contain to show changes associated with the tag and find the branches that contain
@@ -523,7 +525,7 @@
"permanent" and you should not modify them. "permanent" and you should not modify them.
If the commits need to be changed, you can incrementally do so with new commits. If the commits need to be changed, you can incrementally do so with new commits.
These practices follow standard Git workflow and the <filename>kernel.org</filename> best These practices follow standard Git workflow and the <filename>kernel.org</filename> best
practices, which Yocto Project recommends. practices, which is recommended.
<note> <note>
It is recommended to tag or branch before adding changes to a Yocto Project It is recommended to tag or branch before adding changes to a Yocto Project
BSP or before creating a new one. BSP or before creating a new one.
@@ -691,7 +693,7 @@
However, if the patches are manually applied to a secondary tree and then However, if the patches are manually applied to a secondary tree and then
that tree is checked into the SCM, you can lose change information such as that tree is checked into the SCM, you can lose change information such as
commit logs. commit logs.
The Yocto Project does not recommend this process. This process is not recommended.
</para> </para>
<para> <para>
@@ -708,14 +710,14 @@
<para> <para>
This section describes kernel development in an SCM other than Git, This section describes kernel development in an SCM other than Git,
which is not the same as exporting changes to another SCM described earlier. which is not the same as exporting changes to another SCM described earlier.
For this scenario, you use the Yocto Project build system to For this scenario, you use the OpenEmbedded build system to
develop the kernel in a different SCM. develop the kernel in a different SCM.
The following must be true for you to accomplish this: The following must be true for you to accomplish this:
<itemizedlist> <itemizedlist>
<listitem><para>The delivered Yocto Project kernel must be exported into the second <listitem><para>The delivered Yocto Project kernel must be exported into the second
SCM.</para></listitem> SCM.</para></listitem>
<listitem><para>Development must be exported from that secondary SCM into a <listitem><para>Development must be exported from that secondary SCM into a
format that can be used by the Yocto Project build system.</para></listitem> format that can be used by the OpenEmbedded build system.</para></listitem>
</itemizedlist> </itemizedlist>
</para> </para>
@@ -791,9 +793,10 @@
<para> <para>
The basic steps you need to follow are: The basic steps you need to follow are:
<orderedlist> <orderedlist>
<listitem><para><emphasis>Make sure you have the Yocto Project source tree available:</emphasis> <listitem><para><emphasis>Make sure you have set up a local source directory:</emphasis>
You should either create a Yocto Project Git repository (recommended), or You must create a local <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source
you should get the Yocto Project release tarball and extract it.</para></listitem> directory</ulink> by either creating a Git repository (recommended) or
extracting a Yocto Project release tarball.</para></listitem>
<listitem><para><emphasis>Choose an existing BSP available with the Yocto Project:</emphasis> <listitem><para><emphasis>Choose an existing BSP available with the Yocto Project:</emphasis>
Try to map your board features as closely to the features of a BSP that is Try to map your board features as closely to the features of a BSP that is
already supported and exists in the Yocto Project. already supported and exists in the Yocto Project.
@@ -803,12 +806,12 @@
on the Yocto Project's Download page at on the Yocto Project's Download page at
<ulink url='&YOCTO_HOME_URL;/download'></ulink>.</para></listitem> <ulink url='&YOCTO_HOME_URL;/download'></ulink>.</para></listitem>
<listitem><para><emphasis>Be sure you have the Base BSP:</emphasis> <listitem><para><emphasis>Be sure you have the Base BSP:</emphasis>
You need to either have the Yocto Project Git repository set up or download You need to either have a local Git repository of the base BSP set up or
the tarball of the base BSP. have downloaded and extracted the files from a release BSP tarball.
Either method gives you access to the BSP source files.</para></listitem> Either method gives you access to the BSP source files.</para></listitem>
<listitem><para><emphasis>Make a copy of the existing BSP, thus isolating your new <listitem><para><emphasis>Make a copy of the existing BSP, thus isolating your new
BSP work:</emphasis> BSP work:</emphasis>
Copying the existing BSP structure gives you a new area in which to work.</para></listitem> Copying the existing BSP file structure gives you a new area in which to work.</para></listitem>
<listitem><para><emphasis>Make configuration and recipe changes to your new BSP:</emphasis> <listitem><para><emphasis>Make configuration and recipe changes to your new BSP:</emphasis>
Configuration changes involve the files in the BSP's <filename>conf</filename> Configuration changes involve the files in the BSP's <filename>conf</filename>
directory. directory.
@@ -824,7 +827,7 @@
changes to the <filename>local.conf</filename> and <filename>bblayers.conf</filename> changes to the <filename>local.conf</filename> and <filename>bblayers.conf</filename>
files.</para></listitem> files.</para></listitem>
<listitem><para><emphasis>Build the image:</emphasis> <listitem><para><emphasis>Build the image:</emphasis>
The Yocto Project uses the BitBake tool to create the image. The OpenEmbedded build system uses BitBake to create the image.
You need to decide on the type of image you are going to build (e.g. minimal, base, You need to decide on the type of image you are going to build (e.g. minimal, base,
core, sato, and so forth) and then start the build using the <filename>bitbake</filename> core, sato, and so forth) and then start the build using the <filename>bitbake</filename>
command.</para></listitem> command.</para></listitem>