summaryrefslogtreecommitdiffstats
path: root/documentation/dev-manual
diff options
context:
space:
mode:
authorScott Rifenbark <scott.m.rifenbark@intel.com>2014-08-15 21:14:51 +0300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-09-22 13:04:42 +0100
commitf819f3d7b168e620844b150eded3d8ca80ec4ba2 (patch)
treea87898538de584c3dbd47e702d7d277fdcec3cd7 /documentation/dev-manual
parentc2e5449f96d13720e5c36efb069b70e75f9fd20a (diff)
downloadpoky-f819f3d7b168e620844b150eded3d8ca80ec4ba2.tar.gz
dev-manual: General edits to "Common Tasks" chapter.
* Found and fixed several areas with issues. * Scrubbed for user-supplied input to make it use the <replaceable></replaceable> tags. (From yocto-docs rev: 0e1c7ad31921ee7d4ee0d7d4ece01303a25a5d60) 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.xml334
1 files changed, 182 insertions, 152 deletions
diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml
index 604c484f30..5611d56838 100644
--- a/documentation/dev-manual/dev-manual-common-tasks.xml
+++ b/documentation/dev-manual/dev-manual-common-tasks.xml
@@ -421,7 +421,7 @@
421 <itemizedlist> 421 <itemizedlist>
422 <listitem><para>Store custom layers in a Git repository 422 <listitem><para>Store custom layers in a Git repository
423 that uses the 423 that uses the
424 <filename>meta-&lt;layer_name&gt;</filename> format. 424 <filename>meta-<replaceable>layer_name</replaceable></filename> format.
425 </para></listitem> 425 </para></listitem>
426 <listitem><para>Clone the repository alongside other 426 <listitem><para>Clone the repository alongside other
427 <filename>meta</filename> directories in the 427 <filename>meta</filename> directories in the
@@ -678,7 +678,7 @@
678 <para> 678 <para>
679 Use the following form when running the layer management tool. 679 Use the following form when running the layer management tool.
680 <literallayout class='monospaced'> 680 <literallayout class='monospaced'>
681 $ bitbake-layers &lt;command&gt; [arguments] 681 $ bitbake-layers <replaceable>command</replaceable> [<replaceable>arguments</replaceable>]
682 </literallayout> 682 </literallayout>
683 The following list describes the available commands: 683 The following list describes the available commands:
684 <itemizedlist> 684 <itemizedlist>
@@ -782,7 +782,7 @@
782 The default mode of the script's operation is to prompt you for 782 The default mode of the script's operation is to prompt you for
783 information needed to generate the layer: 783 information needed to generate the layer:
784 <itemizedlist> 784 <itemizedlist>
785 <listitem><para>The layer priority 785 <listitem><para>The layer priority.
786 </para></listitem> 786 </para></listitem>
787 <listitem><para>Whether or not to create a sample recipe. 787 <listitem><para>Whether or not to create a sample recipe.
788 </para></listitem> 788 </para></listitem>
@@ -823,7 +823,7 @@
823 This directory contains the layer's configuration file. 823 This directory contains the layer's configuration file.
824 The root name for the file is the same as the root name 824 The root name for the file is the same as the root name
825 your provided for the layer (e.g. 825 your provided for the layer (e.g.
826 <filename>&lt;layer&gt;.conf</filename>). 826 <filename><replaceable>layer</replaceable>.conf</filename>).
827 </para></listitem> 827 </para></listitem>
828 <listitem><para><emphasis>The 828 <listitem><para><emphasis>The
829 <filename>COPYING.MIT</filename> file:</emphasis> 829 <filename>COPYING.MIT</filename> file:</emphasis>
@@ -839,7 +839,7 @@
839 <para> 839 <para>
840 If you choose to generate a sample recipe file, the script 840 If you choose to generate a sample recipe file, the script
841 prompts you for the name for the recipe and then creates it 841 prompts you for the name for the recipe and then creates it
842 in <filename>&lt;layer&gt;/recipes-example/example/</filename>. 842 in <filename><replaceable>layer</replaceable>/recipes-example/example/</filename>.
843 The script creates a <filename>.bb</filename> file and a 843 The script creates a <filename>.bb</filename> file and a
844 directory, which contains a sample 844 directory, which contains a sample
845 <filename>helloworld.c</filename> source file, along with 845 <filename>helloworld.c</filename> source file, along with
@@ -851,7 +851,7 @@
851 <para> 851 <para>
852 If you choose to generate a sample append file, the script 852 If you choose to generate a sample append file, the script
853 prompts you for the name for the file and then creates it 853 prompts you for the name for the file and then creates it
854 in <filename>&lt;layer&gt;/recipes-example-bbappend/example-bbappend/</filename>. 854 in <filename><replaceable>layer</replaceable>/recipes-example-bbappend/example-bbappend/</filename>.
855 The script creates a <filename>.bbappend</filename> file and a 855 The script creates a <filename>.bbappend</filename> file and a
856 directory, which contains a sample patch file. 856 directory, which contains a sample patch file.
857 If you do not provide a recipe name, the script uses 857 If you do not provide a recipe name, the script uses
@@ -1228,7 +1228,7 @@
1228 1228
1229 S = "${WORKDIR}/${PN}-${PV}" 1229 S = "${WORKDIR}/${PN}-${PV}"
1230 1230
1231 inherit &lt;stuff&gt; 1231 inherit <replaceable>stuff</replaceable>
1232 </literallayout> 1232 </literallayout>
1233 Modifying this recipe is the recommended method for 1233 Modifying this recipe is the recommended method for
1234 creating a new recipe. 1234 creating a new recipe.
@@ -1274,7 +1274,7 @@
1274 When you name your recipe, you need to follow this naming 1274 When you name your recipe, you need to follow this naming
1275 convention: 1275 convention:
1276 <literallayout class='monospaced'> 1276 <literallayout class='monospaced'>
1277 &lt;basename&gt;_&lt;version&gt;.bb 1277 <replaceable>basename</replaceable>_<replaceable>version</replaceable>.bb
1278 </literallayout> 1278 </literallayout>
1279 Use lower-cased characters and do not include the reserved 1279 Use lower-cased characters and do not include the reserved
1280 suffixes <filename>-native</filename>, 1280 suffixes <filename>-native</filename>,
@@ -1394,13 +1394,13 @@
1394 </note> 1394 </note>
1395 </para></listitem> 1395 </para></listitem>
1396 <listitem><para><emphasis>Using Variables: <filename>${...}</filename></emphasis> - 1396 <listitem><para><emphasis>Using Variables: <filename>${...}</filename></emphasis> -
1397 Use the <filename>${&lt;varname&gt;}</filename> syntax to 1397 Use the <filename>${<replaceable>varname</replaceable>}</filename> syntax to
1398 access the contents of a variable: 1398 access the contents of a variable:
1399 <literallayout class='monospaced'> 1399 <literallayout class='monospaced'>
1400 SRC_URI = "${SOURCEFORGE_MIRROR}/libpng/zlib-${PV}.tar.gz" 1400 SRC_URI = "${SOURCEFORGE_MIRROR}/libpng/zlib-${PV}.tar.gz"
1401 </literallayout> 1401 </literallayout>
1402 </para></listitem> 1402 </para></listitem>
1403 <listitem><para><emphasis>Quote All Assignments: <filename>"&lt;value&gt;"</filename></emphasis> - 1403 <listitem><para><emphasis>Quote All Assignments: <filename>"<replaceable>value</replaceable>"</filename></emphasis> -
1404 Use double quotes around the value in all variable 1404 Use double quotes around the value in all variable
1405 assignments. 1405 assignments.
1406 <literallayout class='monospaced'> 1406 <literallayout class='monospaced'>
@@ -1541,12 +1541,12 @@
1541 Realize that some layers have a policy to use spaces 1541 Realize that some layers have a policy to use spaces
1542 for all indentation. 1542 for all indentation.
1543 </para></listitem> 1543 </para></listitem>
1544 <listitem><para><emphasis>Using Python for Complex Operations: <filename>${@&lt;python_code&gt;}</filename></emphasis> - 1544 <listitem><para><emphasis>Using Python for Complex Operations: <filename>${@<replaceable>python_code</replaceable>}</filename></emphasis> -
1545 For more advanced processing, it is possible to use 1545 For more advanced processing, it is possible to use
1546 Python code during variable assignments (e.g. 1546 Python code during variable assignments (e.g.
1547 search and replacement on a variable).</para> 1547 search and replacement on a variable).</para>
1548 <para>You indicate Python code using the 1548 <para>You indicate Python code using the
1549 <filename>${@&lt;python_code&gt;}</filename> 1549 <filename>${@<replaceable>python_code</replaceable>}</filename>
1550 syntax for the variable assignment: 1550 syntax for the variable assignment:
1551 <literallayout class='monospaced'> 1551 <literallayout class='monospaced'>
1552 SRC_URI = "ftp://ftp.info-zip.org/pub/infozip/src/zip${@d.getVar('PV',1).replace('.', '')}.tgz 1552 SRC_URI = "ftp://ftp.info-zip.org/pub/infozip/src/zip${@d.getVar('PV',1).replace('.', '')}.tgz
@@ -1589,10 +1589,10 @@
1589 <link linkend='build-directory'>Build Directory</link>, 1589 <link linkend='build-directory'>Build Directory</link>,
1590 use BitBake to process your recipe. 1590 use BitBake to process your recipe.
1591 All you need to provide is the 1591 All you need to provide is the
1592 <filename>&lt;basename&gt;</filename> of the recipe as described 1592 <filename><replaceable>basename</replaceable></filename> of the recipe as described
1593 in the previous section: 1593 in the previous section:
1594 <literallayout class='monospaced'> 1594 <literallayout class='monospaced'>
1595 $ bitbake &lt;basename&gt; 1595 $ bitbake <replaceable>basename</replaceable>
1596 </literallayout> 1596 </literallayout>
1597 1597
1598 </para> 1598 </para>
@@ -1632,7 +1632,7 @@
1632 You can find log files for each task in the recipe's 1632 You can find log files for each task in the recipe's
1633 <filename>temp</filename> directory (e.g. 1633 <filename>temp</filename> directory (e.g.
1634 <filename>poky/build/tmp/work/qemux86-poky-linux/foo/1.3.0-r0/temp</filename>). 1634 <filename>poky/build/tmp/work/qemux86-poky-linux/foo/1.3.0-r0/temp</filename>).
1635 Log files are named <filename>log.&lt;taskname&gt;</filename> 1635 Log files are named <filename>log.<replaceable>taskname</replaceable></filename>
1636 (e.g. <filename>log.do_configure</filename>, 1636 (e.g. <filename>log.do_configure</filename>,
1637 <filename>log.do_fetch</filename>, and 1637 <filename>log.do_fetch</filename>, and
1638 <filename>log.do_compile</filename>). 1638 <filename>log.do_compile</filename>).
@@ -1993,6 +1993,12 @@
1993 incorrect md5 strings, attempt to build the software, 1993 incorrect md5 strings, attempt to build the software,
1994 and then note the resulting error messages that will 1994 and then note the resulting error messages that will
1995 report the correct md5 strings. 1995 report the correct md5 strings.
1996 See the
1997 "<link linkend='new-recipe-fetching-code'>Fetching Code</link>"
1998 section for additional information.
1999 </para>
2000
2001 <para>
1996 Here is an example that assumes the software has a 2002 Here is an example that assumes the software has a
1997 <filename>COPYING</filename> file: 2003 <filename>COPYING</filename> file:
1998 <literallayout class='monospaced'> 2004 <literallayout class='monospaced'>
@@ -2087,7 +2093,7 @@
2087 <filename>configure.ac</filename> file, then your 2093 <filename>configure.ac</filename> file, then your
2088 software is built using Autotools. 2094 software is built using Autotools.
2089 If this is the case, you just need to worry about 2095 If this is the case, you just need to worry about
2090 tweaking the configuration.</para> 2096 modifying the configuration.</para>
2091 <para>When using Autotools, your recipe needs to inherit 2097 <para>When using Autotools, your recipe needs to inherit
2092 the 2098 the
2093 <ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-autotools'><filename>autotools</filename></ulink> 2099 <ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-autotools'><filename>autotools</filename></ulink>
@@ -2104,7 +2110,7 @@
2104 <filename>CMakeLists.txt</filename> file, then your 2110 <filename>CMakeLists.txt</filename> file, then your
2105 software is built using CMake. 2111 software is built using CMake.
2106 If this is the case, you just need to worry about 2112 If this is the case, you just need to worry about
2107 tweaking the configuration.</para> 2113 modifying the configuration.</para>
2108 <para>When you use CMake, your recipe needs to inherit 2114 <para>When you use CMake, your recipe needs to inherit
2109 the 2115 the
2110 <ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-cmake'><filename>cmake</filename></ulink> 2116 <ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-cmake'><filename>cmake</filename></ulink>
@@ -2152,8 +2158,8 @@
2152 that it did not find something that it needed for some 2158 that it did not find something that it needed for some
2153 desired optional functionality, then you would need to add 2159 desired optional functionality, then you would need to add
2154 those to <filename>DEPENDS</filename>. 2160 those to <filename>DEPENDS</filename>.
2155 Looking at the log might also reveal items being checked for 2161 Looking at the log might also reveal items being checked for,
2156 and/or enabled that you do not want, or items not being found 2162 enabled, or both that you do not want, or items not being found
2157 that are in <filename>DEPENDS</filename>, in which case 2163 that are in <filename>DEPENDS</filename>, in which case
2158 you would need to look at passing extra options to the 2164 you would need to look at passing extra options to the
2159 configure script as needed. 2165 configure script as needed.
@@ -2197,7 +2203,12 @@
2197 to an empty string: 2203 to an empty string:
2198 <literallayout class='monospaced'> 2204 <literallayout class='monospaced'>
2199 PARALLEL_MAKE = "" 2205 PARALLEL_MAKE = ""
2200 </literallayout></para></listitem> 2206 </literallayout></para>
2207 <para>
2208 For information on parallel Makefile issues, see the
2209 "<link linkend='debugging-parallel-make-races'>Debugging Parallel Make Rases</link>"
2210 section.
2211 </para></listitem>
2201 <listitem><para><emphasis>Improper host path usage:</emphasis> 2212 <listitem><para><emphasis>Improper host path usage:</emphasis>
2202 This failure applies to recipes building for the target 2213 This failure applies to recipes building for the target
2203 or <filename>nativesdk</filename> only. 2214 or <filename>nativesdk</filename> only.
@@ -2287,7 +2298,7 @@
2287 <filename>make install</filename>, you should do this 2298 <filename>make install</filename>, you should do this
2288 using a <filename>do_install_append</filename> function 2299 using a <filename>do_install_append</filename> function
2289 using the install command as described in 2300 using the install command as described in
2290 <emphasis>Manual</emphasis> later in this list. 2301 the "Manual" bulleted item later in this list.
2291 </para></listitem> 2302 </para></listitem>
2292 <listitem><para><emphasis>Other (using 2303 <listitem><para><emphasis>Other (using
2293 <filename>make install</filename>):</emphasis> 2304 <filename>make install</filename>):</emphasis>
@@ -2336,39 +2347,47 @@
2336 files have been installed correctly. 2347 files have been installed correctly.
2337 </para> 2348 </para>
2338 2349
2339 <note> 2350 <note><title>Notes</title>
2340 During the installation process, you might need to modify 2351 <itemizedlist>
2341 some of the installed files to suit the target layout. 2352 <listitem><para>
2342 For example, you might need to replace hard-coded paths in an 2353 During the installation process, you might need to
2343 initscript with values of variables provided by the build 2354 modify some of the installed files to suit the target
2344 system, such as replacing <filename>/usr/bin/</filename> with 2355 layout.
2345 <filename>${bindir}</filename>. 2356 For example, you might need to replace hard-coded paths
2346 If you do perform such modifications during 2357 in an initscript with values of variables provided by
2347 <filename>do_install</filename>, be sure to modify the 2358 the build system, such as replacing
2348 destination file after copying rather than before copying. 2359 <filename>/usr/bin/</filename> with
2349 Modifying after copying ensures that the build system can 2360 <filename>${bindir}</filename>.
2350 re-execute <filename>do_install</filename> if needed. 2361 If you do perform such modifications during
2351 </note> 2362 <filename>do_install</filename>, be sure to modify the
2352 2363 destination file after copying rather than before
2353 <note> 2364 copying.
2354 <filename>oe_runmake install</filename>, which can be run 2365 Modifying after copying ensures that the build system
2355 directly or can be run indirectly by the 2366 can re-execute <filename>do_install</filename> if
2356 <ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-autotools'><filename>autotools</filename></ulink> 2367 needed.
2357 and 2368 </para></listitem>
2358 <ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-cmake'><filename>cmake</filename></ulink> 2369 <listitem><para>
2359 classes, runs <filename>make install</filename> in parallel. 2370 <filename>oe_runmake install</filename>, which can be
2360 Sometimes, a Makefile can have missing dependencies between 2371 run directly or can be run indirectly by the
2361 targets that can result in race conditions. 2372 <ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-autotools'><filename>autotools</filename></ulink>
2362 If you experience intermittent failures during 2373 and
2363 <filename>do_install</filename>, you might be able to work 2374 <ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-cmake'><filename>cmake</filename></ulink>
2364 around them by disabling parallel Makefile installs 2375 classes, runs <filename>make install</filename> in
2365 by adding the following to the recipe: 2376 parallel.
2366 <literallayout class='monospaced'> 2377 Sometimes, a Makefile can have missing dependencies
2378 between targets that can result in race conditions.
2379 If you experience intermittent failures during
2380 <filename>do_install</filename>, you might be able to
2381 work around them by disabling parallel Makefile
2382 installs by adding the following to the recipe:
2383 <literallayout class='monospaced'>
2367 PARALLEL_MAKEINST = "" 2384 PARALLEL_MAKEINST = ""
2368 </literallayout> 2385 </literallayout>
2369 See 2386 See
2370 <ulink url='&YOCTO_DOCS_REF_URL;#var-PARALLEL_MAKEINST'><filename>PARALLEL_MAKEINST</filename></ulink> 2387 <ulink url='&YOCTO_DOCS_REF_URL;#var-PARALLEL_MAKEINST'><filename>PARALLEL_MAKEINST</filename></ulink>
2371 for additional information. 2388 for additional information.
2389 </para></listitem>
2390 </itemizedlist>
2372 </note> 2391 </note>
2373 </section> 2392 </section>
2374 2393
@@ -2464,7 +2483,9 @@
2464 that files are split up and packaged correctly. 2483 that files are split up and packaged correctly.
2465 </para></listitem> 2484 </para></listitem>
2466 <listitem><para><emphasis>Running QA Checks</emphasis>: 2485 <listitem><para><emphasis>Running QA Checks</emphasis>:
2467 The <filename>insane</filename> class adds a step to 2486 The
2487 <ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-insane'><filename>insane</filename></ulink>
2488 class adds a step to
2468 the package generation process so that output quality 2489 the package generation process so that output quality
2469 assurance checks are generated by the OpenEmbedded 2490 assurance checks are generated by the OpenEmbedded
2470 build system. 2491 build system.
@@ -2537,7 +2558,7 @@
2537 Ensuring that the package architecture is correct is 2558 Ensuring that the package architecture is correct is
2538 not critical while you are doing the first few builds 2559 not critical while you are doing the first few builds
2539 of your recipe. 2560 of your recipe.
2540 However, it is important in order to 2561 However, it is important in order
2541 to ensure that your recipe rebuilds (or does not 2562 to ensure that your recipe rebuilds (or does not
2542 rebuild) appropriately in response to changes in 2563 rebuild) appropriately in response to changes in
2543 configuration, and to ensure that you get the 2564 configuration, and to ensure that you get the
@@ -2575,7 +2596,7 @@
2575 recommended convention is to set 2596 recommended convention is to set
2576 <ulink url='&YOCTO_DOCS_REF_URL;#var-PV'><filename>PV</filename></ulink> 2597 <ulink url='&YOCTO_DOCS_REF_URL;#var-PV'><filename>PV</filename></ulink>
2577 within the recipe to 2598 within the recipe to
2578 "&lt;previous version&gt;+&lt;current version&gt;". 2599 "<replaceable>previous_version</replaceable>+<replaceable>current_version</replaceable>".
2579 You can use an additional variable so that you can use the 2600 You can use an additional variable so that you can use the
2580 current version elsewhere. 2601 current version elsewhere.
2581 Here is an example: 2602 Here is an example:
@@ -2591,7 +2612,7 @@
2591 2612
2592 <para> 2613 <para>
2593 Post-installation scripts run immediately after installing 2614 Post-installation scripts run immediately after installing
2594 a package on the target, or during image creation when a 2615 a package on the target or during image creation when a
2595 package is included in an image. 2616 package is included in an image.
2596 To add a post-installation script to a package, add a 2617 To add a post-installation script to a package, add a
2597 <filename>pkg_postinst_PACKAGENAME()</filename> function to 2618 <filename>pkg_postinst_PACKAGENAME()</filename> function to
@@ -2703,7 +2724,7 @@
2703 2724
2704 <para> 2725 <para>
2705 Building an application from a single file that is stored 2726 Building an application from a single file that is stored
2706 locally (e.g. under <filename>files/</filename>) requires 2727 locally (e.g. under <filename>files</filename>) requires
2707 a recipe that has the file listed in the 2728 a recipe that has the file listed in the
2708 <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'>SRC_URI</ulink></filename> 2729 <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'>SRC_URI</ulink></filename>
2709 variable. 2730 variable.
@@ -2794,7 +2815,7 @@
2794 If you need additional <filename>make</filename> options, you should store them in the 2815 If you need additional <filename>make</filename> options, you should store them in the
2795 <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_OEMAKE'>EXTRA_OEMAKE</ulink></filename> 2816 <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_OEMAKE'>EXTRA_OEMAKE</ulink></filename>
2796 variable. 2817 variable.
2797 BitBake passes these options into the <filename>make</filename> GNU invocation. 2818 BitBake passes these options into the GNU <filename>make</filename> invocation.
2798 Note that a <filename>do_install</filename> task is still required. 2819 Note that a <filename>do_install</filename> task is still required.
2799 Otherwise, BitBake runs an empty <filename>do_install</filename> task by default. 2820 Otherwise, BitBake runs an empty <filename>do_install</filename> task by default.
2800 </para> 2821 </para>
@@ -3045,7 +3066,7 @@
3045 <listitem><para><filename><ulink url='&YOCTO_DOCS_REF_URL;#var-TARGET_ARCH'>TARGET_ARCH</ulink></filename> 3066 <listitem><para><filename><ulink url='&YOCTO_DOCS_REF_URL;#var-TARGET_ARCH'>TARGET_ARCH</ulink></filename>
3046 (e.g. "arm")</para></listitem> 3067 (e.g. "arm")</para></listitem>
3047 <listitem><para><filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PREFERRED_PROVIDER'>PREFERRED_PROVIDER</ulink>_virtual/kernel</filename> 3068 <listitem><para><filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PREFERRED_PROVIDER'>PREFERRED_PROVIDER</ulink>_virtual/kernel</filename>
3048 (see below)</para></listitem> 3069 </para></listitem>
3049 <listitem><para><filename><ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE_FEATURES'>MACHINE_FEATURES</ulink></filename> 3070 <listitem><para><filename><ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE_FEATURES'>MACHINE_FEATURES</ulink></filename>
3050 (e.g. "apm screen wifi")</para></listitem> 3071 (e.g. "apm screen wifi")</para></listitem>
3051 </itemizedlist> 3072 </itemizedlist>
@@ -3515,7 +3536,7 @@
3515 The <filename>wic</filename> command and the infrastructure 3536 The <filename>wic</filename> command and the infrastructure
3516 it is based on is by definition incomplete. 3537 it is based on is by definition incomplete.
3517 Its purpose is to allow the generation of customized images, 3538 Its purpose is to allow the generation of customized images,
3518 and as such was designed to be completely extensible via a 3539 and as such was designed to be completely extensible through a
3519 plugin interface. 3540 plugin interface.
3520 See the 3541 See the
3521 "<link linkend='openembedded-kickstart-plugins'>Plugins</link>" 3542 "<link linkend='openembedded-kickstart-plugins'>Plugins</link>"
@@ -3638,7 +3659,7 @@
3638 <filename>create</filename> and <filename>list</filename>. 3659 <filename>create</filename> and <filename>list</filename>.
3639 You can get help for these commands as follows: 3660 You can get help for these commands as follows:
3640 <literallayout class='monospaced'> 3661 <literallayout class='monospaced'>
3641 $ wic help &lt;command&gt; 3662 $ wic help <replaceable>command</replaceable>
3642 </literallayout> 3663 </literallayout>
3643 </para> 3664 </para>
3644 3665
@@ -3652,7 +3673,7 @@
3652 a given topic by prefacing the topic with 3673 a given topic by prefacing the topic with
3653 <filename>wic help</filename>: 3674 <filename>wic help</filename>:
3654 <literallayout class='monospaced'> 3675 <literallayout class='monospaced'>
3655 $ wic help &lt;help topic&gt; 3676 $ wic help <replaceable>help_topic</replaceable>
3656 </literallayout> 3677 </literallayout>
3657 </para> 3678 </para>
3658 3679
@@ -3661,9 +3682,9 @@
3661 <filename>wic</filename> creates using the existing 3682 <filename>wic</filename> creates using the existing
3662 kickstart files with the following form of the command: 3683 kickstart files with the following form of the command:
3663 <literallayout class='monospaced'> 3684 <literallayout class='monospaced'>
3664 $ wic list &lt;image&gt; help 3685 $ wic list <replaceable>image</replaceable> help
3665 </literallayout> 3686 </literallayout>
3666 where <filename>&lt;image&gt;</filename> is either 3687 where <filename><replaceable>image</replaceable></filename> is either
3667 <filename>directdisk</filename> or 3688 <filename>directdisk</filename> or
3668 <filename>mkefidisk</filename>. 3689 <filename>mkefidisk</filename>.
3669 </para> 3690 </para>
@@ -3881,8 +3902,8 @@
3881 </para> 3902 </para>
3882 3903
3883 <para> 3904 <para>
3884 The output specifies exactly which image was 3905 The output specifies the exact created as well as where
3885 created as well as where it was created. 3906 it was created.
3886 The output also names the artifacts used and the exact 3907 The output also names the artifacts used and the exact
3887 <filename>.wks</filename> script that was used to generate 3908 <filename>.wks</filename> script that was used to generate
3888 the image. 3909 the image.
@@ -4139,7 +4160,7 @@
4139 <para> 4160 <para>
4140 To be more concrete, here is the plugin definition that 4161 To be more concrete, here is the plugin definition that
4141 matches a 4162 matches a
4142 <filename>'&dash;&dash;source bootimg-pcbios'</filename> usage, 4163 <filename>&dash;&dash;source bootimg-pcbios</filename> usage,
4143 along with an example 4164 along with an example
4144 method called by the <filename>wic</filename> implementation 4165 method called by the <filename>wic</filename> implementation
4145 when it needs to invoke an implementation-specific 4166 when it needs to invoke an implementation-specific
@@ -4223,7 +4244,7 @@
4223 The code that then needs to call the plugin methods uses 4244 The code that then needs to call the plugin methods uses
4224 <filename>plugin.get_source_plugin_methods()</filename> 4245 <filename>plugin.get_source_plugin_methods()</filename>
4225 to find the method or methods needed by the call. 4246 to find the method or methods needed by the call.
4226 Retrieval of those methods is accomplished is accomplished 4247 Retrieval of those methods is accomplished
4227 by filling up a dict with keys 4248 by filling up a dict with keys
4228 containing the method names of interest. 4249 containing the method names of interest.
4229 On success, these will be filled in with the actual 4250 On success, these will be filled in with the actual
@@ -4273,13 +4294,14 @@
4273 This command creates a partition on the system and uses the 4294 This command creates a partition on the system and uses the
4274 following syntax: 4295 following syntax:
4275 <literallayout class='monospaced'> 4296 <literallayout class='monospaced'>
4276 part &lt;mntpoint&gt; 4297 part <replaceable>mntpoint</replaceable>
4277 </literallayout> 4298 </literallayout>
4278 The <filename>&lt;mntpoint&gt;</filename> is where the 4299 The <filename><replaceable>mntpoint</replaceable></filename>
4300 is where the
4279 partition will be mounted and must be of one of the 4301 partition will be mounted and must be of one of the
4280 following forms: 4302 following forms:
4281 <itemizedlist> 4303 <itemizedlist>
4282 <listitem><para><filename>/&lt;path&gt;</filename>: 4304 <listitem><para><filename>/<replaceable>path</replaceable></filename>:
4283 For example, <filename>/</filename>, 4305 For example, <filename>/</filename>,
4284 <filename>/usr</filename>, and 4306 <filename>/usr</filename>, and
4285 <filename>/home</filename></para></listitem> 4307 <filename>/home</filename></para></listitem>
@@ -4327,7 +4349,7 @@
4327 follows for more information. 4349 follows for more information.
4328 </para> 4350 </para>
4329 <para>If you use 4351 <para>If you use
4330 <filename>&dash;&dash;source &lt;plugin-name&gt;</filename>, 4352 <filename>&dash;&dash;source <replaceable>plugin-name</replaceable></filename>,
4331 <filename>wic</filename> creates a partition as 4353 <filename>wic</filename> creates a partition as
4332 large as needed and fills it with the contents of 4354 large as needed and fills it with the contents of
4333 the partition that is generated by the 4355 the partition that is generated by the
@@ -4426,7 +4448,7 @@
4426 You can use the <filename>menuconfig</filename> tool and configuration fragments to 4448 You can use the <filename>menuconfig</filename> tool and configuration fragments to
4427 make sure your <filename>.config</filename> file is just how you need it. 4449 make sure your <filename>.config</filename> file is just how you need it.
4428 This section describes how to use <filename>menuconfig</filename>, create and use 4450 This section describes how to use <filename>menuconfig</filename>, create and use
4429 configuration fragments, and how to interactively tweak your <filename>.config</filename> 4451 configuration fragments, and how to interactively modify your <filename>.config</filename>
4430 file to create the leanest kernel configuration file possible. 4452 file to create the leanest kernel configuration file possible.
4431 </para> 4453 </para>
4432 4454
@@ -5230,8 +5252,8 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
5230 </para> 5252 </para>
5231 <para> 5253 <para>
5232 To set up passwords, use the 5254 To set up passwords, use the
5233 <filename>extrausers</filename> class, which is the 5255 <ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-extrausers'><filename>extrausers</filename></ulink>
5234 preferred method. 5256 class, which is the preferred method.
5235 For an example on how to set up both root and user 5257 For an example on how to set up both root and user
5236 passwords, see the 5258 passwords, see the
5237 "<ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-extrausers'><filename>extrausers.bbclass</filename></ulink>" 5259 "<ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-extrausers'><filename>extrausers.bbclass</filename></ulink>"
@@ -5252,7 +5274,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
5252 </para></listitem> 5274 </para></listitem>
5253 <listitem><para> 5275 <listitem><para>
5254 Consider enabling a Mandatory Access Control (MAC) 5276 Consider enabling a Mandatory Access Control (MAC)
5255 framework (such as SMACK or SELinux) and tuning it 5277 framework such as SMACK or SELinux and tuning it
5256 appropriately for your device's usage. 5278 appropriately for your device's usage.
5257 </para></listitem> 5279 </para></listitem>
5258 </itemizedlist> 5280 </itemizedlist>
@@ -5682,7 +5704,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
5682 section of the Yocto Project Linux Kernel Development 5704 section of the Yocto Project Linux Kernel Development
5683 Manual and the "<link linkend='creating-config-fragments'>Creating Configuration Fragments</link>" 5705 Manual and the "<link linkend='creating-config-fragments'>Creating Configuration Fragments</link>"
5684 section, which is in this manual.</para></listitem> 5706 section, which is in this manual.</para></listitem>
5685 <listitem><para><filename>bitbake -u depexp -g &lt;bitbake_target&gt;</filename>: 5707 <listitem><para><filename>bitbake -u depexp -g <replaceable>bitbake_target</replaceable></filename>:
5686 Using the BitBake command with these options brings up 5708 Using the BitBake command with these options brings up
5687 a Dependency Explorer from which you can view file 5709 a Dependency Explorer from which you can view file
5688 dependencies. 5710 dependencies.
@@ -5701,7 +5723,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
5701 libraries, and applications. 5723 libraries, and applications.
5702 To change things, you can configure how the packaging happens, 5724 To change things, you can configure how the packaging happens,
5703 which changes the way you build them. 5725 which changes the way you build them.
5704 You can also tweak the filesystem itself or select a different 5726 You can also modify the filesystem itself or select a different
5705 filesystem. 5727 filesystem.
5706 </para> 5728 </para>
5707 5729
@@ -5709,7 +5731,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
5709 First, find out what is hogging your root filesystem by running the 5731 First, find out what is hogging your root filesystem by running the
5710 <filename>dirsize.py</filename> script from your root directory: 5732 <filename>dirsize.py</filename> script from your root directory:
5711 <literallayout class='monospaced'> 5733 <literallayout class='monospaced'>
5712 $ cd &lt;root-directory-of-image&gt; 5734 $ cd <replaceable>root-directory-of-image</replaceable>
5713 $ dirsize.py 100000 > dirsize-100k.log 5735 $ dirsize.py 100000 > dirsize-100k.log
5714 $ cat dirsize-100k.log 5736 $ cat dirsize-100k.log
5715 </literallayout> 5737 </literallayout>
@@ -5729,8 +5751,8 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
5729 One way to see how packages relate to each other is by using 5751 One way to see how packages relate to each other is by using
5730 the Dependency Explorer UI with the BitBake command: 5752 the Dependency Explorer UI with the BitBake command:
5731 <literallayout class='monospaced'> 5753 <literallayout class='monospaced'>
5732 $ cd &lt;image-directory&gt; 5754 $ cd <replaceable>image-directory</replaceable>
5733 $ bitbake -u depexp -g &lt;image&gt; 5755 $ bitbake -u depexp -g <replaceable>image</replaceable>
5734 </literallayout> 5756 </literallayout>
5735 Use the interface to select potential packages you wish to 5757 Use the interface to select potential packages you wish to
5736 eliminate and see their dependency relationships. 5758 eliminate and see their dependency relationships.
@@ -5797,7 +5819,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
5797 Linux build directory to get an idea of what is making up 5819 Linux build directory to get an idea of what is making up
5798 the kernel: 5820 the kernel:
5799 <literallayout class='monospaced'> 5821 <literallayout class='monospaced'>
5800 $ cd &lt;top-level-linux-build-directory&gt; 5822 $ cd <replaceable>top-level-linux-build-directory</replaceable>
5801 $ ksize.py > ksize.log 5823 $ ksize.py > ksize.log
5802 $ cat ksize.log 5824 $ cat ksize.log
5803 </literallayout> 5825 </literallayout>
@@ -6148,7 +6170,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
6148 For this scenario, you need to start the PR Service using 6170 For this scenario, you need to start the PR Service using
6149 the <filename>bitbake-prserv</filename> command: 6171 the <filename>bitbake-prserv</filename> command:
6150 <literallayout class='monospaced'> 6172 <literallayout class='monospaced'>
6151 bitbake-prserv &dash;&dash;host &lt;ip&gt; &dash;&dash;port &lt;port&gt; &dash;&dash;start 6173 bitbake-prserv &dash;&dash;host <replaceable>ip</replaceable> &dash;&dash;port <replaceable>port</replaceable> &dash;&dash;start
6152 </literallayout> 6174 </literallayout>
6153 In addition to hand-starting the service, you need to 6175 In addition to hand-starting the service, you need to
6154 update the <filename>local.conf</filename> file of each 6176 update the <filename>local.conf</filename> file of each
@@ -6667,7 +6689,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
6667 Realize that it is not sufficient to simply do the 6689 Realize that it is not sufficient to simply do the
6668 following: 6690 following:
6669 <literallayout class='monospaced'> 6691 <literallayout class='monospaced'>
6670 $ bitbake &lt;some-package&gt; package-index 6692 $ bitbake <replaceable>some-package</replaceable> package-index
6671 </literallayout> 6693 </literallayout>
6672 This is because BitBake does not properly schedule the 6694 This is because BitBake does not properly schedule the
6673 <filename>package-index</filename> target fully after any 6695 <filename>package-index</filename> target fully after any
@@ -6687,7 +6709,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
6687 6709
6688 <para> 6710 <para>
6689 When your build is complete, your packages reside in the 6711 When your build is complete, your packages reside in the
6690 <filename>${TMPDIR}/deploy/&lt;package-format&gt;</filename> 6712 <filename>${TMPDIR}/deploy/<replaceable>package-format</replaceable></filename>
6691 directory. 6713 directory.
6692 For example, if <filename>${TMPDIR}</filename> 6714 For example, if <filename>${TMPDIR}</filename>
6693 is <filename>tmp</filename> and your selected package type 6715 is <filename>tmp</filename> and your selected package type
@@ -6785,7 +6807,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
6785 <para> 6807 <para>
6786 If you are using lighttpd, all you need 6808 If you are using lighttpd, all you need
6787 to do is to provide a link from your 6809 to do is to provide a link from your
6788 <filename>${TMPDIR}/deploy/&lt;package-format&gt;</filename> 6810 <filename>${TMPDIR}/deploy/<replaceable>package-format</replaceable></filename>
6789 directory to lighttpd's document-root. 6811 directory to lighttpd's document-root.
6790 You can determine the specifics of your lighttpd 6812 You can determine the specifics of your lighttpd
6791 installation by looking through its configuration file, 6813 installation by looking through its configuration file,
@@ -6936,7 +6958,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
6936 a shell script (<filename>run-ptest</filename>) that starts 6958 a shell script (<filename>run-ptest</filename>) that starts
6937 the test. 6959 the test.
6938 The shell script that starts the test must not contain 6960 The shell script that starts the test must not contain
6939 the actual test, the script only starts it. 6961 the actual test - the script only starts the test.
6940 On the other hand, the test can be anything from a simple 6962 On the other hand, the test can be anything from a simple
6941 shell script that runs a binary and checks the output to 6963 shell script that runs a binary and checks the output to
6942 an elaborate system of test binaries and data files. 6964 an elaborate system of test binaries and data files.
@@ -6946,7 +6968,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
6946 The test generates output in the format used by 6968 The test generates output in the format used by
6947 Automake: 6969 Automake:
6948 <literallayout class='monospaced'> 6970 <literallayout class='monospaced'>
6949 &lt;result&gt;: &lt;testname&gt; 6971 <replaceable>result</replaceable>: <replaceable>testname</replaceable>
6950 </literallayout> 6972 </literallayout>
6951 where the result can be <filename>PASS</filename>, 6973 where the result can be <filename>PASS</filename>,
6952 <filename>FAIL</filename>, or <filename>SKIP</filename>, 6974 <filename>FAIL</filename>, or <filename>SKIP</filename>,
@@ -6974,10 +6996,11 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
6974 EXTRA_IMAGE_FEATURES += "ptest-pkgs" 6996 EXTRA_IMAGE_FEATURES += "ptest-pkgs"
6975 </literallayout> 6997 </literallayout>
6976 Once your build is complete, the ptest files are installed 6998 Once your build is complete, the ptest files are installed
6977 into the <filename>/usr/lib/&lt;package&gt;/ptest</filename> 6999 into the
7000 <filename>/usr/lib/<replaceable>package</replaceable>/ptest</filename>
6978 directory within the image, where 7001 directory within the image, where
6979 <filename>&lt;package&gt;</filename> is the name of the 7002 <filename><replaceable>package</replaceable></filename>
6980 package. 7003 is the name of the package.
6981 </para> 7004 </para>
6982 </section> 7005 </section>
6983 7006
@@ -7062,7 +7085,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
7062 Consequently, packages that use the unaltered, 7085 Consequently, packages that use the unaltered,
7063 patched version of <filename>make check</filename> 7086 patched version of <filename>make check</filename>
7064 automatically cross-compiles.</para> 7087 automatically cross-compiles.</para>
7065 <para>However, you still must add a 7088 <para>Regardless, you still must add a
7066 <filename>do_compile_ptest</filename> function to 7089 <filename>do_compile_ptest</filename> function to
7067 build the test suite. 7090 build the test suite.
7068 Add a function similar to the following to your 7091 Add a function similar to the following to your
@@ -7185,7 +7208,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
7185 Use the following BitBake command form to fetch all the 7208 Use the following BitBake command form to fetch all the
7186 necessary sources without starting the build: 7209 necessary sources without starting the build:
7187 <literallayout class='monospaced'> 7210 <literallayout class='monospaced'>
7188 $ bitbake -c fetchall &lt;target&gt; 7211 $ bitbake -c fetchall <replaceable>target</replaceable>
7189 </literallayout> 7212 </literallayout>
7190 This variation of the BitBake command guarantees that you 7213 This variation of the BitBake command guarantees that you
7191 have all the sources for that BitBake target should you 7214 have all the sources for that BitBake target should you
@@ -7200,8 +7223,8 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
7200 7223
7201 <para> 7224 <para>
7202 By default, the OpenEmbedded build system uses the 7225 By default, the OpenEmbedded build system uses the
7203 <link linkend='build-directory'>Build Directory</link> to 7226 <link linkend='build-directory'>Build Directory</link> when
7204 build source code. 7227 building source code.
7205 The build process involves fetching the source files, unpacking 7228 The build process involves fetching the source files, unpacking
7206 them, and then patching them if necessary before the build takes 7229 them, and then patching them if necessary before the build takes
7207 place. 7230 place.
@@ -7235,7 +7258,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
7235 <filename>local.conf</filename> file: 7258 <filename>local.conf</filename> file:
7236 <literallayout class='monospaced'> 7259 <literallayout class='monospaced'>
7237 INHERIT += "externalsrc" 7260 INHERIT += "externalsrc"
7238 EXTERNALSRC_pn-myrecipe = "/some/path/to/your/source/tree" 7261 EXTERNALSRC_pn-myrecipe = "<replaceable>path-to-your-source-tree</replaceable>"
7239 </literallayout> 7262 </literallayout>
7240 </para> 7263 </para>
7241 7264
@@ -7249,7 +7272,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
7249 <ulink url='&YOCTO_DOCS_REF_URL;#var-EXTERNALSRC_BUILD'><filename>EXTERNALSRC_BUILD</filename></ulink> 7272 <ulink url='&YOCTO_DOCS_REF_URL;#var-EXTERNALSRC_BUILD'><filename>EXTERNALSRC_BUILD</filename></ulink>
7250 to point to that directory: 7273 to point to that directory:
7251 <literallayout class='monospaced'> 7274 <literallayout class='monospaced'>
7252 EXTERNALSRC_BUILD_pn-myrecipe = "/path/to/my/source/tree" 7275 EXTERNALSRC_BUILD_pn-myrecipe = "<replaceable>path-to-your-source-tree</replaceable>"
7253 </literallayout> 7276 </literallayout>
7254 </para> 7277 </para>
7255 </section> 7278 </section>
@@ -7310,7 +7333,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
7310 <title>Using systemd for the Main Image and Using SysVinit for the Rescue Image</title> 7333 <title>Using systemd for the Main Image and Using SysVinit for the Rescue Image</title>
7311 7334
7312 <para> 7335 <para>
7313 Set the these variables in your distribution configuration 7336 Set these variables in your distribution configuration
7314 file as follows: 7337 file as follows:
7315 <literallayout class='monospaced'> 7338 <literallayout class='monospaced'>
7316 DISTRO_FEATURES_append = " systemd" 7339 DISTRO_FEATURES_append = " systemd"
@@ -7354,7 +7377,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
7354 Then, you can add the following to your 7377 Then, you can add the following to your
7355 <filename>local.conf</filename>: 7378 <filename>local.conf</filename>:
7356 <literallayout class='monospaced'> 7379 <literallayout class='monospaced'>
7357 SRCREV_pn-&lt;PN&gt; = "${AUTOREV}" 7380 SRCREV_pn-<replaceable>PN</replaceable> = "${AUTOREV}"
7358 </literallayout> 7381 </literallayout>
7359 <ulink url='&YOCTO_DOCS_REF_URL;#var-PN'><filename>PN</filename></ulink> 7382 <ulink url='&YOCTO_DOCS_REF_URL;#var-PN'><filename>PN</filename></ulink>
7360 is the name of the recipe for which you want to enable automatic source 7383 is the name of the recipe for which you want to enable automatic source
@@ -7559,8 +7582,8 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
7559 <title>Enabling Tests</title> 7582 <title>Enabling Tests</title>
7560 7583
7561 <para> 7584 <para>
7562 Depending on whether you are planning on running tests using 7585 Depending on whether you are planning to run tests using
7563 QEMU or on running them on the hardware, you have to take 7586 QEMU or on the hardware, you have to take
7564 different steps to enable the tests. 7587 different steps to enable the tests.
7565 See the following subsections for information on how to 7588 See the following subsections for information on how to
7566 enable both types of tests. 7589 enable both types of tests.
@@ -7580,7 +7603,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
7580 <listitem><para>Add 7603 <listitem><para>Add
7581 <filename>NOPASSWD</filename> for your user 7604 <filename>NOPASSWD</filename> for your user
7582 in <filename>/etc/sudoers</filename> either for 7605 in <filename>/etc/sudoers</filename> either for
7583 ALL commands or just for 7606 all commands or just for
7584 <filename>runqemu-ifup</filename>. 7607 <filename>runqemu-ifup</filename>.
7585 You must provide the full path as that can 7608 You must provide the full path as that can
7586 change if you are using multiple clones of the 7609 change if you are using multiple clones of the
@@ -7622,7 +7645,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
7622 7645
7623 <para> 7646 <para>
7624 Once you start running the tests, the following happens: 7647 Once you start running the tests, the following happens:
7625 <itemizedlist> 7648 <orderedlist>
7626 <listitem><para>A copy of the root filesystem is written 7649 <listitem><para>A copy of the root filesystem is written
7627 to <filename>${WORKDIR}/testimage</filename>. 7650 to <filename>${WORKDIR}/testimage</filename>.
7628 </para></listitem> 7651 </para></listitem>
@@ -7652,7 +7675,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
7652 <filename>unittest</filename> in the task log at 7675 <filename>unittest</filename> in the task log at
7653 <filename>${WORKDIR}/temp/log.do_testimage</filename>. 7676 <filename>${WORKDIR}/temp/log.do_testimage</filename>.
7654 </para></listitem> 7677 </para></listitem>
7655 </itemizedlist> 7678 </orderedlist>
7656 </para> 7679 </para>
7657 </section> 7680 </section>
7658 7681
@@ -7779,7 +7802,8 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
7779 <filename>kmod</filename>). 7802 <filename>kmod</filename>).
7780 </para></listitem> 7803 </para></listitem>
7781 <listitem><para>Uses a custom 7804 <listitem><para>Uses a custom
7782 initramfs image with a custom installer. 7805 Initial RAM Disk (initramfs) image with a
7806 custom installer.
7783 A normal image that you can install usually 7807 A normal image that you can install usually
7784 creates a single rootfs partition. 7808 creates a single rootfs partition.
7785 This image uses another installer that 7809 This image uses another installer that
@@ -7859,7 +7883,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
7859 In this example, the expect script does the 7883 In this example, the expect script does the
7860 following: 7884 following:
7861 <literallayout class='monospaced'> 7885 <literallayout class='monospaced'>
7862 ssh test@10.11.12.1 "pyctl nuc1 &lt;arg&gt;" 7886 ssh test@10.11.12.1 "pyctl nuc1 <replaceable>arg</replaceable>"
7863 </literallayout> 7887 </literallayout>
7864 It then runs a Python script that controls power 7888 It then runs a Python script that controls power
7865 for a label called <filename>nuc1</filename>. 7889 for a label called <filename>nuc1</filename>.
@@ -7922,7 +7946,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
7922 </literallayout> 7946 </literallayout>
7923 Next, use BitBake to run the tests: 7947 Next, use BitBake to run the tests:
7924 <literallayout class='monospaced'> 7948 <literallayout class='monospaced'>
7925 bitbake -c testimage &lt;image&gt; 7949 bitbake -c testimage <replaceable>image</replaceable>
7926 </literallayout></para></listitem> 7950 </literallayout></para></listitem>
7927 </itemizedlist> 7951 </itemizedlist>
7928 </para> 7952 </para>
@@ -7944,7 +7968,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
7944 <ulink url='&YOCTO_DOCS_REF_URL;#var-BBPATH'><filename>BBPATH</filename></ulink> 7968 <ulink url='&YOCTO_DOCS_REF_URL;#var-BBPATH'><filename>BBPATH</filename></ulink>
7945 in the <filename>local.conf</filename> file as normal. 7969 in the <filename>local.conf</filename> file as normal.
7946 Be sure that tests reside in 7970 Be sure that tests reside in
7947 <filename>&lt;layer&gt;/lib/oeqa/runtime</filename>. 7971 <filename><replaceable>layer</replaceable>/lib/oeqa/runtime</filename>.
7948 <note> 7972 <note>
7949 Be sure that module names do not collide with module names 7973 Be sure that module names do not collide with module names
7950 used in the default set of test modules in 7974 used in the default set of test modules in
@@ -7990,7 +8014,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
7990 <listitem><para>The default tests for the image are defined 8014 <listitem><para>The default tests for the image are defined
7991 as: 8015 as:
7992 <literallayout class='monospaced'> 8016 <literallayout class='monospaced'>
7993 DEFAULT_TEST_SUITES_pn-&lt;image&gt; = "ping ssh df connman syslog xorg scp vnc date rpm smart dmesg" 8017 DEFAULT_TEST_SUITES_pn-<replaceable>image</replaceable> = "ping ssh df connman syslog xorg scp vnc date rpm smart dmesg"
7994 </literallayout></para></listitem> 8018 </literallayout></para></listitem>
7995 <listitem><para>Add your own test to the list of the 8019 <listitem><para>Add your own test to the list of the
7996 by using the following: 8020 by using the following:
@@ -8021,7 +8045,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
8021 </para> 8045 </para>
8022 8046
8023 <para> 8047 <para>
8024 If you image is already built, make sure the following are set 8048 If your image is already built, make sure the following are set
8025 in your <filename>local.conf</filename> file. 8049 in your <filename>local.conf</filename> file.
8026 Be sure to provide the IP address you need: 8050 Be sure to provide the IP address you need:
8027 <literallayout class='monospaced'> 8051 <literallayout class='monospaced'>
@@ -8042,22 +8066,6 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
8042 </para> 8066 </para>
8043 8067
8044 <para> 8068 <para>
8045 The exported data (i.e. <filename>testdata.json</filename>)
8046 contains paths to the Build Directory.
8047 Thus, the contents of the directory can be moved
8048 to another machine as long as you update some paths in the
8049 JSON.
8050 Usually you only care about the
8051 ${DEPLOY_DIR}/rpm directory (assuming the RPM and Smart tests
8052 are enabled).
8053 Consequently, running the tests on other machine
8054 means that you have to move the contents and call
8055 <filename>runexported</filename> with "&dash;&dash;deploy-dir PATH:
8056 ./runexported.py &dash;&dash;deploy-dir /new/path/on/this/machine testdata.json
8057 runexported.py accepts other arguments as well, see &dash;&dash;help.
8058 </para>
8059
8060 <para>
8061 You can now run the tests outside of the build environment: 8069 You can now run the tests outside of the build environment:
8062 <literallayout class='monospaced'> 8070 <literallayout class='monospaced'>
8063 $ cd tmp/testimage/core-image-sato 8071 $ cd tmp/testimage/core-image-sato
@@ -8071,6 +8079,27 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
8071 <filename>runexported.py</filename> 8079 <filename>runexported.py</filename>
8072 </note> 8080 </note>
8073 </para> 8081 </para>
8082
8083 <para>
8084 The exported data (i.e. <filename>testdata.json</filename>)
8085 contains paths to the Build Directory.
8086 Thus, the contents of the directory can be moved
8087 to another machine as long as you update some paths in the
8088 JSON.
8089 Usually, you only care about the
8090 <filename>${DEPLOY_DIR}/rpm</filename> directory
8091 (assuming the RPM and Smart tests are enabled).
8092 Consequently, running the tests on other machine
8093 means that you have to move the contents and call
8094 <filename>runexported.py</filename> with
8095 "&dash;&dash;deploy-dir <replaceable>path</replaceable>" as
8096 follows:
8097 <literallayout class='monospaced'>
8098 ./runexported.py &dash;&dash;deploy-dir /new/path/on/this/machine testdata.json
8099 </literallayout>
8100 <filename>runexported.py</filename> accepts other arguments
8101 as well as described using <filename>&dash;&dash;help</filename>.
8102 </para>
8074 </section> 8103 </section>
8075 8104
8076 <section id="qemu-image-writing-new-tests"> 8105 <section id="qemu-image-writing-new-tests">
@@ -8081,8 +8110,8 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
8081 proper place for the build system to find them. 8110 proper place for the build system to find them.
8082 New tests for additional functionality outside of the core 8111 New tests for additional functionality outside of the core
8083 should be added to the layer that adds the functionality, in 8112 should be added to the layer that adds the functionality, in
8084 <filename>&lt;layer&gt;/lib/oeqa/runtime</filename> (as 8113 <filename><replaceable>layer</replaceable>/lib/oeqa/runtime</filename>
8085 long as 8114 (as long as
8086 <ulink url='&YOCTO_DOCS_REF_URL;#var-BBPATH'><filename>BBPATH</filename></ulink> 8115 <ulink url='&YOCTO_DOCS_REF_URL;#var-BBPATH'><filename>BBPATH</filename></ulink>
8087 is extended in the layer's 8116 is extended in the layer's
8088 <filename>layer.conf</filename> file as normal). 8117 <filename>layer.conf</filename> file as normal).
@@ -8192,11 +8221,11 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
8192 The command returns a tuple: 8221 The command returns a tuple:
8193 (status, output), which are what 8222 (status, output), which are what
8194 their names imply - the return code 8223 their names imply - the return code
8195 of 'cmd' and whatever output 8224 of "cmd" and whatever output
8196 it produces. 8225 it produces.
8197 The optional timeout argument 8226 The optional timeout argument
8198 represents the number of seconds the 8227 represents the number of seconds the
8199 test should wait for 'cmd' to 8228 test should wait for "cmd" to
8200 return. 8229 return.
8201 If the argument is "None", the 8230 If the argument is "None", the
8202 test uses the default instance's 8231 test uses the default instance's
@@ -8293,8 +8322,8 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
8293 8322
8294 <para> 8323 <para>
8295 Because the host GDB is responsible for loading the debugging information and 8324 Because the host GDB is responsible for loading the debugging information and
8296 for doing the necessary processing to make actual debugging happen, the 8325 for doing the necessary processing to make actual debugging happen,
8297 user has to make sure the host can access the unstripped binaries complete 8326 you have to make sure the host can access the unstripped binaries complete
8298 with their debugging information and also be sure the target is compiled with no optimizations. 8327 with their debugging information and also be sure the target is compiled with no optimizations.
8299 The host GDB must also have local access to all the libraries used by the 8328 The host GDB must also have local access to all the libraries used by the
8300 debugged program. 8329 debugged program.
@@ -8342,7 +8371,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
8342 </para> 8371 </para>
8343 8372
8344 <para> 8373 <para>
8345 Here is an example that when entered from the host 8374 Here is an example, that when entered from the host,
8346 connects to the target and launches Gdbserver in order to 8375 connects to the target and launches Gdbserver in order to
8347 "debug" a binary named <filename>helloworld</filename>: 8376 "debug" a binary named <filename>helloworld</filename>:
8348 <literallayout class='monospaced'> 8377 <literallayout class='monospaced'>
@@ -8393,7 +8422,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
8393 </literallayout> 8422 </literallayout>
8394 Once the binary is built, you can find it here: 8423 Once the binary is built, you can find it here:
8395 <literallayout class='monospaced'> 8424 <literallayout class='monospaced'>
8396 tmp/sysroots/&lt;host-arch&gt;/usr/bin/&lt;target-platform&gt;/&lt;target-abi&gt;-gdb 8425 tmp/sysroots/<replaceable>host-arch</replaceable>/usr/bin/<replaceable>target-platform</replaceable>/<replaceable>target-abi</replaceable>-gdb
8397 </literallayout> 8426 </literallayout>
8398 </para> 8427 </para>
8399 </section> 8428 </section>
@@ -8709,7 +8738,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
8709 </literallayout> 8738 </literallayout>
8710 The final thing you need to do to implement the fix in the 8739 The final thing you need to do to implement the fix in the
8711 build is to update the "neard" recipe (i.e. 8740 build is to update the "neard" recipe (i.e.
8712 <filename>neard-0.14.bb</filename> so that the 8741 <filename>neard-0.14.bb</filename>) so that the
8713 <ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink> 8742 <ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink>
8714 statement includes the patch file. 8743 statement includes the patch file.
8715 The recipe file is in the folder above the patch. 8744 The recipe file is in the folder above the patch.
@@ -8922,19 +8951,20 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
8922 </para> 8951 </para>
8923 8952
8924 <note><title>Notes</title> 8953 <note><title>Notes</title>
8925 <para> 8954 <itemizedlist>
8926 For information on how to delete information from the Toaster 8955 <listitem><para>
8927 database, see the 8956 For information on how to delete information from the
8928 <ulink url='https://wiki.yoctoproject.org/wiki/Toaster#Deleting_a_Build_from_the_Toaster_Database'>Deleting a Build from the Toaster Database</ulink> 8957 Toaster database, see the
8929 wiki page. 8958 <ulink url='https://wiki.yoctoproject.org/wiki/Toaster#Deleting_a_Build_from_the_Toaster_Database'>Deleting a Build from the Toaster Database</ulink>
8930 </para> 8959 wiki page.
8931 8960 </para></listitem>
8932 <para> 8961 <listitem><para>
8933 For information on how to set up an instance of Toaster on 8962 For information on how to set up an instance of Toaster
8934 a remote host, see the 8963 on a remote host, see the
8935 <ulink url='https://wiki.yoctoproject.org/wiki/Toaster#Setting_up_a_Toaster_Instance_on_a_Remote_Host'>Setting Up a Toaster Instance on a Remote Host</ulink> 8964 <ulink url='https://wiki.yoctoproject.org/wiki/Toaster#Setting_up_a_Toaster_Instance_on_a_Remote_Host'>Setting Up a Toaster Instance on a Remote Host</ulink>
8936 wiki page. 8965 wiki page.
8937 </para> 8966 </para></listitem>
8967 </itemizedlist>
8938 </note> 8968 </note>
8939 </section> 8969 </section>
8940 8970
@@ -9179,8 +9209,8 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
9179 If you wish to perform kernel profiling, you need to be sure 9209 If you wish to perform kernel profiling, you need to be sure
9180 a <filename>vmlinux</filename> file that matches the running kernel is available. 9210 a <filename>vmlinux</filename> file that matches the running kernel is available.
9181 In the source directory, that file is usually located in 9211 In the source directory, that file is usually located in
9182 <filename>/boot/vmlinux-KERNELVERSION</filename>, where 9212 <filename>/boot/vmlinux-<replaceable>kernelversion</replaceable></filename>, where
9183 <filename>KERNEL-version</filename> is the version of the kernel. 9213 <filename><replaceable>kernelversion</replaceable></filename> is the version of the kernel.
9184 The OpenEmbedded build system generates separate <filename>vmlinux</filename> 9214 The OpenEmbedded build system generates separate <filename>vmlinux</filename>
9185 packages for each kernel it builds. 9215 packages for each kernel it builds.
9186 Thus, it should just be a question of making sure a matching package is 9216 Thus, it should just be a question of making sure a matching package is
@@ -9282,7 +9312,7 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
9282 <note> 9312 <note>
9283 The Yocto Project generates a license manifest during 9313 The Yocto Project generates a license manifest during
9284 image creation that is located 9314 image creation that is located
9285 in <filename>${DEPLOY_DIR}/licenses/&lt;image_name-datestamp&gt;</filename> 9315 in <filename>${DEPLOY_DIR}/licenses/<replaceable>image_name-datestamp</replaceable></filename>
9286 to assist with any audits. 9316 to assist with any audits.
9287 </note> 9317 </note>
9288 </para> 9318 </para>