diff options
| -rw-r--r-- | documentation/ref-manual/technical-details.xml | 90 |
1 files changed, 57 insertions, 33 deletions
diff --git a/documentation/ref-manual/technical-details.xml b/documentation/ref-manual/technical-details.xml index 72fa42c507..2fc547136c 100644 --- a/documentation/ref-manual/technical-details.xml +++ b/documentation/ref-manual/technical-details.xml | |||
| @@ -6,41 +6,46 @@ | |||
| 6 | <title>Technical Details</title> | 6 | <title>Technical Details</title> |
| 7 | 7 | ||
| 8 | <para> | 8 | <para> |
| 9 | This chapter provides technical details for various parts of the Yocto Project. | 9 | This chapter provides technical details for various parts of the |
| 10 | Yocto Project. | ||
| 10 | Currently, topics include Yocto Project components, | 11 | Currently, topics include Yocto Project components, |
| 11 | shared state (sstate) cache, x32, and Licenses. | 12 | cross-toolchain generation, shared state (sstate) cache, |
| 13 | x32, Wayland support, and Licenses. | ||
| 12 | </para> | 14 | </para> |
| 13 | 15 | ||
| 14 | <section id='usingpoky-components'> | 16 | <section id='usingpoky-components'> |
| 15 | <title>Yocto Project Components</title> | 17 | <title>Yocto Project Components</title> |
| 16 | 18 | ||
| 17 | <para> | 19 | <para> |
| 18 | The BitBake task executor together with various types of configuration files form the | 20 | The |
| 19 | OpenEmbedded Core. | 21 | <ulink url='&YOCTO_DOCS_DEV_URL;#bitbake-term'>BitBake</ulink> |
| 20 | This section overviews these by describing what they are used for | 22 | task executor together with various types of configuration files form |
| 21 | and how they interact. | 23 | the OpenEmbedded Core. |
| 24 | This section overviews these components by describing their use and | ||
| 25 | how they interact. | ||
| 22 | </para> | 26 | </para> |
| 23 | 27 | ||
| 24 | <para> | 28 | <para> |
| 25 | BitBake handles the parsing and execution of the data files. | 29 | BitBake handles the parsing and execution of the data files. |
| 26 | The data itself is of various types: | 30 | The data itself is of various types: |
| 27 | <itemizedlist> | 31 | <itemizedlist> |
| 28 | <listitem><para><emphasis>Recipes:</emphasis> Provides details about particular | 32 | <listitem><para><emphasis>Recipes:</emphasis> Provides details |
| 29 | pieces of software.</para></listitem> | 33 | about particular pieces of software. |
| 30 | <listitem><para><emphasis>Class Data:</emphasis> Abstracts common build | 34 | </para></listitem> |
| 31 | information (e.g. how to build a Linux kernel).</para></listitem> | 35 | <listitem><para><emphasis>Class Data:</emphasis> Abstracts |
| 32 | <listitem><para><emphasis>Configuration Data:</emphasis> Defines machine-specific settings, | 36 | common build information (e.g. how to build a Linux kernel). |
| 33 | policy decisions, and so forth. | 37 | </para></listitem> |
| 34 | Configuration data acts as the glue to bind everything together.</para></listitem> | 38 | <listitem><para><emphasis>Configuration Data:</emphasis> Defines |
| 35 | </itemizedlist> | 39 | machine-specific settings, policy decisions, and so forth. |
| 36 | For more information on data, see the | 40 | Configuration data acts as the glue to bind everything |
| 37 | "<ulink url='&YOCTO_DOCS_DEV_URL;#yocto-project-terms'>Yocto Project Terms</ulink>" | 41 | together. |
| 38 | section in the Yocto Project Development Manual. | 42 | </para></listitem> |
| 43 | </itemizedlist> | ||
| 39 | </para> | 44 | </para> |
| 40 | 45 | ||
| 41 | <para> | 46 | <para> |
| 42 | BitBake knows how to combine multiple data sources together and refers to each data source | 47 | BitBake knows how to combine multiple data sources together and refers |
| 43 | as a layer. | 48 | to each data source as a layer. |
| 44 | For information on layers, see the | 49 | For information on layers, see the |
| 45 | "<ulink url='&YOCTO_DOCS_DEV_URL;#understanding-and-creating-layers'>Understanding and | 50 | "<ulink url='&YOCTO_DOCS_DEV_URL;#understanding-and-creating-layers'>Understanding and |
| 46 | Creating Layers</ulink>" section of the Yocto Project Development Manual. | 51 | Creating Layers</ulink>" section of the Yocto Project Development Manual. |
| @@ -48,8 +53,10 @@ | |||
| 48 | 53 | ||
| 49 | <para> | 54 | <para> |
| 50 | Following are some brief details on these core components. | 55 | Following are some brief details on these core components. |
| 51 | For more detailed information on these components, see the | 56 | For additional information on how these components interact during |
| 52 | "<link linkend='ref-structure'>Source Directory Structure</link>" chapter. | 57 | a build, see the |
| 58 | "<link linkend='closer-look'>A Closer Look at the Yocto Project Development Environment</link>" | ||
| 59 | Chapter. | ||
| 53 | </para> | 60 | </para> |
| 54 | 61 | ||
| 55 | <section id='usingpoky-components-bitbake'> | 62 | <section id='usingpoky-components-bitbake'> |
| @@ -60,6 +67,15 @@ | |||
| 60 | and is responsible for parsing the | 67 | and is responsible for parsing the |
| 61 | <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>, | 68 | <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>, |
| 62 | generating a list of tasks from it, and then executing those tasks. | 69 | generating a list of tasks from it, and then executing those tasks. |
| 70 | </para> | ||
| 71 | |||
| 72 | <para> | ||
| 73 | This section briefly introduces BitBake. | ||
| 74 | If you want more information on BitBake, see the | ||
| 75 | <ulink url='&YOCTO_DOCS_BB_URL;#bitbake-user-manual'>BitBake User Manual</ulink>. | ||
| 76 | </para> | ||
| 77 | |||
| 78 | <para> | ||
| 63 | To see a list of the options BitBake supports, use either of | 79 | To see a list of the options BitBake supports, use either of |
| 64 | the following commands: | 80 | the following commands: |
| 65 | <literallayout class='monospaced'> | 81 | <literallayout class='monospaced'> |
| @@ -72,7 +88,9 @@ | |||
| 72 | The most common usage for BitBake is <filename>bitbake <packagename></filename>, where | 88 | The most common usage for BitBake is <filename>bitbake <packagename></filename>, where |
| 73 | <filename>packagename</filename> is the name of the package you want to build | 89 | <filename>packagename</filename> is the name of the package you want to build |
| 74 | (referred to as the "target" in this manual). | 90 | (referred to as the "target" in this manual). |
| 75 | The target often equates to the first part of a <filename>.bb</filename> filename. | 91 | The target often equates to the first part of a recipe's filename |
| 92 | (e.g. "foo" for a recipe named | ||
| 93 | <filename>foo_1.3.0-r0.bb</filename>). | ||
| 76 | So, to process the <filename>matchbox-desktop_1.2.3.bb</filename> recipe file, you | 94 | So, to process the <filename>matchbox-desktop_1.2.3.bb</filename> recipe file, you |
| 77 | might type the following: | 95 | might type the following: |
| 78 | <literallayout class='monospaced'> | 96 | <literallayout class='monospaced'> |
| @@ -99,11 +117,12 @@ | |||
| 99 | <para> | 117 | <para> |
| 100 | A useful BitBake option to consider is the <filename>-k</filename> or | 118 | A useful BitBake option to consider is the <filename>-k</filename> or |
| 101 | <filename>--continue</filename> option. | 119 | <filename>--continue</filename> option. |
| 102 | This option instructs BitBake to try and continue processing the job as much | 120 | This option instructs BitBake to try and continue processing the job |
| 103 | as possible even after encountering an error. | 121 | as long as possible even after encountering an error. |
| 104 | When an error occurs, the target that | 122 | When an error occurs, the target that |
| 105 | failed and those that depend on it cannot be remade. | 123 | failed and those that depend on it cannot be remade. |
| 106 | However, when you use this option other dependencies can still be processed. | 124 | However, when you use this option other dependencies can still be |
| 125 | processed. | ||
| 107 | </para> | 126 | </para> |
| 108 | </section> | 127 | </section> |
| 109 | 128 | ||
| @@ -111,12 +130,15 @@ | |||
| 111 | <title>Metadata (Recipes)</title> | 130 | <title>Metadata (Recipes)</title> |
| 112 | 131 | ||
| 113 | <para> | 132 | <para> |
| 114 | The <filename>.bb</filename> files are usually referred to as "recipes." | 133 | Files that have the <filename>.bb</filename> suffix are "recipes" |
| 115 | In general, a recipe contains information about a single piece of software. | 134 | files. |
| 135 | In general, a recipe contains information about a single piece of | ||
| 136 | software. | ||
| 116 | This information includes the location from which to download the | 137 | This information includes the location from which to download the |
| 117 | unaltered source, any source patches to be applied to that source | 138 | unaltered source, any source patches to be applied to that source |
| 118 | (if needed), which special configuration options to apply, | 139 | (if needed), which special configuration options to apply, |
| 119 | how to compile the source files, and how to package the compiled output. | 140 | how to compile the source files, and how to package the compiled |
| 141 | output. | ||
| 120 | </para> | 142 | </para> |
| 121 | 143 | ||
| 122 | <para> | 144 | <para> |
| @@ -134,10 +156,12 @@ | |||
| 134 | Class files (<filename>.bbclass</filename>) contain information that | 156 | Class files (<filename>.bbclass</filename>) contain information that |
| 135 | is useful to share between | 157 | is useful to share between |
| 136 | <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink> files. | 158 | <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink> files. |
| 137 | An example is the Autotools class, which contains | 159 | An example is the |
| 138 | common settings for any application that Autotools uses. | 160 | <link linkend='ref-classes-autotools'><filename>autotools</filename></link> |
| 139 | The "<link linkend='ref-classes'>Classes</link>" chapter provides details | 161 | class, which contains common settings for any application that |
| 140 | about common classes and how to use them. | 162 | Autotools uses. |
| 163 | The "<link linkend='ref-classes'>Classes</link>" chapter provides | ||
| 164 | details about classes and how to use them. | ||
| 141 | </para> | 165 | </para> |
| 142 | </section> | 166 | </section> |
| 143 | 167 | ||
