diff options
Diffstat (limited to 'documentation/dev-manual')
| -rw-r--r-- | documentation/dev-manual/dev-manual-common-tasks.xml | 334 |
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-<layer_name></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 <command> [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><layer>.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><layer>/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><layer>/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 <stuff> | 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 | <basename>_<version>.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>${<varname>}</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>"<value>"</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>${@<python_code>}</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>${@<python_code>}</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><basename></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 <basename> | 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.<taskname></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 | "<previous version>+<current version>". | 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 <command> | 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 <help topic> | 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 <image> help | 3685 | $ wic list <replaceable>image</replaceable> help |
| 3665 | </literallayout> | 3686 | </literallayout> |
| 3666 | where <filename><image></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>'‐‐source bootimg-pcbios'</filename> usage, | 4163 | <filename>‐‐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 <mntpoint> | 4297 | part <replaceable>mntpoint</replaceable> |
| 4277 | </literallayout> | 4298 | </literallayout> |
| 4278 | The <filename><mntpoint></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>/<path></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>‐‐source <plugin-name></filename>, | 4352 | <filename>‐‐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 <bitbake_target></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 <root-directory-of-image> | 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 <image-directory> | 5754 | $ cd <replaceable>image-directory</replaceable> |
| 5733 | $ bitbake -u depexp -g <image> | 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 <top-level-linux-build-directory> | 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 ‐‐host <ip> ‐‐port <port> ‐‐start | 6173 | bitbake-prserv ‐‐host <replaceable>ip</replaceable> ‐‐port <replaceable>port</replaceable> ‐‐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 <some-package> 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/<package-format></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/<package-format></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 | <result>: <testname> | 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/<package>/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><package></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 <target> | 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-<PN> = "${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 <arg>" | 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 <image> | 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><layer>/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-<image> = "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 "‐‐deploy-dir PATH: | ||
| 8056 | ./runexported.py ‐‐deploy-dir /new/path/on/this/machine testdata.json | ||
| 8057 | runexported.py accepts other arguments as well, see ‐‐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 | "‐‐deploy-dir <replaceable>path</replaceable>" as | ||
| 8096 | follows: | ||
| 8097 | <literallayout class='monospaced'> | ||
| 8098 | ./runexported.py ‐‐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>‐‐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><layer>/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/<host-arch>/usr/bin/<target-platform>/<target-abi>-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/<image_name-datestamp></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> |
