diff options
Diffstat (limited to 'documentation')
| -rw-r--r-- | documentation/kernel-manual/kernel-how-to.xml | 86 |
1 files changed, 54 insertions, 32 deletions
diff --git a/documentation/kernel-manual/kernel-how-to.xml b/documentation/kernel-manual/kernel-how-to.xml index 852fbb1a90..bf45ae1729 100644 --- a/documentation/kernel-manual/kernel-how-to.xml +++ b/documentation/kernel-manual/kernel-how-to.xml | |||
| @@ -40,12 +40,24 @@ | |||
| 40 | in the product. | 40 | in the product. |
| 41 | Those feature descriptions list all necessary patches, | 41 | Those feature descriptions list all necessary patches, |
| 42 | configuration, branching, tagging and feature divisions found in the kernel. | 42 | configuration, branching, tagging and feature divisions found in the kernel. |
| 43 | Thus, the Yocto Project kernel repository (or tree) is built. | ||
| 44 | The existence of this tree allows you to build images based on your configurations | ||
| 45 | and features. | ||
| 43 | </para> | 46 | </para> |
| 44 | <para> | 47 | <para> |
| 45 | You can find the files used to describe all the valid features and BSPs in the Yocto Project | 48 | You can find the files used to describe all the valid features and BSPs in the Yocto Project |
| 46 | kernel in any clone of the kernel Git tree. | 49 | kernel in any clone of the kernel Git tree. |
| 47 | The directory <filename>meta/cfg/kernel-cache/</filename> is a snapshot of all the kernel | 50 | For example, the following command clones the Yocto Project baseline kernel that |
| 48 | configuration and feature descriptions (.scc) used to build the kernel repository. | 51 | branched off of linux.org version 2.6.37: |
| 52 | <literallayout class='monospaced'> | ||
| 53 | $ git clone http://git.yoctoproject.org/cgit/cgit.cgi/linux-yocto-2.6.37 | ||
| 54 | </literallayout> | ||
| 55 | After you switch to the <filename>meta</filename> branch within the repository | ||
| 56 | you can see a snapshot of all the kernel configuration and feature descriptions that are | ||
| 57 | used to build the kernel repository. | ||
| 58 | These descriptions are in the form of <filename>.scc</filename> files. | ||
| 59 | </para> | ||
| 60 | <para> | ||
| 49 | You should realize, however, that browsing the snapshot of feature | 61 | You should realize, however, that browsing the snapshot of feature |
| 50 | descriptions and patches is not an effective way to determine what is in a | 62 | descriptions and patches is not an effective way to determine what is in a |
| 51 | particular kernel branch. | 63 | particular kernel branch. |
| @@ -62,46 +74,56 @@ | |||
| 62 | and development. | 74 | and development. |
| 63 | </para></note> | 75 | </para></note> |
| 64 | <para> | 76 | <para> |
| 65 | The general flow for constructing a project-specific kernel tree is as follows: | 77 | The following steps describe what happens during tree construction given the introduction |
| 66 | <orderedlist> | 78 | of a new top-level kernel feature or BSP. |
| 67 | <listitem><para>A top-level kernel feature is passed to the kernel build subsystem. | 79 | These are the actions that effectively create the tree that includes the new feature, patch, |
| 68 | Normally, this is a BSP for a particular kernel type.</para></listitem> | 80 | or BSP: |
| 81 | <orderedlist> | ||
| 82 | <listitem><para>A top-level kernel feature is passed to the kernel build subsystem. | ||
| 83 | Normally, this is a BSP for a particular kernel type.</para></listitem> | ||
| 69 | 84 | ||
| 70 | <listitem><para>The file that describes the top-level feature is located by searching | 85 | <listitem><para>The file that describes the top-level feature is located by searching |
| 71 | these system directories:</para> | 86 | these system directories: |
| 72 | 87 | ||
| 73 | <itemizedlist> | 88 | <itemizedlist> |
| 74 | <listitem><para>The in-tree kernel-cache directories</para></listitem> | 89 | <listitem><para>The in-tree kernel-cache directories, which are located |
| 90 | in <filename>meta/cfg/kernel-cache</filename></para></listitem> | ||
| 75 | <!-- <listitem><para>kernel-*-cache directories in layers</para></listitem> --> | 91 | <!-- <listitem><para>kernel-*-cache directories in layers</para></listitem> --> |
| 76 | <listitem><para>Recipe SRC_URIs</para></listitem> | 92 | <listitem><para>Areas pointed to by <filename>SRC_URI</filename> statements |
| 93 | found in recipes</para></listitem> | ||
| 77 | <!-- <listitem><para>configured and default templates</para></listitem> --> | 94 | <!-- <listitem><para>configured and default templates</para></listitem> --> |
| 78 | </itemizedlist> | 95 | </itemizedlist> |
| 79 | 96 | ||
| 80 | <para>For a typical build a feature description of the format: | 97 | For a typical build, the target of the search is a |
| 81 | <bsp name>-<kernel type>.scc is the target of the search. | 98 | feature description in an <filename>.scc</filename> file |
| 82 | </para></listitem> | 99 | whose name follows this format: |
| 100 | <literallayout class='monospaced'> | ||
| 101 | <bsp_name>-<kernel_type>.scc | ||
| 102 | </literallayout> | ||
| 103 | </para></listitem> | ||
| 83 | 104 | ||
| 84 | <listitem><para>Once located, the feature description is either compiled into a simple script | 105 | <listitem><para>Once located, the feature description is either compiled into a simple script |
| 85 | of actions, or an existing equivalent script that was part of the | 106 | of actions, or into an existing equivalent script that is already part of the |
| 86 | shipped kernel is located.</para></listitem> | 107 | shipped kernel.</para></listitem> |
| 87 | 108 | ||
| 88 | <listitem><para>Extra features are appended to the top-level feature description. | 109 | <listitem><para>Extra features are appended to the top-level feature description. |
| 89 | These features can come from the KERNEL_FEATURES variable in recipes.</para></listitem> | 110 | These features can come from the <filename>KERNEL_FEATURES</filename> variable in |
| 111 | recipes.</para></listitem> | ||
| 90 | 112 | ||
| 91 | <listitem><para>Each extra feature is located, compiled and appended to the script from | 113 | <listitem><para>Each extra feature is located, compiled and appended to the script |
| 92 | step #3</para></listitem> | 114 | as described in step three.</para></listitem> |
| 93 | 115 | ||
| 94 | <listitem><para>The script is executed, and a meta-series is produced. | 116 | <listitem><para>The script is executed to produce a meta-series. |
| 95 | The meta-series is a description of all the branches, tags, patches and configurations that | 117 | The meta-series is a description of all the branches, tags, patches and configurations that |
| 96 | need to be applied to the base Git repository to completely create the | 118 | need to be applied to the base Git repository to completely create the |
| 97 | BSP source (build) branch.</para></listitem> | 119 | source (build) branch for the new BSP or feature.</para></listitem> |
| 98 | 120 | ||
| 99 | <listitem><para>The base repository is cloned, and the actions | 121 | <listitem><para>The base repository is cloned, and the actions |
| 100 | listed in the meta-series are applied to the tree.</para></listitem> | 122 | listed in the meta-series are applied to the tree.</para></listitem> |
| 101 | 123 | ||
| 102 | <listitem><para>The Git repository is left with the desired branch checked out and any | 124 | <listitem><para>The Git repository is left with the desired branch checked out and any |
| 103 | required branching, patching and tagging has been performed.</para></listitem> | 125 | required branching, patching and tagging has been performed.</para></listitem> |
| 104 | </orderedlist> | 126 | </orderedlist> |
| 105 | </para> | 127 | </para> |
| 106 | 128 | ||
| 107 | <para> | 129 | <para> |
