[gnome-continuous-yocto/gnomeostree-3.28-rocko: 7940/8267] kernel-dev: Updated Tree Construction section
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-continuous-yocto/gnomeostree-3.28-rocko: 7940/8267] kernel-dev: Updated Tree Construction section
- Date: Sun, 17 Dec 2017 06:57:11 +0000 (UTC)
commit 766770aa35626c8598b849346b6c79335ba1f9e4
Author: Scott Rifenbark <srifenbark gmail com>
Date: Tue Oct 3 12:06:51 2017 -0700
kernel-dev: Updated Tree Construction section
The section was using the "meta-*" stuff, which is not how it
is done any longer.
(From yocto-docs rev: c9d95e85a832a38c3fd099a728693af3fa708d50)
Signed-off-by: Scott Rifenbark <srifenbark gmail com>
Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>
documentation/kernel-dev/kernel-dev-maint-appx.xml | 157 +++++++++++++-------
1 files changed, 100 insertions(+), 57 deletions(-)
---
diff --git a/documentation/kernel-dev/kernel-dev-maint-appx.xml
b/documentation/kernel-dev/kernel-dev-maint-appx.xml
index 9e6fa99..4575c90 100644
--- a/documentation/kernel-dev/kernel-dev-maint-appx.xml
+++ b/documentation/kernel-dev/kernel-dev-maint-appx.xml
@@ -22,11 +22,13 @@
Those feature descriptions list all necessary patches,
configurations, branches, tags, and feature divisions found in a
Yocto Linux kernel.
- Thus, the Yocto Project Linux kernel repository (or tree) is built.
+ Thus, the Yocto Project Linux kernel repository (or tree) and
+ accompanying Metadata in the
+ <filename>yocto-kernel-cache</filename> are built.
</para>
<para>
- The existence of this tree allows you to access and clone a
+ The existence of these repositories allow you to access and clone a
particular Yocto Project Linux kernel repository and use it to
build images based on their configurations and features.
</para>
@@ -34,12 +36,16 @@
<para>
You can find the files used to describe all the valid features and
BSPs in the Yocto Project Linux kernel in any clone of the Yocto
- Project Linux kernel source repository Git tree.
- For example, the following command clones the Yocto Project
+ Project Linux kernel source repository and
+ <filename>yocto-kernel-cache</filename> Git trees.
+ For example, the following commands clone the Yocto Project
baseline Linux kernel that branches off
- <filename>linux.org</filename> version 4.12:
+ <filename>linux.org</filename> version 4.12 and the
+ <filename>yocto-kernel-cache</filename>, which contains stores of
+ kernel Metadata:
<literallayout class='monospaced'>
$ git clone git://git.yoctoproject.org/linux-yocto-4.12
+ $ git clone git://git.yoctoproject.org/linux-kernel-cache
</literallayout>
For more information on how to set up a local Git repository of
the Yocto Project Linux kernel files, see the
@@ -48,25 +54,33 @@
</para>
<para>
- Once you have cloned the kernel Git repository on your local
- machine, you can discover the branches that are avilable in the
- repository using the following Git command:
+ Once you have cloned the kernel Git repository and the
+ cache of Metadata on your local machine, you can discover the
+ branches that are avilable in the repository using the following
+ Git command:
<literallayout class='monospaced'>
$ git branch -a
</literallayout>
Checking out a branch allows you to work with a particular
Yocto Linux kernel.
- For example, the following command checks out the
- <filename>standard/beagleboard</filename> branch of the
- repository:
+ For example, the following commands check out the
+ "standard/beagleboard" branch of the Yocto Linux kernel repository
+ and the "yocto-4.12" branch of the
+ <filename>yocto-kernel-cache</filename> repository:
<literallayout class='monospaced'>
- $ cd linux-yocto-4.12
- $ git checkout -b my-kernel-4.12 standard/beagleboard
+ $ cd ~/linux-yocto-4.12
+ $ git checkout -b my-kernel-4.12 remotes/origin/standard/beagleboard
+ $ cd ~/linux-kernel-cache
+ $ git checkout -b my-4.12-metadata remotes/origin/yocto-4.12
</literallayout>
- Once you have checked out and switched to the
- <filename>standard/beagleboard</filename> branch,
+ <note>
+ Branches in the <filename>yocto-kernel-cache</filename>
+ repository correspond to Yocto Linux kernel versions
+ (e.g. "yocto-4.12", "yocto-4.10", "yocto-4.9", and so forth).
+ </note>
+ Once you have checked out and switched to appropriate branches,
you can see a snapshot of all the kernel source files used to
- used to build that particular Yocto Linux kernel for that
+ used to build that particular Yocto Linux kernel for a
particular board.
</para>
@@ -74,9 +88,9 @@
To see the features and configurations for a particular Yocto
Linux kernel, you need to examine the
<filename>yocto-kernel-cache</filename> Git repository.
- Branches in the <filename>yocto-kernel-cache</filename> repository
- correspond to Yocto Linux kernel versions (e.g.
- <filename>yocto-4.12</filename>).
+ As mentioned, branches in the
+ <filename>yocto-kernel-cache</filename> repository correspond to
+ Yocto Linux kernel versions (e.g. <filename>yocto-4.12</filename>).
Branches contain descriptions in the form of
<filename>.scc</filename> and <filename>.cfg</filename> files.
</para>
@@ -106,77 +120,106 @@
(or tree) found at
<ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink> given the
introduction of a new top-level kernel feature or BSP.
- These are the actions that effectively create the tree
- that includes the new feature, patch or BSP:
+ These are the actions that effectively provide the Metadata
+ and create the tree that includes the new feature, patch or BSP:
<orderedlist>
<listitem><para>
+ <emphasis>Pass Feature to Build Subsystem:</emphasis>
A top-level kernel feature is passed to the kernel build
subsystem.
Normally, this feature is a BSP for a particular kernel
type.
</para></listitem>
<listitem><para>
+ <emphasis>Locate Feature:</emphasis>
The file that describes the top-level feature is located
by searching these system directories:
<itemizedlist>
<listitem><para>
The in-tree kernel-cache directories, which are
- located in
- <filename>yocto-kernel-cache/cfg/kernel-cache</filename>
+ located in the
+ <filename>yocto-kernel-cache</filename>
+ repository
</para></listitem>
<listitem><para>
Areas pointed to by <filename>SRC_URI</filename>
- statements found in recipes
+ statements found in kernel recipes
</para></listitem>
</itemizedlist>
For a typical build, the target of the search is a
feature description in an <filename>.scc</filename> file
whose name follows this format:
-
-
-I AM HERE
-
-
-
<literallayout class='monospaced'>
<replaceable>bsp_name</replaceable>-<replaceable>kernel_type</replaceable>.scc
</literallayout>
</para></listitem>
- <listitem><para>Once located, the feature description is either compiled into a simple script
- of actions, or into an existing equivalent script that is already part of the
- shipped kernel.</para></listitem>
- <listitem><para>Extra features are appended to the top-level feature description.
+ <listitem><para>
+ <emphasis>Compile Feature:</emphasis>
+ Once located, the feature description is either compiled
+ into a simple script of actions, or into an existing
+ equivalent script that is already part of the shipped
+ kernel.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Append Extra Features:</emphasis>
+ Extra features are appended to the top-level feature
+ description.
These features can come from the
<ulink
url='&YOCTO_DOCS_REF_URL;#var-KERNEL_FEATURES'><filename>KERNEL_FEATURES</filename></ulink>
- variable in recipes.</para></listitem>
- <listitem><para>Each extra feature is located, compiled and appended to the script
- as described in step three.</para></listitem>
- <listitem><para>The script is executed to produce a series of <filename>meta-*</filename>
- directories.
- These directories are descriptions of all the branches, tags, patches and configurations
that
- need to be applied to the base Git repository to completely create the
- source (build) branch for the new BSP or feature.</para></listitem>
- <listitem><para>The base repository is cloned, and the actions
- listed in the <filename>meta-*</filename> directories are applied to the
- tree.</para></listitem>
- <listitem><para>The Git repository is left with the desired branch checked out and any
- required branching, patching and tagging has been performed.</para></listitem>
+ variable in recipes.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Locate, Compile, and Append Each Feature:</emphasis>
+ Each extra feature is located, compiled and appended to
+ the script as described in step three.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Execute the Script:</emphasis>
+ The script is executed to produce files
+ <filename>.scc</filename> and <filename>.cfg</filename>
+ files in appropriate directories of the
+ <filename>yocto-kernel-cache</filename> repository.
+ These files are descriptions of all the branches, tags,
+ patches and configurations that need to be applied to the
+ base Git repository to completely create the
+ source (build) branch for the new BSP or feature.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Clone Base Repository:</emphasis>
+ The base repository is cloned, and the actions
+ listed in the <filename>yocto-kernel-cache</filename>
+ irectories are applied to the tree.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Perform Cleanup:</emphasis>
+ The Git repositories are left with the desired branches
+ checked out and any required branching, patching and
+ tagging has been performed.
+ </para></listitem>
</orderedlist>
</para>
+
<para>
- The kernel tree is now ready for developer consumption to be locally cloned,
- 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
- as shipped with the Yocto Project release.
- Any add-ons and configuration data are applied to the end of an existing branch.
+ The kernel tree and cache are ready for developer consumption to
+ be locally cloned, configured, and built into a Yocto Project
+ kernel specific to some target hardware.
+ <note>
+ <para>The generated <filename>yocto-kernel-cache</filename>
+ repository adds to the kernel as shipped with the Yocto Project
+ release.
+ Any add-ons and configuration data are applied to the end of
+ an existing branch.
The full repository generation that is found in the
official Yocto Project kernel repositories at
<ulink url='&YOCTO_GIT_URL;/cgit.cgi'>http://git.yoctoproject.org/cgit.cgi</ulink>
- is the combination of all supported boards and configurations.</para>
- <para>The technique the Yocto Project team uses is flexible and allows for seamless
- blending of an immutable history with additional patches specific to a
- deployment.
- Any additions to the kernel become an integrated part of the branches.</para>
+ is the combination of all supported boards and configurations.
+ </para>
+
+ <para>The technique the Yocto Project team uses is flexible
+ and allows for seamless blending of an immutable history with
+ additional patches specific to a deployment.
+ Any additions to the kernel become an integrated part of the
+ branches.</para>
</note>
</para>
</section>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]