summaryrefslogtreecommitdiffstats
path: root/documentation/dev-manual/dev-manual-common-tasks.xml
diff options
context:
space:
mode:
authorScott Rifenbark <scott.m.rifenbark@intel.com>2012-07-02 09:59:11 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-07-03 14:55:02 +0100
commit85673e5466804f6918be72b3b27328783b5ac5c9 (patch)
tree27bbb4622ad024268b1a5980eb2d842fb6e4739d /documentation/dev-manual/dev-manual-common-tasks.xml
parent7606c30c1915bfa192e5b0d125dc6b6e5e7f1857 (diff)
downloadpoky-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/dev-manual-common-tasks.xml')
-rw-r--r--documentation/dev-manual/dev-manual-common-tasks.xml173
1 files changed, 64 insertions, 109 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-&lt;layer_name&gt;</filename> format.</para></listitem> 189 <filename>meta-&lt;layer_name&gt;</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<!--
1007WRITER NOTES:
1008
1009I had this chat with Richard:
1010
1011scottrif: 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
1022scottrif: 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
1027scottrif: 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
1032scottrif: 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
1043scottrif: Got it. I see them in poky/meta/conf/machine/include.
1044
1045SOME CONCLUSIONS:
1046
1047I need to define the term machine. It is confusing. Then, this section needs to be cleared up
1048so 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>