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/dev-manual-common-tasks.xml | |
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/dev-manual-common-tasks.xml')
-rw-r--r-- | documentation/dev-manual/dev-manual-common-tasks.xml | 173 |
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-<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> |