diff options
| author | Scott Rifenbark <scott.m.rifenbark@intel.com> | 2012-07-02 09:59:11 -0700 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-07-03 14:55:02 +0100 |
| commit | 85673e5466804f6918be72b3b27328783b5ac5c9 (patch) | |
| tree | 27bbb4622ad024268b1a5980eb2d842fb6e4739d /documentation/dev-manual | |
| parent | 7606c30c1915bfa192e5b0d125dc6b6e5e7f1857 (diff) | |
| download | poky-85673e5466804f6918be72b3b27328783b5ac5c9.tar.gz | |
documentation/dev-manual: Scrub for Yocto Project term
I have replaced the term "Yocto Project" with more appropriate terms
where possible.
(From yocto-docs rev: 622ef9a2b4897ecd151b641b43d7706ab673c989)
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/dev-manual')
| -rw-r--r-- | documentation/dev-manual/dev-manual-common-tasks.xml | 173 | ||||
| -rw-r--r-- | documentation/dev-manual/dev-manual-intro.xml | 35 | ||||
| -rw-r--r-- | documentation/dev-manual/dev-manual-kernel-appendix.xml | 92 | ||||
| -rw-r--r-- | documentation/dev-manual/dev-manual-model.xml | 137 | ||||
| -rw-r--r-- | documentation/dev-manual/dev-manual-newbie.xml | 199 | ||||
| -rw-r--r-- | documentation/dev-manual/dev-manual-start.xml | 72 |
6 files changed, 320 insertions, 388 deletions
diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml index 067b5dfcc2..f326dc5209 100644 --- a/documentation/dev-manual/dev-manual-common-tasks.xml +++ b/documentation/dev-manual/dev-manual-common-tasks.xml | |||
| @@ -7,7 +7,7 @@ | |||
| 7 | <title>Common Tasks</title> | 7 | <title>Common Tasks</title> |
| 8 | <para> | 8 | <para> |
| 9 | This chapter describes standard tasks such as adding new | 9 | This chapter describes standard tasks such as adding new |
| 10 | software packages, extending or customizing images, and porting the Yocto Project to | 10 | software packages, extending or customizing images, and porting work to |
| 11 | new hardware (adding a new machine). | 11 | new hardware (adding a new machine). |
| 12 | The chapter also describes how to combine multiple | 12 | The chapter also describes how to combine multiple |
| 13 | versions of library files into a single image, how to handle a package name alias, and | 13 | versions of library files into a single image, how to handle a package name alias, and |
| @@ -18,7 +18,7 @@ | |||
| 18 | <title>Understanding and Creating Layers</title> | 18 | <title>Understanding and Creating Layers</title> |
| 19 | 19 | ||
| 20 | <para> | 20 | <para> |
| 21 | The Yocto Project build system supports organizing <link linkend='metadata'>metadata</link> | 21 | The OpenEmbedded build system supports organizing <link linkend='metadata'>metadata</link> |
| 22 | into multiple layers. | 22 | into multiple layers. |
| 23 | Layers allow you to isolate different types of customizations from each other. | 23 | Layers allow you to isolate different types of customizations from each other. |
| 24 | You might find it tempting to keep everything in one layer when working on a single project. | 24 | You might find it tempting to keep everything in one layer when working on a single project. |
| @@ -43,13 +43,13 @@ | |||
| 43 | </para> | 43 | </para> |
| 44 | 44 | ||
| 45 | <section id='yocto-project-layers'> | 45 | <section id='yocto-project-layers'> |
| 46 | <title>Yocto Project Layers</title> | 46 | <title>Layers</title> |
| 47 | 47 | ||
| 48 | <para> | 48 | <para> |
| 49 | The Yocto Project contains several layers right out of the box. | 49 | The source directory contains several layers right out of the box. |
| 50 | You can easily identify a layer in the Yocto Project by the name of its folder. | 50 | You can easily identify a layer in the source directory by its folder name. |
| 51 | Folders that are layers begin with the string <filename>meta</filename>. | 51 | Folders that are layers begin with the string <filename>meta</filename>. |
| 52 | For example, when you set up the <link linkend='yocto-project-files'>Yocto Project Files</link> | 52 | For example, when you set up the <link linkend='source-directory'>source directory</link> |
| 53 | structure, you will see several layers: <filename>meta</filename>, <filename>meta-demoapps</filename>, | 53 | structure, you will see several layers: <filename>meta</filename>, <filename>meta-demoapps</filename>, |
| 54 | <filename>meta-skeleton</filename>, and <filename>meta-yocto</filename>. | 54 | <filename>meta-skeleton</filename>, and <filename>meta-yocto</filename>. |
| 55 | Each of these folders is a layer. | 55 | Each of these folders is a layer. |
| @@ -69,7 +69,7 @@ | |||
| 69 | <title>Creating Your Own Layer</title> | 69 | <title>Creating Your Own Layer</title> |
| 70 | 70 | ||
| 71 | <para> | 71 | <para> |
| 72 | It is very easy to create your own layer to use with the Yocto Project. | 72 | It is very easy to create your own layer to use with the OpenEmbedded build system. |
| 73 | Follow these general steps to create your layer: | 73 | Follow these general steps to create your layer: |
| 74 | <orderedlist> | 74 | <orderedlist> |
| 75 | <listitem><para><emphasis>Check Existing Layers:</emphasis> Before creating a new layer, | 75 | <listitem><para><emphasis>Check Existing Layers:</emphasis> Before creating a new layer, |
| @@ -170,13 +170,14 @@ | |||
| 170 | If this is the case, you need to address that deficiency instead of overlaying | 170 | If this is the case, you need to address that deficiency instead of overlaying |
| 171 | the include file. | 171 | the include file. |
| 172 | For example, consider how Qt 4 database support plugins are configured. | 172 | For example, consider how Qt 4 database support plugins are configured. |
| 173 | The Yocto Project does not have MySQL or PostgreSQL, however OpenEmbedded's | 173 | The source directory does not have |
| 174 | MySQL or PostgreSQL, however OpenEmbedded's | ||
| 174 | layer <filename>meta-oe</filename> does. | 175 | layer <filename>meta-oe</filename> does. |
| 175 | Consequently, <filename>meta-oe</filename> uses <filename>.bbappend</filename> | 176 | Consequently, <filename>meta-oe</filename> uses <filename>.bbappend</filename> |
| 176 | files to modify the <filename>QT_SQL_DRIVER_FLAGS</filename> variable to enable | 177 | files to modify the <filename>QT_SQL_DRIVER_FLAGS</filename> variable to enable |
| 177 | the appropriate plugins. | 178 | the appropriate plugins. |
| 178 | This variable was added to the <filename>qt4.inc</filename> include file in | 179 | This variable was added to the <filename>qt4.inc</filename> include file in |
| 179 | The Yocto Project specifically to allow the <filename>meta-oe</filename> layer | 180 | the source directory specifically to allow the <filename>meta-oe</filename> layer |
| 180 | to be able to control which plugins are built.</para></listitem> | 181 | to be able to control which plugins are built.</para></listitem> |
| 181 | </itemizedlist> | 182 | </itemizedlist> |
| 182 | </para> | 183 | </para> |
| @@ -187,10 +188,10 @@ | |||
| 187 | <listitem><para>Store custom layers in a Git repository that uses the | 188 | <listitem><para>Store custom layers in a Git repository that uses the |
| 188 | <filename>meta-<layer_name></filename> format.</para></listitem> | 189 | <filename>meta-<layer_name></filename> format.</para></listitem> |
| 189 | <listitem><para>Clone the repository alongside other <filename>meta</filename> | 190 | <listitem><para>Clone the repository alongside other <filename>meta</filename> |
| 190 | directories in | 191 | directories in the |
| 191 | <link linkend='yocto-project-files'>Yocto Project Files</link>.</para></listitem> | 192 | <link linkend='source-directory'>source directory</link>.</para></listitem> |
| 192 | </itemizedlist> | 193 | </itemizedlist> |
| 193 | Following these recommendations keeps your Yocto Project files area and | 194 | Following these recommendations keeps your source directory and |
| 194 | its configuration entirely inside the Yocto Project's core base. | 195 | its configuration entirely inside the Yocto Project's core base. |
| 195 | </para> | 196 | </para> |
| 196 | </section> | 197 | </section> |
| @@ -199,11 +200,11 @@ | |||
| 199 | <title>Enabling Your Layer</title> | 200 | <title>Enabling Your Layer</title> |
| 200 | 201 | ||
| 201 | <para> | 202 | <para> |
| 202 | Before the Yocto Project build system can use your new layer, you need to enable it. | 203 | Before the OpenEmbedded build system can use your new layer, you need to enable it. |
| 203 | To enable your layer, simply add your layer's path to the | 204 | To enable your layer, simply add your layer's path to the |
| 204 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-BBLAYERS'>BBLAYERS</ulink></filename> | 205 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-BBLAYERS'>BBLAYERS</ulink></filename> |
| 205 | variable in your <filename>conf/bblayers.conf</filename> file, which is found in the | 206 | variable in your <filename>conf/bblayers.conf</filename> file, which is found in the |
| 206 | <link linkend='yocto-project-build-directory'>Yocto Project Build Directory</link>. | 207 | <link linkend='build-directory'>build directory</link>. |
| 207 | The following example shows how to enable a layer named <filename>meta-mylayer</filename>: | 208 | The following example shows how to enable a layer named <filename>meta-mylayer</filename>: |
| 208 | <literallayout class='monospaced'> | 209 | <literallayout class='monospaced'> |
| 209 | LCONF_VERSION = "1" | 210 | LCONF_VERSION = "1" |
| @@ -222,8 +223,8 @@ | |||
| 222 | <filename>BBLAYERS</filename> variable within the <filename>conf/bblayers.conf</filename> | 223 | <filename>BBLAYERS</filename> variable within the <filename>conf/bblayers.conf</filename> |
| 223 | file. | 224 | file. |
| 224 | During the processing of each <filename>conf/layer.conf</filename> file, BitBake adds the | 225 | During the processing of each <filename>conf/layer.conf</filename> file, BitBake adds the |
| 225 | recipes, classes and configurations contained within the particular layer to the Yocto | 226 | recipes, classes and configurations contained within the particular layer to the source |
| 226 | Project. | 227 | directory. |
| 227 | </para> | 228 | </para> |
| 228 | </section> | 229 | </section> |
| 229 | 230 | ||
| @@ -267,7 +268,7 @@ | |||
| 267 | <para> | 268 | <para> |
| 268 | As an example, consider the main formfactor recipe and a corresponding formfactor | 269 | As an example, consider the main formfactor recipe and a corresponding formfactor |
| 269 | append file both from the | 270 | append file both from the |
| 270 | <link linkend='yocto-project-files'>Yocto Project Files</link>. | 271 | <link linkend='source-directory'>source directory</link>. |
| 271 | Here is the main formfactor recipe, which is named <filename>formfactor_0.0.bb</filename> and | 272 | Here is the main formfactor recipe, which is named <filename>formfactor_0.0.bb</filename> and |
| 272 | located in the meta layer at <filename>meta/recipes-bsp/formfactor</filename>: | 273 | located in the meta layer at <filename>meta/recipes-bsp/formfactor</filename>: |
| 273 | <literallayout class='monospaced'> | 274 | <literallayout class='monospaced'> |
| @@ -450,7 +451,7 @@ | |||
| 450 | <title>Customizing Images</title> | 451 | <title>Customizing Images</title> |
| 451 | 452 | ||
| 452 | <para> | 453 | <para> |
| 453 | You can customize Yocto Project images to satisfy particular requirements. | 454 | You can customize images to satisfy particular requirements. |
| 454 | This section describes several methods and provides guidelines for each. | 455 | This section describes several methods and provides guidelines for each. |
| 455 | </para> | 456 | </para> |
| 456 | 457 | ||
| @@ -552,13 +553,11 @@ | |||
| 552 | <filename>EXTRA_IMAGE_FEATURES</filename></title> | 553 | <filename>EXTRA_IMAGE_FEATURES</filename></title> |
| 553 | 554 | ||
| 554 | <para> | 555 | <para> |
| 555 | Ultimately users might want to add extra image features to the set used by | 556 | Ultimately users might want to add extra image features to the set by using the |
| 556 | Yocto Project with the | ||
| 557 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_FEATURES'>IMAGE_FEATURES</ulink></filename> | 557 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_FEATURES'>IMAGE_FEATURES</ulink></filename> |
| 558 | variable. | 558 | variable. |
| 559 | To create these features, the best reference is | 559 | To create these features, the best reference is |
| 560 | <filename>meta/classes/core-image.bbclass</filename>, which shows how the | 560 | <filename>meta/classes/core-image.bbclass</filename>, which shows how to achieve this. |
| 561 | Yocto Project achieves this. | ||
| 562 | In summary, the file looks at the contents of the | 561 | In summary, the file looks at the contents of the |
| 563 | <filename>IMAGE_FEATURES</filename> | 562 | <filename>IMAGE_FEATURES</filename> |
| 564 | variable and then maps that into a set of tasks or packages. | 563 | variable and then maps that into a set of tasks or packages. |
| @@ -569,8 +568,8 @@ | |||
| 569 | with specialized image <filename>.bb</filename> files. | 568 | with specialized image <filename>.bb</filename> files. |
| 570 | You can also add more features by configuring the | 569 | You can also add more features by configuring the |
| 571 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_IMAGE_FEATURES'>EXTRA_IMAGE_FEATURES</ulink></filename> | 570 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_IMAGE_FEATURES'>EXTRA_IMAGE_FEATURES</ulink></filename> |
| 572 | variable in the <filename>local.conf</filename> file found in the Yocto Project | 571 | variable in the <filename>local.conf</filename> file found in the source directory |
| 573 | files located in the build directory. | 572 | located in the build directory. |
| 574 | </para> | 573 | </para> |
| 575 | 574 | ||
| 576 | <para> | 575 | <para> |
| @@ -648,7 +647,7 @@ | |||
| 648 | <title>Adding a Package</title> | 647 | <title>Adding a Package</title> |
| 649 | 648 | ||
| 650 | <para> | 649 | <para> |
| 651 | To add a package into the Yocto Project you need to write a recipe for it. | 650 | To add a package you need to write a recipe for it. |
| 652 | Writing a recipe means creating a <filename>.bb</filename> file that sets some | 651 | Writing a recipe means creating a <filename>.bb</filename> file that sets some |
| 653 | variables. | 652 | variables. |
| 654 | For information on variables that are useful for recipes and for information about recipe naming | 653 | For information on variables that are useful for recipes and for information about recipe naming |
| @@ -662,7 +661,7 @@ | |||
| 662 | whether someone else has written one already. | 661 | whether someone else has written one already. |
| 663 | OpenEmbedded is a good place to look as it has a wider scope and range of packages. | 662 | OpenEmbedded is a good place to look as it has a wider scope and range of packages. |
| 664 | Because the Yocto Project aims to be compatible with OpenEmbedded, most recipes | 663 | Because the Yocto Project aims to be compatible with OpenEmbedded, most recipes |
| 665 | you find there should work in Yocto Project. | 664 | you find there should work for you. |
| 666 | </para> | 665 | </para> |
| 667 | 666 | ||
| 668 | <para> | 667 | <para> |
| @@ -1001,53 +1000,7 @@ | |||
| 1001 | </section> | 1000 | </section> |
| 1002 | 1001 | ||
| 1003 | <section id="platdev-newmachine"> | 1002 | <section id="platdev-newmachine"> |
| 1004 | <title>Porting the Yocto Project to a New Machine</title> | 1003 | <title>Adding a New Machine</title> |
| 1005 | |||
| 1006 | <!-- | ||
| 1007 | WRITER NOTES: | ||
| 1008 | |||
| 1009 | I had this chat with Richard: | ||
| 1010 | |||
| 1011 | scottrif: Terminology question: We speak of "New Machines" or "Adding a New Machine" | ||
| 1012 | in YP. Are "Machines" restricted to architectures? In poky/meta/conf/machine we have .conf | ||
| 1013 | files for the five architectures. What exactly does the term "Machine" mean? | ||
| 1014 | |||
| 1015 | RP: no, each architecture has multiple different machines. A "machine" can correspond | ||
| 1016 | to a particular reference board or hardware product | ||
| 1017 | we just have one reference machine per architecture | ||
| 1018 | We're a little vague sometimes as "machine" can refer to either an individual platform, | ||
| 1019 | or in some cases a set of different platforms with common structure | ||
| 1020 | (e.g. netbooks) | ||
| 1021 | |||
| 1022 | scottrif: So our reference machines we supply are the five qemu* machines? | ||
| 1023 | |||
| 1024 | RP: in oe-core, plus one "real" target in meta-yocto | ||
| 1025 | (per arch) | ||
| 1026 | |||
| 1027 | scottrif: I see four in meta-yocto/conf/machine. Shouldn't there be five if there is one | ||
| 1028 | "real" target per architecture? | ||
| 1029 | |||
| 1030 | RP: yes, we don't have one for x86_64 :/ | ||
| 1031 | |||
| 1032 | scottrif: I think it is a bit difficult to map our four poky/meta-yocto/conf/machines to one of our | ||
| 1033 | five architectures. Some have key words in there that identify the architecture but | ||
| 1034 | beagleboard and atom-pc don't. | ||
| 1035 | We have a section that describes adding a Machine Configuration file to Yocto and | ||
| 1036 | it states that TARGET_ARCH is one of the most important variables that need to be | ||
| 1037 | set in the .conf file. The four I am looking at don't have that variable. | ||
| 1038 | |||
| 1039 | RP: That has changed a little now. You need to include the appropriate tune file | ||
| 1040 | which will set it for you | ||
| 1041 | People had a tendency not to set all the right pieces so it got abstracted | ||
| 1042 | |||
| 1043 | scottrif: Got it. I see them in poky/meta/conf/machine/include. | ||
| 1044 | |||
| 1045 | SOME CONCLUSIONS: | ||
| 1046 | |||
| 1047 | I need to define the term machine. It is confusing. Then, this section needs to be cleared up | ||
| 1048 | so that there are some definite steps on how to do this. I need more detail here. | ||
| 1049 | |||
| 1050 | --> | ||
| 1051 | 1004 | ||
| 1052 | <para> | 1005 | <para> |
| 1053 | Adding a new machine to the Yocto Project is a straightforward process. | 1006 | Adding a new machine to the Yocto Project is a straightforward process. |
| @@ -1060,7 +1013,7 @@ so that there are some definite steps on how to do this. I need more detail her | |||
| 1060 | </para> | 1013 | </para> |
| 1061 | 1014 | ||
| 1062 | <para> | 1015 | <para> |
| 1063 | For a complete example that shows how to add a new machine to the Yocto Project, | 1016 | For a complete example that shows how to add a new machine, |
| 1064 | see the | 1017 | see the |
| 1065 | "<ulink url='&YOCTO_DOCS_DEV_URL;#dev-manual-bsp-appendix'>BSP Development Example</ulink>" | 1018 | "<ulink url='&YOCTO_DOCS_DEV_URL;#dev-manual-bsp-appendix'>BSP Development Example</ulink>" |
| 1066 | in Appendix A. | 1019 | in Appendix A. |
| @@ -1072,7 +1025,8 @@ so that there are some definite steps on how to do this. I need more detail her | |||
| 1072 | <para> | 1025 | <para> |
| 1073 | To add a machine configuration you need to add a <filename>.conf</filename> file | 1026 | To add a machine configuration you need to add a <filename>.conf</filename> file |
| 1074 | with details of the device being added to the <filename>conf/machine/</filename> file. | 1027 | with details of the device being added to the <filename>conf/machine/</filename> file. |
| 1075 | The name of the file determines the name the Yocto Project uses to reference the new machine. | 1028 | The name of the file determines the name the OpenEmbedded build system |
| 1029 | uses to reference the new machine. | ||
| 1076 | </para> | 1030 | </para> |
| 1077 | 1031 | ||
| 1078 | <para> | 1032 | <para> |
| @@ -1110,12 +1064,12 @@ so that there are some definite steps on how to do this. I need more detail her | |||
| 1110 | <title>Adding a Kernel for the Machine</title> | 1064 | <title>Adding a Kernel for the Machine</title> |
| 1111 | 1065 | ||
| 1112 | <para> | 1066 | <para> |
| 1113 | The Yocto Project needs to be able to build a kernel for the machine. | 1067 | The OpenEmbedded build system needs to be able to build a kernel for the machine. |
| 1114 | You need to either create a new kernel recipe for this machine, or extend an | 1068 | You need to either create a new kernel recipe for this machine, or extend an |
| 1115 | existing recipe. | 1069 | existing recipe. |
| 1116 | You can find several kernel examples in the | 1070 | You can find several kernel examples in the |
| 1117 | Yocto Project file's <filename>meta/recipes-kernel/linux</filename> | 1071 | source directory at <filename>meta/recipes-kernel/linux</filename> |
| 1118 | directory that you can use as references. | 1072 | that you can use as references. |
| 1119 | </para> | 1073 | </para> |
| 1120 | 1074 | ||
| 1121 | <para> | 1075 | <para> |
| @@ -1153,8 +1107,8 @@ so that there are some definite steps on how to do this. I need more detail her | |||
| 1153 | 1107 | ||
| 1154 | <para> | 1108 | <para> |
| 1155 | A formfactor configuration file provides information about the | 1109 | A formfactor configuration file provides information about the |
| 1156 | target hardware for which the Yocto Project is building and information that | 1110 | target hardware for which the image is being built and information that |
| 1157 | the Yocto Project cannot obtain from other sources such as the kernel. | 1111 | the build system cannot obtain from other sources such as the kernel. |
| 1158 | Some examples of information contained in a formfactor configuration file include | 1112 | Some examples of information contained in a formfactor configuration file include |
| 1159 | framebuffer orientation, whether or not the system has a keyboard, | 1113 | framebuffer orientation, whether or not the system has a keyboard, |
| 1160 | the positioning of the keyboard in relation to the screen, and | 1114 | the positioning of the keyboard in relation to the screen, and |
| @@ -1162,9 +1116,9 @@ so that there are some definite steps on how to do this. I need more detail her | |||
| 1162 | </para> | 1116 | </para> |
| 1163 | 1117 | ||
| 1164 | <para> | 1118 | <para> |
| 1165 | The Yocto Project uses reasonable defaults in most cases, but if customization is | 1119 | The build system uses reasonable defaults in most cases, but if customization is |
| 1166 | necessary you need to create a <filename>machconfig</filename> file | 1120 | necessary you need to create a <filename>machconfig</filename> file |
| 1167 | in the Yocto Project file's <filename>meta/recipes-bsp/formfactor/files</filename> | 1121 | in the <filename>meta/recipes-bsp/formfactor/files</filename> |
| 1168 | directory. | 1122 | directory. |
| 1169 | This directory contains directories for specific machines such as | 1123 | This directory contains directories for specific machines such as |
| 1170 | <filename>qemuarm</filename> and <filename>qemux86</filename>. | 1124 | <filename>qemuarm</filename> and <filename>qemux86</filename>. |
| @@ -1237,7 +1191,7 @@ so that there are some definite steps on how to do this. I need more detail her | |||
| 1237 | extended to support multiple libraries. | 1191 | extended to support multiple libraries. |
| 1238 | Many standard recipes are already extended and support multiple libraries. | 1192 | Many standard recipes are already extended and support multiple libraries. |
| 1239 | You can check in the <filename>meta/conf/multilib.conf</filename> | 1193 | You can check in the <filename>meta/conf/multilib.conf</filename> |
| 1240 | configuration file in the Yocto Project files directory to see how this is | 1194 | configuration file in the source directory to see how this is |
| 1241 | done using the <filename>BBCLASSEXTEND</filename> variable. | 1195 | done using the <filename>BBCLASSEXTEND</filename> variable. |
| 1242 | Eventually, all recipes will be covered and this list will be unneeded. | 1196 | Eventually, all recipes will be covered and this list will be unneeded. |
| 1243 | </para> | 1197 | </para> |
| @@ -1266,7 +1220,7 @@ so that there are some definite steps on how to do this. I need more detail her | |||
| 1266 | combination of multiple libraries you want to build. | 1220 | combination of multiple libraries you want to build. |
| 1267 | You accomplish this through your <filename>local.conf</filename> | 1221 | You accomplish this through your <filename>local.conf</filename> |
| 1268 | configuration file in the | 1222 | configuration file in the |
| 1269 | <link linkend='yocto-project-build-directory'>Yocto Project Build Directory</link>. | 1223 | <link linkend='build-directory'>build directory</link>. |
| 1270 | An example configuration would be as follows: | 1224 | An example configuration would be as follows: |
| 1271 | <literallayout class='monospaced'> | 1225 | <literallayout class='monospaced'> |
| 1272 | MACHINE = "qemux86-64" | 1226 | MACHINE = "qemux86-64" |
| @@ -1311,7 +1265,7 @@ so that there are some definite steps on how to do this. I need more detail her | |||
| 1311 | <listitem><para>A unique architecture is defined for the Multilib packages, | 1265 | <listitem><para>A unique architecture is defined for the Multilib packages, |
| 1312 | along with creating a unique deploy folder under | 1266 | along with creating a unique deploy folder under |
| 1313 | <filename>tmp/deploy/rpm</filename> in the | 1267 | <filename>tmp/deploy/rpm</filename> in the |
| 1314 | <link linkend='yocto-project-build-directory'>Yocto Project Build Directory</link>. | 1268 | <link linkend='build-directory'>build directory</link>. |
| 1315 | For example, consider <filename>lib32</filename> in a | 1269 | For example, consider <filename>lib32</filename> in a |
| 1316 | <filename>qemux86-64</filename> image. | 1270 | <filename>qemux86-64</filename> image. |
| 1317 | The possible architectures in the system are "all", "qemux86_64", | 1271 | The possible architectures in the system are "all", "qemux86_64", |
| @@ -1386,7 +1340,7 @@ so that there are some definite steps on how to do this. I need more detail her | |||
| 1386 | To use the <filename>menuconfig</filename> tool in the Yocto Project development | 1340 | To use the <filename>menuconfig</filename> tool in the Yocto Project development |
| 1387 | environment, you must build the tool using BitBake. | 1341 | environment, you must build the tool using BitBake. |
| 1388 | The following commands build and invoke <filename>menuconfig</filename> assuming the | 1342 | The following commands build and invoke <filename>menuconfig</filename> assuming the |
| 1389 | Yocto Project files top-level directory is <filename>~/poky</filename>: | 1343 | source directory top-level folder is <filename>~/poky</filename>: |
| 1390 | <literallayout class='monospaced'> | 1344 | <literallayout class='monospaced'> |
| 1391 | $ cd ~/poky | 1345 | $ cd ~/poky |
| 1392 | $ source oe-init-build-env | 1346 | $ source oe-init-build-env |
| @@ -1426,7 +1380,7 @@ so that there are some definite steps on how to do this. I need more detail her | |||
| 1426 | Where do you put your configuration files? | 1380 | Where do you put your configuration files? |
| 1427 | You can place these configuration files in the same area pointed to by | 1381 | You can place these configuration files in the same area pointed to by |
| 1428 | <filename>SRC_URI</filename>. | 1382 | <filename>SRC_URI</filename>. |
| 1429 | The Yocto Project build process will pick up the configuration and add it to the | 1383 | The OpenEmbedded build system will pick up the configuration and add it to the |
| 1430 | kernel's configuration. | 1384 | kernel's configuration. |
| 1431 | For example, assume you add the following to your | 1385 | For example, assume you add the following to your |
| 1432 | <filename>linux-yocto_3.0.bbappend</filename> file: | 1386 | <filename>linux-yocto_3.0.bbappend</filename> file: |
| @@ -1608,7 +1562,7 @@ so that there are some definite steps on how to do this. I need more detail her | |||
| 1608 | <para> | 1562 | <para> |
| 1609 | Sometimes a package name you are using might exist under an alias or as a similarly named | 1563 | Sometimes a package name you are using might exist under an alias or as a similarly named |
| 1610 | package in a different distribution. | 1564 | package in a different distribution. |
| 1611 | The Yocto Project implements a <filename>distro_check</filename> | 1565 | The OpenEmbedded build system implements a <filename>distro_check</filename> |
| 1612 | task that automatically connects to major distributions | 1566 | task that automatically connects to major distributions |
| 1613 | and checks for these situations. | 1567 | and checks for these situations. |
| 1614 | If the package exists under a different name in a different distribution, you get a | 1568 | If the package exists under a different name in a different distribution, you get a |
| @@ -1631,17 +1585,17 @@ so that there are some definite steps on how to do this. I need more detail her | |||
| 1631 | 1585 | ||
| 1632 | <para> | 1586 | <para> |
| 1633 | If you have more than one distribution alias, separate them with a space. | 1587 | If you have more than one distribution alias, separate them with a space. |
| 1634 | Note that the Yocto Project currently automatically checks the | 1588 | Note that the build system currently automatically checks the |
| 1635 | Fedora, OpenSuSE, Debian, Ubuntu, | 1589 | Fedora, OpenSuSE, Debian, Ubuntu, |
| 1636 | and Mandriva distributions for source package recipes without having to specify them | 1590 | and Mandriva distributions for source package recipes without having to specify them |
| 1637 | using the <filename>DISTRO_PN_ALIAS</filename> variable. | 1591 | using the <filename>DISTRO_PN_ALIAS</filename> variable. |
| 1638 | For example, the following command generates a report that lists the Linux distributions | 1592 | For example, the following command generates a report that lists the Linux distributions |
| 1639 | that include the sources for each of the Yocto Project recipes. | 1593 | that include the sources for each of the recipes. |
| 1640 | <literallayout class='monospaced'> | 1594 | <literallayout class='monospaced'> |
| 1641 | $ bitbake world -f -c distro_check | 1595 | $ bitbake world -f -c distro_check |
| 1642 | </literallayout> | 1596 | </literallayout> |
| 1643 | The results are stored in the <filename>build/tmp/log/distro_check-${DATETIME}.results</filename> | 1597 | The results are stored in the <filename>build/tmp/log/distro_check-${DATETIME}.results</filename> |
| 1644 | file found in the Yocto Project files area. | 1598 | file found in the source directory. |
| 1645 | </para> | 1599 | </para> |
| 1646 | </section> | 1600 | </section> |
| 1647 | 1601 | ||
| @@ -1649,18 +1603,18 @@ so that there are some definite steps on how to do this. I need more detail her | |||
| 1649 | <title>Building Software from an External Source</title> | 1603 | <title>Building Software from an External Source</title> |
| 1650 | 1604 | ||
| 1651 | <para> | 1605 | <para> |
| 1652 | By default, the Yocto Project build system does its work from within the | 1606 | By default, the OpenEmbedded build system does its work from within the |
| 1653 | <link linkend='yocto-project-build-directory'>Yocto Project Build Directory</link>. | 1607 | <link linkend='build-directory'>build directory</link>. |
| 1654 | The build process involves fetching the source files, unpacking them, and then patching them | 1608 | The build process involves fetching the source files, unpacking them, and then patching them |
| 1655 | if necessary before the build takes place. | 1609 | if necessary before the build takes place. |
| 1656 | </para> | 1610 | </para> |
| 1657 | 1611 | ||
| 1658 | <para> | 1612 | <para> |
| 1659 | Situations exist where you might want to build software from source files that are external to | 1613 | Situations exist where you might want to build software from source files that are external to |
| 1660 | and thus outside of the <link linkend='yocto-project-files'>Yocto Project Files</link>. | 1614 | and thus outside of the <link linkend='source-directory'>source directory</link>. |
| 1661 | For example, suppose you have a project that includes a new BSP with a heavily customized | 1615 | For example, suppose you have a project that includes a new BSP with a heavily customized |
| 1662 | kernel, a very minimal image, and some new user-space recipes. | 1616 | kernel, a very minimal image, and some new user-space recipes. |
| 1663 | And, you want to minimize the exposure to the Yocto Project build system to the | 1617 | And, you want to minimize the exposure to the build system to the |
| 1664 | development team so that they can focus on their project and maintain everyone's workflow | 1618 | development team so that they can focus on their project and maintain everyone's workflow |
| 1665 | as much as possible. | 1619 | as much as possible. |
| 1666 | In this case, you want a kernel source directory on the development machine where the | 1620 | In this case, you want a kernel source directory on the development machine where the |
| @@ -1829,7 +1783,7 @@ so that there are some definite steps on how to do this. I need more detail her | |||
| 1829 | <para> | 1783 | <para> |
| 1830 | A suitable GDB cross-binary is required that runs on your host computer but | 1784 | A suitable GDB cross-binary is required that runs on your host computer but |
| 1831 | also knows about the the ABI of the remote target. | 1785 | also knows about the the ABI of the remote target. |
| 1832 | You can get this binary from the the Yocto Project meta-toolchain. | 1786 | You can get this binary from the meta-toolchain. |
| 1833 | Here is an example: | 1787 | Here is an example: |
| 1834 | <literallayout class='monospaced'> | 1788 | <literallayout class='monospaced'> |
| 1835 | /usr/local/poky/eabi-glibc/arm/bin/arm-poky-linux-gnueabi-gdb | 1789 | /usr/local/poky/eabi-glibc/arm/bin/arm-poky-linux-gnueabi-gdb |
| @@ -1839,7 +1793,7 @@ so that there are some definite steps on how to do this. I need more detail her | |||
| 1839 | </para> | 1793 | </para> |
| 1840 | 1794 | ||
| 1841 | <para> | 1795 | <para> |
| 1842 | Alternatively, the Yocto Project can build the <filename>gdb-cross</filename> binary. | 1796 | Alternatively, you can use BitBake to build the <filename>gdb-cross</filename> binary. |
| 1843 | Here is an example: | 1797 | Here is an example: |
| 1844 | <literallayout class='monospaced'> | 1798 | <literallayout class='monospaced'> |
| 1845 | $ bitbake gdb-cross | 1799 | $ bitbake gdb-cross |
| @@ -1871,13 +1825,14 @@ so that there are some definite steps on how to do this. I need more detail her | |||
| 1871 | </para> | 1825 | </para> |
| 1872 | 1826 | ||
| 1873 | <para> | 1827 | <para> |
| 1874 | Alternatively, Yocto Project can build a custom directory of files for a specific | 1828 | Alternatively, the OpenEmbedded build system can build a custom directory of files |
| 1829 | for a specific | ||
| 1875 | debugging purpose by reusing its <filename>tmp/rootfs</filename> directory. | 1830 | debugging purpose by reusing its <filename>tmp/rootfs</filename> directory. |
| 1876 | This directory contains the contents of the last built image. | 1831 | This directory contains the contents of the last built image. |
| 1877 | This process assumes two things: | 1832 | This process assumes two things: |
| 1878 | <itemizedlist> | 1833 | <itemizedlist> |
| 1879 | <listitem><para>The image running on the target was the last image to | 1834 | <listitem><para>The image running on the target was the last image to |
| 1880 | be built by the Yocto Project.</para></listitem> | 1835 | be built.</para></listitem> |
| 1881 | <listitem><para>The package (<filename>foo</filename> in the following | 1836 | <listitem><para>The package (<filename>foo</filename> in the following |
| 1882 | example) that contains the inferior binary to be debugged has been built | 1837 | example) that contains the inferior binary to be debugged has been built |
| 1883 | without optimization and has debugging information available.</para></listitem> | 1838 | without optimization and has debugging information available.</para></listitem> |
| @@ -1975,8 +1930,8 @@ so that there are some definite steps on how to do this. I need more detail her | |||
| 1975 | bottlenecks in both userspace software and in the kernel. | 1930 | bottlenecks in both userspace software and in the kernel. |
| 1976 | This profiler provides answers to questions like "Which functions does my application spend | 1931 | This profiler provides answers to questions like "Which functions does my application spend |
| 1977 | the most time in when doing X?" | 1932 | the most time in when doing X?" |
| 1978 | Because the Yocto Project is well integrated with OProfile, it makes profiling applications on target | 1933 | Because the OpenEmbedded build system is well integrated with OProfile, it makes profiling |
| 1979 | hardware straightforward. | 1934 | applications on target hardware straightforward. |
| 1980 | </para> | 1935 | </para> |
| 1981 | 1936 | ||
| 1982 | <para> | 1937 | <para> |
| @@ -1994,7 +1949,7 @@ so that there are some definite steps on how to do this. I need more detail her | |||
| 1994 | For successful call graph analysis, the binaries must preserve the frame | 1949 | For successful call graph analysis, the binaries must preserve the frame |
| 1995 | pointer register and should also be compiled with the | 1950 | pointer register and should also be compiled with the |
| 1996 | <filename>-fno-omit-framepointer</filename> flag. | 1951 | <filename>-fno-omit-framepointer</filename> flag. |
| 1997 | In the Yocto Project you can achieve this by setting the | 1952 | You can achieve this by setting the |
| 1998 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-SELECTED_OPTIMIZATION'>SELECTED_OPTIMIZATION</ulink></filename> | 1953 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-SELECTED_OPTIMIZATION'>SELECTED_OPTIMIZATION</ulink></filename> |
| 1999 | variable to | 1954 | variable to |
| 2000 | <filename>-fexpensive-optimizations -fno-omit-framepointer -frename-registers -O2</filename>. | 1955 | <filename>-fexpensive-optimizations -fno-omit-framepointer -frename-registers -O2</filename>. |
| @@ -2036,7 +1991,7 @@ so that there are some definite steps on how to do this. I need more detail her | |||
| 2036 | <note> | 1991 | <note> |
| 2037 | To profile the kernel, you would specify the | 1992 | To profile the kernel, you would specify the |
| 2038 | <filename>--vmlinux=/path/to/vmlinux</filename> option. | 1993 | <filename>--vmlinux=/path/to/vmlinux</filename> option. |
| 2039 | The <filename>vmlinux</filename> file is usually in the Yocto Project file's | 1994 | The <filename>vmlinux</filename> file is usually in the source directory in the |
| 2040 | <filename>/boot/</filename> directory and must match the running kernel. | 1995 | <filename>/boot/</filename> directory and must match the running kernel. |
| 2041 | </note> | 1996 | </note> |
| 2042 | </para> | 1997 | </para> |
| @@ -2079,7 +2034,7 @@ so that there are some definite steps on how to do this. I need more detail her | |||
| 2079 | </para> | 2034 | </para> |
| 2080 | 2035 | ||
| 2081 | <para> | 2036 | <para> |
| 2082 | Even though the Yocto Project usually includes all needed patches on the target device, you | 2037 | Even though the source directory usually includes all needed patches on the target device, you |
| 2083 | might find you need other OProfile patches for recent OProfileUI features. | 2038 | might find you need other OProfile patches for recent OProfileUI features. |
| 2084 | If so, see the <ulink url='&YOCTO_GIT_URL;/cgit.cgi/oprofileui/tree/README'> | 2039 | If so, see the <ulink url='&YOCTO_GIT_URL;/cgit.cgi/oprofileui/tree/README'> |
| 2085 | OProfileUI README</ulink> for the most recent information. | 2040 | OProfileUI README</ulink> for the most recent information. |
| @@ -2142,18 +2097,18 @@ so that there are some definite steps on how to do this. I need more detail her | |||
| 2142 | </para> | 2097 | </para> |
| 2143 | 2098 | ||
| 2144 | <para> | 2099 | <para> |
| 2145 | Downloaded archives reside in the Yocto Project's build directory in | 2100 | Downloaded archives reside in the build directory in |
| 2146 | <filename>/tmp</filename> and are cleared up when they are no longer in use. | 2101 | <filename>/tmp</filename> and are cleared up when they are no longer in use. |
| 2147 | </para> | 2102 | </para> |
| 2148 | 2103 | ||
| 2149 | <para> | 2104 | <para> |
| 2150 | If you wish to perform kernel profiling, you need to be sure | 2105 | If you wish to perform kernel profiling, you need to be sure |
| 2151 | a <filename>vmlinux</filename> file that matches the running kernel is available. | 2106 | a <filename>vmlinux</filename> file that matches the running kernel is available. |
| 2152 | In the Yocto Project, that file is usually located in | 2107 | In the source directory, that file is usually located in |
| 2153 | <filename>/boot/vmlinux-KERNELVERSION</filename>, where | 2108 | <filename>/boot/vmlinux-KERNELVERSION</filename>, where |
| 2154 | <filename>KERNEL-version</filename> is the version of the kernel. | 2109 | <filename>KERNEL-version</filename> is the version of the kernel. |
| 2155 | The Yocto Project generates separate <filename>vmlinux</filename> packages for each kernel | 2110 | The OpenEmbedded build system generates separate <filename>vmlinux</filename> |
| 2156 | it builds. | 2111 | packages for each kernel it builds. |
| 2157 | Thus, it should just be a question of making sure a matching package is | 2112 | Thus, it should just be a question of making sure a matching package is |
| 2158 | installed (e.g. <filename>opkg install kernel-vmlinux</filename>. | 2113 | installed (e.g. <filename>opkg install kernel-vmlinux</filename>. |
| 2159 | The files are automatically installed into development and profiling images | 2114 | The files are automatically installed into development and profiling images |
| @@ -2169,7 +2124,7 @@ so that there are some definite steps on how to do this. I need more detail her | |||
| 2169 | on the viewer system. | 2124 | on the viewer system. |
| 2170 | The "<link linkend='platdev-gdb-remotedebug-launch-gdb'>Launching GDB on the Host Computer</link>" | 2125 | The "<link linkend='platdev-gdb-remotedebug-launch-gdb'>Launching GDB on the Host Computer</link>" |
| 2171 | section covers how to create such a directory with | 2126 | section covers how to create such a directory with |
| 2172 | the Yocto Project and how to use the OProfileUI Settings dialog to specify the location. | 2127 | the source directory and how to use the OProfileUI Settings dialog to specify the location. |
| 2173 | If you specify the directory, it will be used when the file checksums | 2128 | If you specify the directory, it will be used when the file checksums |
| 2174 | match those on the system you are profiling. | 2129 | match those on the system you are profiling. |
| 2175 | </para> | 2130 | </para> |
diff --git a/documentation/dev-manual/dev-manual-intro.xml b/documentation/dev-manual/dev-manual-intro.xml index fd35e283c2..7caa6eb720 100644 --- a/documentation/dev-manual/dev-manual-intro.xml +++ b/documentation/dev-manual/dev-manual-intro.xml | |||
| @@ -18,7 +18,8 @@ | |||
| 18 | sources where you can find more detail. | 18 | sources where you can find more detail. |
| 19 | For example, detailed information on Git, repositories and open source in general | 19 | For example, detailed information on Git, repositories and open source in general |
| 20 | can be found in many places. | 20 | can be found in many places. |
| 21 | Another example is how to get set up to use the Yocto Project, which our Yocto Project Quick Start covers. | 21 | Another example is how to get set up to use the Yocto Project, which our Yocto Project |
| 22 | Quick Start covers. | ||
| 22 | </para> | 23 | </para> |
| 23 | 24 | ||
| 24 | <para> | 25 | <para> |
| @@ -44,13 +45,7 @@ | |||
| 44 | applications.</para></listitem> | 45 | applications.</para></listitem> |
| 45 | <listitem><para>An overview and understanding of the emulation environment used with | 46 | <listitem><para>An overview and understanding of the emulation environment used with |
| 46 | the Yocto Project (QEMU).</para></listitem> | 47 | the Yocto Project (QEMU).</para></listitem> |
| 47 | <!-- <listitem><para>A discussion of target-level analysis techniques, tools, tips, | 48 | <listitem><para>An understanding of basic kernel architecture and concepts.</para></listitem> |
| 48 | and tricks.</para></listitem> | ||
| 49 | <listitem><para>Considerations for deploying your final product.</para></listitem> --> | ||
| 50 | <listitem><para>An understanding of basic kernel architecture and | ||
| 51 | concepts.</para></listitem> | ||
| 52 | <!-- <listitem><para>Information that will help you migrate an existing project to the | ||
| 53 | Yocto Project development environment.</para></listitem> --> | ||
| 54 | <listitem><para>Many references to other sources of related information.</para></listitem> | 49 | <listitem><para>Many references to other sources of related information.</para></listitem> |
| 55 | </itemizedlist> | 50 | </itemizedlist> |
| 56 | </para> | 51 | </para> |
| @@ -97,7 +92,7 @@ | |||
| 97 | <listitem><para><emphasis> | 92 | <listitem><para><emphasis> |
| 98 | <ulink url='&YOCTO_DOCS_REF_URL;'> | 93 | <ulink url='&YOCTO_DOCS_REF_URL;'> |
| 99 | The Yocto Project Reference Manual</ulink>:</emphasis> This manual is a reference | 94 | The Yocto Project Reference Manual</ulink>:</emphasis> This manual is a reference |
| 100 | guide to the Yocto Project build component known as "Poky." | 95 | guide to the OpenEmbedded build system known as "Poky." |
| 101 | The manual also contains a reference chapter on Board Support Package (BSP) | 96 | The manual also contains a reference chapter on Board Support Package (BSP) |
| 102 | layout.</para></listitem> | 97 | layout.</para></listitem> |
| 103 | <listitem><para><emphasis> | 98 | <listitem><para><emphasis> |
| @@ -117,7 +112,7 @@ | |||
| 117 | some work flow examples.</para></listitem> | 112 | some work flow examples.</para></listitem> |
| 118 | <listitem><para><emphasis> | 113 | <listitem><para><emphasis> |
| 119 | <ulink url='http://www.youtube.com/watch?v=3ZlOu-gLsh0'> | 114 | <ulink url='http://www.youtube.com/watch?v=3ZlOu-gLsh0'> |
| 120 | Yocto Eclipse Plug-in</ulink>:</emphasis> A step-by-step instructional video that | 115 | Eclipse IDE Yocto Plug-in</ulink>:</emphasis> A step-by-step instructional video that |
| 121 | demonstrates how an application developer uses Yocto Plug-in features within | 116 | demonstrates how an application developer uses Yocto Plug-in features within |
| 122 | the Eclipse IDE.</para></listitem> | 117 | the Eclipse IDE.</para></listitem> |
| 123 | <listitem><para><emphasis> | 118 | <listitem><para><emphasis> |
| @@ -158,22 +153,26 @@ | |||
| 158 | <listitem><para><emphasis>Internet Relay Chat (IRC):</emphasis> | 153 | <listitem><para><emphasis>Internet Relay Chat (IRC):</emphasis> |
| 159 | Two IRC channels on freenode are available | 154 | Two IRC channels on freenode are available |
| 160 | for Yocto Project and Poky discussions: <filename>#yocto</filename> and | 155 | for Yocto Project and Poky discussions: <filename>#yocto</filename> and |
| 161 | <filename>#poky</filename>.</para></listitem> | 156 | <filename>#poky</filename>, respectively.</para></listitem> |
| 162 | <listitem><para><emphasis> | 157 | <listitem><para><emphasis> |
| 163 | <ulink url='&OH_HOME_URL;'>OpenedHand</ulink>:</emphasis> | 158 | <ulink url='&OH_HOME_URL;'>OpenedHand</ulink>:</emphasis> |
| 164 | The company where the Yocto Project build system Poky was first developed. | 159 | The company that initially developed the Poky project, which is the basis |
| 165 | OpenedHand has since been acquired by Intel Corporation.</para></listitem> | 160 | for the OpenEmbedded build system used by the Yocto Project. |
| 161 | OpenedHand was acquired by Intel Corporation in 2008.</para></listitem> | ||
| 166 | <listitem><para><emphasis> | 162 | <listitem><para><emphasis> |
| 167 | <ulink url='http://www.intel.com/'>Intel Corporation</ulink>:</emphasis> | 163 | <ulink url='http://www.intel.com/'>Intel Corporation</ulink>:</emphasis> |
| 168 | The company that acquired OpenedHand in 2008 and continues development on the | 164 | A multinational semiconductor chip manufacturer company whose Software and |
| 169 | Yocto Project.</para></listitem> | 165 | Services Group created and supports the Yocto Project. |
| 166 | Intel acquired OpenedHand in 2008.</para></listitem> | ||
| 170 | <listitem><para><emphasis> | 167 | <listitem><para><emphasis> |
| 171 | <ulink url='&OE_HOME_URL;'>OpenEmbedded</ulink>:</emphasis> | 168 | <ulink url='&OE_HOME_URL;'>OpenEmbedded</ulink>:</emphasis> |
| 172 | The upstream, generic, embedded distribution the Yocto Project build system (Poky) derives | 169 | The build system used by the Yocto Project. |
| 173 | from and to which it contributes.</para></listitem> | 170 | This project is the upstream, generic, embedded distribution from which the Yocto |
| 171 | Project derives its build system (Poky) from and to which it contributes.</para></listitem> | ||
| 174 | <listitem><para><emphasis> | 172 | <listitem><para><emphasis> |
| 175 | <ulink url='http://developer.berlios.de/projects/bitbake/'> | 173 | <ulink url='http://developer.berlios.de/projects/bitbake/'> |
| 176 | BitBake</ulink>:</emphasis> The tool used to process Yocto Project metadata.</para></listitem> | 174 | BitBake</ulink>:</emphasis> The tool used by the OpenEmbedded build systm |
| 175 | to process project metadata.</para></listitem> | ||
| 177 | <listitem><para><emphasis> | 176 | <listitem><para><emphasis> |
| 178 | <ulink url='http://bitbake.berlios.de/manual/'> | 177 | <ulink url='http://bitbake.berlios.de/manual/'> |
| 179 | BitBake User Manual</ulink>:</emphasis> A comprehensive guide to the BitBake tool. | 178 | BitBake User Manual</ulink>:</emphasis> A comprehensive guide to the BitBake tool. |
diff --git a/documentation/dev-manual/dev-manual-kernel-appendix.xml b/documentation/dev-manual/dev-manual-kernel-appendix.xml index 0f69ef1067..04db02a7a6 100644 --- a/documentation/dev-manual/dev-manual-kernel-appendix.xml +++ b/documentation/dev-manual/dev-manual-kernel-appendix.xml | |||
| @@ -12,17 +12,6 @@ | |||
| 12 | or even altering the source code itself. | 12 | or even altering the source code itself. |
| 13 | This appendix presents simple examples that modify the kernel source code, | 13 | This appendix presents simple examples that modify the kernel source code, |
| 14 | change the kernel configuration, and add a kernel source recipe. | 14 | change the kernel configuration, and add a kernel source recipe. |
| 15 | <!-- [WRITER'S NOTE: I might want to work in information about applying a local | ||
| 16 | change to a kernel layer and also pushing a change upstream into the tree] | ||
| 17 | <orderedlist> | ||
| 18 | <listitem><para>Iteratively determine and set kernel configurations and make | ||
| 19 | kernel recipe changes.</para></listitem> | ||
| 20 | <listitem><para>Apply your configuration changes to your local kernel layer. | ||
| 21 | </para></listitem> | ||
| 22 | <listitem><para>Push your configuration and recipe changes upstream into the | ||
| 23 | Yocto Project source repositories to make them available to the community. | ||
| 24 | </para></listitem> | ||
| 25 | </orderedlist> --> | ||
| 26 | </para> | 15 | </para> |
| 27 | 16 | ||
| 28 | <section id='modifying-the-kernel-source-code'> | 17 | <section id='modifying-the-kernel-source-code'> |
| @@ -45,18 +34,17 @@ | |||
| 45 | Briefly, you need the following: | 34 | Briefly, you need the following: |
| 46 | <itemizedlist> | 35 | <itemizedlist> |
| 47 | <listitem><para>A local | 36 | <listitem><para>A local |
| 48 | <link linkend='yocto-project-files'>Yocto Project Files</link> | 37 | <link linkend='source-directory'>source directory</link> for the |
| 49 | Git repository</para></listitem> | 38 | poky Git repository</para></listitem> |
| 50 | <listitem><para>The | 39 | <listitem><para>Local copies of the |
| 51 | <link linkend='poky-extras-repo'><filename>poky-extras</filename></link> | 40 | <link linkend='poky-extras-repo'><filename>poky-extras</filename></link> |
| 52 | Git repository placed within the local Yocto Project files Git | 41 | Git repository placed within the source directory.</para></listitem> |
| 53 | repository</para></listitem> | ||
| 54 | <listitem><para>A bare clone of the | 42 | <listitem><para>A bare clone of the |
| 55 | <link linkend='local-kernel-files'>Linux Yocto Kernel</link> upstream Git | 43 | <link linkend='local-kernel-files'>Linux Yocto Kernel</link> upstream Git |
| 56 | repository to which you want to push your modifications. | 44 | repository to which you want to push your modifications. |
| 57 | </para></listitem> | 45 | </para></listitem> |
| 58 | <listitem><para>A copy of that bare clone in which you make your source | 46 | <listitem><para>A copy of that bare clone in which you make your source |
| 59 | modifcations</para></listitem> | 47 | modifications</para></listitem> |
| 60 | </itemizedlist> | 48 | </itemizedlist> |
| 61 | </para> | 49 | </para> |
| 62 | 50 | ||
| @@ -78,18 +66,19 @@ | |||
| 78 | <para> | 66 | <para> |
| 79 | Here is a brief description of the four areas: | 67 | Here is a brief description of the four areas: |
| 80 | <itemizedlist> | 68 | <itemizedlist> |
| 81 | <listitem><para><emphasis>Local Yocto Project Files Git Repository:</emphasis> | 69 | <listitem><para><emphasis>Local Source Directory:</emphasis> |
| 82 | This area contains all the metadata that supports building images in the | 70 | This area contains all the metadata that supports building images |
| 83 | Yocto Project build environment - the local Yocto Project files. | 71 | using the OpenEmbedded build system. |
| 84 | In this example, the local Yocto Project files Git repository also | 72 | In this example, the source directory also |
| 85 | contains the build directory, which contains the configuration directory | 73 | contains the build directory, which contains the configuration directory |
| 86 | that lets you control the build. | 74 | that lets you control the build. |
| 87 | In this example, the repository also contains the | 75 | Also in this example, the source directory contains local copies of the |
| 88 | <filename>poky-extras</filename> Git repository.</para> | 76 | <filename>poky-extras</filename> Git repository.</para> |
| 89 | <para>See the bulleted item | 77 | <para>See the bulleted item |
| 90 | "<link linkend='local-yp-release'>Yocto Project Release</link>" | 78 | "<link linkend='local-yp-release'>Yocto Project Release</link>" |
| 91 | for information on how to get these files.</para></listitem> | 79 | for information on how to get these files on your local system.</para></listitem> |
| 92 | <listitem><para><emphasis><filename>poky-extras</filename> Git Repository:</emphasis> | 80 | <listitem><para><emphasis>Local copies of the<filename>poky-extras</filename> |
| 81 | Git Repository:</emphasis> | ||
| 93 | This area contains the <filename>meta-kernel-dev</filename> layer, | 82 | This area contains the <filename>meta-kernel-dev</filename> layer, |
| 94 | which is where you make changes that append the kernel build recipes. | 83 | which is where you make changes that append the kernel build recipes. |
| 95 | You edit <filename>.bbappend</filename> files to locate your | 84 | You edit <filename>.bbappend</filename> files to locate your |
| @@ -133,23 +122,23 @@ | |||
| 133 | </section> | 122 | </section> |
| 134 | 123 | ||
| 135 | <section id='setting-up-the-local-yocto-project-files-git-repository'> | 124 | <section id='setting-up-the-local-yocto-project-files-git-repository'> |
| 136 | <title>Setting Up the Local Yocto Project Files Git Repository</title> | 125 | <title>Setting Up the Local Source Directory</title> |
| 137 | 126 | ||
| 138 | <para> | 127 | <para> |
| 139 | You can get the local Yocto Project files through tarball extraction or by | 128 | You can set up the source directory through tarball extraction or by |
| 140 | cloning the <filename>poky</filename> Git repository. | 129 | cloning the <filename>poky</filename> Git repository. |
| 141 | This example uses <filename>poky</filename> as the root directory of the | 130 | This example uses <filename>poky</filename> as the root directory of the |
| 142 | local Yocto Project files Git repository. | 131 | local source directory. |
| 143 | See the bulleted item | 132 | See the bulleted item |
| 144 | "<link linkend='local-yp-release'>Yocto Project Release</link>" | 133 | "<link linkend='local-yp-release'>Yocto Project Release</link>" |
| 145 | for information on how to get these files. | 134 | for information on how to get these files. |
| 146 | </para> | 135 | </para> |
| 147 | 136 | ||
| 148 | <para> | 137 | <para> |
| 149 | Once you have the repository set up, | 138 | Once you have source directory set up, |
| 150 | you have many development branches from which you can work. | 139 | you have many development branches from which you can work. |
| 151 | From inside the repository you can see the branch names and the tag names used | 140 | From inside the local repository you can see the branch names and the tag names used |
| 152 | in the Git repository using either of the following two commands: | 141 | in the upstream Git repository by using either of the following commands: |
| 153 | <literallayout class='monospaced'> | 142 | <literallayout class='monospaced'> |
| 154 | $ cd poky | 143 | $ cd poky |
| 155 | $ git branch -a | 144 | $ git branch -a |
| @@ -168,15 +157,15 @@ | |||
| 168 | </section> | 157 | </section> |
| 169 | 158 | ||
| 170 | <section id='setting-up-the-poky-extras-git-repository'> | 159 | <section id='setting-up-the-poky-extras-git-repository'> |
| 171 | <title>Setting Up the poky-extras Git Repository</title> | 160 | <title>Setting Up the Local poky-extras Git Repository</title> |
| 172 | 161 | ||
| 173 | <para> | 162 | <para> |
| 174 | This example places the <filename>poky-extras</filename> Git repository inside | 163 | This example creates a local copy of the <filename>poky-extras</filename> Git |
| 175 | of <filename>poky</filename>. | 164 | repository inside the <filename>poky</filename> source directory. |
| 176 | See the bulleted item | 165 | See the bulleted item "<link linkend='poky-extras-repo'>The |
| 177 | "<link linkend='poky-extras-repo'>The | ||
| 178 | <filename>poky-extras</filename> Git Repository</link>" | 166 | <filename>poky-extras</filename> Git Repository</link>" |
| 179 | for information on how to get the <filename>poky-extras</filename> repository. | 167 | for information on how to set up a local copy of the |
| 168 | <filename>poky-extras</filename> repository. | ||
| 180 | </para> | 169 | </para> |
| 181 | 170 | ||
| 182 | <para> | 171 | <para> |
| @@ -369,7 +358,7 @@ | |||
| 369 | <para> | 358 | <para> |
| 370 | Once the source code has been modified, you need to use Git to push the changes to | 359 | Once the source code has been modified, you need to use Git to push the changes to |
| 371 | the bare clone. | 360 | the bare clone. |
| 372 | If you do not push the changes, then the Yocto Project build system will not pick | 361 | If you do not push the changes, then the OpenEmbedded build system will not pick |
| 373 | up the changed source files. | 362 | up the changed source files. |
| 374 | </para> | 363 | </para> |
| 375 | 364 | ||
| @@ -386,7 +375,7 @@ | |||
| 386 | 375 | ||
| 387 | <para> | 376 | <para> |
| 388 | At this point, the source has been changed and pushed. | 377 | At this point, the source has been changed and pushed. |
| 389 | The example now defines some variables used by the Yocto Project build system | 378 | The example now defines some variables used by the OpenEmbedded build system |
| 390 | to locate your kernel source. | 379 | to locate your kernel source. |
| 391 | You essentially need to identify where to find the kernel recipe and the changed source code. | 380 | You essentially need to identify where to find the kernel recipe and the changed source code. |
| 392 | You also need to be sure some basic configurations are in place that identify the | 381 | You also need to be sure some basic configurations are in place that identify the |
| @@ -447,12 +436,6 @@ | |||
| 447 | <literallayout class='monospaced'> | 436 | <literallayout class='monospaced'> |
| 448 | KSRC_linux_yocto_3_2 ?= "/home/scottrif/linux-yocto-3.2.git" | 437 | KSRC_linux_yocto_3_2 ?= "/home/scottrif/linux-yocto-3.2.git" |
| 449 | </literallayout></para></listitem> | 438 | </literallayout></para></listitem> |
| 450 | <!-- <listitem><para><emphasis>Specify the Kernel Machine:</emphasis> Also in the | ||
| 451 | <filename>linux-yocto_3.2.bbappend</filename> file, you need to specify | ||
| 452 | the kernel machine with the following statement: | ||
| 453 | <literallayout class='monospaced'> | ||
| 454 | KMACHINE_qemux86 = "standard/default/common-pc/base" | ||
| 455 | </literallayout></para></listitem> --> | ||
| 456 | </itemizedlist> | 439 | </itemizedlist> |
| 457 | </para> | 440 | </para> |
| 458 | 441 | ||
| @@ -494,7 +477,7 @@ | |||
| 494 | $ bitbake -c cleanall linux-yocto | 477 | $ bitbake -c cleanall linux-yocto |
| 495 | </literallayout></para> | 478 | </literallayout></para> |
| 496 | <para><note>Never remove any files by hand from the <filename>tmp/deploy</filename> | 479 | <para><note>Never remove any files by hand from the <filename>tmp/deploy</filename> |
| 497 | directory insided the local Yocto Project files build directory. | 480 | directory insided the build directory. |
| 498 | Always use the BitBake <filename>cleanall</filename> task to clear | 481 | Always use the BitBake <filename>cleanall</filename> task to clear |
| 499 | out previous builds.</note></para></listitem> | 482 | out previous builds.</note></para></listitem> |
| 500 | <listitem><para>Next, build the kernel image using this command: | 483 | <listitem><para>Next, build the kernel image using this command: |
| @@ -539,7 +522,7 @@ | |||
| 539 | <para> | 522 | <para> |
| 540 | If you took the time to work through the example that modifies the kernel source code | 523 | If you took the time to work through the example that modifies the kernel source code |
| 541 | in "<link linkend='modifying-the-kernel-source-code'>Modifying the Kernel Source | 524 | in "<link linkend='modifying-the-kernel-source-code'>Modifying the Kernel Source |
| 542 | Code</link>" you should already have the Yocto Project files set up on your | 525 | Code</link>" you should already have the source directory set up on your |
| 543 | host machine. | 526 | host machine. |
| 544 | If this is the case, go to the next section, which is titled | 527 | If this is the case, go to the next section, which is titled |
| 545 | "<link linkend='examining-the-default-config-smp-behavior'>Examining the Default | 528 | "<link linkend='examining-the-default-config-smp-behavior'>Examining the Default |
| @@ -548,21 +531,21 @@ | |||
| 548 | </para> | 531 | </para> |
| 549 | 532 | ||
| 550 | <para> | 533 | <para> |
| 551 | If you don't have the Yocto Project files established on your system, | 534 | If you don't have the source directory established on your system, |
| 552 | you can get them through tarball extraction or by | 535 | you can get them through tarball extraction or by |
| 553 | cloning the <filename>poky</filename> Git repository. | 536 | cloning the <filename>poky</filename> Git repository. |
| 554 | This example uses <filename>poky</filename> as the root directory of the | 537 | This example uses <filename>poky</filename> as the root directory of the |
| 555 | local <link linkend='yocto-project-files'>Yocto Project Files</link> Git repository. | 538 | <link linkend='source-directory'>source directory</link>. |
| 556 | See the bulleted item | 539 | See the bulleted item |
| 557 | "<link linkend='local-yp-release'>Yocto Project Release</link>" | 540 | "<link linkend='local-yp-release'>Yocto Project Release</link>" |
| 558 | for information on how to get these files. | 541 | for information on how to get these files. |
| 559 | </para> | 542 | </para> |
| 560 | 543 | ||
| 561 | <para> | 544 | <para> |
| 562 | Once you have the repository set up, | 545 | Once you have the local copy of the repository set up, |
| 563 | you have many development branches from which you can work. | 546 | you have many development branches from which you can work. |
| 564 | From inside the repository you can see the branch names and the tag names used | 547 | From inside the repository you can see the branch names and the tag names used |
| 565 | in the Git repository using either of the following two commands: | 548 | in the upstream Git repository using either of the following commands: |
| 566 | <literallayout class='monospaced'> | 549 | <literallayout class='monospaced'> |
| 567 | $ cd poky | 550 | $ cd poky |
| 568 | $ git branch -a | 551 | $ git branch -a |
| @@ -680,7 +663,7 @@ | |||
| 680 | to set kernel configurations. | 663 | to set kernel configurations. |
| 681 | You need to run <filename>menuconfig</filename> inside the Yocto BitBake environment. | 664 | You need to run <filename>menuconfig</filename> inside the Yocto BitBake environment. |
| 682 | Thus, the environment must be set up using the <filename>oe-init-build-env</filename> | 665 | Thus, the environment must be set up using the <filename>oe-init-build-env</filename> |
| 683 | script found in the Yocto Project files Git repository build directory. | 666 | script found in the build directory. |
| 684 | If you have not sourced this script do so with the following commands: | 667 | If you have not sourced this script do so with the following commands: |
| 685 | <literallayout class='monospaced'> | 668 | <literallayout class='monospaced'> |
| 686 | $ cd ~/poky | 669 | $ cd ~/poky |
| @@ -693,7 +676,7 @@ | |||
| 693 | to use the tool to interactively change the kernel configuration. | 676 | to use the tool to interactively change the kernel configuration. |
| 694 | In this example, we are basing our changes on the <filename>linux-yocto-3.2</filename> | 677 | In this example, we are basing our changes on the <filename>linux-yocto-3.2</filename> |
| 695 | kernel. | 678 | kernel. |
| 696 | The Yocto Project build environment recognizes this kernel as | 679 | The OpenEmbedded build system recognizes this kernel as |
| 697 | <filename>linux-yocto</filename>. | 680 | <filename>linux-yocto</filename>. |
| 698 | Thus, the following commands from the shell in which you previously sourced the | 681 | Thus, the following commands from the shell in which you previously sourced the |
| 699 | environment initialization script cleans the shared state memory and the | 682 | environment initialization script cleans the shared state memory and the |
| @@ -727,8 +710,7 @@ | |||
| 727 | is updated. | 710 | is updated. |
| 728 | This is the file that the build system uses to configure the Linux Yocto kernel | 711 | This is the file that the build system uses to configure the Linux Yocto kernel |
| 729 | when it is built. | 712 | when it is built. |
| 730 | You can find and examine this file in the Yocto Project Files Git repository in | 713 | You can find and examine this file in the build directory. |
| 731 | the build directory. | ||
| 732 | This example uses the following: | 714 | This example uses the following: |
| 733 | <literallayout class='monospaced'> | 715 | <literallayout class='monospaced'> |
| 734 | ~/poky/build/tmp/work/qemux86-poky-linux/linux-yocto-3.2.11+git1+84f... | 716 | ~/poky/build/tmp/work/qemux86-poky-linux/linux-yocto-3.2.11+git1+84f... |
| @@ -762,7 +744,7 @@ | |||
| 762 | <note> | 744 | <note> |
| 763 | Be sure to make a copy of the <filename>.config</filename> and don't just | 745 | Be sure to make a copy of the <filename>.config</filename> and don't just |
| 764 | rename it. | 746 | rename it. |
| 765 | The Yocto Project build system needs an existing <filename>.config</filename> | 747 | The build system needs an existing <filename>.config</filename> |
| 766 | from which to work. | 748 | from which to work. |
| 767 | </note> | 749 | </note> |
| 768 | </para> | 750 | </para> |
diff --git a/documentation/dev-manual/dev-manual-model.xml b/documentation/dev-manual/dev-manual-model.xml index 69e09e6466..a4120f84db 100644 --- a/documentation/dev-manual/dev-manual-model.xml +++ b/documentation/dev-manual/dev-manual-model.xml | |||
| @@ -34,8 +34,8 @@ | |||
| 34 | get the changes upstream and applied in the affected recipes.</para></listitem> | 34 | get the changes upstream and applied in the affected recipes.</para></listitem> |
| 35 | <listitem><para><emphasis>Image Development using Hob:</emphasis> | 35 | <listitem><para><emphasis>Image Development using Hob:</emphasis> |
| 36 | You can use the <ulink url='&YOCTO_HOME_URL;/projects/hob'>Hob</ulink> to build | 36 | You can use the <ulink url='&YOCTO_HOME_URL;/projects/hob'>Hob</ulink> to build |
| 37 | custom operating system images within the Yocto Project build environment. | 37 | custom operating system images within the build environment. |
| 38 | Hob provides an efficient interface to the Yocto Project build system.</para></listitem> | 38 | Hob provides an efficient interface to the OpenEmbedded build system.</para></listitem> |
| 39 | </itemizedlist> | 39 | </itemizedlist> |
| 40 | </para> | 40 | </para> |
| 41 | 41 | ||
| @@ -94,18 +94,20 @@ | |||
| 94 | and the | 94 | and the |
| 95 | "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Packages</ulink>" sections both | 95 | "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Packages</ulink>" sections both |
| 96 | in the Yocto Project Quick Start for requirements.</para></listitem> | 96 | in the Yocto Project Quick Start for requirements.</para></listitem> |
| 97 | <listitem><para><emphasis>Establish a local copy of the Yocto Project files on your | 97 | <listitem><para><emphasis>Establish a local copy of the project files on your |
| 98 | system</emphasis>: You need to have the Yocto Project files available on your host system. | 98 | system</emphasis>: You need this <link linkend='source-directory'>source |
| 99 | Having the Yocto Project files on your system gives you access to the build | 99 | directory</link> available on your host system. |
| 100 | Having these files on your system gives you access to the build | ||
| 100 | process and to the tools you need. | 101 | process and to the tools you need. |
| 101 | For information on how to get these files, see the | 102 | For information on how to set up the source directory, see the |
| 102 | "<link linkend='getting-setup'>Getting Setup</link>" section.</para></listitem> | 103 | "<link linkend='getting-setup'>Getting Setup</link>" section.</para></listitem> |
| 103 | <listitem><para><emphasis>Establish a local copy of the base BSP files</emphasis>: Having | 104 | <listitem><para><emphasis>Establish a local copy of the base BSP files</emphasis>: Having |
| 104 | the BSP files on your system gives you access to the build | 105 | the BSP files on your system gives you access to the build |
| 105 | process and to the tools you need for creating a BSP. | 106 | process and to the tools you need for creating a BSP. |
| 106 | For information on how to get these files, see the | 107 | For information on how to get these files, see the |
| 107 | "<link linkend='getting-setup'>Getting Setup</link>" section.</para></listitem> | 108 | "<link linkend='getting-setup'>Getting Setup</link>" section.</para></listitem> |
| 108 | <listitem><para><emphasis>Choose a Yocto Project-supported BSP as your base BSP</emphasis>: | 109 | <listitem><para><emphasis>Choose a BSP that is supported by the Yocto Project |
| 110 | as your base BSP</emphasis>: | ||
| 109 | The Yocto Project ships with several BSPs that support various hardware. | 111 | The Yocto Project ships with several BSPs that support various hardware. |
| 110 | It is best to base your new BSP on an existing BSP rather than create all the | 112 | It is best to base your new BSP on an existing BSP rather than create all the |
| 111 | recipes and configuration files from scratch. | 113 | recipes and configuration files from scratch. |
| @@ -138,7 +140,7 @@ | |||
| 138 | The layer, in this case, would be where all the recipes that define those dependencies | 140 | The layer, in this case, would be where all the recipes that define those dependencies |
| 139 | are kept. | 141 | are kept. |
| 140 | The key point for a layer is that it is an isolated area that contains | 142 | The key point for a layer is that it is an isolated area that contains |
| 141 | all the relevant information for the project that the Yocto Project build | 143 | all the relevant information for the project that the OpenEmbedded build |
| 142 | system knows about. | 144 | system knows about. |
| 143 | For more information on layers, see the | 145 | For more information on layers, see the |
| 144 | "<link linkend='understanding-and-creating-layers'>Understanding and Creating Layers</link>" | 146 | "<link linkend='understanding-and-creating-layers'>Understanding and Creating Layers</link>" |
| @@ -146,11 +148,11 @@ | |||
| 146 | For more information on BSP layers, see the | 148 | For more information on BSP layers, see the |
| 147 | "<ulink url='&YOCTO_DOCS_BSP_URL;#bsp-layers'>BSP Layers</ulink>" section in the | 149 | "<ulink url='&YOCTO_DOCS_BSP_URL;#bsp-layers'>BSP Layers</ulink>" section in the |
| 148 | Yocto Project Board Support Package (BSP) Developer's Guide.</para> | 150 | Yocto Project Board Support Package (BSP) Developer's Guide.</para> |
| 149 | <note>The Yocto Project supports four BSPs that are part of the | 151 | <note>Four BSPs exist that are part of the |
| 150 | Yocto Project release: <filename>atom-pc</filename>, <filename>beagleboard</filename>, | 152 | Yocto Project release: <filename>atom-pc</filename>, <filename>beagleboard</filename>, |
| 151 | <filename>mpc8315e</filename>, and <filename>routerstationpro</filename>. | 153 | <filename>mpc8315e</filename>, and <filename>routerstationpro</filename>. |
| 152 | The recipes and configurations for these four BSPs are located and dispersed | 154 | The recipes and configurations for these four BSPs are located and dispersed |
| 153 | within the <link linkend='yocto-project-files'>Yocto Project Files</link>. | 155 | within the <link linkend='source-directory'>source directory</link>. |
| 154 | On the other hand, BSP layers for Crown Bay, Emenlow, Jasper Forest, | 156 | On the other hand, BSP layers for Crown Bay, Emenlow, Jasper Forest, |
| 155 | N450, Cedar Trail, Fish River, Fish River Island II, Romley, sys940x, tlk, | 157 | N450, Cedar Trail, Fish River, Fish River Island II, Romley, sys940x, tlk, |
| 156 | and Sugar Bay exist in their own separate layers within the larger | 158 | and Sugar Bay exist in their own separate layers within the larger |
| @@ -163,7 +165,7 @@ | |||
| 163 | configuration information. | 165 | configuration information. |
| 164 | You can see the standard layout for the Crown Bay BSP in this example by examining the | 166 | You can see the standard layout for the Crown Bay BSP in this example by examining the |
| 165 | directory structure of the <filename>meta-crownbay</filename> layer inside the | 167 | directory structure of the <filename>meta-crownbay</filename> layer inside the |
| 166 | local Yocto Project files.</para></listitem> | 168 | source directory.</para></listitem> |
| 167 | <listitem><para><emphasis>Make configuration changes to your new BSP | 169 | <listitem><para><emphasis>Make configuration changes to your new BSP |
| 168 | layer</emphasis>: The standard BSP layer structure organizes the files you need | 170 | layer</emphasis>: The standard BSP layer structure organizes the files you need |
| 169 | to edit in <filename>conf</filename> and several <filename>recipes-*</filename> | 171 | to edit in <filename>conf</filename> and several <filename>recipes-*</filename> |
| @@ -177,15 +179,15 @@ | |||
| 177 | </para></listitem> | 179 | </para></listitem> |
| 178 | <listitem><para><emphasis>Prepare for the build</emphasis>: Once you have made all the | 180 | <listitem><para><emphasis>Prepare for the build</emphasis>: Once you have made all the |
| 179 | changes to your BSP layer, there remains a few things | 181 | changes to your BSP layer, there remains a few things |
| 180 | you need to do for the Yocto Project build system in order for it to create your image. | 182 | you need to do for the OpenEmbedded build system in order for it to create your image. |
| 181 | You need to get the build environment ready by sourcing an environment setup script | 183 | You need to get the build environment ready by sourcing an environment setup script |
| 182 | and you need to be sure two key configuration files are configured appropriately.</para> | 184 | and you need to be sure two key configuration files are configured appropriately.</para> |
| 183 | <para>The entire process for building an image is overviewed in the section | 185 | <para>The entire process for building an image is overviewed in the section |
| 184 | "<ulink url='&YOCTO_DOCS_QS_URL;#building-image'>Building an Image</ulink>" section | 186 | "<ulink url='&YOCTO_DOCS_QS_URL;#building-image'>Building an Image</ulink>" section |
| 185 | of the Yocto Project Quick Start. | 187 | of the Yocto Project Quick Start. |
| 186 | You might want to reference this information.</para></listitem> | 188 | You might want to reference this information.</para></listitem> |
| 187 | <listitem><para><emphasis>Build the image</emphasis>: The Yocto Project uses the BitBake | 189 | <listitem><para><emphasis>Build the image</emphasis>: The OpenEmbedded build system |
| 188 | tool to build images based on the type of image you want to create. | 190 | uses the BitBake tool to build images based on the type of image you want to create. |
| 189 | You can find more information on BitBake | 191 | You can find more information on BitBake |
| 190 | <ulink url='http://bitbake.berlios.de/manual/'>here</ulink>.</para> | 192 | <ulink url='http://bitbake.berlios.de/manual/'>here</ulink>.</para> |
| 191 | <para>The build process supports several types of images to satisfy different needs. | 193 | <para>The build process supports several types of images to satisfy different needs. |
| @@ -295,7 +297,7 @@ | |||
| 295 | 297 | ||
| 296 | <para> | 298 | <para> |
| 297 | The overall result is a Git-maintained repository from which all the supported | 299 | The overall result is a Git-maintained repository from which all the supported |
| 298 | Yocto Project kernel types can be derived for all the supported Yocto Project devices. | 300 | kernel types can be derived for all the supported devices. |
| 299 | A big advantage to this scheme is the sharing of common features by keeping them in | 301 | A big advantage to this scheme is the sharing of common features by keeping them in |
| 300 | "larger" branches within the tree. | 302 | "larger" branches within the tree. |
| 301 | This practice eliminates redundant storage of similar features shared among kernels. | 303 | This practice eliminates redundant storage of similar features shared among kernels. |
| @@ -313,7 +315,7 @@ | |||
| 313 | <para> | 315 | <para> |
| 314 | Storage of all the available kernel source code is one thing, while representing the | 316 | Storage of all the available kernel source code is one thing, while representing the |
| 315 | code on your host development system is another. | 317 | code on your host development system is another. |
| 316 | Conceptually, you can think of the Yocto Project kernel source repositories as all the | 318 | Conceptually, you can think of the kernel source repositories as all the |
| 317 | source files necessary for all the supported kernels. | 319 | source files necessary for all the supported kernels. |
| 318 | As a developer, you are just interested in the source files for the kernel on | 320 | As a developer, you are just interested in the source files for the kernel on |
| 319 | on which you are working. | 321 | on which you are working. |
| @@ -358,7 +360,7 @@ | |||
| 358 | <para> | 360 | <para> |
| 359 | What happens during the build? | 361 | What happens during the build? |
| 360 | When you build the kernel on your development system all files needed for the build | 362 | When you build the kernel on your development system all files needed for the build |
| 361 | are taken from the Yocto Project source repositories pointed to by the | 363 | are taken from the source repositories pointed to by the |
| 362 | <filename>SRC_URI</filename> variable and gathered in a temporary work area | 364 | <filename>SRC_URI</filename> variable and gathered in a temporary work area |
| 363 | where they are subsequently used to create the unique kernel. | 365 | where they are subsequently used to create the unique kernel. |
| 364 | Thus, in a sense, the process constructs a local source tree specific to your | 366 | Thus, in a sense, the process constructs a local source tree specific to your |
| @@ -375,7 +377,7 @@ | |||
| 375 | </para> | 377 | </para> |
| 376 | 378 | ||
| 377 | <para> | 379 | <para> |
| 378 | Again, for a complete discussion of the Yocto Project kernel's architcture and its | 380 | Again, for a complete discussion of the Yocto Project kernel's architecture and its |
| 379 | branching strategy, | 381 | branching strategy, |
| 380 | see <ulink url='&YOCTO_DOCS_KERNEL_URL;'> | 382 | see <ulink url='&YOCTO_DOCS_KERNEL_URL;'> |
| 381 | The Yocto Project Kernel Architecture and Use Manual</ulink>. | 383 | The Yocto Project Kernel Architecture and Use Manual</ulink>. |
| @@ -404,18 +406,19 @@ | |||
| 404 | "<ulink url='&YOCTO_DOCS_QS_URL;#the-linux-distro'>The Linux Distributions</ulink>" and | 406 | "<ulink url='&YOCTO_DOCS_QS_URL;#the-linux-distro'>The Linux Distributions</ulink>" and |
| 405 | "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Packages</ulink>" sections both | 407 | "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Packages</ulink>" sections both |
| 406 | in the Yocto Project Quick Start for requirements.</para></listitem> | 408 | in the Yocto Project Quick Start for requirements.</para></listitem> |
| 407 | <listitem><para><emphasis>Establish a local copy of the Yocto Project files on your | 409 | <listitem><para><emphasis>Establish a local copy of project files on your |
| 408 | system</emphasis>: Having the Yocto Project files on your system gives you access to | 410 | system</emphasis>: Having the <link linkend='source-directory'>source |
| 409 | the build process and tools you need. | 411 | directory</link> on your system gives you access to the build process and tools |
| 412 | you need. | ||
| 410 | For information on how to get these files, see the bulleted item | 413 | For information on how to get these files, see the bulleted item |
| 411 | "<link linkend='local-yp-release'>Yocto Project Release</link>" earlier in this manual. | 414 | "<link linkend='local-yp-release'>Yocto Project Release</link>" earlier in this manual. |
| 412 | </para></listitem> | 415 | </para></listitem> |
| 413 | <listitem><para><emphasis>Set up the <filename>poky-extras</filename> Git | 416 | <listitem><para><emphasis>Set up a local copy of the <filename>poky-extras</filename> Git |
| 414 | repository</emphasis>: This repository is the area for your configuration | 417 | repository</emphasis>: This local repository is the area for your configuration |
| 415 | fragments, new kernel recipes, and the kernel <filename>.bbappend</filename> | 418 | fragments, new kernel recipes, and the kernel <filename>.bbappend</filename> |
| 416 | file used during the build. | 419 | file used during the build. |
| 417 | It is good practice to set this repository up inside the local Yocto | 420 | It is good practice to set this repository up inside your local |
| 418 | Project files Git repository. | 421 | source directory. |
| 419 | For information on how to get these files, see the bulleted item | 422 | For information on how to get these files, see the bulleted item |
| 420 | "<link linkend='poky-extras-repo'>The <filename>poky-extras</filename> Git Repository</link>" | 423 | "<link linkend='poky-extras-repo'>The <filename>poky-extras</filename> Git Repository</link>" |
| 421 | earlier in this manual. | 424 | earlier in this manual. |
| @@ -453,9 +456,9 @@ | |||
| 453 | <filename>.config</filename>. | 456 | <filename>.config</filename>. |
| 454 | Try to resist the temptation of directly editing the <filename>.config</filename> | 457 | Try to resist the temptation of directly editing the <filename>.config</filename> |
| 455 | file found in the | 458 | file found in the |
| 456 | <link linkend='yocto-project-build-directory'>Yocto Project Build Directory</link> at | 459 | <link linkend='build-directory'>build directory</link> at |
| 457 | <filename>tmp/sysroots/<machine-name>/kernel</filename>. | 460 | <filename>tmp/sysroots/<machine-name>/kernel</filename>. |
| 458 | Doing so, can produce unexpected results when the Yocto Project build system | 461 | Doing so, can produce unexpected results when the OpenEmbedded build system |
| 459 | regenerates the configuration file.</para> | 462 | regenerates the configuration file.</para> |
| 460 | <para>Once you are satisfied with the configuration changes made using | 463 | <para>Once you are satisfied with the configuration changes made using |
| 461 | <filename>menuconfig</filename>, you can directly examine the | 464 | <filename>menuconfig</filename>, you can directly examine the |
| @@ -465,7 +468,7 @@ | |||
| 465 | <listitem><para><emphasis>Add or extend kernel recipes if applicable</emphasis>: | 468 | <listitem><para><emphasis>Add or extend kernel recipes if applicable</emphasis>: |
| 466 | The standard | 469 | The standard |
| 467 | layer structure organizes recipe files inside the | 470 | layer structure organizes recipe files inside the |
| 468 | <filename>meta-kernel-dev</filename> layer that is within the | 471 | <filename>meta-kernel-dev</filename> layer that is within the local |
| 469 | <filename>poky-extras</filename> Git repository. | 472 | <filename>poky-extras</filename> Git repository. |
| 470 | If you need to add new kernel recipes, you add them within this layer. | 473 | If you need to add new kernel recipes, you add them within this layer. |
| 471 | Also within this area, you will find the <filename>.bbappend</filename> | 474 | Also within this area, you will find the <filename>.bbappend</filename> |
| @@ -475,7 +478,7 @@ | |||
| 475 | <listitem><para><emphasis>Prepare for the build</emphasis>: Once you have made all the | 478 | <listitem><para><emphasis>Prepare for the build</emphasis>: Once you have made all the |
| 476 | changes to your kernel (configurations, source code changes, recipe additions, | 479 | changes to your kernel (configurations, source code changes, recipe additions, |
| 477 | or recipe changes), there remains a few things | 480 | or recipe changes), there remains a few things |
| 478 | you need to do in order for the Yocto Project build system (BitBake) to create your image. | 481 | you need to do in order for the build system to create your image. |
| 479 | If you have not done so, you need to get the build environment ready by sourcing | 482 | If you have not done so, you need to get the build environment ready by sourcing |
| 480 | the environment setup script described earlier. | 483 | the environment setup script described earlier. |
| 481 | You also need to be sure two key configuration files | 484 | You also need to be sure two key configuration files |
| @@ -487,8 +490,8 @@ | |||
| 487 | You might want to reference this information. | 490 | You might want to reference this information. |
| 488 | Also, you should look at the detailed examples found in the appendices at | 491 | Also, you should look at the detailed examples found in the appendices at |
| 489 | at the end of this manual.</para></listitem> | 492 | at the end of this manual.</para></listitem> |
| 490 | <listitem><para><emphasis>Build the image</emphasis>: The Yocto Project | 493 | <listitem><para><emphasis>Build the image</emphasis>: The OpenEmbedded |
| 491 | build system Poky uses the BitBake | 494 | build system uses the BitBake |
| 492 | tool to build images based on the type of image you want to create. | 495 | tool to build images based on the type of image you want to create. |
| 493 | You can find more information on BitBake | 496 | You can find more information on BitBake |
| 494 | <ulink url='http://bitbake.berlios.de/manual/'>here</ulink>.</para> | 497 | <ulink url='http://bitbake.berlios.de/manual/'>here</ulink>.</para> |
| @@ -514,7 +517,7 @@ | |||
| 514 | </section> | 517 | </section> |
| 515 | </section> | 518 | </section> |
| 516 | 519 | ||
| 517 | <section id='place-holder-section-two'> | 520 | <section id='application-development-workflow'> |
| 518 | <title>Application Development Workflow</title> | 521 | <title>Application Development Workflow</title> |
| 519 | 522 | ||
| 520 | <para> | 523 | <para> |
| @@ -530,7 +533,7 @@ | |||
| 530 | </para> | 533 | </para> |
| 531 | 534 | ||
| 532 | <para> | 535 | <para> |
| 533 | While we strongly suggest using the Yocto Project ADT to develop your application, you might | 536 | While we strongly suggest using the ADT to develop your application, you might |
| 534 | not want to. | 537 | not want to. |
| 535 | If this is the case, you can still use pieces of the Yocto Project for your development process. | 538 | If this is the case, you can still use pieces of the Yocto Project for your development process. |
| 536 | However, because the process can vary greatly, this manual does not provide detail on the process. | 539 | However, because the process can vary greatly, this manual does not provide detail on the process. |
| @@ -540,8 +543,7 @@ | |||
| 540 | <title>Workflow Using the ADT and <trademark class='trade'>Eclipse</trademark></title> | 543 | <title>Workflow Using the ADT and <trademark class='trade'>Eclipse</trademark></title> |
| 541 | 544 | ||
| 542 | <para> | 545 | <para> |
| 543 | To help you understand how application development works in the Yocto Project ADT | 546 | To help you understand how application development works using the ADT, this section |
| 544 | environment, this section | ||
| 545 | provides an overview of the general development process. | 547 | provides an overview of the general development process. |
| 546 | If you want to see a detailed example of the process as it is used from within the Eclipse | 548 | If you want to see a detailed example of the process as it is used from within the Eclipse |
| 547 | IDE, see | 549 | IDE, see |
| @@ -550,7 +552,7 @@ | |||
| 550 | </para> | 552 | </para> |
| 551 | 553 | ||
| 552 | <para> | 554 | <para> |
| 553 | This illustration and the following list summarizes the application development general workflow. | 555 | The following illustration and list summarize the application development general workflow. |
| 554 | </para> | 556 | </para> |
| 555 | 557 | ||
| 556 | <para> | 558 | <para> |
| @@ -565,27 +567,9 @@ | |||
| 565 | "<ulink url='&YOCTO_DOCS_QS_URL;#the-linux-distro'>The Linux Distributions</ulink>" and | 567 | "<ulink url='&YOCTO_DOCS_QS_URL;#the-linux-distro'>The Linux Distributions</ulink>" and |
| 566 | "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Packages</ulink>" sections both | 568 | "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Packages</ulink>" sections both |
| 567 | in the Yocto Project Quick Start for requirements.</para></listitem> | 569 | in the Yocto Project Quick Start for requirements.</para></listitem> |
| 568 | |||
| 569 | <!-- | ||
| 570 | WRITER NOTE: The areas to get the kernel and root filesystem are located in the Index of | ||
| 571 | downloads. There are many forms of each. The files that have "rootfs" are just the | ||
| 572 | target root filesystems. The file that is very small and starts with bzImage is just | ||
| 573 | the kernel image isolated so that it can be written to a special on-board area of | ||
| 574 | flash memory. Some systems require this. In the machines directory there are | ||
| 575 | files that combine the kernel image and the root filesystem. These files are the ISO | ||
| 576 | and HDDIMG files. ISO images are designed to be deployed on a DVD or CD. The ISO | ||
| 577 | images are designed to be deployed on a USB stick. There might be some relics in | ||
| 578 | the machine directory. For example, there is the "emenlow-bernard-5.0.0.tar.bz2" | ||
| 579 | file. Nobody seems to know what this is. If a developer needs the image and the | ||
| 580 | root filesystem I think that they want the small kernel image and a matching root | ||
| 581 | filesystem. Although, Paul Eggleton says that the HDDIMG types could be used to | ||
| 582 | develop on. I am not sure that we can use one of those in the ADT though as they | ||
| 583 | want you to point to the kernel image and the target root filesystem. Maybe you | ||
| 584 | could just point to the same spot. I am not sure. | ||
| 585 | --> | ||
| 586 | |||
| 587 | <listitem><para><emphasis>Secure the Linux Yocto Kernel Target Image</emphasis>: | 570 | <listitem><para><emphasis>Secure the Linux Yocto Kernel Target Image</emphasis>: |
| 588 | You must have a target kernel image that has been built using the Yocto Project.</para> | 571 | You must have a target kernel image that has been built using the OpenEmbeded |
| 572 | build system.</para> | ||
| 589 | <para>Depending on whether the Yocto Project has a pre-built image that matches your target | 573 | <para>Depending on whether the Yocto Project has a pre-built image that matches your target |
| 590 | architecture and where you are going to run the image while you develop your application | 574 | architecture and where you are going to run the image while you develop your application |
| 591 | (QEMU or real hardware), the area from which you get the image differs. | 575 | (QEMU or real hardware), the area from which you get the image differs. |
| @@ -616,7 +600,7 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the | |||
| 616 | <listitem><para><emphasis>Install the ADT</emphasis>: | 600 | <listitem><para><emphasis>Install the ADT</emphasis>: |
| 617 | The ADT provides a target-specific cross-development toolchain, the root filesystem, | 601 | The ADT provides a target-specific cross-development toolchain, the root filesystem, |
| 618 | the QEMU emulator, and other tools that can help you develop your application. | 602 | the QEMU emulator, and other tools that can help you develop your application. |
| 619 | While it is possible to get these pieces separately, the Yocto Project provides an | 603 | While it is possible to get these pieces separately, the ADT Installer provides an |
| 620 | easy method. | 604 | easy method. |
| 621 | You can get these pieces by running an ADT installer script, which is configurable. | 605 | You can get these pieces by running an ADT installer script, which is configurable. |
| 622 | For information on how to install the ADT, see the | 606 | For information on how to install the ADT, see the |
| @@ -707,14 +691,14 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the | |||
| 707 | <title>Modifying Temporary Source Code</title> | 691 | <title>Modifying Temporary Source Code</title> |
| 708 | 692 | ||
| 709 | <para> | 693 | <para> |
| 710 | Although the Yocto Project is typically used to build software, you might | 694 | You might |
| 711 | find it helpful during development to modify the temporary source code used by recipes | 695 | find it helpful during development to modify the temporary source code used by recipes |
| 712 | to build packages. | 696 | to build packages. |
| 713 | For example, suppose you are developing a patch and you need to experiment a bit | 697 | For example, suppose you are developing a patch and you need to experiment a bit |
| 714 | to figure out your solution. | 698 | to figure out your solution. |
| 715 | After you have initially built the package, you can iteratively tweak the | 699 | After you have initially built the package, you can iteratively tweak the |
| 716 | source code, which is located in the | 700 | source code, which is located in the |
| 717 | <link linkend='yocto-project-build-directory'>Yocto Project's Build Directory</link>, and then | 701 | <link linkend='build-directory'>build directory</link>, and then |
| 718 | you can force a re-compile and quickly test your altered code. | 702 | you can force a re-compile and quickly test your altered code. |
| 719 | Once you settle on a solution, you can then preserve your changes in the form of | 703 | Once you settle on a solution, you can then preserve your changes in the form of |
| 720 | patches. | 704 | patches. |
| @@ -728,12 +712,12 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the | |||
| 728 | 712 | ||
| 729 | <para> | 713 | <para> |
| 730 | During a build, the unpacked temporary source code used by recipes | 714 | During a build, the unpacked temporary source code used by recipes |
| 731 | to build packages is available in the Yocto Project Build Directory as | 715 | to build packages is available in the build directory as |
| 732 | defined by the | 716 | defined by the |
| 733 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-S'>S</ulink></filename> variable. | 717 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-S'>S</ulink></filename> variable. |
| 734 | Below is the default value for the <filename>S</filename> variable as defined in the | 718 | Below is the default value for the <filename>S</filename> variable as defined in the |
| 735 | <filename>meta/conf/bitbake.conf</filename> configuration file in the | 719 | <filename>meta/conf/bitbake.conf</filename> configuration file in the |
| 736 | <link linkend='yocto-project-files'>Yocto Project Files</link>: | 720 | <link linkend='source-directory'>source directory</link>: |
| 737 | <literallayout class='monospaced'> | 721 | <literallayout class='monospaced'> |
| 738 | S = ${WORKDIR}/${BP} | 722 | S = ${WORKDIR}/${BP} |
| 739 | </literallayout> | 723 | </literallayout> |
| @@ -758,8 +742,8 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the | |||
| 758 | ${TMPDIR}/work/${PACKAGE_ARCH}-poky-${TARGET_OS}/${PN}-${PV}-${PR} | 742 | ${TMPDIR}/work/${PACKAGE_ARCH}-poky-${TARGET_OS}/${PN}-${PV}-${PR} |
| 759 | </literallayout> | 743 | </literallayout> |
| 760 | Let's look at an example without variables. | 744 | Let's look at an example without variables. |
| 761 | Assuming a Yocto Project Files top-level directory named <filename>poky</filename> | 745 | Assuming a top-level source directory named <filename>poky</filename> |
| 762 | and a default Yocto Project Build Directory of <filename>poky/build</filename>, | 746 | and a default build directory of <filename>poky/build</filename>, |
| 763 | the following is the work directory for the <filename>acl</filename> package: | 747 | the following is the work directory for the <filename>acl</filename> package: |
| 764 | <literallayout class='monospaced'> | 748 | <literallayout class='monospaced'> |
| 765 | ~/poky/build/tmp/work/i586-poky-linux/acl-2.2.51-r3 | 749 | ~/poky/build/tmp/work/i586-poky-linux/acl-2.2.51-r3 |
| @@ -771,8 +755,8 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the | |||
| 771 | <literallayout class='monospaced'> | 755 | <literallayout class='monospaced'> |
| 772 | ${TMPDIR}/work/${MACHINE}-poky-${TARGET_OS}/${PN}-${PV}-${PR} | 756 | ${TMPDIR}/work/${MACHINE}-poky-${TARGET_OS}/${PN}-${PV}-${PR} |
| 773 | </literallayout> | 757 | </literallayout> |
| 774 | Again, assuming a Yocto Project Files top-level directory named <filename>poky</filename> | 758 | Again, assuming top-level source directory named <filename>poky</filename> |
| 775 | and a default Yocto Project Build Directory of <filename>poky/build</filename>, the | 759 | and a default build directory of <filename>poky/build</filename>, the |
| 776 | following is the work directory for the <filename>acl</filename> package that is being | 760 | following is the work directory for the <filename>acl</filename> package that is being |
| 777 | built for a MIPS-based device: | 761 | built for a MIPS-based device: |
| 778 | <literallayout class='monospaced'> | 762 | <literallayout class='monospaced'> |
| @@ -781,7 +765,7 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the | |||
| 781 | </para> | 765 | </para> |
| 782 | 766 | ||
| 783 | <note> | 767 | <note> |
| 784 | To better understand how the Yocto Project build system resolves directories during the | 768 | To better understand how the OpenEmbedded build system resolves directories during the |
| 785 | build process, see the glossary entries for the | 769 | build process, see the glossary entries for the |
| 786 | <ulink url='&YOCTO_DOCS_REF_URL;#var-WORKDIR'><filename>WORKDIR</filename></ulink>, | 770 | <ulink url='&YOCTO_DOCS_REF_URL;#var-WORKDIR'><filename>WORKDIR</filename></ulink>, |
| 787 | <ulink url='&YOCTO_DOCS_REF_URL;#var-TMPDIR'><filename>TMPDIR</filename></ulink>, | 771 | <ulink url='&YOCTO_DOCS_REF_URL;#var-TMPDIR'><filename>TMPDIR</filename></ulink>, |
| @@ -817,8 +801,8 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the | |||
| 817 | Follow these general steps: | 801 | Follow these general steps: |
| 818 | <orderedlist> | 802 | <orderedlist> |
| 819 | <listitem><para><emphasis>Find the Source Code:</emphasis> | 803 | <listitem><para><emphasis>Find the Source Code:</emphasis> |
| 820 | The temporary source code used by the Yocto Project build system is kept in the | 804 | The temporary source code used by the OpenEmbedded build system is kept in the |
| 821 | Yocto Project Build Directory. | 805 | build directory. |
| 822 | See the | 806 | See the |
| 823 | "<link linkend='finding-the-temporary-source-code'>Finding the Temporary Source Code</link>" | 807 | "<link linkend='finding-the-temporary-source-code'>Finding the Temporary Source Code</link>" |
| 824 | section to learn how to locate the directory that has the temporary source code for a | 808 | section to learn how to locate the directory that has the temporary source code for a |
| @@ -875,7 +859,7 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the | |||
| 875 | <listitem><para><emphasis>Copy the Patch File:</emphasis> | 859 | <listitem><para><emphasis>Copy the Patch File:</emphasis> |
| 876 | For simplicity, copy the patch file into a directory named <filename>files</filename>, | 860 | For simplicity, copy the patch file into a directory named <filename>files</filename>, |
| 877 | which you can create in the same directory as the recipe. | 861 | which you can create in the same directory as the recipe. |
| 878 | Placing the patch here guarantees that the Yocto Project build system will find | 862 | Placing the patch here guarantees that the OpenEmbedded build system will find |
| 879 | the patch. | 863 | the patch. |
| 880 | Next, add the patch into the | 864 | Next, add the patch into the |
| 881 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'>SRC_URI</ulink></filename> | 865 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'>SRC_URI</ulink></filename> |
| @@ -904,16 +888,15 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the | |||
| 904 | 888 | ||
| 905 | <note> | 889 | <note> |
| 906 | This workflow uses Git only for its ability to manage local changes to the source code | 890 | This workflow uses Git only for its ability to manage local changes to the source code |
| 907 | and produce patches independent of any version control used on the Yocto Project | 891 | and produce patches independent of any version control system used with the Yocto Project. |
| 908 | Files. | ||
| 909 | </note> | 892 | </note> |
| 910 | 893 | ||
| 911 | <para> | 894 | <para> |
| 912 | Follow these general steps: | 895 | Follow these general steps: |
| 913 | <orderedlist> | 896 | <orderedlist> |
| 914 | <listitem><para><emphasis>Find the Source Code:</emphasis> | 897 | <listitem><para><emphasis>Find the Source Code:</emphasis> |
| 915 | The temporary source code used by the Yocto Project build system is kept in the | 898 | The temporary source code used by the OpenEmbedded build system is kept in the |
| 916 | Yocto Project Build Directory. | 899 | build directory. |
| 917 | See the | 900 | See the |
| 918 | "<link linkend='finding-the-temporary-source-code'>Finding the Temporary Source Code</link>" | 901 | "<link linkend='finding-the-temporary-source-code'>Finding the Temporary Source Code</link>" |
| 919 | section to learn how to locate the directory that has the temporary source code for a | 902 | section to learn how to locate the directory that has the temporary source code for a |
| @@ -1002,7 +985,7 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the | |||
| 1002 | <listitem><para><emphasis>Copy the Patch File:</emphasis> | 985 | <listitem><para><emphasis>Copy the Patch File:</emphasis> |
| 1003 | For simplicity, copy the patch file into a directory named <filename>files</filename>, | 986 | For simplicity, copy the patch file into a directory named <filename>files</filename>, |
| 1004 | which you can create in the same directory as the recipe. | 987 | which you can create in the same directory as the recipe. |
| 1005 | Placing the patch here guarantees that the Yocto Project build system will find | 988 | Placing the patch here guarantees that the OpenEmbedded build system will find |
| 1006 | the patch. | 989 | the patch. |
| 1007 | Next, add the patch into the | 990 | Next, add the patch into the |
| 1008 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'>SRC_URI</ulink></filename> | 991 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'>SRC_URI</ulink></filename> |
| @@ -1024,11 +1007,11 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the | |||
| 1024 | <title>Image Development Using Hob</title> | 1007 | <title>Image Development Using Hob</title> |
| 1025 | 1008 | ||
| 1026 | <para> | 1009 | <para> |
| 1027 | The <ulink url='&YOCTO_HOME_URL;/projects/hob'>Hob</ulink> is a graphical user interface for the Yocto | 1010 | The <ulink url='&YOCTO_HOME_URL;/projects/hob'>Hob</ulink> is a graphical user interface for the |
| 1028 | Project build system based on BitBake. | 1011 | OpenEmbedded build system, which is based on BitBake. |
| 1029 | You can use the Hob to build custom operating system images within the Yocto Project build environment. | 1012 | You can use the Hob to build custom operating system images within the Yocto Project build environment. |
| 1030 | Hob simply provides a friendly interface over the build system used during system development. | 1013 | Hob simply provides a friendly interface over the build system used during system development. |
| 1031 | In other words, building images with the Hob lets you take care of common Yocto Project build tasks more easily. | 1014 | In other words, building images with the Hob lets you take care of common build tasks more easily. |
| 1032 | </para> | 1015 | </para> |
| 1033 | 1016 | ||
| 1034 | <para> | 1017 | <para> |
diff --git a/documentation/dev-manual/dev-manual-newbie.xml b/documentation/dev-manual/dev-manual-newbie.xml index 6a8d39caae..94f3471f13 100644 --- a/documentation/dev-manual/dev-manual-newbie.xml +++ b/documentation/dev-manual/dev-manual-newbie.xml | |||
| @@ -55,7 +55,7 @@ | |||
| 55 | </section> | 55 | </section> |
| 56 | 56 | ||
| 57 | <section id="usingpoky-changes-collaborate"> | 57 | <section id="usingpoky-changes-collaborate"> |
| 58 | <title>Using The Yocto Project in a Team Environment</title> | 58 | <title>Using the Yocto Project in a Team Environment</title> |
| 59 | 59 | ||
| 60 | <para> | 60 | <para> |
| 61 | It might not be immediately clear how you can use the Yocto Project in a team environment, | 61 | It might not be immediately clear how you can use the Yocto Project in a team environment, |
| @@ -97,19 +97,20 @@ | |||
| 97 | <para> | 97 | <para> |
| 98 | Most teams have many pieces of software undergoing active development at any given time. | 98 | Most teams have many pieces of software undergoing active development at any given time. |
| 99 | You can derive large benefits by putting these pieces under the control of a source | 99 | You can derive large benefits by putting these pieces under the control of a source |
| 100 | control system that is compatible with the Yocto Project (i.e. Git or Subversion (SVN)). | 100 | control system that is compatible (i.e. Git or Subversion (SVN)) with the OpenEmbeded |
| 101 | build system that the Yocto Project uses. | ||
| 101 | You can then set the autobuilder to pull the latest revisions of the packages | 102 | You can then set the autobuilder to pull the latest revisions of the packages |
| 102 | and test the latest commits by the builds. | 103 | and test the latest commits by the builds. |
| 103 | This practice quickly highlights issues. | 104 | This practice quickly highlights issues. |
| 104 | The Yocto Project easily supports testing configurations that use both a | 105 | The build system easily supports testing configurations that use both a |
| 105 | stable known good revision and a floating revision. | 106 | stable known good revision and a floating revision. |
| 106 | The Yocto Project can also take just the changes from specific source control branches. | 107 | The build system can also take just the changes from specific source control branches. |
| 107 | This capability allows you to track and test specific changes. | 108 | This capability allows you to track and test specific changes. |
| 108 | </para> | 109 | </para> |
| 109 | 110 | ||
| 110 | <para> | 111 | <para> |
| 111 | Perhaps the hardest part of setting this up is defining the software project or | 112 | Perhaps the hardest part of setting this up is defining the software project or |
| 112 | the Yocto Project metadata policies that surround the different source control systems. | 113 | the metadata policies that surround the different source control systems. |
| 113 | Of course circumstances will be different in each case. | 114 | Of course circumstances will be different in each case. |
| 114 | However, this situation reveals one of the Yocto Project's advantages - | 115 | However, this situation reveals one of the Yocto Project's advantages - |
| 115 | the system itself does not | 116 | the system itself does not |
| @@ -129,7 +130,7 @@ | |||
| 129 | From the interface, you can click on any particular item in the "Name" column and | 130 | From the interface, you can click on any particular item in the "Name" column and |
| 130 | see the URL at the bottom of the page that you need to set up a Git repository for | 131 | see the URL at the bottom of the page that you need to set up a Git repository for |
| 131 | that particular item. | 132 | that particular item. |
| 132 | Having a local Git repository of the Yocto Project files allows you to | 133 | Having a local Git repository of the source directory (poky) allows you to |
| 133 | make changes, contribute to the history, and ultimately enhance the Yocto Project's | 134 | make changes, contribute to the history, and ultimately enhance the Yocto Project's |
| 134 | tools, Board Support Packages, and so forth. | 135 | tools, Board Support Packages, and so forth. |
| 135 | </para> | 136 | </para> |
| @@ -147,8 +148,8 @@ | |||
| 147 | <ulink url='&YOCTO_HOME_URL;/download'>download page</ulink> and get a | 148 | <ulink url='&YOCTO_HOME_URL;/download'>download page</ulink> and get a |
| 148 | tarball of the release. | 149 | tarball of the release. |
| 149 | You can also go to this site to download any supported BSP tarballs. | 150 | You can also go to this site to download any supported BSP tarballs. |
| 150 | Unpacking the tarball gives you a hierarchical directory structure of Yocto Project | 151 | Unpacking the tarball gives you a hierarchical source directory that lets you develop |
| 151 | files that lets you develop using the Yocto Project. | 152 | using the Yocto Project. |
| 152 | </para> | 153 | </para> |
| 153 | 154 | ||
| 154 | <para> | 155 | <para> |
| @@ -157,22 +158,22 @@ | |||
| 157 | </para> | 158 | </para> |
| 158 | 159 | ||
| 159 | <para> | 160 | <para> |
| 160 | In summary, here is where you can get the Yocto Project files needed for development: | 161 | In summary, here is where you can get the project files needed for development: |
| 161 | <itemizedlist> | 162 | <itemizedlist> |
| 162 | <listitem><para id='source-repositories'><emphasis><ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi'>Source Repositories:</ulink></emphasis> | 163 | <listitem><para id='source-repositories'><emphasis><ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi'>Source Repositories:</ulink></emphasis> |
| 163 | This area contains IDE Plugins, Matchbox, Poky, Poky Support, Tools, Yocto Linux Kernel, and Yocto | 164 | This area contains IDE Plugins, Matchbox, Poky, Poky Support, Tools, Yocto Linux Kernel, and Yocto |
| 164 | Metadata Layers. | 165 | Metadata Layers. |
| 165 | You can create Git repositories for each of these areas.</para> | 166 | You can create local copies of Git repositories for each of these areas.</para> |
| 166 | <para> | 167 | <para> |
| 167 | <imagedata fileref="figures/source-repos.png" align="center" width="6in" depth="4in" /> | 168 | <imagedata fileref="figures/source-repos.png" align="center" width="6in" depth="4in" /> |
| 168 | </para></listitem> | 169 | </para></listitem> |
| 169 | <listitem><para><anchor id='index-downloads' /><emphasis><ulink url='&YOCTO_DL_URL;/releases/'>Index of /releases:</ulink></emphasis> | 170 | <listitem><para><anchor id='index-downloads' /><emphasis><ulink url='&YOCTO_DL_URL;/releases/'>Index of /releases:</ulink></emphasis> |
| 170 | This area contains index releases such as | 171 | This area contains index releases such as |
| 171 | the <trademark class='trade'>Eclipse</trademark> | 172 | the <trademark class='trade'>Eclipse</trademark> |
| 172 | Yocto Plug-in, miscellaneous support, Poky, pseudo, cross-development toolchains, | 173 | Yocto Plug-in, miscellaneous support, poky, pseudo, cross-development toolchains, |
| 173 | and all released versions of Yocto Project in the form of images or tarballs. | 174 | and all released versions of Yocto Project in the form of images or tarballs. |
| 174 | Downloading and extracting these files does not produce a Git repository but rather | 175 | Downloading and extracting these files does not produce a local copy of the |
| 175 | a snapshot of a particular release or image.</para> | 176 | Git repository but rather a snapshot of a particular release or image.</para> |
| 176 | <para> | 177 | <para> |
| 177 | <imagedata fileref="figures/index-downloads.png" align="center" width="6in" depth="4in" /> | 178 | <imagedata fileref="figures/index-downloads.png" align="center" width="6in" depth="4in" /> |
| 178 | </para></listitem> | 179 | </para></listitem> |
| @@ -199,7 +200,7 @@ | |||
| 199 | <listitem><para><emphasis>Append Files:</emphasis> Files that append build information to | 200 | <listitem><para><emphasis>Append Files:</emphasis> Files that append build information to |
| 200 | a recipe file. | 201 | a recipe file. |
| 201 | Append files are known as BitBake append files and <filename>.bbappend</filename> files. | 202 | Append files are known as BitBake append files and <filename>.bbappend</filename> files. |
| 202 | The Yocto Project build system expects every append file to have a corresponding and | 203 | The OpenEmbedded build system expects every append file to have a corresponding and |
| 203 | underlying recipe (<filename>.bb</filename>) file. | 204 | underlying recipe (<filename>.bb</filename>) file. |
| 204 | Furthermore, the append file and the underlying recipe must have the same root filename. | 205 | Furthermore, the append file and the underlying recipe must have the same root filename. |
| 205 | The filenames can differ only in the file type suffix used (e.g. | 206 | The filenames can differ only in the file type suffix used (e.g. |
| @@ -211,9 +212,49 @@ | |||
| 211 | "<link linkend='changing-recipes-kernel'>Changing <filename>recipes-kernel</filename></link>" | 212 | "<link linkend='changing-recipes-kernel'>Changing <filename>recipes-kernel</filename></link>" |
| 212 | sections.</para></listitem> | 213 | sections.</para></listitem> |
| 213 | <listitem><para><emphasis>BitBake:</emphasis> The task executor and scheduler used by | 214 | <listitem><para><emphasis>BitBake:</emphasis> The task executor and scheduler used by |
| 214 | the Yocto Project to build images. | 215 | the OpenEmbedded build system to build images. |
| 215 | For more information on BitBake, see the <ulink url='http://bitbake.berlios.de/manual/'> | 216 | For more information on BitBake, see the <ulink url='http://bitbake.berlios.de/manual/'> |
| 216 | BitBake documentation</ulink>.</para></listitem> | 217 | BitBake documentation</ulink>.</para></listitem> |
| 218 | <listitem> | ||
| 219 | <para id='build-directory'><emphasis>Build Directory:</emphasis> | ||
| 220 | This term refers to the area used by the OpenEmbedded build system for builds. | ||
| 221 | The area is created when you <filename>source</filename> the setup | ||
| 222 | environment script that is found in the source directory | ||
| 223 | (i.e. <filename>oe-init-build-env</filename>). | ||
| 224 | The <ulink url='&YOCTO_DOCS_REF_URL;#var-TOPDIR'><filename>TOPDIR</filename></ulink> | ||
| 225 | variable points to the build directory.</para> | ||
| 226 | |||
| 227 | <para>You have a lot of flexibility when creating the build directory. | ||
| 228 | Following are some examples that show how to create the directory: | ||
| 229 | <itemizedlist> | ||
| 230 | <listitem><para>Create the build directory in your current working directory | ||
| 231 | and name it <filename>build</filename>. | ||
| 232 | This is the default behavior. | ||
| 233 | <literallayout class='monospaced'> | ||
| 234 | $ source oe-init-build-env | ||
| 235 | </literallayout></para></listitem> | ||
| 236 | <listitem><para>Provide a directory path and specifically name the build | ||
| 237 | directory. | ||
| 238 | This next example creates a build directory named <filename>YP-&POKYVERSION;</filename> | ||
| 239 | in your home directory within the directory <filename>mybuilds</filename>. | ||
| 240 | If <filename>mybuilds</filename> does not exist, the directory is created for you: | ||
| 241 | <literallayout class='monospaced'> | ||
| 242 | $ source &OE_INIT_PATH; $HOME/mybuilds/YP-&POKYVERSION; | ||
| 243 | </literallayout></para></listitem> | ||
| 244 | <listitem><para>Provide an existing directory to use as the build directory. | ||
| 245 | This example uses the existing <filename>mybuilds</filename> directory | ||
| 246 | as the build directory. | ||
| 247 | <literallayout class='monospaced'> | ||
| 248 | $ source &OE_INIT_PATH; $HOME/mybuilds/ | ||
| 249 | </literallayout></para></listitem> | ||
| 250 | </itemizedlist> | ||
| 251 | </para></listitem> | ||
| 252 | <listitem><para><emphasis>Build System:</emphasis> In the context of the Yocto Project | ||
| 253 | this term refers to the OpenEmbedded build system used by the project. | ||
| 254 | This build system is based on the project known as "Poky." | ||
| 255 | For some historical information about Poky, see the | ||
| 256 | <link linkend='poky'>poky</link> term further along in this section. | ||
| 257 | </para></listitem> | ||
| 217 | <listitem><para><emphasis>Classes:</emphasis> Files that provide for logic encapsulation | 258 | <listitem><para><emphasis>Classes:</emphasis> Files that provide for logic encapsulation |
| 218 | and inheritance allowing commonly used patterns to be defined once and easily used | 259 | and inheritance allowing commonly used patterns to be defined once and easily used |
| 219 | in multiple recipes. | 260 | in multiple recipes. |
| @@ -222,13 +263,14 @@ | |||
| 222 | <listitem><para><emphasis>Configuration File:</emphasis> Configuration information in various | 263 | <listitem><para><emphasis>Configuration File:</emphasis> Configuration information in various |
| 223 | <filename>.conf</filename> files provides global definitions of variables. | 264 | <filename>.conf</filename> files provides global definitions of variables. |
| 224 | The <filename>conf/local.conf</filename> configuration file in the | 265 | The <filename>conf/local.conf</filename> configuration file in the |
| 225 | <link linkend='yocto-project-build-directory'>Yocto Project Build Directory</link> | 266 | <link linkend='build-directory'>build directory</link> |
| 226 | contains user-defined variables that affect each build. | 267 | contains user-defined variables that affect each build. |
| 227 | The <filename>meta-yocto/conf/distro/poky.conf</filename> configuration file | 268 | The <filename>meta-yocto/conf/distro/poky.conf</filename> configuration file |
| 228 | defines Yocto ‘distro’ configuration | 269 | defines Yocto ‘distro’ configuration |
| 229 | variables used only when building with this policy. | 270 | variables used only when building with this policy. |
| 230 | Machine configuration files, which | 271 | Machine configuration files, which |
| 231 | are located throughout the Yocto Project file structure, define | 272 | are located throughout the |
| 273 | <link linkend='source-directory'>source directory</link>, define | ||
| 232 | variables for specific hardware and are only used when building for that target | 274 | variables for specific hardware and are only used when building for that target |
| 233 | (e.g. the <filename>machine/beagleboard.conf</filename> configuration file defines | 275 | (e.g. the <filename>machine/beagleboard.conf</filename> configuration file defines |
| 234 | variables for the Texas Instruments ARM Cortex-A8 development board). | 276 | variables for the Texas Instruments ARM Cortex-A8 development board). |
| @@ -239,7 +281,8 @@ | |||
| 239 | tools and utilities that allow you to develop software for targeted architectures. | 281 | tools and utilities that allow you to develop software for targeted architectures. |
| 240 | This toolchain contains cross-compilers, linkers, and debuggers that are specific to | 282 | This toolchain contains cross-compilers, linkers, and debuggers that are specific to |
| 241 | an architecture. | 283 | an architecture. |
| 242 | You can use the Yocto Project to build cross-development toolchains in tarball form that, when | 284 | You can use the OpenEmbedded build system to build cross-development toolchains in tarball |
| 285 | form that, when | ||
| 243 | unpacked, contain the development tools you need to cross-compile and test your software. | 286 | unpacked, contain the development tools you need to cross-compile and test your software. |
| 244 | The Yocto Project ships with images that contain toolchains for supported architectures | 287 | The Yocto Project ships with images that contain toolchains for supported architectures |
| 245 | as well. | 288 | as well. |
| @@ -261,64 +304,63 @@ | |||
| 261 | Metadata includes recipes, classes, and configuration files.</para></listitem> | 304 | Metadata includes recipes, classes, and configuration files.</para></listitem> |
| 262 | <listitem><para><emphasis>OE-Core:</emphasis> A core set of metadata originating | 305 | <listitem><para><emphasis>OE-Core:</emphasis> A core set of metadata originating |
| 263 | with OpenEmbedded (OE) that is shared between OE and the Yocto Project. | 306 | with OpenEmbedded (OE) that is shared between OE and the Yocto Project. |
| 264 | This metadata is found in the <filename>meta</filename> directory of the Yocto Project | 307 | This metadata is found in the <filename>meta</filename> directory of the source |
| 265 | files.</para></listitem> | 308 | directory.</para></listitem> |
| 266 | <listitem><para><emphasis>Package:</emphasis> The packaged output from a baked recipe. | 309 | <listitem><para><emphasis>Package:</emphasis> The packaged output from a baked recipe. |
| 267 | A package is generally the compiled binaries produced from the recipe's sources. | 310 | A package is generally the compiled binaries produced from the recipe's sources. |
| 268 | You ‘bake’ something by running it through BitBake.</para></listitem> | 311 | You ‘bake’ something by running it through BitBake.</para></listitem> |
| 269 | <listitem><para><emphasis>Poky:</emphasis> The build tool that the Yocto Project | 312 | <listitem><para id='poky'><emphasis>Poky:</emphasis> The term "poky" can mean several things. |
| 270 | uses to create images.</para></listitem> | 313 | In its most general sence, it is an open-source project that was initially developed |
| 314 | by OpenedHand. With OpenedHand, poky was developed off of the existing OpenEmbedded | ||
| 315 | build system becoming a build system for embedded images. | ||
| 316 | After Intel Corporation aquired OpenedHand, the project poky became the basis for | ||
| 317 | the Yocto Project's build system. | ||
| 318 | Within the Yocto Project source repositories, poky exists as a separate Git repository | ||
| 319 | that can be cloned to yield a local copy on the host system. | ||
| 320 | Thus, "poky" can refer to the local copy of the source directory used to develop within | ||
| 321 | the Yocto Project.</para></listitem> | ||
| 271 | <listitem><para><emphasis>Recipe:</emphasis> A set of instructions for building packages. | 322 | <listitem><para><emphasis>Recipe:</emphasis> A set of instructions for building packages. |
| 272 | A recipe describes where you get source code and which patches to apply. | 323 | A recipe describes where you get source code and which patches to apply. |
| 273 | Recipes describe dependencies for libraries or for other recipes, and they | 324 | Recipes describe dependencies for libraries or for other recipes, and they |
| 274 | also contain configuration and compilation options. | 325 | also contain configuration and compilation options. |
| 275 | Recipes contain the logical unit of execution, the software/images to build, and | 326 | Recipes contain the logical unit of execution, the software/images to build, and |
| 276 | use the <filename>.bb</filename> file extension.</para></listitem> | 327 | use the <filename>.bb</filename> file extension.</para></listitem> |
| 277 | <listitem><para><emphasis>Tasks:</emphasis> Arbitrary groups of software Recipes. | ||
| 278 | You simply use Tasks to hold recipes that, when built, usually accomplish a single task. | ||
| 279 | For example, a task could contain the recipes for a company’s proprietary or value-add software. | ||
| 280 | Or, the task could contain the recipes that enable graphics. | ||
| 281 | A task is really just another recipe. | ||
| 282 | Because task files are recipes, they end with the <filename>.bb</filename> filename | ||
| 283 | extension.</para></listitem> | ||
| 284 | <listitem><para><emphasis>Upstream:</emphasis> A reference to source code or repositories | ||
| 285 | that are not local to the development system but located in a master area that is controlled | ||
| 286 | by the maintainer of the source code. | ||
| 287 | For example, in order for a developer to work on a particular piece of code, they need to | ||
| 288 | first get a copy of it from an "upstream" source.</para></listitem> | ||
| 289 | <listitem> | 328 | <listitem> |
| 290 | <para id='yocto-project-files'><emphasis>Yocto Project Files:</emphasis> | 329 | <para id='source-directory'><emphasis>Source Directory:</emphasis> |
| 291 | This term refers to the directory structure created as a result of either downloading | 330 | This term refers to the directory structure created as a result of either downloading |
| 292 | and unpacking a Yocto Project release tarball or setting up a Git repository | 331 | and unpacking a Yocto Project release tarball or creating a local copy of |
| 293 | by cloning <filename>git://git.yoctoproject.org/poky</filename>. | 332 | <filename>poky</filename> Git repository <filename>git://git.yoctoproject.org/poky</filename>. |
| 294 | Sometimes the term "the Yocto Project Files structure" is used as well.</para> | 333 | Sometimes you might here the term "poky directory" used to refer to this |
| 295 | 334 | directory structure.</para> | |
| 296 | <para>The Yocto Project Files contain BitBake, Documentation, metadata and | 335 | |
| 297 | other files that all support the development environment. | 336 | <para>The source directory contains BitBake, Documentation, metadata and |
| 298 | Consequently, you must have the Yocto Project Files in place on your development | 337 | other files that all support the Yocto Project. |
| 338 | Consequently, you must have the source directory in place on your development | ||
| 299 | system in order to do any development using the Yocto Project.</para> | 339 | system in order to do any development using the Yocto Project.</para> |
| 300 | 340 | ||
| 301 | <para>The name of the top-level directory of the Yocto Project Files structure | 341 | <para>For tarball expansion, the name of the top-level directory of the source directory |
| 302 | is derived from the Yocto Project release tarball. | 342 | is derived from the Yocto Project release tarball. |
| 303 | For example, downloading and unpacking <filename>&YOCTO_POKY_TARBALL;</filename> | 343 | For example, downloading and unpacking <filename>&YOCTO_POKY_TARBALL;</filename> |
| 304 | results in a Yocto Project file structure whose Yocto Project source directory is named | 344 | results in a source directory whose top-level folder is named |
| 305 | <filename>&YOCTO_POKY;</filename>. | 345 | <filename>&YOCTO_POKY;</filename>. |
| 306 | If you create a Git repository, then you can name the repository anything you like. | 346 | If you create a local copy of the Git repository, then you can name the repository |
| 307 | Throughout much of the documentation, the name of the Git repository is used as the | 347 | anything you like. |
| 308 | name for the local folder. | 348 | Throughout much of the documentation, <filename>poky</filename> is used as the name of |
| 349 | the top-level folder of the local copy of the poky Git repository. | ||
| 309 | So, for example, cloning the <filename>poky</filename> Git repository results in a | 350 | So, for example, cloning the <filename>poky</filename> Git repository results in a |
| 310 | local Git repository also named <filename>poky</filename>.</para> | 351 | local Git repository whose top-level folder is also named <filename>poky</filename>.</para> |
| 311 | 352 | ||
| 312 | <para>It is important to understand the differences between Yocto Project Files created | 353 | <para>It is important to understand the differences between the source directory created |
| 313 | by unpacking a release tarball as compared to cloning | 354 | by unpacking a released tarball as compared to cloning |
| 314 | <filename>git://git.yoctoproject.org/poky</filename>. | 355 | <filename>git://git.yoctoproject.org/poky</filename>. |
| 315 | When you unpack a tarball, you have an exact copy of the files based on the time of | 356 | When you unpack a tarball, you have an exact copy of the files based on the time of |
| 316 | release - a fixed release point. | 357 | release - a fixed release point. |
| 317 | Any changes you make to your local Yocto Project Files are on top of the release. | 358 | Any changes you make to your local files in the source directory are on top of the release. |
| 318 | On the other hand, when you clone the Yocto Project Git repository, you have an | 359 | On the other hand, when you clone the <filename>poky</filename> Git repository, you have an |
| 319 | active development repository. | 360 | active development repository. |
| 320 | In this case, any local changes you make to the Yocto Project can be later applied | 361 | In this case, any local changes you make to the source directory can be later applied |
| 321 | to active development branches of the upstream Yocto Project Git repository.</para> | 362 | to active development branches of the upstream <filename>poky</filename> Git |
| 363 | repository.</para> | ||
| 322 | 364 | ||
| 323 | <para>Finally, if you want to track a set of local changes while starting from the same point | 365 | <para>Finally, if you want to track a set of local changes while starting from the same point |
| 324 | as a release tarball, you can create a local Git branch that | 366 | as a release tarball, you can create a local Git branch that |
| @@ -329,41 +371,18 @@ | |||
| 329 | see the | 371 | see the |
| 330 | "<link linkend='repositories-tags-and-branches'>Repositories, Tags, and Branches</link>" | 372 | "<link linkend='repositories-tags-and-branches'>Repositories, Tags, and Branches</link>" |
| 331 | section.</para></listitem> | 373 | section.</para></listitem> |
| 332 | <listitem> | 374 | <listitem><para><emphasis>Tasks:</emphasis> Arbitrary groups of software Recipes. |
| 333 | <para id='yocto-project-build-directory'><emphasis>Yocto Project Build Directory:</emphasis> | 375 | You simply use Tasks to hold recipes that, when built, usually accomplish a single task. |
| 334 | This term refers to the area used by the Yocto Project for builds. | 376 | For example, a task could contain the recipes for a company’s proprietary or value-add software. |
| 335 | The area is created when you <filename>source</filename> the Yocto Project setup | 377 | Or, the task could contain the recipes that enable graphics. |
| 336 | environment script that is found in the Yocto Project files area | 378 | A task is really just another recipe. |
| 337 | (i.e. <filename>oe-init-build-env</filename>). | 379 | Because task files are recipes, they end with the <filename>.bb</filename> filename |
| 338 | The <ulink url='&YOCTO_DOCS_REF_URL;#var-TOPDIR'><filename>TOPDIR</filename></ulink> | 380 | extension.</para></listitem> |
| 339 | variable points to the build directory.</para> | 381 | <listitem><para><emphasis>Upstream:</emphasis> A reference to source code or repositories |
| 340 | 382 | that are not local to the development system but located in a master area that is controlled | |
| 341 | <para>You have a lot of flexibility when creating the Yocto Project Build Directory. | 383 | by the maintainer of the source code. |
| 342 | Following are some examples that show how to create the directory: | 384 | For example, in order for a developer to work on a particular piece of code, they need to |
| 343 | <itemizedlist> | 385 | first get a copy of it from an "upstream" source.</para></listitem> |
| 344 | <listitem><para>Create the build directory in your current working directory | ||
| 345 | and name it <filename>build</filename>. | ||
| 346 | This is the default behavior. | ||
| 347 | <literallayout class='monospaced'> | ||
| 348 | $ cd ~/poky | ||
| 349 | $ source oe-init-build-env | ||
| 350 | </literallayout></para></listitem> | ||
| 351 | <listitem><para>Provide a directory path and specifically name the build | ||
| 352 | directory. | ||
| 353 | This next example creates a build directory named <filename>YP-&POKYVERSION;</filename> | ||
| 354 | in your home directory within the directory <filename>mybuilds</filename>. | ||
| 355 | If <filename>mybuilds</filename> does not exist, the directory is created for you: | ||
| 356 | <literallayout class='monospaced'> | ||
| 357 | $ source &OE_INIT_PATH; $HOME/mybuilds/YP-&POKYVERSION; | ||
| 358 | </literallayout></para></listitem> | ||
| 359 | <listitem><para>Provide an existing directory to use as the build directory. | ||
| 360 | This example uses the existing <filename>mybuilds</filename> directory | ||
| 361 | as the build directory. | ||
| 362 | <literallayout class='monospaced'> | ||
| 363 | $ source &OE_INIT_PATH; $HOME/mybuilds/ | ||
| 364 | </literallayout></para></listitem> | ||
| 365 | </itemizedlist> | ||
| 366 | </para></listitem> | ||
| 367 | </itemizedlist> | 386 | </itemizedlist> |
| 368 | </para> | 387 | </para> |
| 369 | </section> | 388 | </section> |
| @@ -403,7 +422,7 @@ | |||
| 403 | <filename>meta/files/common-licenses</filename>. | 422 | <filename>meta/files/common-licenses</filename>. |
| 404 | Once the build completes, the list of all licenses found and used during that build are | 423 | Once the build completes, the list of all licenses found and used during that build are |
| 405 | kept in the | 424 | kept in the |
| 406 | <link linkend='yocto-project-build-directory'>Yocto Project Build Directory</link> at | 425 | <link linkend='build-directory'>build directory</link> at |
| 407 | <filename>tmp/deploy/images/licenses</filename>. | 426 | <filename>tmp/deploy/images/licenses</filename>. |
| 408 | </para> | 427 | </para> |
| 409 | 428 | ||
diff --git a/documentation/dev-manual/dev-manual-start.xml b/documentation/dev-manual/dev-manual-start.xml index 4dc2cfca00..15748ebfac 100644 --- a/documentation/dev-manual/dev-manual-start.xml +++ b/documentation/dev-manual/dev-manual-start.xml | |||
| @@ -24,14 +24,15 @@ | |||
| 24 | 24 | ||
| 25 | <para> | 25 | <para> |
| 26 | The Yocto Project is an open-source collaboration project focused on embedded Linux development. | 26 | The Yocto Project is an open-source collaboration project focused on embedded Linux development. |
| 27 | The project currently provides a build system, which is sometimes referred to as "Poky", | 27 | The project currently provides a build system, which is |
| 28 | and provides various ancillary tools suitable for the embedded developer. | 28 | referred to as the OpenEmbedded build system in the Yocto Project documentation. |
| 29 | The Yocto Project also features the Sato reference User Interface, which is optimized for | 29 | The Yocto Project provides various ancillary tools suitable for the embedded developer |
| 30 | and also features the Sato reference User Interface, which is optimized for | ||
| 30 | stylus driven, low-resolution screens. | 31 | stylus driven, low-resolution screens. |
| 31 | </para> | 32 | </para> |
| 32 | 33 | ||
| 33 | <para> | 34 | <para> |
| 34 | You can use the Yocto Project build system, which uses | 35 | You can use the OpenEmbedded build system, which uses |
| 35 | <ulink url='http://bitbake.berlios.de/manual/'>BitBake</ulink>, to develop complete Linux | 36 | <ulink url='http://bitbake.berlios.de/manual/'>BitBake</ulink>, to develop complete Linux |
| 36 | images and associated user-space applications for architectures based on ARM, MIPS, PowerPC, | 37 | images and associated user-space applications for architectures based on ARM, MIPS, PowerPC, |
| 37 | x86 and x86-64. | 38 | x86 and x86-64. |
| @@ -53,56 +54,50 @@ | |||
| 53 | <listitem><para><emphasis>Host System:</emphasis> You should have a reasonably current | 54 | <listitem><para><emphasis>Host System:</emphasis> You should have a reasonably current |
| 54 | Linux-based host system. | 55 | Linux-based host system. |
| 55 | You will have the best results with a recent release of Fedora, | 56 | You will have the best results with a recent release of Fedora, |
| 56 | OpenSUSE, or Ubuntu as these releases are frequently tested against the Yocto Project | 57 | OpenSUSE, Ubuntu, or CentOS as these releases are frequently tested against the Yocto Project |
| 57 | and officially supported. | 58 | and officially supported. |
| 58 | You should also have about 100 gigabytes of free disk space for building images. | 59 | You should also have about 100 gigabytes of free disk space for building images. |
| 59 | </para></listitem> | 60 | </para></listitem> |
| 60 | <listitem><para><emphasis>Packages:</emphasis> The Yocto Project requires certain packages | 61 | <listitem><para><emphasis>Packages:</emphasis> The OpenEmbedded build system |
| 61 | exist on your development system (e.g. Python 2.6 or 2.7). | 62 | requires certain packages exist on your development system (e.g. Python 2.6 or 2.7). |
| 62 | See "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Packages</ulink>" | 63 | See "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Packages</ulink>" |
| 63 | section in the Yocto Project Quick Start for the exact package | 64 | section in the Yocto Project Quick Start for the exact package |
| 64 | requirements and the installation commands to install them | 65 | requirements and the installation commands to install them |
| 65 | for the supported distributions.</para></listitem> | 66 | for the supported distributions.</para></listitem> |
| 66 | <listitem id='local-yp-release'><para><emphasis>Yocto Project Release:</emphasis> | 67 | <listitem id='local-yp-release'><para><emphasis>Yocto Project Release:</emphasis> |
| 67 | You need a release of the Yocto Project. | 68 | You need a release of the Yocto Project. |
| 68 | You can get set up with local | 69 | You set up a with local <link linkend='source-directory'>source directory</link> |
| 69 | <link linkend='yocto-project-files'>Yocto Project Files</link> one of two ways | 70 | one of two ways depending on whether you |
| 70 | depending on whether you | 71 | are going to contribute back into the Yocto Project or not. |
| 71 | are going to be contributing back into the Yocto Project source repository or not. | ||
| 72 | <note> | 72 | <note> |
| 73 | Regardless of the method you use, this manual refers to the resulting | 73 | Regardless of the method you use, this manual refers to the resulting local |
| 74 | hierarchical set of files as the "Yocto Project Files" or the "Yocto Project File | 74 | hierarchical set of files as the "source directory." |
| 75 | Structure." | ||
| 76 | </note> | 75 | </note> |
| 77 | <itemizedlist> | 76 | <itemizedlist> |
| 78 | <listitem><para><emphasis>Tarball Extraction:</emphasis> If you are not going to contribute | 77 | <listitem><para><emphasis>Tarball Extraction:</emphasis> If you are not going to contribute |
| 79 | back into the Yocto Project, you can simply download the Yocto Project release you want | 78 | back into the Yocto Project, you can simply download a Yocto Project release you want |
| 80 | from the website’s <ulink url='&YOCTO_HOME_URL;/download'>download page</ulink>. | 79 | from the website’s <ulink url='&YOCTO_HOME_URL;/download'>download page</ulink>. |
| 81 | Once you have the tarball, just extract it into a directory of your choice.</para> | 80 | Once you have the tarball, just extract it into a directory of your choice.</para> |
| 82 | <para>For example, the following command extracts the Yocto Project &DISTRO; | 81 | <para>For example, the following command extracts the Yocto Project &DISTRO; |
| 83 | release tarball | 82 | release tarball |
| 84 | into the current working directory and sets up the Yocto Project file structure | 83 | into the current working directory and sets up the local source directory |
| 85 | with a top-level directory named <filename>&YOCTO_POKY;</filename>: | 84 | with a top-level folder named <filename>&YOCTO_POKY;</filename>: |
| 86 | <literallayout class='monospaced'> | 85 | <literallayout class='monospaced'> |
| 87 | $ tar xfj &YOCTO_POKY_TARBALL; | 86 | $ tar xfj &YOCTO_POKY_TARBALL; |
| 88 | </literallayout></para> | 87 | </literallayout></para> |
| 89 | <para>This method does not produce a Git repository. | 88 | <para>This method does not produce a local Git repository. |
| 90 | Instead, you simply end up with a local snapshot of the | 89 | Instead, you simply end up with a snapshot of the release.</para></listitem> |
| 91 | Yocto Project files that are based on the particular release in the | ||
| 92 | tarball.</para></listitem> | ||
| 93 | <listitem><para><emphasis>Git Repository Method:</emphasis> If you are going to be contributing | 90 | <listitem><para><emphasis>Git Repository Method:</emphasis> If you are going to be contributing |
| 94 | back into the Yocto Project or you simply want to keep up | 91 | back into the Yocto Project or you simply want to keep up |
| 95 | with the latest developments, you should use Git commands to set up a local | 92 | with the latest developments, you should use Git commands to set up a local |
| 96 | Git repository of the Yocto Project Files. | 93 | Git repository of the upstream <filename>poky</filename> source repository. |
| 97 | Doing so creates a Git repository with a complete history of changes and allows | 94 | Doing so creates a repository with a complete history of changes and allows |
| 98 | you to easily submit your changes upstream to the project. | 95 | you to easily submit your changes upstream to the project. |
| 99 | Because you cloned the repository, you have access to all the Yocto Project development | 96 | Because you cloned the repository, you have access to all the Yocto Project development |
| 100 | branches and tag names used in the upstream repository.</para> | 97 | branches and tag names used in the upstream repository.</para> |
| 101 | <para>The following transcript shows how to clone the Yocto Project Files' | 98 | <para>The following transcript shows how to clone the <filename>poky</filename> |
| 102 | Git repository into the current working directory. | 99 | Git repository into the current working directory. |
| 103 | <note>The name of the Yocto Project Files Git repository in the Yocto Project Files | 100 | <note>You can view the Yocto Project Source Repositories at |
| 104 | Source Repositories is <filename>poky</filename>. | ||
| 105 | You can view the Yocto Project Source Repositories at | ||
| 106 | <ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink></note> | 101 | <ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink></note> |
| 107 | The command creates the local repository in a directory named <filename>poky</filename>. | 102 | The command creates the local repository in a directory named <filename>poky</filename>. |
| 108 | For information on Git used within the Yocto Project, see the | 103 | For information on Git used within the Yocto Project, see the |
| @@ -131,7 +126,7 @@ | |||
| 131 | copying that cloned repository. | 126 | copying that cloned repository. |
| 132 | You can create the bare clone and the copy of the bare clone anywhere you like. | 127 | You can create the bare clone and the copy of the bare clone anywhere you like. |
| 133 | For simplicity, it is recommended that you create these structures outside of the | 128 | For simplicity, it is recommended that you create these structures outside of the |
| 134 | Yocto Project Files Git repository.</para> | 129 | source directory (usually <filename>poky</filename>).</para> |
| 135 | <para>As an example, the following transcript shows how to create the bare clone | 130 | <para>As an example, the following transcript shows how to create the bare clone |
| 136 | of the <filename>linux-yocto-3.2</filename> kernel and then create a copy of | 131 | of the <filename>linux-yocto-3.2</filename> kernel and then create a copy of |
| 137 | that clone. | 132 | that clone. |
| @@ -166,15 +161,14 @@ | |||
| 166 | edit to point to your locally modified kernel source files and to build the kernel | 161 | edit to point to your locally modified kernel source files and to build the kernel |
| 167 | image. | 162 | image. |
| 168 | Pointing to these local files is much more efficient than requiring a download of the | 163 | Pointing to these local files is much more efficient than requiring a download of the |
| 169 | source files from upstream each time you make changes to the kernel.</para> | 164 | kernel's source files from upstream each time you make changes to the kernel.</para> |
| 170 | <para>You can find the <filename>poky-extras</filename> Git Repository in the | 165 | <para>You can find the <filename>poky-extras</filename> Git Repository in the |
| 171 | "Yocto Metadata Layers" area of the Yocto Project Source Repositories at | 166 | "Yocto Metadata Layers" area of the Yocto Project Source Repositories at |
| 172 | <ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink>. | 167 | <ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink>. |
| 173 | It is good practice to create this Git repository inside the Yocto Project | 168 | It is good practice to create this Git repository inside the source directory.</para> |
| 174 | files Git repository.</para> | ||
| 175 | <para>Following is an example that creates the <filename>poky-extras</filename> Git | 169 | <para>Following is an example that creates the <filename>poky-extras</filename> Git |
| 176 | repository inside the Yocto Project files Git repository, which is named | 170 | repository inside the source directory, which is named <filename>poky</filename> |
| 177 | <filename>poky</filename> in this case: | 171 | in this case: |
| 178 | <literallayout class='monospaced'> | 172 | <literallayout class='monospaced'> |
| 179 | $ git clone git://git.yoctoproject.org/poky-extras poky-extras | 173 | $ git clone git://git.yoctoproject.org/poky-extras poky-extras |
| 180 | Initialized empty Git repository in /home/scottrif/poky/poky-extras/.git/ | 174 | Initialized empty Git repository in /home/scottrif/poky/poky-extras/.git/ |
| @@ -194,7 +188,7 @@ | |||
| 194 | layer. | 188 | layer. |
| 195 | You can get set up for BSP development one of two ways: tarball extraction or | 189 | You can get set up for BSP development one of two ways: tarball extraction or |
| 196 | with a local Git repository. | 190 | with a local Git repository. |
| 197 | It is a good idea to use the same method used to set up the Yocto Project Files. | 191 | It is a good idea to use the same method that you used to set up the source directory. |
| 198 | Regardless of the method you use, the Yocto Project uses the following BSP layer | 192 | Regardless of the method you use, the Yocto Project uses the following BSP layer |
| 199 | naming scheme: | 193 | naming scheme: |
| 200 | <literallayout class='monospaced'> | 194 | <literallayout class='monospaced'> |
| @@ -220,16 +214,16 @@ | |||
| 220 | Again, this method just produces a snapshot of the BSP layer in the form | 214 | Again, this method just produces a snapshot of the BSP layer in the form |
| 221 | of a hierarchical directory structure.</para></listitem> | 215 | of a hierarchical directory structure.</para></listitem> |
| 222 | <listitem><para><emphasis>Git Repository Method:</emphasis> If you are working | 216 | <listitem><para><emphasis>Git Repository Method:</emphasis> If you are working |
| 223 | with a Yocto Project Files Git repository, you should also use this method | 217 | with a local Git repository for your source directory, you should also use this method |
| 224 | to set up the <filename>meta-intel</filename> Git repository. | 218 | to set up the <filename>meta-intel</filename> Git repository. |
| 225 | You can locate the <filename>meta-intel</filename> Git repository in the | 219 | You can locate the <filename>meta-intel</filename> Git repository in the |
| 226 | "Yocto Metadata Layers" area of the Yocto Project Source Repositories at | 220 | "Yocto Metadata Layers" area of the Yocto Project Source Repositories at |
| 227 | <ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink>.</para> | 221 | <ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink>.</para> |
| 228 | <para>Typically, you set up the <filename>meta-intel</filename> Git repository inside | 222 | <para>Typically, you set up the <filename>meta-intel</filename> Git repository inside |
| 229 | the Yocto Project Files Git repository. | 223 | the source directory. |
| 230 | For example, the following transcript shows the steps to clone the | 224 | For example, the following transcript shows the steps to clone the |
| 231 | <filename>meta-intel</filename> | 225 | <filename>meta-intel</filename> |
| 232 | Git repository inside the <filename>poky</filename> Git repository. | 226 | Git repository inside the local <filename>poky</filename> Git repository. |
| 233 | <literallayout class='monospaced'> | 227 | <literallayout class='monospaced'> |
| 234 | $ git clone git://git.yoctoproject.org/meta-intel.git | 228 | $ git clone git://git.yoctoproject.org/meta-intel.git |
| 235 | Initialized empty Git repository in /home/scottrif/poky/meta-intel/.git/ | 229 | Initialized empty Git repository in /home/scottrif/poky/meta-intel/.git/ |
| @@ -268,13 +262,13 @@ | |||
| 268 | <para> | 262 | <para> |
| 269 | The build process is as follows: | 263 | The build process is as follows: |
| 270 | <orderedlist> | 264 | <orderedlist> |
| 271 | <listitem><para>Make sure you have the Yocto Project files as described in the | 265 | <listitem><para>Make sure you have set up the source directory described in the |
| 272 | previous section.</para></listitem> | 266 | previous section.</para></listitem> |
| 273 | <listitem><para>Initialize the build environment by sourcing a build environment | 267 | <listitem><para>Initialize the build environment by sourcing a build environment |
| 274 | script.</para></listitem> | 268 | script.</para></listitem> |
| 275 | <listitem><para>Optionally ensure the <filename>conf/local.conf</filename> configuration file, | 269 | <listitem><para>Optionally ensure the <filename>conf/local.conf</filename> configuration file, |
| 276 | which is found in the | 270 | which is found in the |
| 277 | <link linkend='yocto-project-build-directory'>Yocto Project Build Directory</link>, | 271 | <link linkend='build-directory'>build directory</link>, |
| 278 | is set up how you want it. | 272 | is set up how you want it. |
| 279 | This file defines many aspects of the build environment including | 273 | This file defines many aspects of the build environment including |
| 280 | the target machine architecture through the | 274 | the target machine architecture through the |
