summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Opdenacker <michael.opdenacker@bootlin.com>2021-04-16 18:27:05 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-04-23 16:39:03 +0100
commitc3c6de21876aad811e08538544c8fe76d22ccd09 (patch)
treee22ee00a9c1ec588965f32050a42e05946bc9f71
parent773536c333248214f8f41eff698d8bfd3c687249 (diff)
downloadpoky-c3c6de21876aad811e08538544c8fe76d22ccd09.tar.gz
manuals: code insertion simplification over two lines
This simplifies paragraphs ending with a colon and followed by code insertion. Automatically substituted through the command: sed -i -z "s/:\n\s*::/::/g" file.rst This generates identical HTML output. (From yocto-docs rev: 28e2192a7c12d64b68061138a9f6c796453eebb1) Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--documentation/dev-manual/common-tasks.rst1020
-rw-r--r--documentation/dev-manual/qemu.rst24
-rw-r--r--documentation/dev-manual/start.rst30
-rw-r--r--documentation/kernel-dev/advanced.rst87
-rw-r--r--documentation/kernel-dev/common.rst225
-rw-r--r--documentation/kernel-dev/concepts-appx.rst6
-rw-r--r--documentation/kernel-dev/faq.rst6
-rw-r--r--documentation/kernel-dev/maint-appx.rst15
-rw-r--r--documentation/overview-manual/concepts.rst51
-rw-r--r--documentation/overview-manual/development-environment.rst6
-rw-r--r--documentation/ref-manual/classes.rst87
-rw-r--r--documentation/ref-manual/devtool-reference.rst51
-rw-r--r--documentation/ref-manual/faq.rst12
-rw-r--r--documentation/ref-manual/features.rst3
-rw-r--r--documentation/ref-manual/images.rst3
-rw-r--r--documentation/ref-manual/kickstart.rst6
-rw-r--r--documentation/ref-manual/migration-1.3.rst3
-rw-r--r--documentation/ref-manual/migration-1.4.rst6
-rw-r--r--documentation/ref-manual/migration-1.6.rst6
-rw-r--r--documentation/ref-manual/migration-1.7.rst6
-rw-r--r--documentation/ref-manual/migration-2.0.rst9
-rw-r--r--documentation/ref-manual/migration-2.1.rst9
-rw-r--r--documentation/ref-manual/migration-2.2.rst12
-rw-r--r--documentation/ref-manual/migration-2.3.rst16
-rw-r--r--documentation/ref-manual/migration-2.5.rst6
-rw-r--r--documentation/ref-manual/migration-2.6.rst15
-rw-r--r--documentation/ref-manual/migration-3.1.rst3
-rw-r--r--documentation/ref-manual/qa-checks.rst9
-rw-r--r--documentation/ref-manual/structure.rst18
-rw-r--r--documentation/ref-manual/system-requirements.rst69
-rw-r--r--documentation/ref-manual/tasks.rst48
-rw-r--r--documentation/ref-manual/terms.rst3
-rw-r--r--documentation/ref-manual/variables.rst849
-rw-r--r--documentation/sdk-manual/appendix-customizing.rst27
-rw-r--r--documentation/sdk-manual/appendix-obtain.rst30
-rw-r--r--documentation/sdk-manual/extensible.rst81
-rw-r--r--documentation/sdk-manual/using.rst6
-rw-r--r--documentation/sdk-manual/working-projects.rst60
38 files changed, 974 insertions, 1949 deletions
diff --git a/documentation/dev-manual/common-tasks.rst b/documentation/dev-manual/common-tasks.rst
index b3ee2b13b4..dcd3a11c3e 100644
--- a/documentation/dev-manual/common-tasks.rst
+++ b/documentation/dev-manual/common-tasks.rst
@@ -49,15 +49,13 @@ Follow these general steps to create your layer without using tools:
49 (e.g. the cloned ``poky`` repository). 49 (e.g. the cloned ``poky`` repository).
50 50
51 While not strictly required, prepend the name of the directory with 51 While not strictly required, prepend the name of the directory with
52 the string "meta-". For example: 52 the string "meta-". For example::
53 ::
54 53
55 meta-mylayer 54 meta-mylayer
56 meta-GUI_xyz 55 meta-GUI_xyz
57 meta-mymachine 56 meta-mymachine
58 57
59 With rare exceptions, a layer's name follows this form: 58 With rare exceptions, a layer's name follows this form::
60 ::
61 59
62 meta-root_name 60 meta-root_name
63 61
@@ -77,8 +75,7 @@ Follow these general steps to create your layer without using tools:
77 :yocto_git:`Source Repositories </poky/tree/meta-yocto-bsp/conf>` 75 :yocto_git:`Source Repositories </poky/tree/meta-yocto-bsp/conf>`
78 demonstrates the required syntax. For your layer, you need to replace 76 demonstrates the required syntax. For your layer, you need to replace
79 "yoctobsp" with a unique identifier for your layer (e.g. "machinexyz" 77 "yoctobsp" with a unique identifier for your layer (e.g. "machinexyz"
80 for a layer named "meta-machinexyz"): 78 for a layer named "meta-machinexyz")::
81 ::
82 79
83 # We have a conf and classes directory, add to BBPATH 80 # We have a conf and classes directory, add to BBPATH
84 BBPATH .= ":${LAYERDIR}" 81 BBPATH .= ":${LAYERDIR}"
@@ -195,8 +192,7 @@ following list:
195 machine "one". To do so, you use an append file named 192 machine "one". To do so, you use an append file named
196 ``base-files.bbappend`` and create a dependency on "foo" by 193 ``base-files.bbappend`` and create a dependency on "foo" by
197 altering the :term:`DEPENDS` 194 altering the :term:`DEPENDS`
198 variable: 195 variable::
199 ::
200 196
201 DEPENDS = "foo" 197 DEPENDS = "foo"
202 198
@@ -209,14 +205,12 @@ following list:
209 ``foo``. 205 ``foo``.
210 206
211 To make sure your changes apply only when building machine "one", 207 To make sure your changes apply only when building machine "one",
212 use a machine override with the ``DEPENDS`` statement: 208 use a machine override with the ``DEPENDS`` statement::
213 ::
214 209
215 DEPENDS_one = "foo" 210 DEPENDS_one = "foo"
216 211
217 You should follow the same strategy when using ``_append`` 212 You should follow the same strategy when using ``_append``
218 and ``_prepend`` operations: 213 and ``_prepend`` operations::
219 ::
220 214
221 DEPENDS_append_one = " foo" 215 DEPENDS_append_one = " foo"
222 DEPENDS_prepend_one = "foo " 216 DEPENDS_prepend_one = "foo "
@@ -224,8 +218,7 @@ following list:
224 As an actual example, here's a 218 As an actual example, here's a
225 snippet from the generic kernel include file ``linux-yocto.inc``, 219 snippet from the generic kernel include file ``linux-yocto.inc``,
226 wherein the kernel compile and link options are adjusted in the 220 wherein the kernel compile and link options are adjusted in the
227 case of a subset of the supported architectures: 221 case of a subset of the supported architectures::
228 ::
229 222
230 DEPENDS_append_aarch64 = " libgcc" 223 DEPENDS_append_aarch64 = " libgcc"
231 KERNEL_CC_append_aarch64 = " ${TOOLCHAIN_OPTIONS}" 224 KERNEL_CC_append_aarch64 = " ${TOOLCHAIN_OPTIONS}"
@@ -252,8 +245,7 @@ following list:
252 file, you can use an append file to cause the build to use your 245 file, you can use an append file to cause the build to use your
253 own version of the file. For example, an append file in your layer 246 own version of the file. For example, an append file in your layer
254 at ``meta-one/recipes-core/base-files/base-files.bbappend`` could 247 at ``meta-one/recipes-core/base-files/base-files.bbappend`` could
255 extend :term:`FILESPATH` using :term:`FILESEXTRAPATHS` as follows: 248 extend :term:`FILESPATH` using :term:`FILESEXTRAPATHS` as follows::
256 ::
257 249
258 FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" 250 FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"
259 251
@@ -375,8 +367,7 @@ the COMMON and DISTRO related tests. Furthermore, if your layer is a BSP
375layer, the layer must pass the COMMON and BSP set of tests. 367layer, the layer must pass the COMMON and BSP set of tests.
376 368
377To execute the script, enter the following commands from your build 369To execute the script, enter the following commands from your build
378directory: 370directory::
379::
380 371
381 $ source oe-init-build-env 372 $ source oe-init-build-env
382 $ yocto-check-layer your_layer_directory 373 $ yocto-check-layer your_layer_directory
@@ -432,8 +423,7 @@ enable it. To enable your layer, simply add your layer's path to the
432``BBLAYERS`` variable in your ``conf/bblayers.conf`` file, which is 423``BBLAYERS`` variable in your ``conf/bblayers.conf`` file, which is
433found in the :term:`Build Directory`. 424found in the :term:`Build Directory`.
434The following example shows how to enable a layer named 425The following example shows how to enable a layer named
435``meta-mylayer``: 426``meta-mylayer``::
436::
437 427
438 # POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf 428 # POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
439 # changes incompatibly 429 # changes incompatibly
@@ -488,8 +478,7 @@ As an example, consider the main formfactor recipe and a corresponding
488formfactor append file both from the :term:`Source Directory`. 478formfactor append file both from the :term:`Source Directory`.
489Here is the main 479Here is the main
490formfactor recipe, which is named ``formfactor_0.0.bb`` and located in 480formfactor recipe, which is named ``formfactor_0.0.bb`` and located in
491the "meta" layer at ``meta/recipes-bsp/formfactor``: 481the "meta" layer at ``meta/recipes-bsp/formfactor``::
492::
493 482
494 SUMMARY = "Device formfactor information" 483 SUMMARY = "Device formfactor information"
495 DESCRIPTION = "A formfactor configuration file provides information about the \ 484 DESCRIPTION = "A formfactor configuration file provides information about the \
@@ -521,8 +510,7 @@ during the build.
521 510
522Following is the append file, which is named ``formfactor_0.0.bbappend`` 511Following is the append file, which is named ``formfactor_0.0.bbappend``
523and is from the Raspberry Pi BSP Layer named ``meta-raspberrypi``. The 512and is from the Raspberry Pi BSP Layer named ``meta-raspberrypi``. The
524file is in the layer at ``recipes-bsp/formfactor``: 513file is in the layer at ``recipes-bsp/formfactor``::
525::
526 514
527 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" 515 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
528 516
@@ -570,8 +558,7 @@ build system to calculate it based on the layer's dependencies.
570 558
571To specify the layer's priority manually, use the 559To specify the layer's priority manually, use the
572:term:`BBFILE_PRIORITY` 560:term:`BBFILE_PRIORITY`
573variable and append the layer's root name: 561variable and append the layer's root name::
574::
575 562
576 BBFILE_PRIORITY_mylayer = "1" 563 BBFILE_PRIORITY_mylayer = "1"
577 564
@@ -595,8 +582,7 @@ with their paths and priorities and on ``.bbappend`` files and their
595applicable recipes can help to reveal potential problems. 582applicable recipes can help to reveal potential problems.
596 583
597For help on the BitBake layer management tool, use the following 584For help on the BitBake layer management tool, use the following
598command: 585command::
599::
600 586
601 $ bitbake-layers --help 587 $ bitbake-layers --help
602 NOTE: Starting bitbake server... 588 NOTE: Starting bitbake server...
@@ -676,8 +662,7 @@ The following list describes the available commands:
676 variable values, you need to tidy these up yourself. Consider the 662 variable values, you need to tidy these up yourself. Consider the
677 following example. Here, the ``bitbake-layers`` command adds the 663 following example. Here, the ``bitbake-layers`` command adds the
678 line ``#### bbappended ...`` so that you know where the following 664 line ``#### bbappended ...`` so that you know where the following
679 lines originate: 665 lines originate::
680 ::
681 666
682 ... 667 ...
683 DESCRIPTION = "A useful utility" 668 DESCRIPTION = "A useful utility"
@@ -691,8 +676,7 @@ The following list describes the available commands:
691 EXTRA_OECONF += "--enable-somethingelse" 676 EXTRA_OECONF += "--enable-somethingelse"
692 677
693 678
694 Ideally, you would tidy up these utilities as follows: 679 Ideally, you would tidy up these utilities as follows::
695 ::
696 680
697 ... 681 ...
698 DESCRIPTION = "Customized utility" 682 DESCRIPTION = "Customized utility"
@@ -746,14 +730,12 @@ create a layer with the following:
746 730
747In its simplest form, you can use the following command form to create a 731In its simplest form, you can use the following command form to create a
748layer. The command creates a layer whose name corresponds to 732layer. The command creates a layer whose name corresponds to
749"your_layer_name" in the current directory: 733"your_layer_name" in the current directory::
750::
751 734
752 $ bitbake-layers create-layer your_layer_name 735 $ bitbake-layers create-layer your_layer_name
753 736
754As an example, the following command creates a layer named ``meta-scottrif`` 737As an example, the following command creates a layer named ``meta-scottrif``
755in your home directory: 738in your home directory::
756::
757 739
758 $ cd /usr/home 740 $ cd /usr/home
759 $ bitbake-layers create-layer meta-scottrif 741 $ bitbake-layers create-layer meta-scottrif
@@ -770,8 +752,7 @@ default, you can use the ``--example-recipe-name`` option.
770 752
771The easiest way to see how the ``bitbake-layers create-layer`` command 753The easiest way to see how the ``bitbake-layers create-layer`` command
772works is to experiment with the script. You can also read the usage 754works is to experiment with the script. You can also read the usage
773information by entering the following: 755information by entering the following::
774::
775 756
776 $ bitbake-layers create-layer --help 757 $ bitbake-layers create-layer --help
777 NOTE: Starting bitbake server... 758 NOTE: Starting bitbake server...
@@ -799,16 +780,14 @@ Once you create your general layer, you must add it to your
799makes the OpenEmbedded build system aware of your layer so that it can 780makes the OpenEmbedded build system aware of your layer so that it can
800search it for metadata. 781search it for metadata.
801 782
802Add your layer by using the ``bitbake-layers add-layer`` command: 783Add your layer by using the ``bitbake-layers add-layer`` command::
803::
804 784
805 $ bitbake-layers add-layer your_layer_name 785 $ bitbake-layers add-layer your_layer_name
806 786
807Here is an example that adds a 787Here is an example that adds a
808layer named ``meta-scottrif`` to the configuration file. Following the 788layer named ``meta-scottrif`` to the configuration file. Following the
809command that adds the layer is another ``bitbake-layers`` command that 789command that adds the layer is another ``bitbake-layers`` command that
810shows the layers that are in your ``bblayers.conf`` file: 790shows the layers that are in your ``bblayers.conf`` file::
811::
812 791
813 $ bitbake-layers add-layer meta-scottrif 792 $ bitbake-layers add-layer meta-scottrif
814 NOTE: Starting bitbake server... 793 NOTE: Starting bitbake server...
@@ -851,8 +830,7 @@ variable changes are in effect for every build and consequently affect
851all images, which might not be what you require. 830all images, which might not be what you require.
852 831
853To add a package to your image using the local configuration file, use 832To add a package to your image using the local configuration file, use
854the ``IMAGE_INSTALL`` variable with the ``_append`` operator: 833the ``IMAGE_INSTALL`` variable with the ``_append`` operator::
855::
856 834
857 IMAGE_INSTALL_append = " strace" 835 IMAGE_INSTALL_append = " strace"
858 836
@@ -870,8 +848,7 @@ takes effect.
870 848
871As shown in its simplest use, ``IMAGE_INSTALL_append`` affects all 849As shown in its simplest use, ``IMAGE_INSTALL_append`` affects all
872images. It is possible to extend the syntax so that the variable applies 850images. It is possible to extend the syntax so that the variable applies
873to a specific image only. Here is an example: 851to a specific image only. Here is an example::
874::
875 852
876 IMAGE_INSTALL_append_pn-core-image-minimal = " strace" 853 IMAGE_INSTALL_append_pn-core-image-minimal = " strace"
877 854
@@ -942,8 +919,7 @@ Customizing Images Using Custom .bb Files
942 919
943You can also customize an image by creating a custom recipe that defines 920You can also customize an image by creating a custom recipe that defines
944additional software as part of the image. The following example shows 921additional software as part of the image. The following example shows
945the form for the two lines you need: 922the form for the two lines you need::
946::
947 923
948 IMAGE_INSTALL = "packagegroup-core-x11-base package1 package2" 924 IMAGE_INSTALL = "packagegroup-core-x11-base package1 package2"
949 inherit core-image 925 inherit core-image
@@ -958,8 +934,7 @@ The other method for creating a custom image is to base it on an
958existing image. For example, if you want to create an image based on 934existing image. For example, if you want to create an image based on
959``core-image-sato`` but add the additional package ``strace`` to the 935``core-image-sato`` but add the additional package ``strace`` to the
960image, copy the ``meta/recipes-sato/images/core-image-sato.bb`` to a new 936image, copy the ``meta/recipes-sato/images/core-image-sato.bb`` to a new
961``.bb`` and add the following line to the end of the copy: 937``.bb`` and add the following line to the end of the copy::
962::
963 938
964 IMAGE_INSTALL += "strace" 939 IMAGE_INSTALL += "strace"
965 940
@@ -990,8 +965,7 @@ in the ``packagegroup-base.bb`` recipe.
990Here is a short, fabricated example showing the same basic pieces for a 965Here is a short, fabricated example showing the same basic pieces for a
991hypothetical packagegroup defined in ``packagegroup-custom.bb``, where 966hypothetical packagegroup defined in ``packagegroup-custom.bb``, where
992the variable ``PN`` is the standard way to abbreviate the reference to 967the variable ``PN`` is the standard way to abbreviate the reference to
993the full packagegroup name ``packagegroup-custom``: 968the full packagegroup name ``packagegroup-custom``::
994::
995 969
996 DESCRIPTION = "My Custom Package Groups" 970 DESCRIPTION = "My Custom Package Groups"
997 971
@@ -1033,13 +1007,11 @@ configured hostname written to ``/etc/hostname`` is "qemux86".
1033 1007
1034You can customize this name by altering the value of the "hostname" 1008You can customize this name by altering the value of the "hostname"
1035variable in the ``base-files`` recipe using either an append file or a 1009variable in the ``base-files`` recipe using either an append file or a
1036configuration file. Use the following in an append file: 1010configuration file. Use the following in an append file::
1037::
1038 1011
1039 hostname = "myhostname" 1012 hostname = "myhostname"
1040 1013
1041Use the following in a configuration file: 1014Use the following in a configuration file::
1042::
1043 1015
1044 hostname_pn-base-files = "myhostname" 1016 hostname_pn-base-files = "myhostname"
1045 1017
@@ -1054,8 +1026,7 @@ you can easily reset the default hostname.
1054 1026
1055Another point of interest is that if you unset the variable, the image 1027Another point of interest is that if you unset the variable, the image
1056will have no default hostname in the filesystem. Here is an example that 1028will have no default hostname in the filesystem. Here is an example that
1057unsets the variable in a configuration file: 1029unsets the variable in a configuration file::
1058::
1059 1030
1060 hostname_pn-base-files = "" 1031 hostname_pn-base-files = ""
1061 1032
@@ -1136,8 +1107,7 @@ To run the tool, you just need to be in your
1136:term:`Build Directory` and have sourced the 1107:term:`Build Directory` and have sourced the
1137build environment setup script (i.e. 1108build environment setup script (i.e.
1138:ref:`structure-core-script`). 1109:ref:`structure-core-script`).
1139To get help on the tool, use the following command: 1110To get help on the tool, use the following command::
1140::
1141 1111
1142 $ recipetool -h 1112 $ recipetool -h
1143 NOTE: Starting bitbake server... 1113 NOTE: Starting bitbake server...
@@ -1166,8 +1136,7 @@ locates it properly in the layer that contains your source files.
1166Following are some syntax examples: 1136Following are some syntax examples:
1167 1137
1168 - Use this syntax to generate a recipe based on source. Once generated, 1138 - Use this syntax to generate a recipe based on source. Once generated,
1169 the recipe resides in the existing source code layer: 1139 the recipe resides in the existing source code layer::
1170 ::
1171 1140
1172 recipetool create -o OUTFILE source 1141 recipetool create -o OUTFILE source
1173 1142
@@ -1180,8 +1149,7 @@ Following are some syntax examples:
1180 1149
1181 - Use this syntax to generate a recipe based on source. The options 1150 - Use this syntax to generate a recipe based on source. The options
1182 direct ``recipetool`` to generate debugging information. Once generated, 1151 direct ``recipetool`` to generate debugging information. Once generated,
1183 the recipe resides in the existing source code layer: 1152 the recipe resides in the existing source code layer::
1184 ::
1185 1153
1186 recipetool create -d -o OUTFILE source 1154 recipetool create -d -o OUTFILE source
1187 1155
@@ -1236,8 +1204,7 @@ the recipe.
1236 recipe through the layer's ``conf/layer.conf`` file and the 1204 recipe through the layer's ``conf/layer.conf`` file and the
1237 :term:`BBFILES` variable. This 1205 :term:`BBFILES` variable. This
1238 variable sets up a path from which the build system can locate 1206 variable sets up a path from which the build system can locate
1239 recipes. Here is the typical use: 1207 recipes. Here is the typical use::
1240 ::
1241 1208
1242 BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ 1209 BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
1243 ${LAYERDIR}/recipes-*/*/*.bbappend" 1210 ${LAYERDIR}/recipes-*/*/*.bbappend"
@@ -1249,8 +1216,7 @@ the recipe.
1249 ":ref:`dev-manual/common-tasks:understanding and creating layers`" section. 1216 ":ref:`dev-manual/common-tasks:understanding and creating layers`" section.
1250 1217
1251- *Naming Your Recipe:* When you name your recipe, you need to follow 1218- *Naming Your Recipe:* When you name your recipe, you need to follow
1252 this naming convention: 1219 this naming convention::
1253 ::
1254 1220
1255 basename_version.bb 1221 basename_version.bb
1256 1222
@@ -1276,8 +1242,7 @@ Assuming you have sourced the build environment setup script (i.e.
1276:ref:`structure-core-script`) and you are in 1242:ref:`structure-core-script`) and you are in
1277the :term:`Build Directory`, use 1243the :term:`Build Directory`, use
1278BitBake to process your recipe. All you need to provide is the 1244BitBake to process your recipe. All you need to provide is the
1279``basename`` of the recipe as described in the previous section: 1245``basename`` of the recipe as described in the previous section::
1280::
1281 1246
1282 $ bitbake basename 1247 $ bitbake basename
1283 1248
@@ -1289,8 +1254,7 @@ compilation and packaging files, and so forth.
1289 1254
1290The path to the per-recipe temporary work directory depends on the 1255The path to the per-recipe temporary work directory depends on the
1291context in which it is being built. The quickest way to find this path 1256context in which it is being built. The quickest way to find this path
1292is to have BitBake return it by running the following: 1257is to have BitBake return it by running the following::
1293::
1294 1258
1295 $ bitbake -e basename | grep ^WORKDIR= 1259 $ bitbake -e basename | grep ^WORKDIR=
1296 1260
@@ -1299,8 +1263,7 @@ top-level folder named ``poky``, a default Build Directory at
1299``poky/build``, and a ``qemux86-poky-linux`` machine target system. 1263``poky/build``, and a ``qemux86-poky-linux`` machine target system.
1300Furthermore, suppose your recipe is named ``foo_1.3.0.bb``. In this 1264Furthermore, suppose your recipe is named ``foo_1.3.0.bb``. In this
1301case, the work directory the build system uses to build the package 1265case, the work directory the build system uses to build the package
1302would be as follows: 1266would be as follows::
1303::
1304 1267
1305 poky/build/tmp/work/qemux86-poky-linux/foo/1.3.0-r0 1268 poky/build/tmp/work/qemux86-poky-linux/foo/1.3.0-r0
1306 1269
@@ -1352,8 +1315,7 @@ recipe to match the new version.
1352Here is a simple example from the 1315Here is a simple example from the
1353``meta/recipes-devtools/strace/strace_5.5.bb`` recipe where the source 1316``meta/recipes-devtools/strace/strace_5.5.bb`` recipe where the source
1354comes from a single tarball. Notice the use of the 1317comes from a single tarball. Notice the use of the
1355:term:`PV` variable: 1318:term:`PV` variable::
1356::
1357 1319
1358 SRC_URI = "https://strace.io/files/${PV}/strace-${PV}.tar.xz \ 1320 SRC_URI = "https://strace.io/files/${PV}/strace-${PV}.tar.xz \
1359 1321
@@ -1369,8 +1331,7 @@ you must specify :term:`SRCREV` and
1369you should specify :term:`PV` to include 1331you should specify :term:`PV` to include
1370the revision with :term:`SRCPV`. Here 1332the revision with :term:`SRCPV`. Here
1371is an example from the recipe 1333is an example from the recipe
1372``meta/recipes-kernel/blktrace/blktrace_git.bb``: 1334``meta/recipes-kernel/blktrace/blktrace_git.bb``::
1373::
1374 1335
1375 SRCREV = "d6918c8832793b4205ed3bfede78c2f915c23385" 1336 SRCREV = "d6918c8832793b4205ed3bfede78c2f915c23385"
1376 1337
@@ -1392,8 +1353,7 @@ SCM URLs), you need to provide the ``md5`` and ``sha256`` checksums for
1392each URL. For these cases, you provide a name for each URL as part of 1353each URL. For these cases, you provide a name for each URL as part of
1393the ``SRC_URI`` and then reference that name in the subsequent checksum 1354the ``SRC_URI`` and then reference that name in the subsequent checksum
1394statements. Here is an example combining lines from the files 1355statements. Here is an example combining lines from the files
1395``git.inc`` and ``git_2.24.1.bb``: 1356``git.inc`` and ``git_2.24.1.bb``::
1396::
1397 1357
1398 SRC_URI = "${KERNELORG_MIRROR}/software/scm/git/git-${PV}.tar.gz;name=tarball \ 1358 SRC_URI = "${KERNELORG_MIRROR}/software/scm/git/git-${PV}.tar.gz;name=tarball \
1399 ${KERNELORG_MIRROR}/software/scm/git/git-manpages-${PV}.tar.gz;name=manpages" 1359 ${KERNELORG_MIRROR}/software/scm/git/git-manpages-${PV}.tar.gz;name=manpages"
@@ -1512,8 +1472,7 @@ variables:
1512 include ``COPYING``, ``LICENSE``, and ``README`` files. You could 1472 include ``COPYING``, ``LICENSE``, and ``README`` files. You could
1513 also find the information near the top of a source file. For example, 1473 also find the information near the top of a source file. For example,
1514 given a piece of software licensed under the GNU General Public 1474 given a piece of software licensed under the GNU General Public
1515 License version 2, you would set ``LICENSE`` as follows: 1475 License version 2, you would set ``LICENSE`` as follows::
1516 ::
1517 1476
1518 LICENSE = "GPLv2" 1477 LICENSE = "GPLv2"
1519 1478
@@ -1543,8 +1502,7 @@ variables:
1543 See the ":ref:`dev-manual/common-tasks:fetching code`" section for 1502 See the ":ref:`dev-manual/common-tasks:fetching code`" section for
1544 additional information. 1503 additional information.
1545 1504
1546 Here is an example that assumes the software has a ``COPYING`` file: 1505 Here is an example that assumes the software has a ``COPYING`` file::
1547 ::
1548 1506
1549 LIC_FILES_CHKSUM = "file://COPYING;md5=xxx" 1507 LIC_FILES_CHKSUM = "file://COPYING;md5=xxx"
1550 1508
@@ -1747,8 +1705,7 @@ standard mainline kernel, not your own custom one.
1747When you use custom kernel headers you need to get them from 1705When you use custom kernel headers you need to get them from
1748:term:`STAGING_KERNEL_DIR`, 1706:term:`STAGING_KERNEL_DIR`,
1749which is the directory with kernel headers that are required to build 1707which is the directory with kernel headers that are required to build
1750out-of-tree modules. Your recipe will also need the following: 1708out-of-tree modules. Your recipe will also need the following::
1751::
1752 1709
1753 do_configure[depends] += "virtual/kernel:do_shared_workdir" 1710 do_configure[depends] += "virtual/kernel:do_shared_workdir"
1754 1711
@@ -1779,8 +1736,7 @@ Here are some common issues that cause failures.
1779 1736
1780 To fix the problem, you need to either satisfy the missing dependency 1737 To fix the problem, you need to either satisfy the missing dependency
1781 in the Makefile or whatever script produced the Makefile, or (as a 1738 in the Makefile or whatever script produced the Makefile, or (as a
1782 workaround) set :term:`PARALLEL_MAKE` to an empty string: 1739 workaround) set :term:`PARALLEL_MAKE` to an empty string::
1783 ::
1784 1740
1785 PARALLEL_MAKE = "" 1741 PARALLEL_MAKE = ""
1786 1742
@@ -1889,8 +1845,7 @@ installed correctly.
1889 missing dependencies between targets that can result in race 1845 missing dependencies between targets that can result in race
1890 conditions. If you experience intermittent failures during 1846 conditions. If you experience intermittent failures during
1891 ``do_install``, you might be able to work around them by disabling 1847 ``do_install``, you might be able to work around them by disabling
1892 parallel Makefile installs by adding the following to the recipe: 1848 parallel Makefile installs by adding the following to the recipe::
1893 ::
1894 1849
1895 PARALLEL_MAKEINST = "" 1850 PARALLEL_MAKEINST = ""
1896 1851
@@ -2006,8 +1961,7 @@ take. The following list describes the process:
2006 :term:`MACHINE` value is passed 1961 :term:`MACHINE` value is passed
2007 into the configure script or a patch is applied only for a particular 1962 into the configure script or a patch is applied only for a particular
2008 machine), you should mark them as such by adding the following to the 1963 machine), you should mark them as such by adding the following to the
2009 recipe: 1964 recipe::
2010 ::
2011 1965
2012 PACKAGE_ARCH = "${MACHINE_ARCH}" 1966 PACKAGE_ARCH = "${MACHINE_ARCH}"
2013 1967
@@ -2016,8 +1970,7 @@ take. The following list describes the process:
2016 all (e.g. recipes that simply package script files or configuration 1970 all (e.g. recipes that simply package script files or configuration
2017 files), you should use the 1971 files), you should use the
2018 :ref:`allarch <ref-classes-allarch>` class to 1972 :ref:`allarch <ref-classes-allarch>` class to
2019 do this for you by adding this to your recipe: 1973 do this for you by adding this to your recipe::
2020 ::
2021 1974
2022 inherit allarch 1975 inherit allarch
2023 1976
@@ -2061,8 +2014,7 @@ used by the :ref:`ref-tasks-populate_sysroot` task as defined by the the
2061:term:`SYSROOT_DIRS` variable to automatically populate the sysroot. It 2014:term:`SYSROOT_DIRS` variable to automatically populate the sysroot. It
2062is possible to modify the list of directories that populate the sysroot. 2015is possible to modify the list of directories that populate the sysroot.
2063The following example shows how you could add the ``/opt`` directory to 2016The following example shows how you could add the ``/opt`` directory to
2064the list of directories within a recipe: 2017the list of directories within a recipe::
2065::
2066 2018
2067 SYSROOT_DIRS += "/opt" 2019 SYSROOT_DIRS += "/opt"
2068 2020
@@ -2091,8 +2043,7 @@ kernel recipe. Suppose you have three kernel recipes whose
2091in some way uses a :term:`PROVIDES` 2043in some way uses a :term:`PROVIDES`
2092statement that essentially identifies itself as being able to provide 2044statement that essentially identifies itself as being able to provide
2093``virtual/kernel``. Here is one way through the 2045``virtual/kernel``. Here is one way through the
2094:ref:`kernel <ref-classes-kernel>` class: 2046:ref:`kernel <ref-classes-kernel>` class::
2095::
2096 2047
2097 PROVIDES += "${@ "virtual/kernel" if (d.getVar("KERNEL_PACKAGE_NAME") == "kernel") else "" }" 2048 PROVIDES += "${@ "virtual/kernel" if (d.getVar("KERNEL_PACKAGE_NAME") == "kernel") else "" }"
2098 2049
@@ -2107,8 +2058,7 @@ an example, consider the :yocto_git:`x86-base.inc
2107</poky/tree/meta/conf/machine/include/x86-base.inc>` include file, which is a 2058</poky/tree/meta/conf/machine/include/x86-base.inc>` include file, which is a
2108machine (i.e. :term:`MACHINE`) configuration file. This include file is the 2059machine (i.e. :term:`MACHINE`) configuration file. This include file is the
2109reason all x86-based machines use the ``linux-yocto`` kernel. Here are the 2060reason all x86-based machines use the ``linux-yocto`` kernel. Here are the
2110relevant lines from the include file: 2061relevant lines from the include file::
2111::
2112 2062
2113 PREFERRED_PROVIDER_virtual/kernel ??= "linux-yocto" 2063 PREFERRED_PROVIDER_virtual/kernel ??= "linux-yocto"
2114 PREFERRED_VERSION_linux-yocto ??= "4.15%" 2064 PREFERRED_VERSION_linux-yocto ??= "4.15%"
@@ -2116,8 +2066,7 @@ relevant lines from the include file:
2116When you use a virtual provider, you do not have to "hard code" a recipe 2066When you use a virtual provider, you do not have to "hard code" a recipe
2117name as a build dependency. You can use the 2067name as a build dependency. You can use the
2118:term:`DEPENDS` variable to state the 2068:term:`DEPENDS` variable to state the
2119build is dependent on ``virtual/kernel`` for example: 2069build is dependent on ``virtual/kernel`` for example::
2120::
2121 2070
2122 DEPENDS = "virtual/kernel" 2071 DEPENDS = "virtual/kernel"
2123 2072
@@ -2125,8 +2074,7 @@ During the build, the OpenEmbedded build system picks
2125the correct recipe needed for the ``virtual/kernel`` dependency based on 2074the correct recipe needed for the ``virtual/kernel`` dependency based on
2126the ``PREFERRED_PROVIDER`` variable. If you want to use the small kernel 2075the ``PREFERRED_PROVIDER`` variable. If you want to use the small kernel
2127mentioned at the beginning of this section, configure your build as 2076mentioned at the beginning of this section, configure your build as
2128follows: 2077follows::
2129::
2130 2078
2131 PREFERRED_PROVIDER_virtual/kernel ??= "kernel-small" 2079 PREFERRED_PROVIDER_virtual/kernel ??= "kernel-small"
2132 2080
@@ -2178,8 +2126,7 @@ In order to ensure the versions compare properly, the recommended
2178convention is to set :term:`PV` within the 2126convention is to set :term:`PV` within the
2179recipe to "previous_version+current_version". You can use an additional 2127recipe to "previous_version+current_version". You can use an additional
2180variable so that you can use the current version elsewhere. Here is an 2128variable so that you can use the current version elsewhere. Here is an
2181example: 2129example::
2182::
2183 2130
2184 REALPV = "0.8.16-rc1" 2131 REALPV = "0.8.16-rc1"
2185 PV = "0.8.15+${REALPV}" 2132 PV = "0.8.15+${REALPV}"
@@ -2198,8 +2145,7 @@ required, specify
2198``${``\ :term:`PN`\ ``}`` in place of 2145``${``\ :term:`PN`\ ``}`` in place of
2199PACKAGENAME. 2146PACKAGENAME.
2200 2147
2201A post-installation function has the following structure: 2148A post-installation function has the following structure::
2202::
2203 2149
2204 pkg_postinst_PACKAGENAME() { 2150 pkg_postinst_PACKAGENAME() {
2205 # Commands to carry out 2151 # Commands to carry out
@@ -2352,13 +2298,11 @@ Otherwise, BitBake runs an empty ``do_install`` task by default.
2352Some applications might require extra parameters to be passed to the 2298Some applications might require extra parameters to be passed to the
2353compiler. For example, the application might need an additional header 2299compiler. For example, the application might need an additional header
2354path. You can accomplish this by adding to the ``CFLAGS`` variable. The 2300path. You can accomplish this by adding to the ``CFLAGS`` variable. The
2355following example shows this: 2301following example shows this::
2356::
2357 2302
2358 CFLAGS_prepend = "-I ${S}/include " 2303 CFLAGS_prepend = "-I ${S}/include "
2359 2304
2360In the following example, ``mtd-utils`` is a makefile-based package: 2305In the following example, ``mtd-utils`` is a makefile-based package::
2361::
2362 2306
2363 SUMMARY = "Tools for managing memory technology devices" 2307 SUMMARY = "Tools for managing memory technology devices"
2364 SECTION = "base" 2308 SECTION = "base"
@@ -2403,8 +2347,7 @@ application into multiple packages.
2403Following is an example that uses the ``libxpm`` recipe. By default, 2347Following is an example that uses the ``libxpm`` recipe. By default,
2404this recipe generates a single package that contains the library along 2348this recipe generates a single package that contains the library along
2405with a few binaries. You can modify the recipe to split the binaries 2349with a few binaries. You can modify the recipe to split the binaries
2406into separate packages: 2350into separate packages::
2407::
2408 2351
2409 require xorg-lib-common.inc 2352 require xorg-lib-common.inc
2410 2353
@@ -2498,8 +2441,7 @@ doing the following:
2498 that replaces ``do_configure`` and ``do_compile`` with custom 2441 that replaces ``do_configure`` and ``do_compile`` with custom
2499 versions, then you can use the 2442 versions, then you can use the
2500 ``[``\ :ref:`noexec <bitbake-user-manual/bitbake-user-manual-metadata:variable flags>`\ ``]`` 2443 ``[``\ :ref:`noexec <bitbake-user-manual/bitbake-user-manual-metadata:variable flags>`\ ``]``
2501 flag to turn the tasks into no-ops, as follows: 2444 flag to turn the tasks into no-ops, as follows::
2502 ::
2503 2445
2504 do_configure[noexec] = "1" 2446 do_configure[noexec] = "1"
2505 do_compile[noexec] = "1" 2447 do_compile[noexec] = "1"
@@ -2558,8 +2500,7 @@ chapter of the BitBake User Manual.
2558 supported. 2500 supported.
2559 2501
2560 The following example shows some of the ways you can use variables in 2502 The following example shows some of the ways you can use variables in
2561 recipes: 2503 recipes::
2562 ::
2563 2504
2564 S = "${WORKDIR}/postfix-${PV}" 2505 S = "${WORKDIR}/postfix-${PV}"
2565 CFLAGS += "-DNO_ASM" 2506 CFLAGS += "-DNO_ASM"
@@ -2572,8 +2513,7 @@ chapter of the BitBake User Manual.
2572 syntax, although access to OpenEmbedded variables and internal 2513 syntax, although access to OpenEmbedded variables and internal
2573 methods are also available. 2514 methods are also available.
2574 2515
2575 The following is an example function from the ``sed`` recipe: 2516 The following is an example function from the ``sed`` recipe::
2576 ::
2577 2517
2578 do_install () { 2518 do_install () {
2579 autotools_do_install 2519 autotools_do_install
@@ -2594,16 +2534,14 @@ chapter of the BitBake User Manual.
2594 from other files (``include`` and ``require``) and export variables 2534 from other files (``include`` and ``require``) and export variables
2595 to the environment (``export``). 2535 to the environment (``export``).
2596 2536
2597 The following example shows the use of some of these keywords: 2537 The following example shows the use of some of these keywords::
2598 ::
2599 2538
2600 export POSTCONF = "${STAGING_BINDIR}/postconf" 2539 export POSTCONF = "${STAGING_BINDIR}/postconf"
2601 inherit autoconf 2540 inherit autoconf
2602 require otherfile.inc 2541 require otherfile.inc
2603 2542
2604- *Comments (#):* Any lines that begin with the hash character (``#``) 2543- *Comments (#):* Any lines that begin with the hash character (``#``)
2605 are treated as comment lines and are ignored: 2544 are treated as comment lines and are ignored::
2606 ::
2607 2545
2608 # This is a comment 2546 # This is a comment
2609 2547
@@ -2615,8 +2553,7 @@ in the BitBake User Manual.
2615 2553
2616- *Line Continuation (\\):* Use the backward slash (``\``) character to 2554- *Line Continuation (\\):* Use the backward slash (``\``) character to
2617 split a statement over multiple lines. Place the slash character at 2555 split a statement over multiple lines. Place the slash character at
2618 the end of the line that is to be continued on the next line: 2556 the end of the line that is to be continued on the next line::
2619 ::
2620 2557
2621 VAR = "A really long \ 2558 VAR = "A really long \
2622 line" 2559 line"
@@ -2627,8 +2564,7 @@ in the BitBake User Manual.
2627 slash character. 2564 slash character.
2628 2565
2629- *Using Variables (${VARNAME}):* Use the ``${VARNAME}`` syntax to 2566- *Using Variables (${VARNAME}):* Use the ``${VARNAME}`` syntax to
2630 access the contents of a variable: 2567 access the contents of a variable::
2631 ::
2632 2568
2633 SRC_URI = "${SOURCEFORGE_MIRROR}/libpng/zlib-${PV}.tar.gz" 2569 SRC_URI = "${SOURCEFORGE_MIRROR}/libpng/zlib-${PV}.tar.gz"
2634 2570
@@ -2648,8 +2584,7 @@ in the BitBake User Manual.
2648 when you make the assignment, but this is not generally needed. 2584 when you make the assignment, but this is not generally needed.
2649 2585
2650- *Quote All Assignments ("value"):* Use double quotes around values in 2586- *Quote All Assignments ("value"):* Use double quotes around values in
2651 all variable assignments (e.g. ``"value"``). Following is an example: 2587 all variable assignments (e.g. ``"value"``). Following is an example::
2652 ::
2653 2588
2654 VAR1 = "${OTHERVAR}" 2589 VAR1 = "${OTHERVAR}"
2655 VAR2 = "The version is ${PV}" 2590 VAR2 = "The version is ${PV}"
@@ -2663,13 +2598,11 @@ in the BitBake User Manual.
2663 2598
2664 Here is an example where ``VAR1`` is set to "New value" if it is 2599 Here is an example where ``VAR1`` is set to "New value" if it is
2665 currently empty. However, if ``VAR1`` has already been set, it 2600 currently empty. However, if ``VAR1`` has already been set, it
2666 remains unchanged: 2601 remains unchanged::
2667 ::
2668 2602
2669 VAR1 ?= "New value" 2603 VAR1 ?= "New value"
2670 2604
2671 In this next example, ``VAR1`` is left with the value "Original value": 2605 In this next example, ``VAR1`` is left with the value "Original value"::
2672 ::
2673 2606
2674 VAR1 = "Original value" 2607 VAR1 = "Original value"
2675 VAR1 ?= "New value" 2608 VAR1 ?= "New value"
@@ -2682,8 +2615,7 @@ in the BitBake User Manual.
2682 This operator adds a space between the existing content of the 2615 This operator adds a space between the existing content of the
2683 variable and the new content. 2616 variable and the new content.
2684 2617
2685 Here is an example: 2618 Here is an example::
2686 ::
2687 2619
2688 SRC_URI += "file://fix-makefile.patch" 2620 SRC_URI += "file://fix-makefile.patch"
2689 2621
@@ -2695,8 +2627,7 @@ in the BitBake User Manual.
2695 This operator adds a space between the new content and the 2627 This operator adds a space between the new content and the
2696 existing content of the variable. 2628 existing content of the variable.
2697 2629
2698 Here is an example: 2630 Here is an example::
2699 ::
2700 2631
2701 VAR =+ "Starts" 2632 VAR =+ "Starts"
2702 2633
@@ -2708,15 +2639,13 @@ in the BitBake User Manual.
2708 2639
2709 The following example shows the space being explicitly added to the 2640 The following example shows the space being explicitly added to the
2710 start to ensure the appended value is not merged with the existing 2641 start to ensure the appended value is not merged with the existing
2711 value: 2642 value::
2712 ::
2713 2643
2714 SRC_URI_append = " file://fix-makefile.patch" 2644 SRC_URI_append = " file://fix-makefile.patch"
2715 2645
2716 You can also use 2646 You can also use
2717 the ``_append`` operator with overrides, which results in the actions 2647 the ``_append`` operator with overrides, which results in the actions
2718 only being performed for the specified target or machine: 2648 only being performed for the specified target or machine::
2719 ::
2720 2649
2721 SRC_URI_append_sh4 = " file://fix-makefile.patch" 2650 SRC_URI_append_sh4 = " file://fix-makefile.patch"
2722 2651
@@ -2728,15 +2657,13 @@ in the BitBake User Manual.
2728 2657
2729 The following example shows the space being explicitly added to the 2658 The following example shows the space being explicitly added to the
2730 end to ensure the prepended value is not merged with the existing 2659 end to ensure the prepended value is not merged with the existing
2731 value: 2660 value::
2732 ::
2733 2661
2734 CFLAGS_prepend = "-I${S}/myincludes " 2662 CFLAGS_prepend = "-I${S}/myincludes "
2735 2663
2736 You can also use the 2664 You can also use the
2737 ``_prepend`` operator with overrides, which results in the actions 2665 ``_prepend`` operator with overrides, which results in the actions
2738 only being performed for the specified target or machine: 2666 only being performed for the specified target or machine::
2739 ::
2740 2667
2741 CFLAGS_prepend_sh4 = "-I${S}/myincludes " 2668 CFLAGS_prepend_sh4 = "-I${S}/myincludes "
2742 2669
@@ -2746,8 +2673,7 @@ in the BitBake User Manual.
2746 value to "standard/base" for any target 2673 value to "standard/base" for any target
2747 :term:`MACHINE`, except for 2674 :term:`MACHINE`, except for
2748 qemuarm where it should be set to "standard/arm-versatile-926ejs", 2675 qemuarm where it should be set to "standard/arm-versatile-926ejs",
2749 you would do the following: 2676 you would do the following::
2750 ::
2751 2677
2752 KBRANCH = "standard/base" 2678 KBRANCH = "standard/base"
2753 KBRANCH_qemuarm = "standard/arm-versatile-926ejs" 2679 KBRANCH_qemuarm = "standard/arm-versatile-926ejs"
@@ -2770,8 +2696,7 @@ in the BitBake User Manual.
2770 search and replacement on a variable). 2696 search and replacement on a variable).
2771 2697
2772 You indicate Python code using the ``${@python_code}`` syntax for the 2698 You indicate Python code using the ``${@python_code}`` syntax for the
2773 variable assignment: 2699 variable assignment::
2774 ::
2775 2700
2776 SRC_URI = "ftp://ftp.info-zip.org/pub/infozip/src/zip${@d.getVar('PV',1).replace('.', '')}.tgz 2701 SRC_URI = "ftp://ftp.info-zip.org/pub/infozip/src/zip${@d.getVar('PV',1).replace('.', '')}.tgz
2777 2702
@@ -2861,8 +2786,7 @@ of adding a suitable ``defconfig`` file. The file needs to be added into
2861a location similar to ``defconfig`` files used for other machines in a 2786a location similar to ``defconfig`` files used for other machines in a
2862given kernel recipe. A possible way to do this is by listing the file in 2787given kernel recipe. A possible way to do this is by listing the file in
2863the ``SRC_URI`` and adding the machine to the expression in 2788the ``SRC_URI`` and adding the machine to the expression in
2864``COMPATIBLE_MACHINE``: 2789``COMPATIBLE_MACHINE``::
2865::
2866 2790
2867 COMPATIBLE_MACHINE = '(qemux86|qemumips)' 2791 COMPATIBLE_MACHINE = '(qemux86|qemumips)'
2868 2792
@@ -2889,8 +2813,7 @@ contains directories for specific machines such as ``qemuarm`` and
2889defaults, see the ``meta/recipes-bsp/formfactor/files/config`` file 2813defaults, see the ``meta/recipes-bsp/formfactor/files/config`` file
2890found in the same area. 2814found in the same area.
2891 2815
2892Following is an example for "qemuarm" machine: 2816Following is an example for "qemuarm" machine::
2893::
2894 2817
2895 HAVE_TOUCHSCREEN=1 2818 HAVE_TOUCHSCREEN=1
2896 HAVE_KEYBOARD=1 2819 HAVE_KEYBOARD=1
@@ -2961,22 +2884,19 @@ The following steps describe how to set up the AUH utility:
29612. *Make Sure Git is Configured:* The AUH utility requires Git to be 28842. *Make Sure Git is Configured:* The AUH utility requires Git to be
2962 configured because AUH uses Git to save upgrades. Thus, you must have 2885 configured because AUH uses Git to save upgrades. Thus, you must have
2963 Git user and email configured. The following command shows your 2886 Git user and email configured. The following command shows your
2964 configurations: 2887 configurations::
2965 ::
2966 2888
2967 $ git config --list 2889 $ git config --list
2968 2890
2969 If you do not have the user and 2891 If you do not have the user and
2970 email configured, you can use the following commands to do so: 2892 email configured, you can use the following commands to do so::
2971 ::
2972 2893
2973 $ git config --global user.name some_name 2894 $ git config --global user.name some_name
2974 $ git config --global user.email username@domain.com 2895 $ git config --global user.email username@domain.com
2975 2896
29763. *Clone the AUH Repository:* To use AUH, you must clone the repository 28973. *Clone the AUH Repository:* To use AUH, you must clone the repository
2977 onto your development host. The following command uses Git to create 2898 onto your development host. The following command uses Git to create
2978 a local copy of the repository on your system: 2899 a local copy of the repository on your system::
2979 ::
2980 2900
2981 $ git clone git://git.yoctoproject.org/auto-upgrade-helper 2901 $ git clone git://git.yoctoproject.org/auto-upgrade-helper
2982 Cloning into 'auto-upgrade-helper'... remote: Counting objects: 768, done. 2902 Cloning into 'auto-upgrade-helper'... remote: Counting objects: 768, done.
@@ -2992,8 +2912,7 @@ The following steps describe how to set up the AUH utility:
29924. *Create a Dedicated Build Directory:* Run the 29124. *Create a Dedicated Build Directory:* Run the
2993 :ref:`structure-core-script` 2913 :ref:`structure-core-script`
2994 script to create a fresh build directory that you use exclusively for 2914 script to create a fresh build directory that you use exclusively for
2995 running the AUH utility: 2915 running the AUH utility::
2996 ::
2997 2916
2998 $ cd poky 2917 $ cd poky
2999 $ source oe-init-build-env your_AUH_build_directory 2918 $ source oe-init-build-env your_AUH_build_directory
@@ -3010,8 +2929,7 @@ The following steps describe how to set up the AUH utility:
3010 - If you want to enable :ref:`Build 2929 - If you want to enable :ref:`Build
3011 History <dev-manual/common-tasks:maintaining build output quality>`, 2930 History <dev-manual/common-tasks:maintaining build output quality>`,
3012 which is optional, you need the following lines in the 2931 which is optional, you need the following lines in the
3013 ``conf/local.conf`` file: 2932 ``conf/local.conf`` file::
3014 ::
3015 2933
3016 INHERIT =+ "buildhistory" 2934 INHERIT =+ "buildhistory"
3017 BUILDHISTORY_COMMIT = "1" 2935 BUILDHISTORY_COMMIT = "1"
@@ -3024,23 +2942,20 @@ The following steps describe how to set up the AUH utility:
3024 - If you want to enable testing through the 2942 - If you want to enable testing through the
3025 :ref:`testimage <ref-classes-testimage*>` 2943 :ref:`testimage <ref-classes-testimage*>`
3026 class, which is optional, you need to have the following set in 2944 class, which is optional, you need to have the following set in
3027 your ``conf/local.conf`` file: 2945 your ``conf/local.conf`` file::
3028 ::
3029 2946
3030 INHERIT += "testimage" 2947 INHERIT += "testimage"
3031 2948
3032 .. note:: 2949 .. note::
3033 2950
3034 If your distro does not enable by default ptest, which Poky 2951 If your distro does not enable by default ptest, which Poky
3035 does, you need the following in your ``local.conf`` file: 2952 does, you need the following in your ``local.conf`` file::
3036 ::
3037 2953
3038 DISTRO_FEATURES_append = " ptest" 2954 DISTRO_FEATURES_append = " ptest"
3039 2955
3040 2956
30416. *Optionally Start a vncserver:* If you are running in a server 29576. *Optionally Start a vncserver:* If you are running in a server
3042 without an X11 session, you need to start a vncserver: 2958 without an X11 session, you need to start a vncserver::
3043 ::
3044 2959
3045 $ vncserver :1 2960 $ vncserver :1
3046 $ export DISPLAY=:1 2961 $ export DISPLAY=:1
@@ -3064,45 +2979,38 @@ The following steps describe how to set up the AUH utility:
3064This next set of examples describes how to use the AUH: 2979This next set of examples describes how to use the AUH:
3065 2980
3066- *Upgrading a Specific Recipe:* To upgrade a specific recipe, use the 2981- *Upgrading a Specific Recipe:* To upgrade a specific recipe, use the
3067 following form: 2982 following form::
3068 ::
3069 2983
3070 $ upgrade-helper.py recipe_name 2984 $ upgrade-helper.py recipe_name
3071 2985
3072 For example, this command upgrades the ``xmodmap`` recipe: 2986 For example, this command upgrades the ``xmodmap`` recipe::
3073 ::
3074 2987
3075 $ upgrade-helper.py xmodmap 2988 $ upgrade-helper.py xmodmap
3076 2989
3077- *Upgrading a Specific Recipe to a Particular Version:* To upgrade a 2990- *Upgrading a Specific Recipe to a Particular Version:* To upgrade a
3078 specific recipe to a particular version, use the following form: 2991 specific recipe to a particular version, use the following form::
3079 ::
3080 2992
3081 $ upgrade-helper.py recipe_name -t version 2993 $ upgrade-helper.py recipe_name -t version
3082 2994
3083 For example, this command upgrades the ``xmodmap`` recipe to version 1.2.3: 2995 For example, this command upgrades the ``xmodmap`` recipe to version 1.2.3::
3084 ::
3085 2996
3086 $ upgrade-helper.py xmodmap -t 1.2.3 2997 $ upgrade-helper.py xmodmap -t 1.2.3
3087 2998
3088- *Upgrading all Recipes to the Latest Versions and Suppressing Email 2999- *Upgrading all Recipes to the Latest Versions and Suppressing Email
3089 Notifications:* To upgrade all recipes to their most recent versions 3000 Notifications:* To upgrade all recipes to their most recent versions
3090 and suppress the email notifications, use the following command: 3001 and suppress the email notifications, use the following command::
3091 ::
3092 3002
3093 $ upgrade-helper.py all 3003 $ upgrade-helper.py all
3094 3004
3095- *Upgrading all Recipes to the Latest Versions and Send Email 3005- *Upgrading all Recipes to the Latest Versions and Send Email
3096 Notifications:* To upgrade all recipes to their most recent versions 3006 Notifications:* To upgrade all recipes to their most recent versions
3097 and send email messages to maintainers for each attempted recipe as 3007 and send email messages to maintainers for each attempted recipe as
3098 well as a status email, use the following command: 3008 well as a status email, use the following command::
3099 ::
3100 3009
3101 $ upgrade-helper.py -e all 3010 $ upgrade-helper.py -e all
3102 3011
3103Once you have run the AUH utility, you can find the results in the AUH 3012Once you have run the AUH utility, you can find the results in the AUH
3104build directory: 3013build directory::
3105::
3106 3014
3107 ${BUILDDIR}/upgrade-helper/timestamp 3015 ${BUILDDIR}/upgrade-helper/timestamp
3108 3016
@@ -3127,15 +3035,13 @@ section in the Yocto Project Application Development and the Extensible
3127Software Development Kit (eSDK) Manual. 3035Software Development Kit (eSDK) Manual.
3128 3036
3129To see all the command-line options available with ``devtool upgrade``, 3037To see all the command-line options available with ``devtool upgrade``,
3130use the following help command: 3038use the following help command::
3131::
3132 3039
3133 $ devtool upgrade -h 3040 $ devtool upgrade -h
3134 3041
3135If you want to find out what version a recipe is currently at upstream 3042If you want to find out what version a recipe is currently at upstream
3136without any attempt to upgrade your local version of the recipe, you can 3043without any attempt to upgrade your local version of the recipe, you can
3137use the following command: 3044use the following command::
3138::
3139 3045
3140 $ devtool latest-version recipe_name 3046 $ devtool latest-version recipe_name
3141 3047
@@ -3161,15 +3067,13 @@ could add it easily using the
3161":ref:`bitbake-layers <bsp-guide/bsp:creating a new bsp layer using the \`\`bitbake-layers\`\` script>`" 3067":ref:`bitbake-layers <bsp-guide/bsp:creating a new bsp layer using the \`\`bitbake-layers\`\` script>`"
3162script. For example, suppose you use the ``nano.bb`` recipe from the 3068script. For example, suppose you use the ``nano.bb`` recipe from the
3163``meta-oe`` layer in the ``meta-openembedded`` repository. For this 3069``meta-oe`` layer in the ``meta-openembedded`` repository. For this
3164example, assume that the layer has been cloned into following area: 3070example, assume that the layer has been cloned into following area::
3165::
3166 3071
3167 /home/scottrif/meta-openembedded 3072 /home/scottrif/meta-openembedded
3168 3073
3169The following command from your 3074The following command from your
3170:term:`Build Directory` adds the layer to 3075:term:`Build Directory` adds the layer to
3171your build configuration (i.e. ``${BUILDDIR}/conf/bblayers.conf``): 3076your build configuration (i.e. ``${BUILDDIR}/conf/bblayers.conf``)::
3172::
3173 3077
3174 $ bitbake-layers add-layer /home/scottrif/meta-openembedded/meta-oe 3078 $ bitbake-layers add-layer /home/scottrif/meta-openembedded/meta-oe
3175 NOTE: Starting bitbake server... 3079 NOTE: Starting bitbake server...
@@ -3210,8 +3114,7 @@ directory automatically upgrades the recipe for you:
3210 NOTE: New recipe is /home/scottrif/poky/build/workspace/recipes/nano/nano_2.9.3.bb 3114 NOTE: New recipe is /home/scottrif/poky/build/workspace/recipes/nano/nano_2.9.3.bb
3211 3115
3212Continuing with this example, you can use ``devtool build`` to build the 3116Continuing with this example, you can use ``devtool build`` to build the
3213newly upgraded recipe: 3117newly upgraded recipe::
3214::
3215 3118
3216 $ devtool build nano 3119 $ devtool build nano
3217 NOTE: Starting bitbake server... 3120 NOTE: Starting bitbake server...
@@ -3236,8 +3139,7 @@ and submit commits for the changes generated by the upgrade process.
3236 3139
3237Once the tree is clean, you can clean things up in this example with the 3140Once the tree is clean, you can clean things up in this example with the
3238following command from the ``${BUILDDIR}/workspace/sources/nano`` 3141following command from the ``${BUILDDIR}/workspace/sources/nano``
3239directory: 3142directory::
3240::
3241 3143
3242 $ devtool finish nano meta-oe 3144 $ devtool finish nano meta-oe
3243 NOTE: Starting bitbake server... 3145 NOTE: Starting bitbake server...
@@ -3341,8 +3243,7 @@ build packages is available in the Build Directory as defined by the
3341:term:`S` variable. Below is the default 3243:term:`S` variable. Below is the default
3342value for the ``S`` variable as defined in the 3244value for the ``S`` variable as defined in the
3343``meta/conf/bitbake.conf`` configuration file in the 3245``meta/conf/bitbake.conf`` configuration file in the
3344:term:`Source Directory`: 3246:term:`Source Directory`::
3345::
3346 3247
3347 S = "${WORKDIR}/${BP}" 3248 S = "${WORKDIR}/${BP}"
3348 3249
@@ -3353,16 +3254,14 @@ usually set ``S`` to ``${WORKDIR}/git``.
3353.. note:: 3254.. note::
3354 3255
3355 The :term:`BP` represents the base recipe name, which consists of the name 3256 The :term:`BP` represents the base recipe name, which consists of the name
3356 and version: 3257 and version::
3357 ::
3358 3258
3359 BP = "${BPN}-${PV}" 3259 BP = "${BPN}-${PV}"
3360 3260
3361 3261
3362The path to the work directory for the recipe 3262The path to the work directory for the recipe
3363(:term:`WORKDIR`) is defined as 3263(:term:`WORKDIR`) is defined as
3364follows: 3264follows::
3365::
3366 3265
3367 ${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR} 3266 ${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}
3368 3267
@@ -3388,8 +3287,7 @@ As an example, assume a Source Directory top-level folder named
3388``poky``, a default Build Directory at ``poky/build``, and a 3287``poky``, a default Build Directory at ``poky/build``, and a
3389``qemux86-poky-linux`` machine target system. Furthermore, suppose your 3288``qemux86-poky-linux`` machine target system. Furthermore, suppose your
3390recipe is named ``foo_1.3.0.bb``. In this case, the work directory the 3289recipe is named ``foo_1.3.0.bb``. In this case, the work directory the
3391build system uses to build the package would be as follows: 3290build system uses to build the package would be as follows::
3392::
3393 3291
3394 poky/build/tmp/work/qemux86-poky-linux/foo/1.3.0-r0 3292 poky/build/tmp/work/qemux86-poky-linux/foo/1.3.0-r0
3395 3293
@@ -3426,15 +3324,13 @@ Follow these general steps:
3426 3324
34273. *Create a New Patch:* Before modifying source code, you need to 33253. *Create a New Patch:* Before modifying source code, you need to
3428 create a new patch. To create a new patch file, use ``quilt new`` as 3326 create a new patch. To create a new patch file, use ``quilt new`` as
3429 below: 3327 below::
3430 ::
3431 3328
3432 $ quilt new my_changes.patch 3329 $ quilt new my_changes.patch
3433 3330
34344. *Notify Quilt and Add Files:* After creating the patch, you need to 33314. *Notify Quilt and Add Files:* After creating the patch, you need to
3435 notify Quilt about the files you plan to edit. You notify Quilt by 3332 notify Quilt about the files you plan to edit. You notify Quilt by
3436 adding the files to the patch you just created: 3333 adding the files to the patch you just created::
3437 ::
3438 3334
3439 $ quilt add file1.c file2.c file3.c 3335 $ quilt add file1.c file2.c file3.c
3440 3336
@@ -3443,8 +3339,7 @@ Follow these general steps:
3443 3339
34446. *Test Your Changes:* Once you have modified the source code, the 33406. *Test Your Changes:* Once you have modified the source code, the
3445 easiest way to test your changes is by calling the ``do_compile`` 3341 easiest way to test your changes is by calling the ``do_compile``
3446 task as shown in the following example: 3342 task as shown in the following example::
3447 ::
3448 3343
3449 $ bitbake -c compile -f package 3344 $ bitbake -c compile -f package
3450 3345
@@ -3481,8 +3376,7 @@ Follow these general steps:
3481 that holds the recipe (``.bb``) file or the append (``.bbappend``) 3376 that holds the recipe (``.bb``) file or the append (``.bbappend``)
3482 file. Placing the patch here guarantees that the OpenEmbedded build 3377 file. Placing the patch here guarantees that the OpenEmbedded build
3483 system will find the patch. Next, add the patch into the ``SRC_URI`` 3378 system will find the patch. Next, add the patch into the ``SRC_URI``
3484 of the recipe. Here is an example: 3379 of the recipe. Here is an example::
3485 ::
3486 3380
3487 SRC_URI += "file://my_changes.patch" 3381 SRC_URI += "file://my_changes.patch"
3488 3382
@@ -3503,8 +3397,7 @@ this way can be helpful when debugging a build or preparing software to
3503be used with the OpenEmbedded build system. 3397be used with the OpenEmbedded build system.
3504 3398
3505Following is an example that uses ``devshell`` on a target named 3399Following is an example that uses ``devshell`` on a target named
3506``matchbox-desktop``: 3400``matchbox-desktop``::
3507::
3508 3401
3509 $ bitbake matchbox-desktop -c devshell 3402 $ bitbake matchbox-desktop -c devshell
3510 3403
@@ -3533,8 +3426,7 @@ corresponding ``run.*`` script in the
3533directory (e.g., ``run.do_configure.``\ `pid`). If a task's script does 3426directory (e.g., ``run.do_configure.``\ `pid`). If a task's script does
3534not exist, which would be the case if the task was skipped by way of the 3427not exist, which would be the case if the task was skipped by way of the
3535sstate cache, you can create the task by first running it outside of the 3428sstate cache, you can create the task by first running it outside of the
3536``devshell``: 3429``devshell``::
3537::
3538 3430
3539 $ bitbake -c task 3431 $ bitbake -c task
3540 3432
@@ -3581,8 +3473,7 @@ specified target. Then a new terminal is opened. Additionally, key
3581Python objects and code are available in the same way they are to 3473Python objects and code are available in the same way they are to
3582BitBake tasks, in particular, the data store 'd'. So, commands such as 3474BitBake tasks, in particular, the data store 'd'. So, commands such as
3583the following are useful when exploring the data store and running 3475the following are useful when exploring the data store and running
3584functions: 3476functions::
3585::
3586 3477
3587 pydevshell> d.getVar("STAGING_DIR") 3478 pydevshell> d.getVar("STAGING_DIR")
3588 '/media/build1/poky/build/tmp/sysroots' 3479 '/media/build1/poky/build/tmp/sysroots'
@@ -3602,8 +3493,7 @@ helpful when debugging a build or preparing software to be used with the
3602OpenEmbedded build system. 3493OpenEmbedded build system.
3603 3494
3604Following is an example that uses ``devpyshell`` on a target named 3495Following is an example that uses ``devpyshell`` on a target named
3605``matchbox-desktop``: 3496``matchbox-desktop``::
3606::
3607 3497
3608 $ bitbake matchbox-desktop -c devpyshell 3498 $ bitbake matchbox-desktop -c devpyshell
3609 3499
@@ -3664,8 +3554,7 @@ The following figure and list overviews the build process:
3664 3554
36652. *Initialize the Build Environment:* Initialize the build environment 35552. *Initialize the Build Environment:* Initialize the build environment
3666 by sourcing the build environment script (i.e. 3556 by sourcing the build environment script (i.e.
3667 :ref:`structure-core-script`): 3557 :ref:`structure-core-script`)::
3668 ::
3669 3558
3670 $ source oe-init-build-env [build_dir] 3559 $ source oe-init-build-env [build_dir]
3671 3560
@@ -3690,8 +3579,7 @@ The following figure and list overviews the build process:
3690 and a centralized tarball download directory through the 3579 and a centralized tarball download directory through the
3691 :term:`DL_DIR` variable. 3580 :term:`DL_DIR` variable.
3692 3581
36934. *Build the Image:* Build the image using the ``bitbake`` command: 35824. *Build the Image:* Build the image using the ``bitbake`` command::
3694 ::
3695 3583
3696 $ bitbake target 3584 $ bitbake target
3697 3585
@@ -3710,8 +3598,7 @@ The following figure and list overviews the build process:
3710 Project Reference Manual. 3598 Project Reference Manual.
3711 3599
3712 As an example, the following command builds the 3600 As an example, the following command builds the
3713 ``core-image-minimal`` image: 3601 ``core-image-minimal`` image::
3714 ::
3715 3602
3716 $ bitbake core-image-minimal 3603 $ bitbake core-image-minimal
3717 3604
@@ -3763,8 +3650,7 @@ Follow these steps to set up and execute multiple configuration builds:
3763 3650
3764 Here is an example showing the minimal statements needed in a 3651 Here is an example showing the minimal statements needed in a
3765 configuration file for a "qemux86" target whose temporary build 3652 configuration file for a "qemux86" target whose temporary build
3766 directory is ``tmpmultix86``: 3653 directory is ``tmpmultix86``::
3767 ::
3768 3654
3769 MACHINE = "qemux86" 3655 MACHINE = "qemux86"
3770 TMPDIR = "${TOPDIR}/tmpmultix86" 3656 TMPDIR = "${TOPDIR}/tmpmultix86"
@@ -3789,8 +3675,7 @@ Follow these steps to set up and execute multiple configuration builds:
3789 variable in your ``conf/local.conf`` configuration file to specify 3675 variable in your ``conf/local.conf`` configuration file to specify
3790 each multiconfig. Continuing with the example from the previous 3676 each multiconfig. Continuing with the example from the previous
3791 figure, the ``BBMULTICONFIG`` variable needs to enable two 3677 figure, the ``BBMULTICONFIG`` variable needs to enable two
3792 multiconfigs: "x86" and "arm" by specifying each configuration file: 3678 multiconfigs: "x86" and "arm" by specifying each configuration file::
3793 ::
3794 3679
3795 BBMULTICONFIG = "x86 arm" 3680 BBMULTICONFIG = "x86 arm"
3796 3681
@@ -3804,13 +3689,11 @@ Follow these steps to set up and execute multiple configuration builds:
3804 with "". 3689 with "".
3805 3690
3806- *Launch BitBake*: Use the following BitBake command form to launch 3691- *Launch BitBake*: Use the following BitBake command form to launch
3807 the multiple configuration build: 3692 the multiple configuration build::
3808 ::
3809 3693
3810 $ bitbake [mc:multiconfigname:]target [[[mc:multiconfigname:]target] ... ] 3694 $ bitbake [mc:multiconfigname:]target [[[mc:multiconfigname:]target] ... ]
3811 3695
3812 For the example in this section, the following command applies: 3696 For the example in this section, the following command applies::
3813 ::
3814 3697
3815 $ bitbake mc:x86:core-image-minimal mc:arm:core-image-sato mc::core-image-base 3698 $ bitbake mc:x86:core-image-minimal mc:arm:core-image-sato mc::core-image-base
3816 3699
@@ -3844,15 +3727,13 @@ essentially that the
3844 3727
3845To enable dependencies in a multiple configuration build, you must 3728To enable dependencies in a multiple configuration build, you must
3846declare the dependencies in the recipe using the following statement 3729declare the dependencies in the recipe using the following statement
3847form: 3730form::
3848::
3849 3731
3850 task_or_package[mcdepends] = "mc:from_multiconfig:to_multiconfig:recipe_name:task_on_which_to_depend" 3732 task_or_package[mcdepends] = "mc:from_multiconfig:to_multiconfig:recipe_name:task_on_which_to_depend"
3851 3733
3852To better show how to use this statement, consider the example scenario 3734To better show how to use this statement, consider the example scenario
3853from the first paragraph of this section. The following statement needs 3735from the first paragraph of this section. The following statement needs
3854to be added to the recipe that builds the ``core-image-sato`` image: 3736to be added to the recipe that builds the ``core-image-sato`` image::
3855::
3856 3737
3857 do_image[mcdepends] = "mc:x86:arm:core-image-minimal:do_rootfs" 3738 do_image[mcdepends] = "mc:x86:arm:core-image-minimal:do_rootfs"
3858 3739
@@ -3862,8 +3743,7 @@ task on which the ``do_image`` task in the recipe depends is the
3862with the "arm" multiconfig. 3743with the "arm" multiconfig.
3863 3744
3864Once you set up this dependency, you can build the "x86" multiconfig 3745Once you set up this dependency, you can build the "x86" multiconfig
3865using a BitBake command as follows: 3746using a BitBake command as follows::
3866::
3867 3747
3868 $ bitbake mc:x86:core-image-sato 3748 $ bitbake mc:x86:core-image-sato
3869 3749
@@ -3874,8 +3754,7 @@ dependency, BitBake also executes through the ``do_rootfs`` task for the
3874 3754
3875Having a recipe depend on the root filesystem of another build might not 3755Having a recipe depend on the root filesystem of another build might not
3876seem that useful. Consider this change to the statement in the 3756seem that useful. Consider this change to the statement in the
3877``core-image-sato`` recipe: 3757``core-image-sato`` recipe::
3878::
3879 3758
3880 do_image[mcdepends] = "mc:x86:arm:core-image-minimal:do_image" 3759 do_image[mcdepends] = "mc:x86:arm:core-image-minimal:do_image"
3881 3760
@@ -4091,8 +3970,7 @@ happens, which changes the way you build them. You can also modify the
4091filesystem itself or select a different filesystem. 3970filesystem itself or select a different filesystem.
4092 3971
4093First, find out what is hogging your root filesystem by running the 3972First, find out what is hogging your root filesystem by running the
4094``dirsize.py`` script from your root directory: 3973``dirsize.py`` script from your root directory::
4095::
4096 3974
4097 $ cd root-directory-of-image 3975 $ cd root-directory-of-image
4098 $ dirsize.py 100000 > dirsize-100k.log 3976 $ dirsize.py 100000 > dirsize-100k.log
@@ -4107,8 +3985,7 @@ the root filesystem that take up large amounts of memory.
4107 3985
4108You need to be sure that what you eliminate does not cripple the 3986You need to be sure that what you eliminate does not cripple the
4109functionality you need. One way to see how packages relate to each other 3987functionality you need. One way to see how packages relate to each other
4110is by using the Dependency Explorer UI with the BitBake command: 3988is by using the Dependency Explorer UI with the BitBake command::
4111::
4112 3989
4113 $ cd image-directory 3990 $ cd image-directory
4114 $ bitbake -u taskexp -g image 3991 $ bitbake -u taskexp -g image
@@ -4124,8 +4001,7 @@ instead of ``udev``.
4124 4001
4125Use your ``local.conf`` file to make changes. For example, to eliminate 4002Use your ``local.conf`` file to make changes. For example, to eliminate
4126``udev`` and ``glib``, set the following in the local configuration 4003``udev`` and ``glib``, set the following in the local configuration
4127file: 4004file::
4128::
4129 4005
4130 VIRTUAL-RUNTIME_dev_manager = "" 4006 VIRTUAL-RUNTIME_dev_manager = ""
4131 4007
@@ -4153,8 +4029,7 @@ building? Which drivers do you build by default?
4153 You can modify the kernel source if you want to help with boot time. 4029 You can modify the kernel source if you want to help with boot time.
4154 4030
4155Run the ``ksize.py`` script from the top-level Linux build directory to 4031Run the ``ksize.py`` script from the top-level Linux build directory to
4156get an idea of what is making up the kernel: 4032get an idea of what is making up the kernel::
4157::
4158 4033
4159 $ cd top-level-linux-build-directory 4034 $ cd top-level-linux-build-directory
4160 $ ksize.py > ksize.log 4035 $ ksize.py > ksize.log
@@ -4168,8 +4043,7 @@ in a compressed kernel image. Look to reduce the areas that are large
4168and taking up around the "90% rule." 4043and taking up around the "90% rule."
4169 4044
4170To examine, or drill down, into any particular area, use the ``-d`` 4045To examine, or drill down, into any particular area, use the ``-d``
4171option with the script: 4046option with the script::
4172::
4173 4047
4174 $ ksize.py -d > ksize.log 4048 $ ksize.py -d > ksize.log
4175 4049
@@ -4316,8 +4190,7 @@ your tunings to best consider build times and package feed maintenance.
4316 machine-architecture dependent, make sure your recipe enables the 4190 machine-architecture dependent, make sure your recipe enables the
4317 "machine" package architecture through the 4191 "machine" package architecture through the
4318 :term:`MACHINE_ARCH` 4192 :term:`MACHINE_ARCH`
4319 variable: 4193 variable::
4320 ::
4321 4194
4322 PACKAGE_ARCH = "${MACHINE_ARCH}" 4195 PACKAGE_ARCH = "${MACHINE_ARCH}"
4323 4196
@@ -4325,8 +4198,7 @@ your tunings to best consider build times and package feed maintenance.
4325 specifically enable a package architecture through the 4198 specifically enable a package architecture through the
4326 :term:`PACKAGE_ARCH`, The 4199 :term:`PACKAGE_ARCH`, The
4327 OpenEmbedded build system defaults to the 4200 OpenEmbedded build system defaults to the
4328 :term:`TUNE_PKGARCH` setting: 4201 :term:`TUNE_PKGARCH` setting::
4329 ::
4330 4202
4331 PACKAGE_ARCH = "${TUNE_PKGARCH}" 4203 PACKAGE_ARCH = "${TUNE_PKGARCH}"
4332 4204
@@ -4426,15 +4298,13 @@ to do is inherit the
4426and then set the 4298and then set the
4427:term:`EXTERNALSRC` variable to 4299:term:`EXTERNALSRC` variable to
4428point to your external source code. Here are the statements to put in 4300point to your external source code. Here are the statements to put in
4429your ``local.conf`` file: 4301your ``local.conf`` file::
4430::
4431 4302
4432 INHERIT += "externalsrc" 4303 INHERIT += "externalsrc"
4433 EXTERNALSRC_pn-myrecipe = "path-to-your-source-tree" 4304 EXTERNALSRC_pn-myrecipe = "path-to-your-source-tree"
4434 4305
4435This next example shows how to accomplish the same thing by setting 4306This next example shows how to accomplish the same thing by setting
4436``EXTERNALSRC`` in the recipe itself or in the recipe's append file: 4307``EXTERNALSRC`` in the recipe itself or in the recipe's append file::
4437::
4438 4308
4439 EXTERNALSRC = "path" 4309 EXTERNALSRC = "path"
4440 EXTERNALSRC_BUILD = "path" 4310 EXTERNALSRC_BUILD = "path"
@@ -4451,8 +4321,7 @@ directory separate from the external source directory as specified by
4451to have the source built in the same directory in which it resides, or 4321to have the source built in the same directory in which it resides, or
4452some other nominated directory, you can set 4322some other nominated directory, you can set
4453:term:`EXTERNALSRC_BUILD` 4323:term:`EXTERNALSRC_BUILD`
4454to point to that directory: 4324to point to that directory::
4455::
4456 4325
4457 EXTERNALSRC_BUILD_pn-myrecipe = "path-to-your-source-tree" 4326 EXTERNALSRC_BUILD_pn-myrecipe = "path-to-your-source-tree"
4458 4327
@@ -4475,8 +4344,7 @@ Follow these steps to populate your Downloads directory:
4475 an empty location or one that does not yet exist. 4344 an empty location or one that does not yet exist.
4476 4345
44772. *Generate Tarballs of the Source Git Repositories:* Edit your 43462. *Generate Tarballs of the Source Git Repositories:* Edit your
4478 ``local.conf`` configuration file as follows: 4347 ``local.conf`` configuration file as follows::
4479 ::
4480 4348
4481 DL_DIR = "/home/your-download-dir/" 4349 DL_DIR = "/home/your-download-dir/"
4482 BB_GENERATE_MIRROR_TARBALLS = "1" 4350 BB_GENERATE_MIRROR_TARBALLS = "1"
@@ -4489,8 +4357,7 @@ Follow these steps to populate your Downloads directory:
4489 variable for more information. 4357 variable for more information.
4490 4358
44913. *Populate Your Downloads Directory Without Building:* Use BitBake to 43593. *Populate Your Downloads Directory Without Building:* Use BitBake to
4492 fetch your sources but inhibit the build: 4360 fetch your sources but inhibit the build::
4493 ::
4494 4361
4495 $ bitbake target --runonly=fetch 4362 $ bitbake target --runonly=fetch
4496 4363
@@ -4536,8 +4403,7 @@ directory:
4536 ``${``\ :term:`TMPDIR`\ ``}`` 4403 ``${``\ :term:`TMPDIR`\ ``}``
4537 directory or using a new :term:`Build Directory`. 4404 directory or using a new :term:`Build Directory`.
4538 4405
45393. *Build Your Target:* Use BitBake to build your target: 44063. *Build Your Target:* Use BitBake to build your target::
4540 ::
4541 4407
4542 $ bitbake target 4408 $ bitbake target
4543 4409
@@ -4550,8 +4416,7 @@ directory:
4550 The offline build does not work if recipes attempt to find the 4416 The offline build does not work if recipes attempt to find the
4551 latest version of software by setting 4417 latest version of software by setting
4552 :term:`SRCREV` to 4418 :term:`SRCREV` to
4553 ``${``\ :term:`AUTOREV`\ ``}``: 4419 ``${``\ :term:`AUTOREV`\ ``}``::
4554 ::
4555 4420
4556 SRCREV = "${AUTOREV}" 4421 SRCREV = "${AUTOREV}"
4557 4422
@@ -4670,8 +4535,7 @@ that can help you speed up the build:
4670- Disable static library generation for recipes derived from 4535- Disable static library generation for recipes derived from
4671 ``autoconf`` or ``libtool``: Following is an example showing how to 4536 ``autoconf`` or ``libtool``: Following is an example showing how to
4672 disable static libraries and still provide an override to handle 4537 disable static libraries and still provide an override to handle
4673 exceptions: 4538 exceptions::
4674 ::
4675 4539
4676 STATICLIBCONF = "--disable-static" 4540 STATICLIBCONF = "--disable-static"
4677 STATICLIBCONF_sqlite3-native = "" 4541 STATICLIBCONF_sqlite3-native = ""
@@ -4726,8 +4590,7 @@ library files.
4726 static library files through ``${PN}-dev``. 4590 static library files through ``${PN}-dev``.
4727 4591
4728Following is part of the BitBake configuration file, where you can see 4592Following is part of the BitBake configuration file, where you can see
4729how the static library files are defined: 4593how the static library files are defined::
4730::
4731 4594
4732 PACKAGE_BEFORE_PN ?= "" 4595 PACKAGE_BEFORE_PN ?= ""
4733 PACKAGES = "${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}" 4596 PACKAGES = "${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}"
@@ -4833,8 +4696,7 @@ After you have set up the recipes, you need to define the actual
4833combination of multiple libraries you want to build. You accomplish this 4696combination of multiple libraries you want to build. You accomplish this
4834through your ``local.conf`` configuration file in the 4697through your ``local.conf`` configuration file in the
4835:term:`Build Directory`. An example 4698:term:`Build Directory`. An example
4836configuration would be as follows: 4699configuration would be as follows::
4837::
4838 4700
4839 MACHINE = "qemux86-64" 4701 MACHINE = "qemux86-64"
4840 require conf/multilib.conf 4702 require conf/multilib.conf
@@ -4850,14 +4712,12 @@ on this particular tuning, see
4850 4712
4851The example then includes ``lib32-glib-2.0`` in all the images, which 4713The example then includes ``lib32-glib-2.0`` in all the images, which
4852illustrates one method of including a multiple library dependency. You 4714illustrates one method of including a multiple library dependency. You
4853can use a normal image build to include this dependency, for example: 4715can use a normal image build to include this dependency, for example::
4854::
4855 4716
4856 $ bitbake core-image-sato 4717 $ bitbake core-image-sato
4857 4718
4858You can also build Multilib packages 4719You can also build Multilib packages
4859specifically with a command like this: 4720specifically with a command like this::
4860::
4861 4721
4862 $ bitbake lib32-glib-2.0 4722 $ bitbake lib32-glib-2.0
4863 4723
@@ -4952,8 +4812,7 @@ you have other recipes that depend on a given library, you need to use
4952the :term:`DEPENDS` variable to 4812the :term:`DEPENDS` variable to
4953create the dependency. Continuing with the same example, if you want to 4813create the dependency. Continuing with the same example, if you want to
4954have a recipe depend on the 1.8 version of the ``clutter`` library, use 4814have a recipe depend on the 1.8 version of the ``clutter`` library, use
4955the following in your recipe: 4815the following in your recipe::
4956::
4957 4816
4958 DEPENDS = "clutter-1.8" 4817 DEPENDS = "clutter-1.8"
4959 4818
@@ -4996,8 +4855,7 @@ follows:
4996- Support for large images exists. 4855- Support for large images exists.
4997 4856
4998To use the x32 psABI, you need to edit your ``conf/local.conf`` 4857To use the x32 psABI, you need to edit your ``conf/local.conf``
4999configuration file as follows: 4858configuration file as follows::
5000::
5001 4859
5002 MACHINE = "qemux86-64" 4860 MACHINE = "qemux86-64"
5003 DEFAULTTUNE = "x86-64-x32" 4861 DEFAULTTUNE = "x86-64-x32"
@@ -5006,8 +4864,7 @@ configuration file as follows:
5006 4864
5007Once you have set 4865Once you have set
5008up your configuration file, use BitBake to build an image that supports 4866up your configuration file, use BitBake to build an image that supports
5009the x32 psABI. Here is an example: 4867the x32 psABI. Here is an example::
5010::
5011 4868
5012 $ bitbake core-image-sato 4869 $ bitbake core-image-sato
5013 4870
@@ -5066,8 +4923,7 @@ library package involves the following:
50663. Try to build the recipe. If you encounter build errors that look like 49233. Try to build the recipe. If you encounter build errors that look like
5067 something is unable to find ``.so`` libraries, check where these 4924 something is unable to find ``.so`` libraries, check where these
5068 libraries are located in the source tree and add the following to the 4925 libraries are located in the source tree and add the following to the
5069 recipe: 4926 recipe::
5070 ::
5071 4927
5072 GIR_EXTRA_LIBS_PATH = "${B}/something/.libs" 4928 GIR_EXTRA_LIBS_PATH = "${B}/something/.libs"
5073 4929
@@ -5097,8 +4953,7 @@ perhaps QEMU does not work on your build host and target architecture
5097combination. If so, you can use either of the following methods to 4953combination. If so, you can use either of the following methods to
5098disable GIR file generations: 4954disable GIR file generations:
5099 4955
5100- Add the following to your distro configuration: 4956- Add the following to your distro configuration::
5101 ::
5102 4957
5103 DISTRO_FEATURES_BACKFILL_CONSIDERED = "gobject-introspection-data" 4958 DISTRO_FEATURES_BACKFILL_CONSIDERED = "gobject-introspection-data"
5104 4959
@@ -5106,8 +4961,7 @@ disable GIR file generations:
5106 QEMU but will still enable building introspection tools and libraries 4961 QEMU but will still enable building introspection tools and libraries
5107 (i.e. building them does not require the use of QEMU). 4962 (i.e. building them does not require the use of QEMU).
5108 4963
5109- Add the following to your machine configuration: 4964- Add the following to your machine configuration::
5110 ::
5111 4965
5112 MACHINE_FEATURES_BACKFILL_CONSIDERED = "qemu-usermode" 4966 MACHINE_FEATURES_BACKFILL_CONSIDERED = "qemu-usermode"
5113 4967
@@ -5140,8 +4994,7 @@ working in an image:
5140 4994
51413. Launch a Terminal and then start Python in the terminal. 49953. Launch a Terminal and then start Python in the terminal.
5142 4996
51434. Enter the following in the terminal: 49974. Enter the following in the terminal::
5144 ::
5145 4998
5146 >>> from gi.repository import GLib 4999 >>> from gi.repository import GLib
5147 >>> GLib.get_host_name() 5000 >>> GLib.get_host_name()
@@ -5289,8 +5142,7 @@ system needs to meet the following requirements:
5289 form generated by the OpenEmbedded build system. 5142 form generated by the OpenEmbedded build system.
5290 5143
5291- You must build several native tools, which are built to run on the 5144- You must build several native tools, which are built to run on the
5292 build system: 5145 build system::
5293 ::
5294 5146
5295 $ bitbake parted-native dosfstools-native mtools-native 5147 $ bitbake parted-native dosfstools-native mtools-native
5296 5148
@@ -5306,8 +5158,7 @@ Getting Help
5306 5158
5307You can get general help for the ``wic`` command by entering the ``wic`` 5159You can get general help for the ``wic`` command by entering the ``wic``
5308command by itself or by entering the command with a help argument as 5160command by itself or by entering the command with a help argument as
5309follows: 5161follows::
5310::
5311 5162
5312 $ wic -h 5163 $ wic -h
5313 $ wic --help 5164 $ wic --help
@@ -5315,32 +5166,27 @@ follows:
5315 5166
5316Currently, Wic supports seven commands: ``cp``, ``create``, ``help``, 5167Currently, Wic supports seven commands: ``cp``, ``create``, ``help``,
5317``list``, ``ls``, ``rm``, and ``write``. You can get help for all these 5168``list``, ``ls``, ``rm``, and ``write``. You can get help for all these
5318commands except "help" by using the following form: 5169commands except "help" by using the following form::
5319::
5320 5170
5321 $ wic help command 5171 $ wic help command
5322 5172
5323For example, the following command returns help for the ``write`` 5173For example, the following command returns help for the ``write``
5324command: 5174command::
5325::
5326 5175
5327 $ wic help write 5176 $ wic help write
5328 5177
5329Wic supports help for three topics: ``overview``, ``plugins``, and 5178Wic supports help for three topics: ``overview``, ``plugins``, and
5330``kickstart``. You can get help for any topic using the following form: 5179``kickstart``. You can get help for any topic using the following form::
5331::
5332 5180
5333 $ wic help topic 5181 $ wic help topic
5334 5182
5335For example, the following returns overview help for Wic: 5183For example, the following returns overview help for Wic::
5336::
5337 5184
5338 $ wic help overview 5185 $ wic help overview
5339 5186
5340One additional level of help exists for Wic. You can get help on 5187One additional level of help exists for Wic. You can get help on
5341individual images through the ``list`` command. You can use the ``list`` 5188individual images through the ``list`` command. You can use the ``list``
5342command to return the available Wic images as follows: 5189command to return the available Wic images as follows::
5343::
5344 5190
5345 $ wic list images 5191 $ wic list images
5346 genericx86 Create an EFI disk image for genericx86* 5192 genericx86 Create an EFI disk image for genericx86*
@@ -5359,8 +5205,7 @@ command to return the available Wic images as follows:
5359Once you know the list of available 5205Once you know the list of available
5360Wic images, you can use ``help`` with the command to get help on a 5206Wic images, you can use ``help`` with the command to get help on a
5361particular image. For example, the following command returns help on the 5207particular image. For example, the following command returns help on the
5362"beaglebone-yocto" image: 5208"beaglebone-yocto" image::
5363::
5364 5209
5365 $ wic list beaglebone-yocto help 5210 $ wic list beaglebone-yocto help
5366 5211
@@ -5397,8 +5242,7 @@ can point to arbitrary kernel, root filesystem locations, and so forth.
5397Contrast this behavior with cooked mode where Wic looks in the Build 5242Contrast this behavior with cooked mode where Wic looks in the Build
5398Directory (e.g. ``tmp/deploy/images/``\ machine). 5243Directory (e.g. ``tmp/deploy/images/``\ machine).
5399 5244
5400The general form of the ``wic`` command in raw mode is: 5245The general form of the ``wic`` command in raw mode is::
5401::
5402 5246
5403 $ wic create wks_file options ... 5247 $ wic create wks_file options ...
5404 5248
@@ -5456,8 +5300,7 @@ a kickstart file and the name of the image from which to use artifacts
5456by using the "-e" option. Wic looks in the Build Directory (e.g. 5300by using the "-e" option. Wic looks in the Build Directory (e.g.
5457``tmp/deploy/images/``\ machine) for artifacts. 5301``tmp/deploy/images/``\ machine) for artifacts.
5458 5302
5459The general form of the ``wic`` command using Cooked Mode is as follows: 5303The general form of the ``wic`` command using Cooked Mode is as follows::
5460::
5461 5304
5462 $ wic create wks_file -e IMAGE_NAME 5305 $ wic create wks_file -e IMAGE_NAME
5463 5306
@@ -5480,14 +5323,12 @@ Using an Existing Kickstart File
5480If you do not want to create your own kickstart file, you can use an 5323If you do not want to create your own kickstart file, you can use an
5481existing file provided by the Wic installation. As shipped, kickstart 5324existing file provided by the Wic installation. As shipped, kickstart
5482files can be found in the :ref:`overview-manual/development-environment:yocto project source repositories` in the 5325files can be found in the :ref:`overview-manual/development-environment:yocto project source repositories` in the
5483following two locations: 5326following two locations::
5484::
5485 5327
5486 poky/meta-yocto-bsp/wic 5328 poky/meta-yocto-bsp/wic
5487 poky/scripts/lib/wic/canned-wks 5329 poky/scripts/lib/wic/canned-wks
5488 5330
5489Use the following command to list the available kickstart files: 5331Use the following command to list the available kickstart files::
5490::
5491 5332
5492 $ wic list images 5333 $ wic list images
5493 genericx86 Create an EFI disk image for genericx86* 5334 genericx86 Create an EFI disk image for genericx86*
@@ -5505,15 +5346,13 @@ Use the following command to list the available kickstart files:
5505 5346
5506When you use an existing file, you 5347When you use an existing file, you
5507do not have to use the ``.wks`` extension. Here is an example in Raw 5348do not have to use the ``.wks`` extension. Here is an example in Raw
5508Mode that uses the ``directdisk`` file: 5349Mode that uses the ``directdisk`` file::
5509::
5510 5350
5511 $ wic create directdisk -r rootfs_dir -b bootimg_dir \ 5351 $ wic create directdisk -r rootfs_dir -b bootimg_dir \
5512 -k kernel_dir -n native_sysroot 5352 -k kernel_dir -n native_sysroot
5513 5353
5514Here are the actual partition language commands used in the 5354Here are the actual partition language commands used in the
5515``genericx86.wks`` file to generate an image: 5355``genericx86.wks`` file to generate an image::
5516::
5517 5356
5518 # short-description: Create an EFI disk image for genericx86* 5357 # short-description: Create an EFI disk image for genericx86*
5519 # long-description: Creates a partitioned EFI disk image for genericx86* machines 5358 # long-description: Creates a partitioned EFI disk image for genericx86* machines
@@ -5571,8 +5410,7 @@ When the Wic implementation needs to invoke a partition-specific
5571implementation, it looks for the plugin with the same name as the 5410implementation, it looks for the plugin with the same name as the
5572``--source`` parameter used in the kickstart file given to that 5411``--source`` parameter used in the kickstart file given to that
5573partition. For example, if the partition is set up using the following 5412partition. For example, if the partition is set up using the following
5574command in a kickstart file: 5413command in a kickstart file::
5575::
5576 5414
5577 part /boot --source bootimg-pcbios --ondisk sda --label boot --active --align 1024 5415 part /boot --source bootimg-pcbios --ondisk sda --label boot --active --align 1024
5578 5416
@@ -5583,8 +5421,7 @@ members of the matching source plugin (i.e. ``bootimg-pcbios``) in the
5583To be more concrete, here is the corresponding plugin definition from 5421To be more concrete, here is the corresponding plugin definition from
5584the ``bootimg-pcbios.py`` file for the previous command along with an 5422the ``bootimg-pcbios.py`` file for the previous command along with an
5585example method called by the Wic implementation when it needs to prepare 5423example method called by the Wic implementation when it needs to prepare
5586a partition using an implementation-specific function: 5424a partition using an implementation-specific function::
5587::
5588 5425
5589 . 5426 .
5590 . 5427 .
@@ -5675,8 +5512,7 @@ Generate an Image using an Existing Kickstart File
5675~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 5512~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5676 5513
5677This example runs in Cooked Mode and uses the ``mkefidisk`` kickstart 5514This example runs in Cooked Mode and uses the ``mkefidisk`` kickstart
5678file: 5515file::
5679::
5680 5516
5681 $ wic create mkefidisk -e core-image-minimal 5517 $ wic create mkefidisk -e core-image-minimal
5682 INFO: Building wic-tools... 5518 INFO: Building wic-tools...
@@ -5712,8 +5548,7 @@ and kickstart file information.
5712Continuing with the example, you can now write the image from the Build 5548Continuing with the example, you can now write the image from the Build
5713Directory onto a USB stick, or whatever media for which you built your 5549Directory onto a USB stick, or whatever media for which you built your
5714image, and boot from the media. You can write the image by using 5550image, and boot from the media. You can write the image by using
5715``bmaptool`` or ``dd``: 5551``bmaptool`` or ``dd``::
5716::
5717 5552
5718 $ oe-run-native bmaptool copy mkefidisk-201804191017-sda.direct /dev/sdX 5553 $ oe-run-native bmaptool copy mkefidisk-201804191017-sda.direct /dev/sdX
5719 5554
@@ -5761,8 +5596,7 @@ the lines that specify the target disk from which to boot.
5761Next, the example modifies the ``directdisksdb-gpt.wks`` file and 5596Next, the example modifies the ``directdisksdb-gpt.wks`` file and
5762changes all instances of "``--ondisk sda``" to "``--ondisk sdb``". The 5597changes all instances of "``--ondisk sda``" to "``--ondisk sdb``". The
5763example changes the following two lines and leaves the remaining lines 5598example changes the following two lines and leaves the remaining lines
5764untouched: 5599untouched::
5765::
5766 5600
5767 part /boot --source bootimg-pcbios --ondisk sdb --label boot --active --align 1024 5601 part /boot --source bootimg-pcbios --ondisk sdb --label boot --active --align 1024
5768 part / --source rootfs --ondisk sdb --fstype=ext4 --label platform --align 1024 --use-uuid 5602 part / --source rootfs --ondisk sdb --fstype=ext4 --label platform --align 1024 --use-uuid
@@ -5799,8 +5633,7 @@ Computing (nuc) :term:`MACHINE` the
5799 5633
5800Continuing with the example, you can now directly ``dd`` the image to a 5634Continuing with the example, you can now directly ``dd`` the image to a
5801USB stick, or whatever media for which you built your image, and boot 5635USB stick, or whatever media for which you built your image, and boot
5802the resulting media: 5636the resulting media::
5803::
5804 5637
5805 $ sudo dd if=directdisksdb-gpt-201710090938-sdb.direct of=/dev/sdb 5638 $ sudo dd if=directdisksdb-gpt-201710090938-sdb.direct of=/dev/sdb
5806 140966+0 records in 5639 140966+0 records in
@@ -5814,8 +5647,7 @@ Using a Modified Kickstart File and Running in Raw Mode
5814This next example manually specifies each build artifact (runs in Raw 5647This next example manually specifies each build artifact (runs in Raw
5815Mode) and uses a modified kickstart file. The example also uses the 5648Mode) and uses a modified kickstart file. The example also uses the
5816``-o`` option to cause Wic to create the output somewhere other than the 5649``-o`` option to cause Wic to create the output somewhere other than the
5817default output directory, which is the current directory: 5650default output directory, which is the current directory::
5818::
5819 5651
5820 $ wic create /home/stephano/my_yocto/test.wks -o /home/stephano/testwic \ 5652 $ wic create /home/stephano/my_yocto/test.wks -o /home/stephano/testwic \
5821 --rootfs-dir /home/stephano/build/master/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/rootfs \ 5653 --rootfs-dir /home/stephano/build/master/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/rootfs \
@@ -5860,8 +5692,7 @@ The following example examines the contents of the Wic image, deletes
5860the existing kernel, and then inserts a new kernel: 5692the existing kernel, and then inserts a new kernel:
5861 5693
58621. *List the Partitions:* Use the ``wic ls`` command to list all the 56941. *List the Partitions:* Use the ``wic ls`` command to list all the
5863 partitions in the Wic image: 5695 partitions in the Wic image::
5864 ::
5865 5696
5866 $ wic ls tmp/deploy/images/qemux86/core-image-minimal-qemux86.wic 5697 $ wic ls tmp/deploy/images/qemux86/core-image-minimal-qemux86.wic
5867 Num Start End Size Fstype 5698 Num Start End Size Fstype
@@ -5877,8 +5708,7 @@ the existing kernel, and then inserts a new kernel:
5877 .. note:: 5708 .. note::
5878 5709
5879 You can get command usage on any Wic command using the following 5710 You can get command usage on any Wic command using the following
5880 form: 5711 form::
5881 ::
5882 5712
5883 $ wic help command 5713 $ wic help command
5884 5714
@@ -5886,14 +5716,12 @@ the existing kernel, and then inserts a new kernel:
5886 For example, the following command shows you the various ways to 5716 For example, the following command shows you the various ways to
5887 use the 5717 use the
5888 wic ls 5718 wic ls
5889 command: 5719 command::
5890 ::
5891 5720
5892 $ wic help ls 5721 $ wic help ls
5893 5722
5894 5723
5895 The following command shows what is in partition one: 5724 The following command shows what is in partition one::
5896 ::
5897 5725
5898 $ wic ls tmp/deploy/images/qemux86/core-image-minimal-qemux86.wic:1 5726 $ wic ls tmp/deploy/images/qemux86/core-image-minimal-qemux86.wic:1
5899 Volume in drive : is boot 5727 Volume in drive : is boot
@@ -5915,8 +5743,7 @@ the existing kernel, and then inserts a new kernel:
5915 5743
5916 If you see the following error, you need to update or create a 5744 If you see the following error, you need to update or create a
5917 ``~/.mtoolsrc`` file and be sure to have the line "mtools_skip_check=1" 5745 ``~/.mtoolsrc`` file and be sure to have the line "mtools_skip_check=1"
5918 in the file. Then, run the Wic command again: 5746 in the file. Then, run the Wic command again::
5919 ::
5920 5747
5921 ERROR: _exec_cmd: /usr/bin/mdir -i /tmp/wic-parttfokuwra ::/ returned '1' instead of 0 5748 ERROR: _exec_cmd: /usr/bin/mdir -i /tmp/wic-parttfokuwra ::/ returned '1' instead of 0
5922 output: Total number of sectors (47824) not a multiple of sectors per track (32)! 5749 output: Total number of sectors (47824) not a multiple of sectors per track (32)!
@@ -5924,8 +5751,7 @@ the existing kernel, and then inserts a new kernel:
5924 5751
5925 5752
59263. *Remove the Old Kernel:* Use the ``wic rm`` command to remove the 57533. *Remove the Old Kernel:* Use the ``wic rm`` command to remove the
5927 ``vmlinuz`` file (kernel): 5754 ``vmlinuz`` file (kernel)::
5928 ::
5929 5755
5930 $ wic rm tmp/deploy/images/qemux86/core-image-minimal-qemux86.wic:1/vmlinuz 5756 $ wic rm tmp/deploy/images/qemux86/core-image-minimal-qemux86.wic:1/vmlinuz
5931 5757
@@ -5937,8 +5763,7 @@ the existing kernel, and then inserts a new kernel:
5937 kernel will be in the ``workspace/sources`` area. 5763 kernel will be in the ``workspace/sources`` area.
5938 5764
5939 The following example assumes ``devtool`` was used to build the 5765 The following example assumes ``devtool`` was used to build the
5940 kernel: 5766 kernel::
5941 ::
5942 5767
5943 $ wic cp poky_sdk/tmp/work/qemux86-poky-linux/linux-yocto/4.12.12+git999-r0/linux-yocto-4.12.12+git999/arch/x86/boot/bzImage \ 5768 $ wic cp poky_sdk/tmp/work/qemux86-poky-linux/linux-yocto/4.12.12+git999-r0/linux-yocto-4.12.12+git999/arch/x86/boot/bzImage \
5944 poky/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.wic:1/vmlinuz 5769 poky/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.wic:1/vmlinuz
@@ -5968,14 +5793,12 @@ system image files much faster.
5968 - If you are using Ubuntu or Debian distributions, you can install 5793 - If you are using Ubuntu or Debian distributions, you can install
5969 the ``bmap-tools`` package using the following command and then 5794 the ``bmap-tools`` package using the following command and then
5970 use the tool without specifying ``PATH`` even from the root 5795 use the tool without specifying ``PATH`` even from the root
5971 account: 5796 account::
5972 ::
5973 5797
5974 $ sudo apt-get install bmap-tools 5798 $ sudo apt-get install bmap-tools
5975 5799
5976 - If you are unable to install the ``bmap-tools`` package, you will 5800 - If you are unable to install the ``bmap-tools`` package, you will
5977 need to build Bmaptool before using it. Use the following command: 5801 need to build Bmaptool before using it. Use the following command::
5978 ::
5979 5802
5980 $ bitbake bmap-tools-native 5803 $ bitbake bmap-tools-native
5981 5804
@@ -5984,15 +5807,13 @@ that while this example uses a Wic image, you can use Bmaptool to flash
5984any type of image. Use these steps to flash an image using Bmaptool: 5807any type of image. Use these steps to flash an image using Bmaptool:
5985 5808
59861. *Update your local.conf File:* You need to have the following set 58091. *Update your local.conf File:* You need to have the following set
5987 in your ``local.conf`` file before building your image: 5810 in your ``local.conf`` file before building your image::
5988 ::
5989 5811
5990 IMAGE_FSTYPES += "wic wic.bmap" 5812 IMAGE_FSTYPES += "wic wic.bmap"
5991 5813
59922. *Get Your Image:* Either have your image ready (pre-built with the 58142. *Get Your Image:* Either have your image ready (pre-built with the
5993 :term:`IMAGE_FSTYPES` 5815 :term:`IMAGE_FSTYPES`
5994 setting previously mentioned) or take the step to build the image: 5816 setting previously mentioned) or take the step to build the image::
5995 ::
5996 5817
5997 $ bitbake image 5818 $ bitbake image
5998 5819
@@ -6000,20 +5821,17 @@ any type of image. Use these steps to flash an image using Bmaptool:
6000 depending on your particular setup. The following commands assume the 5821 depending on your particular setup. The following commands assume the
6001 image resides in the Build Directory's ``deploy/images/`` area: 5822 image resides in the Build Directory's ``deploy/images/`` area:
6002 5823
6003 - If you have write access to the media, use this command form: 5824 - If you have write access to the media, use this command form::
6004 ::
6005 5825
6006 $ oe-run-native bmap-tools-native bmaptool copy build-directory/tmp/deploy/images/machine/image.wic /dev/sdX 5826 $ oe-run-native bmap-tools-native bmaptool copy build-directory/tmp/deploy/images/machine/image.wic /dev/sdX
6007 5827
6008 - If you do not have write access to the media, set your permissions 5828 - If you do not have write access to the media, set your permissions
6009 first and then use the same command form: 5829 first and then use the same command form::
6010 ::
6011 5830
6012 $ sudo chmod 666 /dev/sdX 5831 $ sudo chmod 666 /dev/sdX
6013 $ oe-run-native bmap-tools-native bmaptool copy build-directory/tmp/deploy/images/machine/image.wic /dev/sdX 5832 $ oe-run-native bmap-tools-native bmaptool copy build-directory/tmp/deploy/images/machine/image.wic /dev/sdX
6014 5833
6015For help on the ``bmaptool`` command, use the following command: 5834For help on the ``bmaptool`` command, use the following command::
6016::
6017 5835
6018 $ bmaptool --help 5836 $ bmaptool --help
6019 5837
@@ -6107,8 +5925,7 @@ your build output more secure. The security flags are in the
6107 5925
6108Use the following line in your ``local.conf`` file or in your custom 5926Use the following line in your ``local.conf`` file or in your custom
6109distribution configuration file to enable the security compiler and 5927distribution configuration file to enable the security compiler and
6110linker flags for your build: 5928linker flags for your build::
6111::
6112 5929
6113 require conf/distro/include/security_flags.inc 5930 require conf/distro/include/security_flags.inc
6114 5931
@@ -6123,8 +5940,7 @@ system to make your images more secure:
6123 When creating a new project, the default is to provide you with an 5940 When creating a new project, the default is to provide you with an
6124 initial ``local.conf`` file that enables this feature using the 5941 initial ``local.conf`` file that enables this feature using the
6125 :term:`EXTRA_IMAGE_FEATURES` 5942 :term:`EXTRA_IMAGE_FEATURES`
6126 variable with the line: 5943 variable with the line::
6127 ::
6128 5944
6129 EXTRA_IMAGE_FEATURES = "debug-tweaks" 5945 EXTRA_IMAGE_FEATURES = "debug-tweaks"
6130 5946
@@ -6250,8 +6066,7 @@ layer. The following steps provide some more detail:
6250 :term:`DISTRO` variable to point to 6066 :term:`DISTRO` variable to point to
6251 your distribution's configuration file. For example, if your 6067 your distribution's configuration file. For example, if your
6252 distribution's configuration file is named ``mydistro.conf``, then 6068 distribution's configuration file is named ``mydistro.conf``, then
6253 you point to it as follows: 6069 you point to it as follows::
6254 ::
6255 6070
6256 DISTRO = "mydistro" 6071 DISTRO = "mydistro"
6257 6072
@@ -6292,8 +6107,7 @@ The OpenEmbedded build system uses the environment variable
6292configuration information that ultimately ends up in the 6107configuration information that ultimately ends up in the
6293:term:`Build Directory` ``conf`` directory. 6108:term:`Build Directory` ``conf`` directory.
6294By default, ``TEMPLATECONF`` is set as follows in the ``poky`` 6109By default, ``TEMPLATECONF`` is set as follows in the ``poky``
6295repository: 6110repository::
6296::
6297 6111
6298 TEMPLATECONF=${TEMPLATECONF:-meta-poky/conf} 6112 TEMPLATECONF=${TEMPLATECONF:-meta-poky/conf}
6299 6113
@@ -6335,8 +6149,7 @@ display BitBake targets as part of the script output. Customizing this
6335targets appears as part of the script's output. 6149targets appears as part of the script's output.
6336 6150
6337Here is the default list of targets displayed as a result of running 6151Here is the default list of targets displayed as a result of running
6338either of the setup scripts: 6152either of the setup scripts::
6339::
6340 6153
6341 You can now run 'bitbake <target>' 6154 You can now run 'bitbake <target>'
6342 6155
@@ -6355,8 +6168,7 @@ Conserving Disk Space During Builds
6355 6168
6356To help conserve disk space during builds, you can add the following 6169To help conserve disk space during builds, you can add the following
6357statement to your project's ``local.conf`` configuration file found in 6170statement to your project's ``local.conf`` configuration file found in
6358the :term:`Build Directory`: 6171the :term:`Build Directory`::
6359::
6360 6172
6361 INHERIT += "rm_work" 6173 INHERIT += "rm_work"
6362 6174
@@ -6534,8 +6346,7 @@ The simplest form for a PR Service is for it to exist for a single host
6534development system that builds the package feed (building system). For 6346development system that builds the package feed (building system). For
6535this scenario, you can enable a local PR Service by setting 6347this scenario, you can enable a local PR Service by setting
6536:term:`PRSERV_HOST` in your 6348:term:`PRSERV_HOST` in your
6537``local.conf`` file in the :term:`Build Directory`: 6349``local.conf`` file in the :term:`Build Directory`::
6538::
6539 6350
6540 PRSERV_HOST = "localhost:0" 6351 PRSERV_HOST = "localhost:0"
6541 6352
@@ -6546,8 +6357,7 @@ stopping the server.
6546If you have a more complex setup where multiple host development systems 6357If you have a more complex setup where multiple host development systems
6547work against a common, shared package feed, you have a single PR Service 6358work against a common, shared package feed, you have a single PR Service
6548running and it is connected to each building system. For this scenario, 6359running and it is connected to each building system. For this scenario,
6549you need to start the PR Service using the ``bitbake-prserv`` command: 6360you need to start the PR Service using the ``bitbake-prserv`` command::
6550::
6551 6361
6552 bitbake-prserv --host ip --port port --start 6362 bitbake-prserv --host ip --port port --start
6553 6363
@@ -6559,8 +6369,7 @@ server and port.
6559It is also recommended you use build history, which adds some sanity 6369It is also recommended you use build history, which adds some sanity
6560checks to binary package versions, in conjunction with the server that 6370checks to binary package versions, in conjunction with the server that
6561is running the PR Service. To enable build history, add the following to 6371is running the PR Service. To enable build history, add the following to
6562each building system's ``local.conf`` file: 6372each building system's ``local.conf`` file::
6563::
6564 6373
6565 # It is recommended to activate "buildhistory" for testing the PR service 6374 # It is recommended to activate "buildhistory" for testing the PR service
6566 INHERIT += "buildhistory" 6375 INHERIT += "buildhistory"
@@ -6629,15 +6438,13 @@ the specific source code revision from which to build. You set the
6629``SRCREV`` variable to 6438``SRCREV`` variable to
6630:term:`AUTOREV` to cause the 6439:term:`AUTOREV` to cause the
6631OpenEmbedded build system to automatically use the latest revision of 6440OpenEmbedded build system to automatically use the latest revision of
6632the software: 6441the software::
6633::
6634 6442
6635 SRCREV = "${AUTOREV}" 6443 SRCREV = "${AUTOREV}"
6636 6444
6637Furthermore, you need to reference ``SRCPV`` in ``PV`` in order to 6445Furthermore, you need to reference ``SRCPV`` in ``PV`` in order to
6638automatically update the version whenever the revision of the source 6446automatically update the version whenever the revision of the source
6639code changes. Here is an example: 6447code changes. Here is an example::
6640::
6641 6448
6642 PV = "1.0+git${SRCPV}" 6449 PV = "1.0+git${SRCPV}"
6643 6450
@@ -6707,8 +6514,7 @@ package for each one it finds by appending to the
6707:term:`PACKAGES` variable and 6514:term:`PACKAGES` variable and
6708setting the appropriate values for ``FILES_packagename``, 6515setting the appropriate values for ``FILES_packagename``,
6709``RDEPENDS_packagename``, ``DESCRIPTION_packagename``, and so forth. 6516``RDEPENDS_packagename``, ``DESCRIPTION_packagename``, and so forth.
6710Here is an example from the ``lighttpd`` recipe: 6517Here is an example from the ``lighttpd`` recipe::
6711::
6712 6518
6713 python populate_packages_prepend () { 6519 python populate_packages_prepend () {
6714 lighttpd_libdir = d.expand('${libdir}') 6520 lighttpd_libdir = d.expand('${libdir}')
@@ -6751,8 +6557,7 @@ directory of the ``poky`` :ref:`source repository <overview-manual/development-e
6751also find examples in ``meta/classes/kernel.bbclass``. 6557also find examples in ``meta/classes/kernel.bbclass``.
6752 6558
6753Following is a reference that shows ``do_split_packages`` mandatory and 6559Following is a reference that shows ``do_split_packages`` mandatory and
6754optional arguments: 6560optional arguments::
6755::
6756 6561
6757 Mandatory arguments 6562 Mandatory arguments
6758 6563
@@ -6840,8 +6645,7 @@ any dependencies on optional modules from other recipes are satisfied by
6840your recipe. You can be sure these dependencies are satisfied by using 6645your recipe. You can be sure these dependencies are satisfied by using
6841the :term:`PACKAGES_DYNAMIC` 6646the :term:`PACKAGES_DYNAMIC`
6842variable. Here is an example that continues with the ``lighttpd`` recipe 6647variable. Here is an example that continues with the ``lighttpd`` recipe
6843shown earlier: 6648shown earlier::
6844::
6845 6649
6846 PACKAGES_DYNAMIC = "lighttpd-module-.*" 6650 PACKAGES_DYNAMIC = "lighttpd-module-.*"
6847 6651
@@ -6933,8 +6737,7 @@ variable to specify the format:
6933 :term:`Build Directory` (e.g. 6737 :term:`Build Directory` (e.g.
6934 ``poky/build/conf/local.conf``). 6738 ``poky/build/conf/local.conf``).
6935 6739
69362. Select the desired package format as follows: 67402. Select the desired package format as follows::
6937 ::
6938 6741
6939 PACKAGE_CLASSES ?= "package_packageformat" 6742 PACKAGE_CLASSES ?= "package_packageformat"
6940 6743
@@ -6968,15 +6771,13 @@ target's package database(s) later once your image is up and running.
6968Whenever you perform any sort of build step that can potentially 6771Whenever you perform any sort of build step that can potentially
6969generate a package or modify existing package, it is always a good idea 6772generate a package or modify existing package, it is always a good idea
6970to re-generate the package index after the build by using the following 6773to re-generate the package index after the build by using the following
6971command: 6774command::
6972::
6973 6775
6974 $ bitbake package-index 6776 $ bitbake package-index
6975 6777
6976It might be tempting to build the 6778It might be tempting to build the
6977package and the package index at the same time with a command such as 6779package and the package index at the same time with a command such as
6978the following: 6780the following::
6979::
6980 6781
6981 $ bitbake some-package package-index 6782 $ bitbake some-package package-index
6982 6783
@@ -7024,8 +6825,7 @@ your packaging choice (i.e. the
7024:term:`PACKAGE_CLASSES` 6825:term:`PACKAGE_CLASSES`
7025setting), simply start the server. The following example assumes a build 6826setting), simply start the server. The following example assumes a build
7026directory of ``poky/build/tmp/deploy/rpm`` and a ``PACKAGE_CLASSES`` 6827directory of ``poky/build/tmp/deploy/rpm`` and a ``PACKAGE_CLASSES``
7027setting of "package_rpm": 6828setting of "package_rpm"::
7028::
7029 6829
7030 $ cd poky/build/tmp/deploy/rpm 6830 $ cd poky/build/tmp/deploy/rpm
7031 $ python3 -m http.server 6831 $ python3 -m http.server
@@ -7091,8 +6891,7 @@ for all architectures. You cannot do both:
7091 architectures. 6891 architectures.
7092 6892
7093- *Create a Single (Full) Package Index:* Define a single base URL that 6893- *Create a Single (Full) Package Index:* Define a single base URL that
7094 identifies where a full package database is located: 6894 identifies where a full package database is located::
7095 ::
7096 6895
7097 [oe-packages] 6896 [oe-packages]
7098 baseurl=http://my.server/rpm 6897 baseurl=http://my.server/rpm
@@ -7210,8 +7009,7 @@ Signing RPM Packages
7210 7009
7211To enable signing RPM packages, you must set up the following 7010To enable signing RPM packages, you must set up the following
7212configurations in either your ``local.config`` or ``distro.config`` 7011configurations in either your ``local.config`` or ``distro.config``
7213file: 7012file::
7214::
7215 7013
7216 # Inherit sign_rpm.bbclass to enable signing functionality 7014 # Inherit sign_rpm.bbclass to enable signing functionality
7217 INHERIT += " sign_rpm" 7015 INHERIT += " sign_rpm"
@@ -7242,8 +7040,7 @@ signed package feeds for IPK and RPM packages.
7242 7040
7243The steps you need to take to enable signed package feed use are similar 7041The steps you need to take to enable signed package feed use are similar
7244to the steps used to sign RPM packages. You must define the following in 7042to the steps used to sign RPM packages. You must define the following in
7245your ``local.config`` or ``distro.config`` file: 7043your ``local.config`` or ``distro.config`` file::
7246::
7247 7044
7248 INHERIT += "sign_package_feed" 7045 INHERIT += "sign_package_feed"
7249 PACKAGE_FEED_GPG_NAME = "key_name" 7046 PACKAGE_FEED_GPG_NAME = "key_name"
@@ -7282,8 +7079,7 @@ hand, the test can be anything from a simple shell script that runs a
7282binary and checks the output to an elaborate system of test binaries and 7079binary and checks the output to an elaborate system of test binaries and
7283data files. 7080data files.
7284 7081
7285The test generates output in the format used by Automake: 7082The test generates output in the format used by Automake::
7286::
7287 7083
7288 result: testname 7084 result: testname
7289 7085
@@ -7305,8 +7101,7 @@ To add package testing to your build, add the
7305:term:`DISTRO_FEATURES` and 7101:term:`DISTRO_FEATURES` and
7306:term:`EXTRA_IMAGE_FEATURES` 7102:term:`EXTRA_IMAGE_FEATURES`
7307variables to your ``local.conf`` file, which is found in the 7103variables to your ``local.conf`` file, which is found in the
7308:term:`Build Directory`: 7104:term:`Build Directory`::
7309::
7310 7105
7311 DISTRO_FEATURES_append = " ptest" 7106 DISTRO_FEATURES_append = " ptest"
7312 EXTRA_IMAGE_FEATURES += "ptest-pkgs" 7107 EXTRA_IMAGE_FEATURES += "ptest-pkgs"
@@ -7331,16 +7126,14 @@ test. Here is what you have to do for each recipe:
7331 7126
7332- *Be sure the recipe inherits 7127- *Be sure the recipe inherits
7333 the* :ref:`ptest <ref-classes-ptest>` *class:* 7128 the* :ref:`ptest <ref-classes-ptest>` *class:*
7334 Include the following line in each recipe: 7129 Include the following line in each recipe::
7335 ::
7336 7130
7337 inherit ptest 7131 inherit ptest
7338 7132
7339- *Create run-ptest:* This script starts your test. Locate the 7133- *Create run-ptest:* This script starts your test. Locate the
7340 script where you will refer to it using 7134 script where you will refer to it using
7341 :term:`SRC_URI`. Here is an 7135 :term:`SRC_URI`. Here is an
7342 example that starts a test for ``dbus``: 7136 example that starts a test for ``dbus``::
7343 ::
7344 7137
7345 #!/bin/sh 7138 #!/bin/sh
7346 cd test 7139 cd test
@@ -7352,8 +7145,7 @@ test. Here is what you have to do for each recipe:
7352 :term:`DEPENDS` and 7145 :term:`DEPENDS` and
7353 :term:`RDEPENDS` variables in 7146 :term:`RDEPENDS` variables in
7354 your recipe in order for the package to meet the dependencies. Here 7147 your recipe in order for the package to meet the dependencies. Here
7355 is an example where the package has a runtime dependency on "make": 7148 is an example where the package has a runtime dependency on "make"::
7356 ::
7357 7149
7358 RDEPENDS_${PN}-ptest += "make" 7150 RDEPENDS_${PN}-ptest += "make"
7359 7151
@@ -7374,8 +7166,7 @@ test. Here is what you have to do for each recipe:
7374 7166
7375 Regardless, you still must add a ``do_compile_ptest`` function to 7167 Regardless, you still must add a ``do_compile_ptest`` function to
7376 build the test suite. Add a function similar to the following to your 7168 build the test suite. Add a function similar to the following to your
7377 recipe: 7169 recipe::
7378 ::
7379 7170
7380 do_compile_ptest() { 7171 do_compile_ptest() {
7381 oe_runmake buildtest-TESTS 7172 oe_runmake buildtest-TESTS
@@ -7457,8 +7248,7 @@ which is a file browser web application.
7457 You must know the ``cute-files`` module version. 7248 You must know the ``cute-files`` module version.
7458 7249
7459The first thing you need to do is use ``devtool`` and the NPM fetcher to 7250The first thing you need to do is use ``devtool`` and the NPM fetcher to
7460create the recipe: 7251create the recipe::
7461::
7462 7252
7463 $ devtool add "npm://registry.npmjs.org;package=cute-files;version=1.0.2" 7253 $ devtool add "npm://registry.npmjs.org;package=cute-files;version=1.0.2"
7464 7254
@@ -7486,8 +7276,7 @@ runs.
7486 practical way to have the licenses for all of the dependencies 7276 practical way to have the licenses for all of the dependencies
7487 represented in the license manifest of the image. 7277 represented in the license manifest of the image.
7488 7278
7489The ``devtool edit-recipe`` command lets you take a look at the recipe: 7279The ``devtool edit-recipe`` command lets you take a look at the recipe::
7490::
7491 7280
7492 $ devtool edit-recipe cute-files 7281 $ devtool edit-recipe cute-files
7493 SUMMARY = "Turn any folder on your computer into a cute file browser, available on the local network." 7282 SUMMARY = "Turn any folder on your computer into a cute file browser, available on the local network."
@@ -7520,8 +7309,7 @@ Three key points exist in the previous example:
7520 :ref:`npm <ref-classes-npm>` class to package 7309 :ref:`npm <ref-classes-npm>` class to package
7521 up all the modules. 7310 up all the modules.
7522 7311
7523You can run the following command to build the ``cute-files`` package: 7312You can run the following command to build the ``cute-files`` package::
7524::
7525 7313
7526 $ devtool build cute-files 7314 $ devtool build cute-files
7527 7315
@@ -7529,8 +7317,7 @@ Remember that ``nodejs`` must be installed on
7529the target before your package. 7317the target before your package.
7530 7318
7531Assuming 192.168.7.2 for the target's IP address, use the following 7319Assuming 192.168.7.2 for the target's IP address, use the following
7532command to deploy your package: 7320command to deploy your package::
7533::
7534 7321
7535 $ devtool deploy-target -s cute-files root@192.168.7.2 7322 $ devtool deploy-target -s cute-files root@192.168.7.2
7536 7323
@@ -7569,15 +7356,13 @@ projects method, you provide ``devtool`` with an URL that points to the
7569source files. 7356source files.
7570 7357
7571Replicating the same example, (i.e. ``cute-files``) use the following 7358Replicating the same example, (i.e. ``cute-files``) use the following
7572command: 7359command::
7573::
7574 7360
7575 $ devtool add https://github.com/martinaglv/cute-files.git 7361 $ devtool add https://github.com/martinaglv/cute-files.git
7576 7362
7577The 7363The
7578recipe this command generates is very similar to the recipe created in 7364recipe this command generates is very similar to the recipe created in
7579the previous section. However, the ``SRC_URI`` looks like the following: 7365the previous section. However, the ``SRC_URI`` looks like the following::
7580::
7581 7366
7582 SRC_URI = " \ 7367 SRC_URI = " \
7583 git://github.com/martinaglv/cute-files.git;protocol=https \ 7368 git://github.com/martinaglv/cute-files.git;protocol=https \
@@ -7629,8 +7414,7 @@ by the literal sequence '\\n'. The separator can be redefined using the
7629variable flag ``separator``. 7414variable flag ``separator``.
7630 7415
7631The following is an example that adds two custom fields for ipk 7416The following is an example that adds two custom fields for ipk
7632packages: 7417packages::
7633::
7634 7418
7635 PACKAGE_ADD_METADATA_IPK = "Vendor: CustomIpk\nGroup:Applications/Spreadsheets" 7419 PACKAGE_ADD_METADATA_IPK = "Vendor: CustomIpk\nGroup:Applications/Spreadsheets"
7636 7420
@@ -7660,8 +7444,7 @@ adding statements to your configuration file so that the build process
7660checks local directories first for existing tarballs before checking the 7444checks local directories first for existing tarballs before checking the
7661Internet. 7445Internet.
7662 7446
7663Here is an efficient way to set it up in your ``local.conf`` file: 7447Here is an efficient way to set it up in your ``local.conf`` file::
7664::
7665 7448
7666 SOURCE_MIRROR_URL ?= "file:///home/you/your-download-dir/" 7449 SOURCE_MIRROR_URL ?= "file:///home/you/your-download-dir/"
7667 INHERIT += "own-mirrors" 7450 INHERIT += "own-mirrors"
@@ -7692,8 +7475,7 @@ download directory :ref:`structure-build-downloads`,
7692which is located with :term:`DL_DIR`. 7475which is located with :term:`DL_DIR`.
7693 7476
7694Use the following BitBake command form to fetch all the necessary 7477Use the following BitBake command form to fetch all the necessary
7695sources without starting the build: 7478sources without starting the build::
7696::
7697 7479
7698 $ bitbake target --runall=fetch 7480 $ bitbake target --runall=fetch
7699 7481
@@ -7740,15 +7522,13 @@ following sections.
7740Using systemd Exclusively 7522Using systemd Exclusively
7741------------------------- 7523-------------------------
7742 7524
7743Set these variables in your distribution configuration file as follows: 7525Set these variables in your distribution configuration file as follows::
7744::
7745 7526
7746 DISTRO_FEATURES_append = " systemd" 7527 DISTRO_FEATURES_append = " systemd"
7747 VIRTUAL-RUNTIME_init_manager = "systemd" 7528 VIRTUAL-RUNTIME_init_manager = "systemd"
7748 7529
7749You can also prevent the SysVinit distribution feature from 7530You can also prevent the SysVinit distribution feature from
7750being automatically enabled as follows: 7531being automatically enabled as follows::
7751::
7752 7532
7753 DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit" 7533 DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit"
7754 7534
@@ -7756,8 +7536,7 @@ Doing so removes any
7756redundant SysVinit scripts. 7536redundant SysVinit scripts.
7757 7537
7758To remove initscripts from your image altogether, set this variable 7538To remove initscripts from your image altogether, set this variable
7759also: 7539also::
7760::
7761 7540
7762 VIRTUAL-RUNTIME_initscripts = "" 7541 VIRTUAL-RUNTIME_initscripts = ""
7763 7542
@@ -7767,8 +7546,7 @@ For information on the backfill variable, see
7767Using systemd for the Main Image and Using SysVinit for the Rescue Image 7546Using systemd for the Main Image and Using SysVinit for the Rescue Image
7768------------------------------------------------------------------------ 7547------------------------------------------------------------------------
7769 7548
7770Set these variables in your distribution configuration file as follows: 7549Set these variables in your distribution configuration file as follows::
7771::
7772 7550
7773 DISTRO_FEATURES_append = " systemd" 7551 DISTRO_FEATURES_append = " systemd"
7774 VIRTUAL-RUNTIME_init_manager = "systemd" 7552 VIRTUAL-RUNTIME_init_manager = "systemd"
@@ -7800,8 +7578,7 @@ Using Persistent and Pre-Populated\ ``/dev``
7800 7578
7801To use the static method for device population, you need to set the 7579To use the static method for device population, you need to set the
7802:term:`USE_DEVFS` variable to "0" 7580:term:`USE_DEVFS` variable to "0"
7803as follows: 7581as follows::
7804::
7805 7582
7806 USE_DEVFS = "0" 7583 USE_DEVFS = "0"
7807 7584
@@ -7813,8 +7590,7 @@ machine or distro configuration file. Alternatively, you can set this
7813variable in your ``local.conf`` configuration file. 7590variable in your ``local.conf`` configuration file.
7814 7591
7815If you do not define the ``IMAGE_DEVICE_TABLES`` variable, the default 7592If you do not define the ``IMAGE_DEVICE_TABLES`` variable, the default
7816``device_table-minimal.txt`` is used: 7593``device_table-minimal.txt`` is used::
7817::
7818 7594
7819 IMAGE_DEVICE_TABLES = "device_table-mymachine.txt" 7595 IMAGE_DEVICE_TABLES = "device_table-mymachine.txt"
7820 7596
@@ -7826,8 +7602,7 @@ Using ``devtmpfs`` and a Device Manager
7826 7602
7827To use the dynamic method for device population, you need to use (or be 7603To use the dynamic method for device population, you need to use (or be
7828sure to set) the :term:`USE_DEVFS` 7604sure to set) the :term:`USE_DEVFS`
7829variable to "1", which is the default: 7605variable to "1", which is the default::
7830::
7831 7606
7832 USE_DEVFS = "1" 7607 USE_DEVFS = "1"
7833 7608
@@ -7844,8 +7619,7 @@ To have more control over the device nodes, you can use a device manager
7844like ``udev`` or ``busybox-mdev``. You choose the device manager by 7619like ``udev`` or ``busybox-mdev``. You choose the device manager by
7845defining the ``VIRTUAL-RUNTIME_dev_manager`` variable in your machine or 7620defining the ``VIRTUAL-RUNTIME_dev_manager`` variable in your machine or
7846distro configuration file. Alternatively, you can set this variable in 7621distro configuration file. Alternatively, you can set this variable in
7847your ``local.conf`` configuration file: 7622your ``local.conf`` configuration file::
7848::
7849 7623
7850 VIRTUAL-RUNTIME_dev_manager = "udev" 7624 VIRTUAL-RUNTIME_dev_manager = "udev"
7851 7625
@@ -7866,14 +7640,12 @@ Subversion (SVN), Git, and Bazaar (BZR) repositories.
7866 7640
7867To enable this behavior, the :term:`PV` of 7641To enable this behavior, the :term:`PV` of
7868the recipe needs to reference 7642the recipe needs to reference
7869:term:`SRCPV`. Here is an example: 7643:term:`SRCPV`. Here is an example::
7870::
7871 7644
7872 PV = "1.2.3+git${SRCPV}" 7645 PV = "1.2.3+git${SRCPV}"
7873 7646
7874Then, you can add the following to your 7647Then, you can add the following to your
7875``local.conf``: 7648``local.conf``::
7876::
7877 7649
7878 SRCREV_pn-PN = "${AUTOREV}" 7650 SRCREV_pn-PN = "${AUTOREV}"
7879 7651
@@ -7881,20 +7653,17 @@ Then, you can add the following to your
7881which you want to enable automatic source revision updating. 7653which you want to enable automatic source revision updating.
7882 7654
7883If you do not want to update your local configuration file, you can add 7655If you do not want to update your local configuration file, you can add
7884the following directly to the recipe to finish enabling the feature: 7656the following directly to the recipe to finish enabling the feature::
7885::
7886 7657
7887 SRCREV = "${AUTOREV}" 7658 SRCREV = "${AUTOREV}"
7888 7659
7889The Yocto Project provides a distribution named ``poky-bleeding``, whose 7660The Yocto Project provides a distribution named ``poky-bleeding``, whose
7890configuration file contains the line: 7661configuration file contains the line::
7891::
7892 7662
7893 require conf/distro/include/poky-floating-revisions.inc 7663 require conf/distro/include/poky-floating-revisions.inc
7894 7664
7895This line pulls in the 7665This line pulls in the
7896listed include file that contains numerous lines of exactly that form: 7666listed include file that contains numerous lines of exactly that form::
7897::
7898 7667
7899 #SRCREV_pn-opkg-native ?= "${AUTOREV}" 7668 #SRCREV_pn-opkg-native ?= "${AUTOREV}"
7900 #SRCREV_pn-opkg-sdk ?= "${AUTOREV}" 7669 #SRCREV_pn-opkg-sdk ?= "${AUTOREV}"
@@ -7946,15 +7715,13 @@ Creating the Root Filesystem
7946To create the read-only root filesystem, simply add the 7715To create the read-only root filesystem, simply add the
7947"read-only-rootfs" feature to your image, normally in one of two ways. 7716"read-only-rootfs" feature to your image, normally in one of two ways.
7948The first way is to add the "read-only-rootfs" image feature in the 7717The first way is to add the "read-only-rootfs" image feature in the
7949image's recipe file via the ``IMAGE_FEATURES`` variable: 7718image's recipe file via the ``IMAGE_FEATURES`` variable::
7950::
7951 7719
7952 IMAGE_FEATURES += "read-only-rootfs" 7720 IMAGE_FEATURES += "read-only-rootfs"
7953 7721
7954As an alternative, you can add the same feature 7722As an alternative, you can add the same feature
7955from within your build directory's ``local.conf`` file with the 7723from within your build directory's ``local.conf`` file with the
7956associated ``EXTRA_IMAGE_FEATURES`` variable, as in: 7724associated ``EXTRA_IMAGE_FEATURES`` variable, as in::
7957::
7958 7725
7959 EXTRA_IMAGE_FEATURES = "read-only-rootfs" 7726 EXTRA_IMAGE_FEATURES = "read-only-rootfs"
7960 7727
@@ -8051,8 +7818,7 @@ Build history is disabled by default. To enable it, add the following
8051``INHERIT`` statement and set the 7818``INHERIT`` statement and set the
8052:term:`BUILDHISTORY_COMMIT` 7819:term:`BUILDHISTORY_COMMIT`
8053variable to "1" at the end of your ``conf/local.conf`` file found in the 7820variable to "1" at the end of your ``conf/local.conf`` file found in the
8054:term:`Build Directory`: 7821:term:`Build Directory`::
8055::
8056 7822
8057 INHERIT += "buildhistory" 7823 INHERIT += "buildhistory"
8058 BUILDHISTORY_COMMIT = "1" 7824 BUILDHISTORY_COMMIT = "1"
@@ -8140,8 +7906,7 @@ and actual revisions might differ when
8140:term:`SRCREV` is set to 7906:term:`SRCREV` is set to
8141${:term:`AUTOREV`}. Here is an 7907${:term:`AUTOREV`}. Here is an
8142example assuming 7908example assuming
8143``buildhistory/packages/qemux86-poky-linux/linux-yocto/latest_srcrev``): 7909``buildhistory/packages/qemux86-poky-linux/linux-yocto/latest_srcrev``)::
8144::
8145 7910
8146 # SRCREV_machine = "38cd560d5022ed2dbd1ab0dca9642e47c98a0aa1" 7911 # SRCREV_machine = "38cd560d5022ed2dbd1ab0dca9642e47c98a0aa1"
8147 SRCREV_machine = "38cd560d5022ed2dbd1ab0dca9642e47c98a0aa1" 7912 SRCREV_machine = "38cd560d5022ed2dbd1ab0dca9642e47c98a0aa1"
@@ -8154,8 +7919,7 @@ collect the stored ``SRCREV`` values from build history and report them
8154in a format suitable for use in global configuration (e.g., 7919in a format suitable for use in global configuration (e.g.,
8155``local.conf`` or a distro include file) to override floating 7920``local.conf`` or a distro include file) to override floating
8156``AUTOREV`` values to a fixed set of revisions. Here is some example 7921``AUTOREV`` values to a fixed set of revisions. Here is some example
8157output from this command: 7922output from this command::
8158::
8159 7923
8160 $ buildhistory-collect-srcrevs -a 7924 $ buildhistory-collect-srcrevs -a
8161 # i586-poky-linux 7925 # i586-poky-linux
@@ -8270,8 +8034,7 @@ image. If you are just interested in this information and not interested
8270in collecting specific package or SDK information, you can enable 8034in collecting specific package or SDK information, you can enable
8271writing only image information without any history by adding the 8035writing only image information without any history by adding the
8272following to your ``conf/local.conf`` file found in the 8036following to your ``conf/local.conf`` file found in the
8273:term:`Build Directory`: 8037:term:`Build Directory`::
8274::
8275 8038
8276 INHERIT += "buildhistory" 8039 INHERIT += "buildhistory"
8277 BUILDHISTORY_COMMIT = "0" 8040 BUILDHISTORY_COMMIT = "0"
@@ -8370,8 +8133,7 @@ interface.
8370To see any changes that have occurred (assuming you have 8133To see any changes that have occurred (assuming you have
8371:term:`BUILDHISTORY_COMMIT` = "1"), 8134:term:`BUILDHISTORY_COMMIT` = "1"),
8372you can simply use any Git command that allows you to view the history 8135you can simply use any Git command that allows you to view the history
8373of a repository. Here is one method: 8136of a repository. Here is one method::
8374::
8375 8137
8376 $ git log -p 8138 $ git log -p
8377 8139
@@ -8381,8 +8143,7 @@ however, that this method does show changes that are not significant
8381 8143
8382A command-line tool called ``buildhistory-diff`` does exist, though, 8144A command-line tool called ``buildhistory-diff`` does exist, though,
8383that queries the Git repository and prints just the differences that 8145that queries the Git repository and prints just the differences that
8384might be significant in human-readable form. Here is an example: 8146might be significant in human-readable form. Here is an example::
8385::
8386 8147
8387 $ poky/poky/scripts/buildhistory-diff . HEAD^ 8148 $ poky/poky/scripts/buildhistory-diff . HEAD^
8388 Changes to images/qemux86_64/glibc/core-image-minimal (files-in-image.txt): 8149 Changes to images/qemux86_64/glibc/core-image-minimal (files-in-image.txt):
@@ -8402,8 +8163,7 @@ might be significant in human-readable form. Here is an example:
8402.. note:: 8163.. note::
8403 8164
8404 The ``buildhistory-diff`` tool requires the ``GitPython`` 8165 The ``buildhistory-diff`` tool requires the ``GitPython``
8405 package. Be sure to install it using Pip3 as follows: 8166 package. Be sure to install it using Pip3 as follows::
8406 ::
8407 8167
8408 $ pip3 install GitPython --user 8168 $ pip3 install GitPython --user
8409 8169
@@ -8473,8 +8233,7 @@ In order to run tests, you need to do the following:
8473 with sudo. 8233 with sudo.
8474 8234
8475 - The package recipe ``qemu-helper-native`` is required to run 8235 - The package recipe ``qemu-helper-native`` is required to run
8476 this script. Build the package using the following command: 8236 this script. Build the package using the following command::
8477 ::
8478 8237
8479 $ bitbake qemu-helper-native 8238 $ bitbake qemu-helper-native
8480 8239
@@ -8609,8 +8368,7 @@ not need any information in this section. You can skip down to the
8609If you did set ``TEST_TARGET`` to "SystemdbootTarget", you also need to 8368If you did set ``TEST_TARGET`` to "SystemdbootTarget", you also need to
8610perform a one-time setup of your master image by doing the following: 8369perform a one-time setup of your master image by doing the following:
8611 8370
86121. *Set EFI_PROVIDER:* Be sure that ``EFI_PROVIDER`` is as follows: 83711. *Set EFI_PROVIDER:* Be sure that ``EFI_PROVIDER`` is as follows::
8613 ::
8614 8372
8615 EFI_PROVIDER = "systemd-boot" 8373 EFI_PROVIDER = "systemd-boot"
8616 8374
@@ -8648,16 +8406,14 @@ The final thing you need to do when setting ``TEST_TARGET`` to
8648"SystemdbootTarget" is to set up the test image: 8406"SystemdbootTarget" is to set up the test image:
8649 8407
86501. *Set up your local.conf file:* Make sure you have the following 84081. *Set up your local.conf file:* Make sure you have the following
8651 statements in your ``local.conf`` file: 8409 statements in your ``local.conf`` file::
8652 ::
8653 8410
8654 IMAGE_FSTYPES += "tar.gz" 8411 IMAGE_FSTYPES += "tar.gz"
8655 INHERIT += "testimage" 8412 INHERIT += "testimage"
8656 TEST_TARGET = "SystemdbootTarget" 8413 TEST_TARGET = "SystemdbootTarget"
8657 TEST_TARGET_IP = "192.168.2.3" 8414 TEST_TARGET_IP = "192.168.2.3"
8658 8415
86592. *Build your test image:* Use BitBake to build the image: 84162. *Build your test image:* Use BitBake to build the image::
8660 ::
8661 8417
8662 $ bitbake core-image-sato 8418 $ bitbake core-image-sato
8663 8419
@@ -8671,8 +8427,7 @@ power:
8671 ``TEST_POWERCONTROL_EXTRA_ARGS`` as a command that runs on the host 8427 ``TEST_POWERCONTROL_EXTRA_ARGS`` as a command that runs on the host
8672 and does power cycling. The test code passes one argument to that 8428 and does power cycling. The test code passes one argument to that
8673 command: off, on or cycle (off then on). Here is an example that 8429 command: off, on or cycle (off then on). Here is an example that
8674 could appear in your ``local.conf`` file: 8430 could appear in your ``local.conf`` file::
8675 ::
8676 8431
8677 TEST_POWERCONTROL_CMD = "powercontrol.exp test 10.11.12.1 nuc1" 8432 TEST_POWERCONTROL_CMD = "powercontrol.exp test 10.11.12.1 nuc1"
8678 8433
@@ -8705,8 +8460,7 @@ wish to experiment with automated hardware testing, you can use the
8705the required power action. This script requires either KDialog or Zenity 8460the required power action. This script requires either KDialog or Zenity
8706to be installed. To use this script, set the 8461to be installed. To use this script, set the
8707:term:`TEST_POWERCONTROL_CMD` 8462:term:`TEST_POWERCONTROL_CMD`
8708variable as follows: 8463variable as follows::
8709::
8710 8464
8711 TEST_POWERCONTROL_CMD = "${COREBASE}/scripts/contrib/dialog-power-control" 8465 TEST_POWERCONTROL_CMD = "${COREBASE}/scripts/contrib/dialog-power-control"
8712 8466
@@ -8728,8 +8482,7 @@ connecting to a remote console server. Regardless of the case, the
8728command simply needs to connect to the serial console and forward that 8482command simply needs to connect to the serial console and forward that
8729connection to standard input and output as any normal terminal program 8483connection to standard input and output as any normal terminal program
8730does. For example, to use the picocom terminal program on serial device 8484does. For example, to use the picocom terminal program on serial device
8731``/dev/ttyUSB0`` at 115200bps, you would set the variable as follows: 8485``/dev/ttyUSB0`` at 115200bps, you would set the variable as follows::
8732::
8733 8486
8734 TEST_SERIALCONTROL_CMD = "picocom /dev/ttyUSB0 -b 115200" 8487 TEST_SERIALCONTROL_CMD = "picocom /dev/ttyUSB0 -b 115200"
8735 8488
@@ -8737,8 +8490,7 @@ For local
8737devices where the serial port device disappears when the device reboots, 8490devices where the serial port device disappears when the device reboots,
8738an additional "serdevtry" wrapper script is provided. To use this 8491an additional "serdevtry" wrapper script is provided. To use this
8739wrapper, simply prefix the terminal command with 8492wrapper, simply prefix the terminal command with
8740``${COREBASE}/scripts/contrib/serdevtry``: 8493``${COREBASE}/scripts/contrib/serdevtry``::
8741::
8742 8494
8743 TEST_SERIALCONTROL_CMD = "${COREBASE}/scripts/contrib/serdevtry picocom -b 115200 /dev/ttyUSB0" 8495 TEST_SERIALCONTROL_CMD = "${COREBASE}/scripts/contrib/serdevtry picocom -b 115200 /dev/ttyUSB0"
8744 8496
@@ -8752,27 +8504,23 @@ You can start the tests automatically or manually:
8752 set the 8504 set the
8753 :term:`TESTIMAGE_AUTO` 8505 :term:`TESTIMAGE_AUTO`
8754 variable to "1" in your ``local.conf`` file in the 8506 variable to "1" in your ``local.conf`` file in the
8755 :term:`Build Directory`: 8507 :term:`Build Directory`::
8756 ::
8757 8508
8758 TESTIMAGE_AUTO = "1" 8509 TESTIMAGE_AUTO = "1"
8759 8510
8760 Next, build your image. If the image successfully builds, the 8511 Next, build your image. If the image successfully builds, the
8761 tests run: 8512 tests run::
8762 ::
8763 8513
8764 bitbake core-image-sato 8514 bitbake core-image-sato
8765 8515
8766- *Manually running tests:* To manually run the tests, first globally 8516- *Manually running tests:* To manually run the tests, first globally
8767 inherit the 8517 inherit the
8768 :ref:`testimage <ref-classes-testimage*>` class 8518 :ref:`testimage <ref-classes-testimage*>` class
8769 by editing your ``local.conf`` file: 8519 by editing your ``local.conf`` file::
8770 ::
8771 8520
8772 INHERIT += "testimage" 8521 INHERIT += "testimage"
8773 8522
8774 Next, use BitBake to run the tests: 8523 Next, use BitBake to run the tests::
8775 ::
8776 8524
8777 bitbake -c testimage image 8525 bitbake -c testimage image
8778 8526
@@ -8815,18 +8563,15 @@ handling.
8815 8563
8816Here are some things to keep in mind when running tests: 8564Here are some things to keep in mind when running tests:
8817 8565
8818- The default tests for the image are defined as: 8566- The default tests for the image are defined as::
8819 ::
8820 8567
8821 DEFAULT_TEST_SUITES_pn-image = "ping ssh df connman syslog xorg scp vnc date rpm dnf dmesg" 8568 DEFAULT_TEST_SUITES_pn-image = "ping ssh df connman syslog xorg scp vnc date rpm dnf dmesg"
8822 8569
8823- Add your own test to the list of the by using the following: 8570- Add your own test to the list of the by using the following::
8824 ::
8825 8571
8826 TEST_SUITES_append = " mytest" 8572 TEST_SUITES_append = " mytest"
8827 8573
8828- Run a specific list of tests as follows: 8574- Run a specific list of tests as follows::
8829 ::
8830 8575
8831 TEST_SUITES = "test1 test2 test3" 8576 TEST_SUITES = "test1 test2 test3"
8832 8577
@@ -8842,16 +8587,14 @@ test execution off to a scheduler. You can only export tests that are
8842defined in :term:`TEST_SUITES`. 8587defined in :term:`TEST_SUITES`.
8843 8588
8844If your image is already built, make sure the following are set in your 8589If your image is already built, make sure the following are set in your
8845``local.conf`` file: 8590``local.conf`` file::
8846::
8847 8591
8848 INHERIT += "testexport" 8592 INHERIT += "testexport"
8849 TEST_TARGET_IP = "IP-address-for-the-test-target" 8593 TEST_TARGET_IP = "IP-address-for-the-test-target"
8850 TEST_SERVER_IP = "IP-address-for-the-test-server" 8594 TEST_SERVER_IP = "IP-address-for-the-test-server"
8851 8595
8852You can then export the tests with the 8596You can then export the tests with the
8853following BitBake command form: 8597following BitBake command form::
8854::
8855 8598
8856 $ bitbake image -c testexport 8599 $ bitbake image -c testexport
8857 8600
@@ -8860,28 +8603,24 @@ Exporting the tests places them in the
8860``tmp/testexport/``\ image, which is controlled by the 8603``tmp/testexport/``\ image, which is controlled by the
8861``TEST_EXPORT_DIR`` variable. 8604``TEST_EXPORT_DIR`` variable.
8862 8605
8863You can now run the tests outside of the build environment: 8606You can now run the tests outside of the build environment::
8864::
8865 8607
8866 $ cd tmp/testexport/image 8608 $ cd tmp/testexport/image
8867 $ ./runexported.py testdata.json 8609 $ ./runexported.py testdata.json
8868 8610
8869Here is a complete example that shows IP addresses and uses the 8611Here is a complete example that shows IP addresses and uses the
8870``core-image-sato`` image: 8612``core-image-sato`` image::
8871::
8872 8613
8873 INHERIT += "testexport" 8614 INHERIT += "testexport"
8874 TEST_TARGET_IP = "192.168.7.2" 8615 TEST_TARGET_IP = "192.168.7.2"
8875 TEST_SERVER_IP = "192.168.7.1" 8616 TEST_SERVER_IP = "192.168.7.1"
8876 8617
8877Use BitBake to export the tests: 8618Use BitBake to export the tests::
8878::
8879 8619
8880 $ bitbake core-image-sato -c testexport 8620 $ bitbake core-image-sato -c testexport
8881 8621
8882Run the tests outside of 8622Run the tests outside of
8883the build environment using the following: 8623the build environment using the following::
8884::
8885 8624
8886 $ cd tmp/testexport/core-image-sato 8625 $ cd tmp/testexport/core-image-sato
8887 $ ./runexported.py testdata.json 8626 $ ./runexported.py testdata.json
@@ -9157,14 +8896,12 @@ variables>` did not work out as expected.
9157BitBake's ``-e`` option is used to display variable values after 8896BitBake's ``-e`` option is used to display variable values after
9158parsing. The following command displays the variable values after the 8897parsing. The following command displays the variable values after the
9159configuration files (i.e. ``local.conf``, ``bblayers.conf``, 8898configuration files (i.e. ``local.conf``, ``bblayers.conf``,
9160``bitbake.conf`` and so forth) have been parsed: 8899``bitbake.conf`` and so forth) have been parsed::
9161::
9162 8900
9163 $ bitbake -e 8901 $ bitbake -e
9164 8902
9165The following command displays variable values after a specific recipe has 8903The following command displays variable values after a specific recipe has
9166been parsed. The variables include those from the configuration as well: 8904been parsed. The variables include those from the configuration as well::
9167::
9168 8905
9169 $ bitbake -e recipename 8906 $ bitbake -e recipename
9170 8907
@@ -9187,8 +8924,7 @@ variable flags (varflags) set on the variable. The output can be very
9187helpful during debugging. 8924helpful during debugging.
9188 8925
9189Variables that are exported to the environment are preceded by 8926Variables that are exported to the environment are preceded by
9190``export`` in the output of ``bitbake -e``. See the following example: 8927``export`` in the output of ``bitbake -e``. See the following example::
9191::
9192 8928
9193 export CC="i586-poky-linux-gcc -m32 -march=i586 --sysroot=/home/ulf/poky/build/tmp/sysroots/qemux86" 8929 export CC="i586-poky-linux-gcc -m32 -march=i586 --sysroot=/home/ulf/poky/build/tmp/sysroots/qemux86"
9194 8930
@@ -9250,8 +8986,7 @@ Following are a few of the available ``oe-pkgdata-util`` subcommands.
9250- ``oe-pkgdata-util find-path path ...``: Lists the names of 8986- ``oe-pkgdata-util find-path path ...``: Lists the names of
9251 the packages that contain the given paths. For example, the following 8987 the packages that contain the given paths. For example, the following
9252 tells us that ``/usr/share/man/man1/make.1`` is contained in the 8988 tells us that ``/usr/share/man/man1/make.1`` is contained in the
9253 ``make-doc`` package: 8989 ``make-doc`` package::
9254 ::
9255 8990
9256 $ oe-pkgdata-util find-path /usr/share/man/man1/make.1 8991 $ oe-pkgdata-util find-path /usr/share/man/man1/make.1
9257 make-doc: /usr/share/man/man1/make.1 8992 make-doc: /usr/share/man/man1/make.1
@@ -9260,8 +8995,7 @@ Following are a few of the available ``oe-pkgdata-util`` subcommands.
9260 of the recipes that produce the given packages. 8995 of the recipes that produce the given packages.
9261 8996
9262For more information on the ``oe-pkgdata-util`` command, use the help 8997For more information on the ``oe-pkgdata-util`` command, use the help
9263facility: 8998facility::
9264::
9265 8999
9266 $ oe-pkgdata-util --help 9000 $ oe-pkgdata-util --help
9267 $ oe-pkgdata-util subcommand --help 9001 $ oe-pkgdata-util subcommand --help
@@ -9274,8 +9008,7 @@ before the one you have specified. Dependency information can help you
9274understand why a recipe is built. 9008understand why a recipe is built.
9275 9009
9276To generate dependency information for a recipe, run the following 9010To generate dependency information for a recipe, run the following
9277command: 9011command::
9278::
9279 9012
9280 $ bitbake -g recipename 9013 $ bitbake -g recipename
9281 9014
@@ -9305,8 +9038,7 @@ format and can be converted to images (e.g. using the ``dot`` tool from
9305 provide useful information. 9038 provide useful information.
9306 9039
9307 As an example, the ``task-depends.dot`` file contains lines such 9040 As an example, the ``task-depends.dot`` file contains lines such
9308 as the following: 9041 as the following::
9309 ::
9310 9042
9311 "libxslt.do_configure" -> "libxml2.do_populate_sysroot" 9043 "libxslt.do_configure" -> "libxml2.do_populate_sysroot"
9312 9044
@@ -9323,8 +9055,7 @@ format and can be converted to images (e.g. using the ``dot`` tool from
9323 displays paths between graph nodes. 9055 displays paths between graph nodes.
9324 9056
9325You can use a different method to view dependency information by using 9057You can use a different method to view dependency information by using
9326the following command: 9058the following command::
9327::
9328 9059
9329 $ bitbake -g -u taskexp recipename 9060 $ bitbake -g -u taskexp recipename
9330 9061
@@ -9350,8 +9081,7 @@ If you are unsure whether a variable dependency is being picked up
9350automatically for a given task, you can list the variable dependencies 9081automatically for a given task, you can list the variable dependencies
9351BitBake has determined by doing the following: 9082BitBake has determined by doing the following:
9352 9083
93531. Build the recipe containing the task: 90841. Build the recipe containing the task::
9354 ::
9355 9085
9356 $ bitbake recipename 9086 $ bitbake recipename
9357 9087
@@ -9362,8 +9092,7 @@ BitBake has determined by doing the following:
9362 checksum for the task. As an example, for the 9092 checksum for the task. As an example, for the
9363 :ref:`ref-tasks-fetch` task of the 9093 :ref:`ref-tasks-fetch` task of the
9364 ``db`` recipe, the ``sigdata`` file might be found in the following 9094 ``db`` recipe, the ``sigdata`` file might be found in the following
9365 location: 9095 location::
9366 ::
9367 9096
9368 ${BUILDDIR}/tmp/stamps/i586-poky-linux/db/6.0.30-r1.do_fetch.sigdata.7c048c18222b16ff0bcee2000ef648b1 9097 ${BUILDDIR}/tmp/stamps/i586-poky-linux/db/6.0.30-r1.do_fetch.sigdata.7c048c18222b16ff0bcee2000ef648b1
9369 9098
@@ -9375,8 +9104,7 @@ BitBake has determined by doing the following:
9375 same information as ``sigdata`` files. 9104 same information as ``sigdata`` files.
9376 9105
93773. Run ``bitbake-dumpsig`` on the ``sigdata`` or ``siginfo`` file. Here 91063. Run ``bitbake-dumpsig`` on the ``sigdata`` or ``siginfo`` file. Here
9378 is an example: 9107 is an example::
9379 ::
9380 9108
9381 $ bitbake-dumpsig ${BUILDDIR}/tmp/stamps/i586-poky-linux/db/6.0.30-r1.do_fetch.sigdata.7c048c18222b16ff0bcee2000ef648b1 9109 $ bitbake-dumpsig ${BUILDDIR}/tmp/stamps/i586-poky-linux/db/6.0.30-r1.do_fetch.sigdata.7c048c18222b16ff0bcee2000ef648b1
9382 9110
@@ -9406,8 +9134,7 @@ call ``bitbake-diffsigs`` with just one file, the command behaves like
9406 9134
9407You can also use BitBake to dump out the signature construction 9135You can also use BitBake to dump out the signature construction
9408information without executing tasks by using either of the following 9136information without executing tasks by using either of the following
9409BitBake command-line options: 9137BitBake command-line options::
9410::
9411 9138
9412 ‐‐dump-signatures=SIGNATURE_HANDLER 9139 ‐‐dump-signatures=SIGNATURE_HANDLER
9413 -S SIGNATURE_HANDLER 9140 -S SIGNATURE_HANDLER
@@ -9494,8 +9221,7 @@ behavior in most cases is: ``do_fetch``, ``do_unpack``, ``do_patch``,
9494``do_build`` and any tasks on which it depends build first. Some tasks, 9221``do_build`` and any tasks on which it depends build first. Some tasks,
9495such as ``do_devshell``, are not part of the default build chain. If you 9222such as ``do_devshell``, are not part of the default build chain. If you
9496wish to run a task that is not part of the default build chain, you can 9223wish to run a task that is not part of the default build chain, you can
9497use the ``-c`` option in BitBake. Here is an example: 9224use the ``-c`` option in BitBake. Here is an example::
9498::
9499 9225
9500 $ bitbake matchbox-desktop -c devshell 9226 $ bitbake matchbox-desktop -c devshell
9501 9227
@@ -9520,8 +9246,7 @@ out), then you can use the ``-f`` option.
9520 [\ :ref:`nostamp <bitbake:bitbake-user-manual/bitbake-user-manual-metadata:variable flags>`\ ] 9246 [\ :ref:`nostamp <bitbake:bitbake-user-manual/bitbake-user-manual-metadata:variable flags>`\ ]
9521 variable flag is already set for the task. 9247 variable flag is already set for the task.
9522 9248
9523The following example shows one way you can use the ``-f`` option: 9249The following example shows one way you can use the ``-f`` option::
9524::
9525 9250
9526 $ bitbake matchbox-desktop 9251 $ bitbake matchbox-desktop
9527 . 9252 .
@@ -9550,8 +9275,7 @@ Using this option invalidates the given task and then runs the
9550:ref:`ref-tasks-build` task, which is 9275:ref:`ref-tasks-build` task, which is
9551the default task if no task is given, and the tasks on which it depends. 9276the default task if no task is given, and the tasks on which it depends.
9552You could replace the final two commands in the previous example with 9277You could replace the final two commands in the previous example with
9553the following single command: 9278the following single command::
9554::
9555 9279
9556 $ bitbake matchbox-desktop -C compile 9280 $ bitbake matchbox-desktop -C compile
9557 9281
@@ -9575,16 +9299,14 @@ task dependency mechanisms.
9575 and build output might not be in the clean state they would be in for 9299 and build output might not be in the clean state they would be in for
9576 a "normal" build, depending on what actions you took. To get rid of 9300 a "normal" build, depending on what actions you took. To get rid of
9577 such warnings, you can remove the work directory and rebuild the 9301 such warnings, you can remove the work directory and rebuild the
9578 recipe, as follows: 9302 recipe, as follows::
9579 ::
9580 9303
9581 $ bitbake matchbox-desktop -c clean 9304 $ bitbake matchbox-desktop -c clean
9582 $ bitbake matchbox-desktop 9305 $ bitbake matchbox-desktop
9583 9306
9584 9307
9585You can view a list of tasks in a given package by running the 9308You can view a list of tasks in a given package by running the
9586``do_listtasks`` task as follows: 9309``do_listtasks`` task as follows::
9587::
9588 9310
9589 $ bitbake matchbox-desktop -c listtasks 9311 $ bitbake matchbox-desktop -c listtasks
9590 9312
@@ -9608,8 +9330,7 @@ Building with No Dependencies
9608----------------------------- 9330-----------------------------
9609 9331
9610To build a specific recipe (``.bb`` file), you can use the following 9332To build a specific recipe (``.bb`` file), you can use the following
9611command form: 9333command form::
9612::
9613 9334
9614 $ bitbake -b somepath/somerecipe.bb 9335 $ bitbake -b somepath/somerecipe.bb
9615 9336
@@ -9678,8 +9399,7 @@ in the log, use the "debug" loglevel.
9678Following is an example written in Python. The code handles logging for 9399Following is an example written in Python. The code handles logging for
9679a function that determines the number of tasks needed to be run. See the 9400a function that determines the number of tasks needed to be run. See the
9680":ref:`ref-tasks-listtasks`" 9401":ref:`ref-tasks-listtasks`"
9681section for additional information: 9402section for additional information::
9682::
9683 9403
9684 python do_listtasks() { 9404 python do_listtasks() {
9685 bb.debug(2, "Starting to figure out the task list") 9405 bb.debug(2, "Starting to figure out the task list")
@@ -9841,21 +9561,18 @@ build, set the
9841:term:`PARALLEL_MAKE` variable 9561:term:`PARALLEL_MAKE` variable
9842in your ``local.conf`` file to a high number (e.g. "-j 20"). Using a 9562in your ``local.conf`` file to a high number (e.g. "-j 20"). Using a
9843high value for ``PARALLEL_MAKE`` increases the chances of the race 9563high value for ``PARALLEL_MAKE`` increases the chances of the race
9844condition showing up: 9564condition showing up::
9845::
9846 9565
9847 $ bitbake neard 9566 $ bitbake neard
9848 9567
9849Once the local build for "neard" completes, start a ``devshell`` build: 9568Once the local build for "neard" completes, start a ``devshell`` build::
9850::
9851 9569
9852 $ bitbake neard -c devshell 9570 $ bitbake neard -c devshell
9853 9571
9854For information on how to use a ``devshell``, see the 9572For information on how to use a ``devshell``, see the
9855":ref:`dev-manual/common-tasks:using a development shell`" section. 9573":ref:`dev-manual/common-tasks:using a development shell`" section.
9856 9574
9857In the ``devshell``, do the following: 9575In the ``devshell``, do the following::
9858::
9859 9576
9860 $ make clean 9577 $ make clean
9861 $ make tools/snep-send.o 9578 $ make tools/snep-send.o
@@ -9863,8 +9580,7 @@ In the ``devshell``, do the following:
9863The ``devshell`` commands cause the failure to clearly 9580The ``devshell`` commands cause the failure to clearly
9864be visible. In this case, a missing dependency exists for the "neard" 9581be visible. In this case, a missing dependency exists for the "neard"
9865Makefile target. Here is some abbreviated, sample output with the 9582Makefile target. Here is some abbreviated, sample output with the
9866missing dependency clearly visible at the end: 9583missing dependency clearly visible at the end::
9867::
9868 9584
9869 i586-poky-linux-gcc -m32 -march=i586 --sysroot=/home/scott-lenovo/...... 9585 i586-poky-linux-gcc -m32 -march=i586 --sysroot=/home/scott-lenovo/......
9870 . 9586 .
@@ -9885,8 +9601,7 @@ Creating a Patch for the Fix
9885 9601
9886Because there is a missing dependency for the Makefile target, you need 9602Because there is a missing dependency for the Makefile target, you need
9887to patch the ``Makefile.am`` file, which is generated from 9603to patch the ``Makefile.am`` file, which is generated from
9888``Makefile.in``. You can use Quilt to create the patch: 9604``Makefile.in``. You can use Quilt to create the patch::
9889::
9890 9605
9891 $ quilt new parallelmake.patch 9606 $ quilt new parallelmake.patch
9892 Patch patches/parallelmake.patch is now on top 9607 Patch patches/parallelmake.patch is now on top
@@ -9898,14 +9613,12 @@ For more information on using Quilt, see the
9898 9613
9899At this point you need to make the edits to ``Makefile.am`` to add the 9614At this point you need to make the edits to ``Makefile.am`` to add the
9900missing dependency. For our example, you have to add the following line 9615missing dependency. For our example, you have to add the following line
9901to the file: 9616to the file::
9902::
9903 9617
9904 tools/snep-send.$(OBJEXT): include/near/dbus.h 9618 tools/snep-send.$(OBJEXT): include/near/dbus.h
9905 9619
9906Once you have edited the file, use the ``refresh`` command to create the 9620Once you have edited the file, use the ``refresh`` command to create the
9907patch: 9621patch::
9908::
9909 9622
9910 $ quilt refresh 9623 $ quilt refresh
9911 Refreshed patch patches/parallelmake.patch 9624 Refreshed patch patches/parallelmake.patch
@@ -9913,8 +9626,7 @@ patch:
9913Once 9626Once
9914the patch file exists, you need to add it back to the originating recipe 9627the patch file exists, you need to add it back to the originating recipe
9915folder. Here is an example assuming a top-level 9628folder. Here is an example assuming a top-level
9916:term:`Source Directory` named ``poky``: 9629:term:`Source Directory` named ``poky``::
9917::
9918 9630
9919 $ cp patches/parallelmake.patch poky/meta/recipes-connectivity/neard/neard 9631 $ cp patches/parallelmake.patch poky/meta/recipes-connectivity/neard/neard
9920 9632
@@ -9922,8 +9634,7 @@ The final thing you need to do to implement the fix in the build is to
9922update the "neard" recipe (i.e. ``neard-0.14.bb``) so that the 9634update the "neard" recipe (i.e. ``neard-0.14.bb``) so that the
9923:term:`SRC_URI` statement includes 9635:term:`SRC_URI` statement includes
9924the patch file. The recipe file is in the folder above the patch. Here 9636the patch file. The recipe file is in the folder above the patch. Here
9925is what the edited ``SRC_URI`` statement would look like: 9637is what the edited ``SRC_URI`` statement would look like::
9926::
9927 9638
9928 SRC_URI = "${KERNELORG_MIRROR}/linux/network/nfc/${BPN}-${PV}.tar.xz \ 9639 SRC_URI = "${KERNELORG_MIRROR}/linux/network/nfc/${BPN}-${PV}.tar.xz \
9929 file://neard.in \ 9640 file://neard.in \
@@ -9932,8 +9643,7 @@ is what the edited ``SRC_URI`` statement would look like:
9932 " 9643 "
9933 9644
9934With the patch complete and moved to the correct folder and the 9645With the patch complete and moved to the correct folder and the
9935``SRC_URI`` statement updated, you can exit the ``devshell``: 9646``SRC_URI`` statement updated, you can exit the ``devshell``::
9936::
9937 9647
9938 $ exit 9648 $ exit
9939 9649
@@ -9941,16 +9651,14 @@ Testing the Build
9941~~~~~~~~~~~~~~~~~ 9651~~~~~~~~~~~~~~~~~
9942 9652
9943With everything in place, you can get back to trying the build again 9653With everything in place, you can get back to trying the build again
9944locally: 9654locally::
9945::
9946 9655
9947 $ bitbake neard 9656 $ bitbake neard
9948 9657
9949This build should succeed. 9658This build should succeed.
9950 9659
9951Now you can open up a ``devshell`` again and repeat the clean and make 9660Now you can open up a ``devshell`` again and repeat the clean and make
9952operations as follows: 9661operations as follows::
9953::
9954 9662
9955 $ bitbake neard -c devshell 9663 $ bitbake neard -c devshell
9956 $ make clean 9664 $ make clean
@@ -10005,24 +9713,21 @@ debug symbols from the server.
10005 9713
10006To run a debuginfod server, you need to do the following: 9714To run a debuginfod server, you need to do the following:
10007 9715
10008- Ensure that this variable is set in your ``local.conf`` file: 9716- Ensure that this variable is set in your ``local.conf`` file::
10009 ::
10010 9717
10011 PACKAGECONFIG_pn-elfutils-native = "debuginfod libdebuginfod" 9718 PACKAGECONFIG_pn-elfutils-native = "debuginfod libdebuginfod"
10012 9719
10013 This :term:`PACKAGECONFIG` option enables debuginfod and libdebuginfod for 9720 This :term:`PACKAGECONFIG` option enables debuginfod and libdebuginfod for
10014 "elfutils-native". 9721 "elfutils-native".
10015 9722
10016- Run the following commands to set up the "debuginfod" server: 9723- Run the following commands to set up the "debuginfod" server::
10017 ::
10018 9724
10019 $ oe-debuginfod 9725 $ oe-debuginfod
10020 9726
10021 9727
10022To use debuginfod on the target, you need the following: 9728To use debuginfod on the target, you need the following:
10023 9729
10024- Ensure that this variable is set in your ``local.conf`` file: 9730- Ensure that this variable is set in your ``local.conf`` file::
10025 ::
10026 9731
10027 DEBUGINFOD_URLS = "http://localhost:8002/" 9732 DEBUGINFOD_URLS = "http://localhost:8002/"
10028 9733
@@ -10069,8 +9774,7 @@ debugger.
100691. *Configure your build system to construct the companion debug 97741. *Configure your build system to construct the companion debug
10070 filesystem:* 9775 filesystem:*
10071 9776
10072 In your ``local.conf`` file, set the following: 9777 In your ``local.conf`` file, set the following::
10073 ::
10074 9778
10075 IMAGE_GEN_DEBUGFS = "1" 9779 IMAGE_GEN_DEBUGFS = "1"
10076 IMAGE_FSTYPES_DEBUGFS = "tar.bz2" 9780 IMAGE_FSTYPES_DEBUGFS = "tar.bz2"
@@ -10090,8 +9794,7 @@ debugger.
100902. *Configure the system to include gdbserver in the target filesystem:* 97942. *Configure the system to include gdbserver in the target filesystem:*
10091 9795
10092 Make the following addition in either your ``local.conf`` file or in 9796 Make the following addition in either your ``local.conf`` file or in
10093 an image recipe: 9797 an image recipe::
10094 ::
10095 9798
10096 IMAGE_INSTALL_append = " gdbserver" 9799 IMAGE_INSTALL_append = " gdbserver"
10097 9800
@@ -10101,29 +9804,25 @@ debugger.
101013. *Build the environment:* 98043. *Build the environment:*
10102 9805
10103 Use the following command to construct the image and the companion 9806 Use the following command to construct the image and the companion
10104 Debug Filesystem: 9807 Debug Filesystem::
10105 ::
10106 9808
10107 $ bitbake image 9809 $ bitbake image
10108 9810
10109 Build the cross GDB component and 9811 Build the cross GDB component and
10110 make it available for debugging. Build the SDK that matches the 9812 make it available for debugging. Build the SDK that matches the
10111 image. Building the SDK is best for a production build that can be 9813 image. Building the SDK is best for a production build that can be
10112 used later for debugging, especially during long term maintenance: 9814 used later for debugging, especially during long term maintenance::
10113 ::
10114 9815
10115 $ bitbake -c populate_sdk image 9816 $ bitbake -c populate_sdk image
10116 9817
10117 Alternatively, you can build the minimal toolchain components that 9818 Alternatively, you can build the minimal toolchain components that
10118 match the target. Doing so creates a smaller than typical SDK and 9819 match the target. Doing so creates a smaller than typical SDK and
10119 only contains a minimal set of components with which to build simple 9820 only contains a minimal set of components with which to build simple
10120 test applications, as well as run the debugger: 9821 test applications, as well as run the debugger::
10121 ::
10122 9822
10123 $ bitbake meta-toolchain 9823 $ bitbake meta-toolchain
10124 9824
10125 A final method is to build Gdb itself within the build system: 9825 A final method is to build Gdb itself within the build system::
10126 ::
10127 9826
10128 $ bitbake gdb-cross-<architecture> 9827 $ bitbake gdb-cross-<architecture>
10129 9828
@@ -10140,8 +9839,7 @@ debugger.
10140 9839
101414. *Set up the* ``debugfs``\ *:* 98404. *Set up the* ``debugfs``\ *:*
10142 9841
10143 Run the following commands to set up the ``debugfs``: 9842 Run the following commands to set up the ``debugfs``::
10144 ::
10145 9843
10146 $ mkdir debugfs 9844 $ mkdir debugfs
10147 $ cd debugfs 9845 $ cd debugfs
@@ -10180,8 +9878,7 @@ debugger.
10180 Documentation <https://www.gnu.org/software/gdb/documentation/>`__. 9878 Documentation <https://www.gnu.org/software/gdb/documentation/>`__.
10181 9879
10182 After running gdbserver on the target, you need to run Gdb on the 9880 After running gdbserver on the target, you need to run Gdb on the
10183 host and configure it and connect to the target. Use these commands: 9881 host and configure it and connect to the target. Use these commands::
10184 ::
10185 9882
10186 $ cd directory-holding-the-debugfs-directory 9883 $ cd directory-holding-the-debugfs-directory
10187 $ arch-gdb 9884 $ arch-gdb
@@ -10212,8 +9909,7 @@ debugger.
10212 If the binary is processed through the debug splitting in 9909 If the binary is processed through the debug splitting in
10213 OpenEmbedded, you should also copy the debug items (i.e. ``.debug`` 9910 OpenEmbedded, you should also copy the debug items (i.e. ``.debug``
10214 contents and corresponding ``/usr/src/debug`` files) from the work 9911 contents and corresponding ``/usr/src/debug`` files) from the work
10215 directory. Here is an example: 9912 directory. Here is an example::
10216 ::
10217 9913
10218 $ bitbake bash 9914 $ bitbake bash
10219 $ bitbake -c devshell bash 9915 $ bitbake -c devshell bash
@@ -10234,25 +9930,21 @@ debug on the target hardware.
10234To support this kind of debugging, you need do the following: 9930To support this kind of debugging, you need do the following:
10235 9931
10236- Ensure that GDB is on the target. You can do this by adding "gdb" to 9932- Ensure that GDB is on the target. You can do this by adding "gdb" to
10237 :term:`IMAGE_INSTALL`: 9933 :term:`IMAGE_INSTALL`::
10238 ::
10239 9934
10240 IMAGE_INSTALL_append = " gdb" 9935 IMAGE_INSTALL_append = " gdb"
10241 9936
10242 Alternatively, you can add "tools-debug" to :term:`IMAGE_FEATURES`: 9937 Alternatively, you can add "tools-debug" to :term:`IMAGE_FEATURES`::
10243 ::
10244 9938
10245 IMAGE_FEATURES_append = " tools-debug" 9939 IMAGE_FEATURES_append = " tools-debug"
10246 9940
10247- Ensure that debug symbols are present. You can make sure these 9941- Ensure that debug symbols are present. You can make sure these
10248 symbols are present by installing ``-dbg``: 9942 symbols are present by installing ``-dbg``::
10249 ::
10250 9943
10251 IMAGE_INSTALL_append = "packagename-dbg" 9944 IMAGE_INSTALL_append = "packagename-dbg"
10252 9945
10253 Alternatively, you can do the following to include 9946 Alternatively, you can do the following to include
10254 all the debug symbols: 9947 all the debug symbols::
10255 ::
10256 9948
10257 IMAGE_FEATURES_append = " dbg-pkgs" 9949 IMAGE_FEATURES_append = " dbg-pkgs"
10258 9950
@@ -10262,8 +9954,7 @@ To support this kind of debugging, you need do the following:
10262 of optimization used by the compiler. For example, when adding the 9954 of optimization used by the compiler. For example, when adding the
10263 following line to your ``local.conf`` file, you will reduce optimization 9955 following line to your ``local.conf`` file, you will reduce optimization
10264 from :term:`FULL_OPTIMIZATION` of "-O2" to :term:`DEBUG_OPTIMIZATION` 9956 from :term:`FULL_OPTIMIZATION` of "-O2" to :term:`DEBUG_OPTIMIZATION`
10265 of "-O -fno-omit-frame-pointer": 9957 of "-O -fno-omit-frame-pointer"::
10266 ::
10267 9958
10268 DEBUG_BUILD = "1" 9959 DEBUG_BUILD = "1"
10269 9960
@@ -10307,8 +9998,7 @@ Here are some other tips that you might find useful:
10307 Using GNU Grep, you can use the following shell function to 9998 Using GNU Grep, you can use the following shell function to
10308 recursively search through common recipe-related files, skipping 9999 recursively search through common recipe-related files, skipping
10309 binary files, ``.git`` directories, and the Build Directory (assuming 10000 binary files, ``.git`` directories, and the Build Directory (assuming
10310 its name starts with "build"): 10001 its name starts with "build")::
10311 ::
10312 10002
10313 g() { 10003 g() {
10314 grep -Ir \ 10004 grep -Ir \
@@ -10321,8 +10011,7 @@ Here are some other tips that you might find useful:
10321 "$@" 10011 "$@"
10322 } 10012 }
10323 10013
10324 Following are some usage examples: 10014 Following are some usage examples::
10325 ::
10326 10015
10327 $ g FOO # Search recursively for "FOO" 10016 $ g FOO # Search recursively for "FOO"
10328 $ g -i foo # Search recursively for "foo", ignoring case 10017 $ g -i foo # Search recursively for "foo", ignoring case
@@ -10581,8 +10270,7 @@ Preparing Changes for Submission
10581 specific convention for bug references - any commit that addresses 10270 specific convention for bug references - any commit that addresses
10582 a specific bug should use the following form for the detailed 10271 a specific bug should use the following form for the detailed
10583 description. Be sure to use the actual bug-tracking ID from 10272 description. Be sure to use the actual bug-tracking ID from
10584 Bugzilla for bug-id: 10273 Bugzilla for bug-id::
10585 ::
10586 10274
10587 Fixes [YOCTO #bug-id] 10275 Fixes [YOCTO #bug-id]
10588 10276
@@ -10608,8 +10296,7 @@ without using the scripts once the steps in
10608 provide the command, you must include a revision list or a number of 10296 provide the command, you must include a revision list or a number of
10609 patches as part of the command. For example, either of these two 10297 patches as part of the command. For example, either of these two
10610 commands takes your most recent single commit and formats it as an 10298 commands takes your most recent single commit and formats it as an
10611 email message in the current directory: 10299 email message in the current directory::
10612 ::
10613 10300
10614 $ git format-patch -1 10301 $ git format-patch -1
10615 10302
@@ -10701,8 +10388,7 @@ been followed:
10701 10388
107021. *Push Your Commits to a "Contrib" Upstream:* If you have arranged for 103891. *Push Your Commits to a "Contrib" Upstream:* If you have arranged for
10703 permissions to push to an upstream contrib repository, push the 10390 permissions to push to an upstream contrib repository, push the
10704 change to that repository: 10391 change to that repository::
10705 ::
10706 10392
10707 $ git push upstream_remote_repo local_branch_name 10393 $ git push upstream_remote_repo local_branch_name
10708 10394
@@ -10711,8 +10397,7 @@ been followed:
10711 working in a local branch named `your_name`\ ``/README``. The following 10397 working in a local branch named `your_name`\ ``/README``. The following
10712 command pushes your local commits to the ``meta-intel-contrib`` 10398 command pushes your local commits to the ``meta-intel-contrib``
10713 upstream repository and puts the commit in a branch named 10399 upstream repository and puts the commit in a branch named
10714 `your_name`\ ``/README``: 10400 `your_name`\ ``/README``::
10715 ::
10716 10401
10717 $ git push meta-intel-contrib your_name/README 10402 $ git push meta-intel-contrib your_name/README
10718 10403
@@ -10729,8 +10414,7 @@ been followed:
10729 10414
10730 - *Search by File:* Using :ref:`overview-manual/development-environment:git`, you can 10415 - *Search by File:* Using :ref:`overview-manual/development-environment:git`, you can
10731 enter the following command to bring up a short list of all 10416 enter the following command to bring up a short list of all
10732 commits against a specific file: 10417 commits against a specific file::
10733 ::
10734 10418
10735 git shortlog -- filename 10419 git shortlog -- filename
10736 10420
@@ -10764,8 +10448,7 @@ been followed:
10764 First, create the pull request. For example, the following command 10448 First, create the pull request. For example, the following command
10765 runs the script, specifies the upstream repository in the contrib 10449 runs the script, specifies the upstream repository in the contrib
10766 directory into which you pushed the change, and provides a subject 10450 directory into which you pushed the change, and provides a subject
10767 line in the created patch files: 10451 line in the created patch files::
10768 ::
10769 10452
10770 $ poky/scripts/create-pull-request -u meta-intel-contrib -s "Updated Manual Section Reference in README" 10453 $ poky/scripts/create-pull-request -u meta-intel-contrib -s "Updated Manual Section Reference in README"
10771 10454
@@ -10778,8 +10461,7 @@ been followed:
10778 editing the cover letter, send the pull request. For example, the 10461 editing the cover letter, send the pull request. For example, the
10779 following command runs the script and specifies the patch directory 10462 following command runs the script and specifies the patch directory
10780 and email address. In this example, the email address is a mailing 10463 and email address. In this example, the email address is a mailing
10781 list: 10464 list::
10782 ::
10783 10465
10784 $ poky/scripts/send-pull-request -p ~/meta-intel/pull-10565 -t meta-intel@yoctoproject.org 10466 $ poky/scripts/send-pull-request -p ~/meta-intel/pull-10565 -t meta-intel@yoctoproject.org
10785 10467
@@ -10788,8 +10470,7 @@ been followed:
10788 .. note:: 10470 .. note::
10789 10471
10790 For help on using these scripts, simply provide the ``-h`` 10472 For help on using these scripts, simply provide the ``-h``
10791 argument as follows: 10473 argument as follows::
10792 ::
10793 10474
10794 $ poky/scripts/create-pull-request -h 10475 $ poky/scripts/create-pull-request -h
10795 $ poky/scripts/send-pull-request -h 10476 $ poky/scripts/send-pull-request -h
@@ -10901,8 +10582,7 @@ Specifying the ``LIC_FILES_CHKSUM`` Variable
10901 10582
10902The ``LIC_FILES_CHKSUM`` variable contains checksums of the license text 10583The ``LIC_FILES_CHKSUM`` variable contains checksums of the license text
10903in the source code for the recipe. Following is an example of how to 10584in the source code for the recipe. Following is an example of how to
10904specify ``LIC_FILES_CHKSUM``: 10585specify ``LIC_FILES_CHKSUM``::
10905::
10906 10586
10907 LIC_FILES_CHKSUM = "file://COPYING;md5=xxxx \ 10587 LIC_FILES_CHKSUM = "file://COPYING;md5=xxxx \
10908 file://licfile1.txt;beginline=5;endline=29;md5=yyyy \ 10588 file://licfile1.txt;beginline=5;endline=29;md5=yyyy \
@@ -10925,8 +10605,7 @@ variable as the default directory when searching files listed in
10925``LIC_FILES_CHKSUM``. The previous example employs the default 10605``LIC_FILES_CHKSUM``. The previous example employs the default
10926directory. 10606directory.
10927 10607
10928Consider this next example: 10608Consider this next example::
10929::
10930 10609
10931 LIC_FILES_CHKSUM = "file://src/ls.c;beginline=5;endline=16;\ 10610 LIC_FILES_CHKSUM = "file://src/ls.c;beginline=5;endline=16;\
10932 md5=bb14ed3c4cda583abc85401304b5cd4e" 10611 md5=bb14ed3c4cda583abc85401304b5cd4e"
@@ -10988,15 +10667,13 @@ are defined on a recipe-by-recipe basis through the
10988:term:`LICENSE_FLAGS` variable 10667:term:`LICENSE_FLAGS` variable
10989definition in the affected recipe. For instance, the 10668definition in the affected recipe. For instance, the
10990``poky/meta/recipes-multimedia/gstreamer/gst-plugins-ugly`` recipe 10669``poky/meta/recipes-multimedia/gstreamer/gst-plugins-ugly`` recipe
10991contains the following statement: 10670contains the following statement::
10992::
10993 10671
10994 LICENSE_FLAGS = "commercial" 10672 LICENSE_FLAGS = "commercial"
10995 10673
10996Here is a 10674Here is a
10997slightly more complicated example that contains both an explicit recipe 10675slightly more complicated example that contains both an explicit recipe
10998name and version (after variable expansion): 10676name and version (after variable expansion)::
10999::
11000 10677
11001 LICENSE_FLAGS = "license_${PN}_${PV}" 10678 LICENSE_FLAGS = "license_${PN}_${PV}"
11002 10679
@@ -11011,8 +10688,7 @@ could add either the string "commercial_gst-plugins-ugly" or the more
11011general string "commercial" to ``LICENSE_FLAGS_WHITELIST``. See the 10688general string "commercial" to ``LICENSE_FLAGS_WHITELIST``. See the
11012":ref:`dev-manual/common-tasks:license flag matching`" section for a full 10689":ref:`dev-manual/common-tasks:license flag matching`" section for a full
11013explanation of how ``LICENSE_FLAGS`` matching works. Here is the 10690explanation of how ``LICENSE_FLAGS`` matching works. Here is the
11014example: 10691example::
11015::
11016 10692
11017 LICENSE_FLAGS_WHITELIST = "commercial_gst-plugins-ugly" 10693 LICENSE_FLAGS_WHITELIST = "commercial_gst-plugins-ugly"
11018 10694
@@ -11020,8 +10696,7 @@ Likewise, to additionally enable the package built from the recipe
11020containing ``LICENSE_FLAGS = "license_${PN}_${PV}"``, and assuming that 10696containing ``LICENSE_FLAGS = "license_${PN}_${PV}"``, and assuming that
11021the actual recipe name was ``emgd_1.10.bb``, the following string would 10697the actual recipe name was ``emgd_1.10.bb``, the following string would
11022enable that package as well as the original ``gst-plugins-ugly`` 10698enable that package as well as the original ``gst-plugins-ugly``
11023package: 10699package::
11024::
11025 10700
11026 LICENSE_FLAGS_WHITELIST = "commercial_gst-plugins-ugly license_emgd_1.10" 10701 LICENSE_FLAGS_WHITELIST = "commercial_gst-plugins-ugly license_emgd_1.10"
11027 10702
@@ -11077,8 +10752,7 @@ matches any expanded ``LICENSE_FLAGS`` definition that starts with the
11077string "commercial" such as "commercial_foo" and "commercial_bar", which 10752string "commercial" such as "commercial_foo" and "commercial_bar", which
11078are the strings the build system automatically generates for 10753are the strings the build system automatically generates for
11079hypothetical recipes named "foo" and "bar" assuming those recipes simply 10754hypothetical recipes named "foo" and "bar" assuming those recipes simply
11080specify the following: 10755specify the following::
11081::
11082 10756
11083 LICENSE_FLAGS = "commercial" 10757 LICENSE_FLAGS = "commercial"
11084 10758
@@ -11116,8 +10790,7 @@ Other Variables Related to Commercial Licenses
11116 10790
11117Other helpful variables related to commercial license handling exist and 10791Other helpful variables related to commercial license handling exist and
11118are defined in the 10792are defined in the
11119``poky/meta/conf/distro/include/default-distrovars.inc`` file: 10793``poky/meta/conf/distro/include/default-distrovars.inc`` file::
11120::
11121 10794
11122 COMMERCIAL_AUDIO_PLUGINS ?= "" 10795 COMMERCIAL_AUDIO_PLUGINS ?= ""
11123 COMMERCIAL_VIDEO_PLUGINS ?= "" 10796 COMMERCIAL_VIDEO_PLUGINS ?= ""
@@ -11125,8 +10798,7 @@ are defined in the
11125If you 10798If you
11126want to enable these components, you can do so by making sure you have 10799want to enable these components, you can do so by making sure you have
11127statements similar to the following in your ``local.conf`` configuration 10800statements similar to the following in your ``local.conf`` configuration
11128file: 10801file::
11129::
11130 10802
11131 COMMERCIAL_AUDIO_PLUGINS = "gst-plugins-ugly-mad \ 10803 COMMERCIAL_AUDIO_PLUGINS = "gst-plugins-ugly-mad \
11132 gst-plugins-ugly-mpegaudioparse" 10804 gst-plugins-ugly-mpegaudioparse"
@@ -11138,8 +10810,7 @@ file:
11138Of course, you could also create a matching whitelist for those 10810Of course, you could also create a matching whitelist for those
11139components using the more general "commercial" in the whitelist, but 10811components using the more general "commercial" in the whitelist, but
11140that would also enable all the other packages with ``LICENSE_FLAGS`` 10812that would also enable all the other packages with ``LICENSE_FLAGS``
11141containing "commercial", which you may or may not want: 10813containing "commercial", which you may or may not want::
11142::
11143 10814
11144 LICENSE_FLAGS_WHITELIST = "commercial" 10815 LICENSE_FLAGS_WHITELIST = "commercial"
11145 10816
@@ -11219,8 +10890,7 @@ of compliance in mind.
11219One way of doing this (but certainly not the only way) is to release 10890One way of doing this (but certainly not the only way) is to release
11220just the source as a tarball. You can do this by adding the following to 10891just the source as a tarball. You can do this by adding the following to
11221the ``local.conf`` file found in the 10892the ``local.conf`` file found in the
11222:term:`Build Directory`: 10893:term:`Build Directory`::
11223::
11224 10894
11225 INHERIT += "archiver" 10895 INHERIT += "archiver"
11226 ARCHIVER_MODE[src] = "original" 10896 ARCHIVER_MODE[src] = "original"
@@ -11276,8 +10946,7 @@ One requirement that is often overlooked is inclusion of license text.
11276This requirement also needs to be dealt with prior to generating the 10946This requirement also needs to be dealt with prior to generating the
11277final image. Some licenses require the license text to accompany the 10947final image. Some licenses require the license text to accompany the
11278binary. You can achieve this by adding the following to your 10948binary. You can achieve this by adding the following to your
11279``local.conf`` file: 10949``local.conf`` file::
11280::
11281 10950
11282 COPY_LIC_MANIFEST = "1" 10951 COPY_LIC_MANIFEST = "1"
11283 COPY_LIC_DIRS = "1" 10952 COPY_LIC_DIRS = "1"
@@ -11344,8 +11013,7 @@ thing a development organization might want to consider for end-user
11344convenience is to modify ``meta-poky/conf/bblayers.conf.sample`` to 11013convenience is to modify ``meta-poky/conf/bblayers.conf.sample`` to
11345ensure that when the end user utilizes the released build system to 11014ensure that when the end user utilizes the released build system to
11346build an image, the development organization's layers are included in 11015build an image, the development organization's layers are included in
11347the ``bblayers.conf`` file automatically: 11016the ``bblayers.conf`` file automatically::
11348::
11349 11017
11350 # POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf 11018 # POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
11351 # changes incompatibly 11019 # changes incompatibly
@@ -11413,8 +11081,7 @@ variable. Using this variable also avoids QA errors when you use a
11413non-common, non-CLOSED license in a recipe. 11081non-common, non-CLOSED license in a recipe.
11414 11082
11415The following is an example that uses the ``LICENSE.Abilis.txt`` file as 11083The following is an example that uses the ``LICENSE.Abilis.txt`` file as
11416the license from the fetched source: 11084the license from the fetched source::
11417::
11418 11085
11419 NO_GENERIC_LICENSE[Firmware-Abilis] = "LICENSE.Abilis.txt" 11086 NO_GENERIC_LICENSE[Firmware-Abilis] = "LICENSE.Abilis.txt"
11420 11087
@@ -11457,8 +11124,7 @@ class by adding the following statement to the end of your
11457By default, the error reporting feature stores information in 11124By default, the error reporting feature stores information in
11458``${``\ :term:`LOG_DIR`\ ``}/error-report``. 11125``${``\ :term:`LOG_DIR`\ ``}/error-report``.
11459However, you can specify a directory to use by adding the following to 11126However, you can specify a directory to use by adding the following to
11460your ``local.conf`` file: 11127your ``local.conf`` file::
11461::
11462 11128
11463 ERR_REPORT_DIR = "path" 11129 ERR_REPORT_DIR = "path"
11464 11130
@@ -11467,8 +11133,7 @@ reporting causes the build process to collect the errors and store them
11467in a file as previously described. When the build system encounters an 11133in a file as previously described. When the build system encounters an
11468error, it includes a command as part of the console output. You can run 11134error, it includes a command as part of the console output. You can run
11469the command to send the error file to the server. For example, the 11135the command to send the error file to the server. For example, the
11470following command sends the errors to an upstream server: 11136following command sends the errors to an upstream server::
11471::
11472 11137
11473 $ send-error-report /home/brandusa/project/poky/build/tmp/log/error-report/error_report_201403141617.txt 11138 $ send-error-report /home/brandusa/project/poky/build/tmp/log/error-report/error_report_201403141617.txt
11474 11139
@@ -11476,8 +11141,7 @@ In the previous example, the errors are sent to a public database
11476available at https://errors.yoctoproject.org, which is used by the 11141available at https://errors.yoctoproject.org, which is used by the
11477entire community. If you specify a particular server, you can send the 11142entire community. If you specify a particular server, you can send the
11478errors to a different database. Use the following command for more 11143errors to a different database. Use the following command for more
11479information on available options: 11144information on available options::
11480::
11481 11145
11482 $ send-error-report --help 11146 $ send-error-report --help
11483 11147
@@ -11557,8 +11221,7 @@ Wayland with Kernel Mode Setting
11557(`KMS <https://wiki.archlinux.org/index.php/Kernel_Mode_Setting>`__) 11221(`KMS <https://wiki.archlinux.org/index.php/Kernel_Mode_Setting>`__)
11558support, include the "wayland" flag in the 11222support, include the "wayland" flag in the
11559:term:`DISTRO_FEATURES` 11223:term:`DISTRO_FEATURES`
11560statement in your ``local.conf`` file: 11224statement in your ``local.conf`` file::
11561::
11562 11225
11563 DISTRO_FEATURES_append = " wayland" 11226 DISTRO_FEATURES_append = " wayland"
11564 11227
@@ -11573,8 +11236,7 @@ Installing Wayland and Weston
11573To install the Wayland feature into an image, you must include the 11236To install the Wayland feature into an image, you must include the
11574following 11237following
11575:term:`CORE_IMAGE_EXTRA_INSTALL` 11238:term:`CORE_IMAGE_EXTRA_INSTALL`
11576statement in your ``local.conf`` file: 11239statement in your ``local.conf`` file::
11577::
11578 11240
11579 CORE_IMAGE_EXTRA_INSTALL += "wayland weston" 11241 CORE_IMAGE_EXTRA_INSTALL += "wayland weston"
11580 11242
@@ -11589,14 +11251,12 @@ Alternatively, you can run Weston through the command-line interpretor
11589(CLI), which is better suited for development work. To run Weston under 11251(CLI), which is better suited for development work. To run Weston under
11590the CLI, you need to do the following after your image is built: 11252the CLI, you need to do the following after your image is built:
11591 11253
115921. Run these commands to export ``XDG_RUNTIME_DIR``: 112541. Run these commands to export ``XDG_RUNTIME_DIR``::
11593 ::
11594 11255
11595 mkdir -p /tmp/$USER-weston 11256 mkdir -p /tmp/$USER-weston
11596 chmod 0700 /tmp/$USER-weston 11257 chmod 0700 /tmp/$USER-weston
11597 export XDG_RUNTIME_DIR=/tmp/$USER-weston 11258 export XDG_RUNTIME_DIR=/tmp/$USER-weston
11598 11259
115992. Launch Weston in the shell: 112602. Launch Weston in the shell::
11600 ::
11601 11261
11602 weston 11262 weston
diff --git a/documentation/dev-manual/qemu.rst b/documentation/dev-manual/qemu.rst
index 92799d6d25..2b6d3d76c7 100644
--- a/documentation/dev-manual/qemu.rst
+++ b/documentation/dev-manual/qemu.rst
@@ -55,16 +55,14 @@ available. Follow these general steps to run QEMU:
55 55
56 - If you cloned the ``poky`` repository or you downloaded and 56 - If you cloned the ``poky`` repository or you downloaded and
57 unpacked a Yocto Project release tarball, you can source the build 57 unpacked a Yocto Project release tarball, you can source the build
58 environment script (i.e. :ref:`structure-core-script`): 58 environment script (i.e. :ref:`structure-core-script`)::
59 ::
60 59
61 $ cd poky 60 $ cd poky
62 $ source oe-init-build-env 61 $ source oe-init-build-env
63 62
64 - If you installed a cross-toolchain, you can run the script that 63 - If you installed a cross-toolchain, you can run the script that
65 initializes the toolchain. For example, the following commands run 64 initializes the toolchain. For example, the following commands run
66 the initialization script from the default ``poky_sdk`` directory: 65 the initialization script from the default ``poky_sdk`` directory::
67 ::
68 66
69 . poky_sdk/environment-setup-core2-64-poky-linux 67 . poky_sdk/environment-setup-core2-64-poky-linux
70 68
@@ -86,8 +84,7 @@ available. Follow these general steps to run QEMU:
86 Extensible Software Development Kit (eSDK) manual for information on 84 Extensible Software Development Kit (eSDK) manual for information on
87 how to extract a root filesystem. 85 how to extract a root filesystem.
88 86
894. *Run QEMU:* The basic ``runqemu`` command syntax is as follows: 874. *Run QEMU:* The basic ``runqemu`` command syntax is as follows::
90 ::
91 88
92 $ runqemu [option ] [...] 89 $ runqemu [option ] [...]
93 90
@@ -222,18 +219,15 @@ using an NFS server.
222 Should you need to start, stop, or restart the NFS share, you can use 219 Should you need to start, stop, or restart the NFS share, you can use
223 the following commands: 220 the following commands:
224 221
225 - The following command starts the NFS share: 222 - The following command starts the NFS share::
226 ::
227 223
228 runqemu-export-rootfs start file-system-location 224 runqemu-export-rootfs start file-system-location
229 225
230 - The following command stops the NFS share: 226 - The following command stops the NFS share::
231 ::
232 227
233 runqemu-export-rootfs stop file-system-location 228 runqemu-export-rootfs stop file-system-location
234 229
235 - The following command restarts the NFS share: 230 - The following command restarts the NFS share::
236 ::
237 231
238 runqemu-export-rootfs restart file-system-location 232 runqemu-export-rootfs restart file-system-location
239 233
@@ -313,8 +307,7 @@ present, the toolchain is also automatically used.
313QEMU Command-Line Syntax 307QEMU Command-Line Syntax
314======================== 308========================
315 309
316The basic ``runqemu`` command syntax is as follows: 310The basic ``runqemu`` command syntax is as follows::
317::
318 311
319 $ runqemu [option ] [...] 312 $ runqemu [option ] [...]
320 313
@@ -325,8 +318,7 @@ timestamp when it needs to look for an image. Minimally, through the use
325of options, you must provide either a machine name, a virtual machine 318of options, you must provide either a machine name, a virtual machine
326image (``*wic.vmdk``), or a kernel image (``*.bin``). 319image (``*wic.vmdk``), or a kernel image (``*.bin``).
327 320
328Following is the command-line help output for the ``runqemu`` command: 321Following is the command-line help output for the ``runqemu`` command::
329::
330 322
331 $ runqemu --help 323 $ runqemu --help
332 324
diff --git a/documentation/dev-manual/start.rst b/documentation/dev-manual/start.rst
index 84abf4c51f..f8c8637d47 100644
--- a/documentation/dev-manual/start.rst
+++ b/documentation/dev-manual/start.rst
@@ -486,8 +486,7 @@ your Yocto Project build host:
486 distribution. 486 distribution.
487 487
4883. *Check your Linux distribution is using WSLv2:* Open a Windows 4883. *Check your Linux distribution is using WSLv2:* Open a Windows
489 PowerShell and run: 489 PowerShell and run::
490 ::
491 490
492 C:\WINDOWS\system32> wsl -l -v 491 C:\WINDOWS\system32> wsl -l -v
493 NAME STATE VERSION 492 NAME STATE VERSION
@@ -514,8 +513,7 @@ your Yocto Project build host:
514 513
515 1. *Find the location of your VHDX file:* First you need to find the 514 1. *Find the location of your VHDX file:* First you need to find the
516 distro app package directory, to achieve this open a Windows 515 distro app package directory, to achieve this open a Windows
517 Powershell as Administrator and run: 516 Powershell as Administrator and run::
518 ::
519 517
520 C:\WINDOWS\system32> Get-AppxPackage -Name "*Ubuntu*" | Select PackageFamilyName 518 C:\WINDOWS\system32> Get-AppxPackage -Name "*Ubuntu*" | Select PackageFamilyName
521 PackageFamilyName 519 PackageFamilyName
@@ -525,8 +523,7 @@ your Yocto Project build host:
525 523
526 You should now 524 You should now
527 replace the PackageFamilyName and your user on the following path 525 replace the PackageFamilyName and your user on the following path
528 to find your VHDX file: 526 to find your VHDX file::
529 ::
530 527
531 ls C:\Users\myuser\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79abcdefgh\LocalState\ 528 ls C:\Users\myuser\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79abcdefgh\LocalState\
532 Mode LastWriteTime Length Name 529 Mode LastWriteTime Length Name
@@ -536,8 +533,7 @@ your Yocto Project build host:
536 ``C:\Users\myuser\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79abcdefgh\LocalState\ext4.vhdx`` 533 ``C:\Users\myuser\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79abcdefgh\LocalState\ext4.vhdx``
537 534
538 2. *Optimize your VHDX file:* Open a Windows Powershell as 535 2. *Optimize your VHDX file:* Open a Windows Powershell as
539 Administrator to optimize your VHDX file, shutting down WSL first: 536 Administrator to optimize your VHDX file, shutting down WSL first::
540 ::
541 537
542 C:\WINDOWS\system32> wsl --shutdown 538 C:\WINDOWS\system32> wsl --shutdown
543 C:\WINDOWS\system32> optimize-vhd -Path C:\Users\myuser\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79abcdefgh\LocalState\ext4.vhdx -Mode full 539 C:\WINDOWS\system32> optimize-vhd -Path C:\Users\myuser\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79abcdefgh\LocalState\ext4.vhdx -Mode full
@@ -741,8 +737,7 @@ Follow these steps to create a local version of the upstream
741 737
7422. *Clone the Repository:* The following example command clones the 7382. *Clone the Repository:* The following example command clones the
743 ``poky`` repository and uses the default name "poky" for your local 739 ``poky`` repository and uses the default name "poky" for your local
744 repository: 740 repository::
745 ::
746 741
747 $ git clone git://git.yoctoproject.org/poky 742 $ git clone git://git.yoctoproject.org/poky
748 Cloning into 'poky'... 743 Cloning into 'poky'...
@@ -764,8 +759,7 @@ Follow these steps to create a local version of the upstream
764 759
765 Once the local repository is created, you can change to that 760 Once the local repository is created, you can change to that
766 directory and check its status. Here, the single "master" branch 761 directory and check its status. Here, the single "master" branch
767 exists on your system and by default, it is checked out: 762 exists on your system and by default, it is checked out::
768 ::
769 763
770 $ cd poky 764 $ cd poky
771 $ git status 765 $ git status
@@ -826,8 +820,7 @@ and then specifically check out that development branch.
826 820
8273. *Check out the Branch:* Check out the development branch in which you 8213. *Check out the Branch:* Check out the development branch in which you
828 want to work. For example, to access the files for the Yocto Project 822 want to work. For example, to access the files for the Yocto Project
829 &DISTRO; Release (&DISTRO_NAME;), use the following command: 823 &DISTRO; Release (&DISTRO_NAME;), use the following command::
830 ::
831 824
832 $ git checkout -b &DISTRO_NAME_NO_CAP; origin/&DISTRO_NAME_NO_CAP; 825 $ git checkout -b &DISTRO_NAME_NO_CAP; origin/&DISTRO_NAME_NO_CAP;
833 Branch &DISTRO_NAME_NO_CAP; set up to track remote branch &DISTRO_NAME_NO_CAP; from origin. 826 Branch &DISTRO_NAME_NO_CAP; set up to track remote branch &DISTRO_NAME_NO_CAP; from origin.
@@ -839,8 +832,7 @@ and then specifically check out that development branch.
839 832
840 The following command displays the branches that are now part of your 833 The following command displays the branches that are now part of your
841 local poky repository. The asterisk character indicates the branch 834 local poky repository. The asterisk character indicates the branch
842 that is currently checked out for work: 835 that is currently checked out for work::
843 ::
844 836
845 $ git branch 837 $ git branch
846 master 838 master
@@ -867,14 +859,12 @@ similar to checking out by branch name except you use tag names.
867 section. 859 section.
868 860
8692. *Fetch the Tag Names:* To checkout the branch based on a tag name, 8612. *Fetch the Tag Names:* To checkout the branch based on a tag name,
870 you need to fetch the upstream tags into your local repository: 862 you need to fetch the upstream tags into your local repository::
871 ::
872 863
873 $ git fetch --tags 864 $ git fetch --tags
874 $ 865 $
875 866
8763. *List the Tag Names:* You can list the tag names now: 8673. *List the Tag Names:* You can list the tag names now::
877 ::
878 868
879 $ git tag 869 $ git tag
880 1.1_M1.final 870 1.1_M1.final
diff --git a/documentation/kernel-dev/advanced.rst b/documentation/kernel-dev/advanced.rst
index fb6dfca85f..b0d03851b3 100644
--- a/documentation/kernel-dev/advanced.rst
+++ b/documentation/kernel-dev/advanced.rst
@@ -67,8 +67,7 @@ to indicate the branch.
67.. note:: 67.. note::
68 68
69 You can use the ``KBRANCH`` value to define an alternate branch typically 69 You can use the ``KBRANCH`` value to define an alternate branch typically
70 with a machine override as shown here from the ``meta-yocto-bsp`` layer: 70 with a machine override as shown here from the ``meta-yocto-bsp`` layer::
71 ::
72 71
73 KBRANCH_edgerouter = "standard/edgerouter" 72 KBRANCH_edgerouter = "standard/edgerouter"
74 73
@@ -106,15 +105,13 @@ You can use the
106variable to include features (configuration fragments, patches, or both) 105variable to include features (configuration fragments, patches, or both)
107that are not already included by the ``KMACHINE`` and 106that are not already included by the ``KMACHINE`` and
108``LINUX_KERNEL_TYPE`` variable combination. For example, to include a 107``LINUX_KERNEL_TYPE`` variable combination. For example, to include a
109feature specified as "features/netfilter/netfilter.scc", specify: 108feature specified as "features/netfilter/netfilter.scc", specify::
110::
111 109
112 KERNEL_FEATURES += "features/netfilter/netfilter.scc" 110 KERNEL_FEATURES += "features/netfilter/netfilter.scc"
113 111
114To include a 112To include a
115feature called "cfg/sound.scc" just for the ``qemux86`` machine, 113feature called "cfg/sound.scc" just for the ``qemux86`` machine,
116specify: 114specify::
117::
118 115
119 KERNEL_FEATURES_append_qemux86 = " cfg/sound.scc" 116 KERNEL_FEATURES_append_qemux86 = " cfg/sound.scc"
120 117
@@ -157,8 +154,7 @@ types to form the final description of what will be assembled and built.
157While the kernel Metadata syntax does not enforce any logical separation 154While the kernel Metadata syntax does not enforce any logical separation
158of configuration fragments, patches, features or kernel types, best 155of configuration fragments, patches, features or kernel types, best
159practices dictate a logical separation of these types of Metadata. The 156practices dictate a logical separation of these types of Metadata. The
160following Metadata file hierarchy is recommended: 157following Metadata file hierarchy is recommended::
161::
162 158
163 base/ 159 base/
164 bsp/ 160 bsp/
@@ -222,8 +218,7 @@ used with the ``linux-yocto-4.12`` kernel as defined outside of the
222recipe space (i.e. ``yocto-kernel-cache``). This Metadata consists of 218recipe space (i.e. ``yocto-kernel-cache``). This Metadata consists of
223two files: ``smp.scc`` and ``smp.cfg``. You can find these files in the 219two files: ``smp.scc`` and ``smp.cfg``. You can find these files in the
224``cfg`` directory of the ``yocto-4.12`` branch in the 220``cfg`` directory of the ``yocto-4.12`` branch in the
225``yocto-kernel-cache`` Git repository: 221``yocto-kernel-cache`` Git repository::
226::
227 222
228 cfg/smp.scc: 223 cfg/smp.scc:
229 define KFEATURE_DESCRIPTION "Enable SMP for 32 bit builds" 224 define KFEATURE_DESCRIPTION "Enable SMP for 32 bit builds"
@@ -265,8 +260,7 @@ non-hardware fragment.
265 260
266As described in the 261As described in the
267":ref:`kernel-dev/common:validating configuration`" section, you can 262":ref:`kernel-dev/common:validating configuration`" section, you can
268use the following BitBake command to audit your configuration: 263use the following BitBake command to audit your configuration::
269::
270 264
271 $ bitbake linux-yocto -c kernel_configcheck -f 265 $ bitbake linux-yocto -c kernel_configcheck -f
272 266
@@ -287,8 +281,7 @@ in the ``patches/build`` directory of the ``yocto-4.12`` branch in the
287``yocto-kernel-cache`` Git repository. 281``yocto-kernel-cache`` Git repository.
288 282
289The following listings show the ``build.scc`` file and part of the 283The following listings show the ``build.scc`` file and part of the
290``modpost-mask-trivial-warnings.patch`` file: 284``modpost-mask-trivial-warnings.patch`` file::
291::
292 285
293 patches/build/build.scc: 286 patches/build/build.scc:
294 patch arm-serialize-build-targets.patch 287 patch arm-serialize-build-targets.patch
@@ -334,8 +327,7 @@ Features
334 327
335Features are complex kernel Metadata types that consist of configuration 328Features are complex kernel Metadata types that consist of configuration
336fragments, patches, and possibly other feature description files. As an 329fragments, patches, and possibly other feature description files. As an
337example, consider the following generic listing: 330example, consider the following generic listing::
338::
339 331
340 features/myfeature.scc 332 features/myfeature.scc
341 define KFEATURE_DESCRIPTION "Enable myfeature" 333 define KFEATURE_DESCRIPTION "Enable myfeature"
@@ -371,15 +363,13 @@ the ``linux-yocto_4.12.bb`` kernel recipe found in
371``poky/meta/recipes-kernel/linux``, a 363``poky/meta/recipes-kernel/linux``, a
372:ref:`require <bitbake:bitbake-user-manual/bitbake-user-manual-metadata:\`\`require\`\` directive>` directive 364:ref:`require <bitbake:bitbake-user-manual/bitbake-user-manual-metadata:\`\`require\`\` directive>` directive
373includes the ``poky/meta/recipes-kernel/linux/linux-yocto.inc`` file, 365includes the ``poky/meta/recipes-kernel/linux/linux-yocto.inc`` file,
374which has the following statement that defines the default kernel type: 366which has the following statement that defines the default kernel type::
375::
376 367
377 LINUX_KERNEL_TYPE ??= "standard" 368 LINUX_KERNEL_TYPE ??= "standard"
378 369
379Another example would be the real-time kernel (i.e. 370Another example would be the real-time kernel (i.e.
380``linux-yocto-rt_4.12.bb``). This kernel recipe directly sets the kernel 371``linux-yocto-rt_4.12.bb``). This kernel recipe directly sets the kernel
381type as follows: 372type as follows::
382::
383 373
384 LINUX_KERNEL_TYPE = "preempt-rt" 374 LINUX_KERNEL_TYPE = "preempt-rt"
385 375
@@ -412,8 +402,7 @@ for Linux Yocto kernels:
412For any given kernel type, the Metadata is defined by the ``.scc`` (e.g. 402For any given kernel type, the Metadata is defined by the ``.scc`` (e.g.
413``standard.scc``). Here is a partial listing for the ``standard.scc`` 403``standard.scc``). Here is a partial listing for the ``standard.scc``
414file, which is found in the ``ktypes/standard`` directory of the 404file, which is found in the ``ktypes/standard`` directory of the
415``yocto-kernel-cache`` Git repository: 405``yocto-kernel-cache`` Git repository::
416::
417 406
418 # Include this kernel type fragment to get the standard features and 407 # Include this kernel type fragment to get the standard features and
419 # configuration values. 408 # configuration values.
@@ -482,15 +471,13 @@ Description Overview
482For simplicity, consider the following root BSP layer description files 471For simplicity, consider the following root BSP layer description files
483for the BeagleBone board. These files employ both a structure and naming 472for the BeagleBone board. These files employ both a structure and naming
484convention for consistency. The naming convention for the file is as 473convention for consistency. The naming convention for the file is as
485follows: 474follows::
486::
487 475
488 bsp_root_name-kernel_type.scc 476 bsp_root_name-kernel_type.scc
489 477
490Here are some example root layer 478Here are some example root layer
491BSP filenames for the BeagleBone Board BSP, which is supported by the 479BSP filenames for the BeagleBone Board BSP, which is supported by the
492Yocto Project: 480Yocto Project::
493::
494 481
495 beaglebone-standard.scc 482 beaglebone-standard.scc
496 beaglebone-preempt-rt.scc 483 beaglebone-preempt-rt.scc
@@ -498,8 +485,7 @@ Yocto Project:
498Each file uses the root name (i.e "beaglebone") BSP name followed by the 485Each file uses the root name (i.e "beaglebone") BSP name followed by the
499kernel type. 486kernel type.
500 487
501Examine the ``beaglebone-standard.scc`` file: 488Examine the ``beaglebone-standard.scc`` file::
502::
503 489
504 define KMACHINE beaglebone 490 define KMACHINE beaglebone
505 define KTYPE standard 491 define KTYPE standard
@@ -533,8 +519,7 @@ description file match.
533 519
534To separate your kernel policy from your hardware configuration, you 520To separate your kernel policy from your hardware configuration, you
535include a kernel type (``ktype``), such as "standard". In the previous 521include a kernel type (``ktype``), such as "standard". In the previous
536example, this is done using the following: 522example, this is done using the following::
537::
538 523
539 include ktypes/standard/standard.scc 524 include ktypes/standard/standard.scc
540 525
@@ -544,13 +529,11 @@ policy. See the ":ref:`kernel-dev/advanced:kernel types`" section for more
544information. 529information.
545 530
546To aggregate common configurations and features specific to the kernel 531To aggregate common configurations and features specific to the kernel
547for `mybsp`, use the following: 532for `mybsp`, use the following::
548::
549 533
550 include mybsp.scc 534 include mybsp.scc
551 535
552You can see that in the BeagleBone example with the following: 536You can see that in the BeagleBone example with the following::
553::
554 537
555 include beaglebone.scc 538 include beaglebone.scc
556 539
@@ -558,15 +541,13 @@ For information on how to break a complete ``.config`` file into the various
558configuration fragments, see the ":ref:`kernel-dev/common:creating configuration fragments`" section. 541configuration fragments, see the ":ref:`kernel-dev/common:creating configuration fragments`" section.
559 542
560Finally, if you have any configurations specific to the hardware that 543Finally, if you have any configurations specific to the hardware that
561are not in a ``*.scc`` file, you can include them as follows: 544are not in a ``*.scc`` file, you can include them as follows::
562::
563 545
564 kconf hardware mybsp-extra.cfg 546 kconf hardware mybsp-extra.cfg
565 547
566The BeagleBone example does not include these 548The BeagleBone example does not include these
567types of configurations. However, the Malta 32-bit board does 549types of configurations. However, the Malta 32-bit board does
568("mti-malta32"). Here is the ``mti-malta32-le-standard.scc`` file: 550("mti-malta32"). Here is the ``mti-malta32-le-standard.scc`` file::
569::
570 551
571 define KMACHINE mti-malta32-le 552 define KMACHINE mti-malta32-le
572 define KMACHINE qemumipsel 553 define KMACHINE qemumipsel
@@ -623,8 +604,7 @@ found on the machine. This ``minnow.scc`` description file is then
623included in each of the three "minnow" description files for the 604included in each of the three "minnow" description files for the
624supported kernel types (i.e. "standard", "preempt-rt", and "tiny"). 605supported kernel types (i.e. "standard", "preempt-rt", and "tiny").
625Consider the "minnow" description for the "standard" kernel type (i.e. 606Consider the "minnow" description for the "standard" kernel type (i.e.
626``minnow-standard.scc``): 607``minnow-standard.scc``)::
627::
628 608
629 define KMACHINE minnow 609 define KMACHINE minnow
630 define KTYPE standard 610 define KTYPE standard
@@ -656,8 +636,7 @@ that defines all enabled hardware for the BSP that is common to all
656kernel types. Using this command significantly reduces duplication. 636kernel types. Using this command significantly reduces duplication.
657 637
658Now consider the "minnow" description for the "tiny" kernel type (i.e. 638Now consider the "minnow" description for the "tiny" kernel type (i.e.
659``minnow-tiny.scc``): 639``minnow-tiny.scc``)::
660::
661 640
662 define KMACHINE minnow 641 define KMACHINE minnow
663 define KTYPE tiny 642 define KTYPE tiny
@@ -720,8 +699,7 @@ See the ":ref:`kernel-dev/common:modifying an existing recipe`"
720section for more information. 699section for more information.
721 700
722Here is an example that shows a trivial tree of kernel Metadata stored 701Here is an example that shows a trivial tree of kernel Metadata stored
723in recipe-space within a BSP layer: 702in recipe-space within a BSP layer::
724::
725 703
726 meta-my_bsp_layer/ 704 meta-my_bsp_layer/
727 `-- recipes-kernel 705 `-- recipes-kernel
@@ -744,8 +722,7 @@ value when changing the content of files not explicitly listed in the
744 722
745If the BSP description is in recipe space, you cannot simply list the 723If the BSP description is in recipe space, you cannot simply list the
746``*.scc`` in the ``SRC_URI`` statement. You need to use the following 724``*.scc`` in the ``SRC_URI`` statement. You need to use the following
747form from your kernel append file: 725form from your kernel append file::
748::
749 726
750 SRC_URI_append_myplatform = " \ 727 SRC_URI_append_myplatform = " \
751 file://myplatform;type=kmeta;destsuffix=myplatform \ 728 file://myplatform;type=kmeta;destsuffix=myplatform \
@@ -759,8 +736,7 @@ reside in a separate repository. The OpenEmbedded build system adds the
759Metadata to the build as a "type=kmeta" repository through the 736Metadata to the build as a "type=kmeta" repository through the
760:term:`SRC_URI` variable. As an 737:term:`SRC_URI` variable. As an
761example, consider the following ``SRC_URI`` statement from the 738example, consider the following ``SRC_URI`` statement from the
762``linux-yocto_4.12.bb`` kernel recipe: 739``linux-yocto_4.12.bb`` kernel recipe::
763::
764 740
765 SRC_URI = "git://git.yoctoproject.org/linux-yocto-4.12.git;name=machine;branch=${KBRANCH}; \ 741 SRC_URI = "git://git.yoctoproject.org/linux-yocto-4.12.git;name=machine;branch=${KBRANCH}; \
766 git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.12;destsuffix=${KMETA}" 742 git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.12;destsuffix=${KMETA}"
@@ -844,14 +820,12 @@ patches into a feature.
844 820
845Once you have a new branch, you can set up your kernel Metadata to use 821Once you have a new branch, you can set up your kernel Metadata to use
846the branch a couple different ways. In the recipe, you can specify the 822the branch a couple different ways. In the recipe, you can specify the
847new branch as the ``KBRANCH`` to use for the board as follows: 823new branch as the ``KBRANCH`` to use for the board as follows::
848::
849 824
850 KBRANCH = "mynewbranch" 825 KBRANCH = "mynewbranch"
851 826
852Another method is to use the ``branch`` command in the BSP 827Another method is to use the ``branch`` command in the BSP
853description: 828description::
854::
855 829
856 mybsp.scc: 830 mybsp.scc:
857 define KMACHINE mybsp 831 define KMACHINE mybsp
@@ -865,15 +839,13 @@ description:
865 839
866If you find yourself with numerous branches, you might consider using a 840If you find yourself with numerous branches, you might consider using a
867hierarchical branching system similar to what the Yocto Linux Kernel Git 841hierarchical branching system similar to what the Yocto Linux Kernel Git
868repositories use: 842repositories use::
869::
870 843
871 common/kernel_type/machine 844 common/kernel_type/machine
872 845
873If you had two kernel types, "standard" and "small" for instance, three 846If you had two kernel types, "standard" and "small" for instance, three
874machines, and common as ``mydir``, the branches in your Git repository 847machines, and common as ``mydir``, the branches in your Git repository
875might look like this: 848might look like this::
876::
877 849
878 mydir/base 850 mydir/base
879 mydir/standard/base 851 mydir/standard/base
@@ -905,8 +877,7 @@ that have to be regularly updated. The Yocto Project Linux kernel tools
905provide for this with the ``git merge`` command. 877provide for this with the ``git merge`` command.
906 878
907To merge a feature branch into a BSP, insert the ``git merge`` command 879To merge a feature branch into a BSP, insert the ``git merge`` command
908after any ``branch`` commands: 880after any ``branch`` commands::
909::
910 881
911 mybsp.scc: 882 mybsp.scc:
912 define KMACHINE mybsp 883 define KMACHINE mybsp
diff --git a/documentation/kernel-dev/common.rst b/documentation/kernel-dev/common.rst
index 56217b9d38..3f35d8412f 100644
--- a/documentation/kernel-dev/common.rst
+++ b/documentation/kernel-dev/common.rst
@@ -54,8 +54,7 @@ section:
54 54
551. *Initialize the BitBake Environment:* Before building an extensible 551. *Initialize the BitBake Environment:* Before building an extensible
56 SDK, you need to initialize the BitBake build environment by sourcing 56 SDK, you need to initialize the BitBake build environment by sourcing
57 the build environment script (i.e. :ref:`structure-core-script`): 57 the build environment script (i.e. :ref:`structure-core-script`)::
58 ::
59 58
60 $ cd poky 59 $ cd poky
61 $ source oe-init-build-env 60 $ source oe-init-build-env
@@ -83,16 +82,14 @@ section:
83 82
84 In this example we wish to build for qemux86 so we must set the 83 In this example we wish to build for qemux86 so we must set the
85 ``MACHINE`` variable to "qemux86" and also add the "kernel-modules". 84 ``MACHINE`` variable to "qemux86" and also add the "kernel-modules".
86 As described we do this by appending to ``conf/local.conf``: 85 As described we do this by appending to ``conf/local.conf``::
87 ::
88 86
89 MACHINE = "qemux86" 87 MACHINE = "qemux86"
90 MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-modules" 88 MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-modules"
91 89
923. *Create a Layer for Patches:* You need to create a layer to hold 903. *Create a Layer for Patches:* You need to create a layer to hold
93 patches created for the kernel image. You can use the 91 patches created for the kernel image. You can use the
94 ``bitbake-layers create-layer`` command as follows: 92 ``bitbake-layers create-layer`` command as follows::
95 ::
96 93
97 $ cd poky/build 94 $ cd poky/build
98 $ bitbake-layers create-layer ../../meta-mylayer 95 $ bitbake-layers create-layer ../../meta-mylayer
@@ -116,8 +113,7 @@ section:
1164. *Inform the BitBake Build Environment About Your Layer:* As directed 1134. *Inform the BitBake Build Environment About Your Layer:* As directed
117 when you created your layer, you need to add the layer to the 114 when you created your layer, you need to add the layer to the
118 :term:`BBLAYERS` variable in the 115 :term:`BBLAYERS` variable in the
119 ``bblayers.conf`` file as follows: 116 ``bblayers.conf`` file as follows::
120 ::
121 117
122 $ cd poky/build 118 $ cd poky/build
123 $ bitbake-layers add-layer ../../meta-mylayer 119 $ bitbake-layers add-layer ../../meta-mylayer
@@ -125,16 +121,14 @@ section:
125 $ 121 $
126 122
1275. *Build the Extensible SDK:* Use BitBake to build the extensible SDK 1235. *Build the Extensible SDK:* Use BitBake to build the extensible SDK
128 specifically for use with images to be run using QEMU: 124 specifically for use with images to be run using QEMU::
129 ::
130 125
131 $ cd poky/build 126 $ cd poky/build
132 $ bitbake core-image-minimal -c populate_sdk_ext 127 $ bitbake core-image-minimal -c populate_sdk_ext
133 128
134 Once 129 Once
135 the build finishes, you can find the SDK installer file (i.e. 130 the build finishes, you can find the SDK installer file (i.e.
136 ``*.sh`` file) in the following directory: 131 ``*.sh`` file) in the following directory::
137 ::
138 132
139 poky/build/tmp/deploy/sdk 133 poky/build/tmp/deploy/sdk
140 134
@@ -143,8 +137,7 @@ section:
143 137
1446. *Install the Extensible SDK:* Use the following command to install 1386. *Install the Extensible SDK:* Use the following command to install
145 the SDK. For this example, install the SDK in the default 139 the SDK. For this example, install the SDK in the default
146 ``poky_sdk`` directory: 140 ``poky_sdk`` directory::
147 ::
148 141
149 $ cd poky/build/tmp/deploy/sdk 142 $ cd poky/build/tmp/deploy/sdk
150 $ ./poky-glibc-x86_64-core-image-minimal-i586-toolchain-ext-&DISTRO;.sh 143 $ ./poky-glibc-x86_64-core-image-minimal-i586-toolchain-ext-&DISTRO;.sh
@@ -172,8 +165,7 @@ section:
172 BitBake shell used to build the installer. 165 BitBake shell used to build the installer.
173 166
174 After opening a new shell, run the SDK environment setup script as 167 After opening a new shell, run the SDK environment setup script as
175 directed by the output from installing the SDK: 168 directed by the output from installing the SDK::
176 ::
177 169
178 $ source poky_sdk/environment-setup-i586-poky-linux 170 $ source poky_sdk/environment-setup-i586-poky-linux
179 "SDK environment now set up; additionally you may now run devtool to perform development tasks. 171 "SDK environment now set up; additionally you may now run devtool to perform development tasks.
@@ -186,8 +178,7 @@ section:
186 178
1878. *Build the Clean Image:* The final step in preparing to work on the 1798. *Build the Clean Image:* The final step in preparing to work on the
188 kernel is to build an initial image using ``devtool`` in the new 180 kernel is to build an initial image using ``devtool`` in the new
189 terminal you just set up and initialized for SDK work: 181 terminal you just set up and initialized for SDK work::
190 ::
191 182
192 $ devtool build-image 183 $ devtool build-image
193 Parsing recipes: 100% |##########################################| Time: 0:00:05 184 Parsing recipes: 100% |##########################################| Time: 0:00:05
@@ -269,16 +260,14 @@ section:
269 260
270 In this example we wish to build for qemux86 so we must set the 261 In this example we wish to build for qemux86 so we must set the
271 ``MACHINE`` variable to "qemux86" and also add the "kernel-modules". 262 ``MACHINE`` variable to "qemux86" and also add the "kernel-modules".
272 As described we do this by appending to ``conf/local.conf``: 263 As described we do this by appending to ``conf/local.conf``::
273 ::
274 264
275 MACHINE = "qemux86" 265 MACHINE = "qemux86"
276 MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-modules" 266 MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-modules"
277 267
2783. *Create a Layer for Patches:* You need to create a layer to hold 2683. *Create a Layer for Patches:* You need to create a layer to hold
279 patches created for the kernel image. You can use the 269 patches created for the kernel image. You can use the
280 ``bitbake-layers create-layer`` command as follows: 270 ``bitbake-layers create-layer`` command as follows::
281 ::
282 271
283 $ cd poky/build 272 $ cd poky/build
284 $ bitbake-layers create-layer ../../meta-mylayer 273 $ bitbake-layers create-layer ../../meta-mylayer
@@ -301,8 +290,7 @@ section:
3014. *Inform the BitBake Build Environment About Your Layer:* As directed 2904. *Inform the BitBake Build Environment About Your Layer:* As directed
302 when you created your layer, you need to add the layer to the 291 when you created your layer, you need to add the layer to the
303 :term:`BBLAYERS` variable in the 292 :term:`BBLAYERS` variable in the
304 ``bblayers.conf`` file as follows: 293 ``bblayers.conf`` file as follows::
305 ::
306 294
307 $ cd poky/build 295 $ cd poky/build
308 $ bitbake-layers add-layer ../../meta-mylayer 296 $ bitbake-layers add-layer ../../meta-mylayer
@@ -350,8 +338,7 @@ section:
350 the ``yocto-4.12`` branch. 338 the ``yocto-4.12`` branch.
351 339
352 The following commands show how to create a local copy of the 340 The following commands show how to create a local copy of the
353 ``yocto-kernel-cache`` and be in the ``yocto-4.12`` branch: 341 ``yocto-kernel-cache`` and be in the ``yocto-4.12`` branch::
354 ::
355 342
356 $ cd ~ 343 $ cd ~
357 $ git clone git://git.yoctoproject.org/yocto-kernel-cache --branch yocto-4.12 344 $ git clone git://git.yoctoproject.org/yocto-kernel-cache --branch yocto-4.12
@@ -394,8 +381,7 @@ following section describes how to create a layer without the aid of
394tools. These steps assume creation of a layer named ``mylayer`` in your 381tools. These steps assume creation of a layer named ``mylayer`` in your
395home directory: 382home directory:
396 383
3971. *Create Structure*: Create the layer's structure: 3841. *Create Structure*: Create the layer's structure::
398 ::
399 385
400 $ mkdir meta-mylayer 386 $ mkdir meta-mylayer
401 $ mkdir meta-mylayer/conf 387 $ mkdir meta-mylayer/conf
@@ -409,8 +395,7 @@ home directory:
409 395
4102. *Create the Layer Configuration File*: Move to the 3962. *Create the Layer Configuration File*: Move to the
411 ``meta-mylayer/conf`` directory and create the ``layer.conf`` file as 397 ``meta-mylayer/conf`` directory and create the ``layer.conf`` file as
412 follows: 398 follows::
413 ::
414 399
415 # We have a conf and classes directory, add to BBPATH 400 # We have a conf and classes directory, add to BBPATH
416 BBPATH .= ":${LAYERDIR}" 401 BBPATH .= ":${LAYERDIR}"
@@ -429,8 +414,7 @@ home directory:
429 ``meta-mylayer/recipes-kernel/linux`` directory and create the 414 ``meta-mylayer/recipes-kernel/linux`` directory and create the
430 kernel's append file. This example uses the ``linux-yocto-4.12`` 415 kernel's append file. This example uses the ``linux-yocto-4.12``
431 kernel. Thus, the name of the append file is 416 kernel. Thus, the name of the append file is
432 ``linux-yocto_4.12.bbappend``: 417 ``linux-yocto_4.12.bbappend``::
433 ::
434 418
435 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" 419 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
436 420
@@ -483,8 +467,7 @@ The append file should initially extend the
483:term:`FILESPATH` search path by 467:term:`FILESPATH` search path by
484prepending the directory that contains your files to the 468prepending the directory that contains your files to the
485:term:`FILESEXTRAPATHS` 469:term:`FILESEXTRAPATHS`
486variable as follows: 470variable as follows::
487::
488 471
489 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" 472 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
490 473
@@ -492,8 +475,7 @@ The path ``${``\ :term:`THISDIR`\ ``}/${``\ :term:`PN`\ ``}``
492expands to "linux-yocto" in the current directory for this example. If 475expands to "linux-yocto" in the current directory for this example. If
493you add any new files that modify the kernel recipe and you have 476you add any new files that modify the kernel recipe and you have
494extended ``FILESPATH`` as described above, you must place the files in 477extended ``FILESPATH`` as described above, you must place the files in
495your layer in the following area: 478your layer in the following area::
496::
497 479
498 your-layer/recipes-kernel/linux/linux-yocto/ 480 your-layer/recipes-kernel/linux/linux-yocto/
499 481
@@ -582,8 +564,7 @@ To group related configurations into multiple files, you perform a
582similar procedure. Here is an example that groups separate 564similar procedure. Here is an example that groups separate
583configurations specifically for Ethernet and graphics into their own 565configurations specifically for Ethernet and graphics into their own
584files and adds the configurations by using a ``SRC_URI`` statement like 566files and adds the configurations by using a ``SRC_URI`` statement like
585the following in your append file: 567the following in your append file::
586::
587 568
588 SRC_URI += "file://myconfig.cfg \ 569 SRC_URI += "file://myconfig.cfg \
589 file://eth.cfg \ 570 file://eth.cfg \
@@ -627,8 +608,7 @@ reference them in :term:`SRC_URI`
627statements. 608statements.
628 609
629For example, you can apply a three-patch series by adding the following 610For example, you can apply a three-patch series by adding the following
630lines to your linux-yocto ``.bbappend`` file in your layer: 611lines to your linux-yocto ``.bbappend`` file in your layer::
631::
632 612
633 SRC_URI += "file://0001-first-change.patch" 613 SRC_URI += "file://0001-first-change.patch"
634 SRC_URI += "file://0002-second-change.patch" 614 SRC_URI += "file://0002-second-change.patch"
@@ -658,8 +638,7 @@ If you have a complete, working Linux kernel ``.config`` file you want
658to use for the configuration, as before, copy that file to the 638to use for the configuration, as before, copy that file to the
659appropriate ``${PN}`` directory in your layer's ``recipes-kernel/linux`` 639appropriate ``${PN}`` directory in your layer's ``recipes-kernel/linux``
660directory, and rename the copied file to "defconfig". Then, add the 640directory, and rename the copied file to "defconfig". Then, add the
661following lines to the linux-yocto ``.bbappend`` file in your layer: 641following lines to the linux-yocto ``.bbappend`` file in your layer::
662::
663 642
664 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" 643 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
665 SRC_URI += "file://defconfig" 644 SRC_URI += "file://defconfig"
@@ -685,8 +664,7 @@ Generally speaking, the preferred approach is to determine the
685incremental change you want to make and add that as a configuration 664incremental change you want to make and add that as a configuration
686fragment. For example, if you want to add support for a basic serial 665fragment. For example, if you want to add support for a basic serial
687console, create a file named ``8250.cfg`` in the ``${PN}`` directory 666console, create a file named ``8250.cfg`` in the ``${PN}`` directory
688with the following content (without indentation): 667with the following content (without indentation)::
689::
690 668
691 CONFIG_SERIAL_8250=y 669 CONFIG_SERIAL_8250=y
692 CONFIG_SERIAL_8250_CONSOLE=y 670 CONFIG_SERIAL_8250_CONSOLE=y
@@ -698,8 +676,7 @@ with the following content (without indentation):
698 676
699Next, include this 677Next, include this
700configuration fragment and extend the ``FILESPATH`` variable in your 678configuration fragment and extend the ``FILESPATH`` variable in your
701``.bbappend`` file: 679``.bbappend`` file::
702::
703 680
704 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" 681 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
705 SRC_URI += "file://8250.cfg" 682 SRC_URI += "file://8250.cfg"
@@ -718,8 +695,7 @@ It might be desirable to have kernel configuration fragment support
718through a ``defconfig`` file that is pulled from the kernel source tree 695through a ``defconfig`` file that is pulled from the kernel source tree
719for the configured machine. By default, the OpenEmbedded build system 696for the configured machine. By default, the OpenEmbedded build system
720looks for ``defconfig`` files in the layer used for Metadata, which is 697looks for ``defconfig`` files in the layer used for Metadata, which is
721"out-of-tree", and then configures them using the following: 698"out-of-tree", and then configures them using the following::
722::
723 699
724 SRC_URI += "file://defconfig" 700 SRC_URI += "file://defconfig"
725 701
@@ -732,16 +708,14 @@ append files, you can direct the OpenEmbedded build system to use a
732``defconfig`` file that is "in-tree". 708``defconfig`` file that is "in-tree".
733 709
734To specify an "in-tree" ``defconfig`` file, use the following statement 710To specify an "in-tree" ``defconfig`` file, use the following statement
735form: 711form::
736::
737 712
738 KBUILD_DEFCONFIG_KMACHINE ?= "defconfig_file" 713 KBUILD_DEFCONFIG_KMACHINE ?= "defconfig_file"
739 714
740Here is an example 715Here is an example
741that assigns the ``KBUILD_DEFCONFIG`` variable based on "raspberrypi2" 716that assigns the ``KBUILD_DEFCONFIG`` variable based on "raspberrypi2"
742and provides the path to the "in-tree" ``defconfig`` file to be used for 717and provides the path to the "in-tree" ``defconfig`` file to be used for
743a Raspberry Pi 2, which is based on the Broadcom 2708/2709 chipset: 718a Raspberry Pi 2, which is based on the Broadcom 2708/2709 chipset::
744::
745 719
746 KBUILD_DEFCONFIG_raspberrypi2 ?= "bcm2709_defconfig" 720 KBUILD_DEFCONFIG_raspberrypi2 ?= "bcm2709_defconfig"
747 721
@@ -792,8 +766,7 @@ the ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" Se
792 ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" 766 ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``"
793 section for more information. 767 section for more information.
794 768
795 Use the following ``devtool`` command to check out the code: 769 Use the following ``devtool`` command to check out the code::
796 ::
797 770
798 $ devtool modify linux-yocto 771 $ devtool modify linux-yocto
799 772
@@ -819,14 +792,12 @@ the ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" Se
819 noted where you can find the source files (e.g. 792 noted where you can find the source files (e.g.
820 ``poky_sdk/workspace/sources/linux-yocto``). Change to where the 793 ``poky_sdk/workspace/sources/linux-yocto``). Change to where the
821 kernel source code is before making your edits to the 794 kernel source code is before making your edits to the
822 ``calibrate.c`` file: 795 ``calibrate.c`` file::
823 ::
824 796
825 $ cd poky_sdk/workspace/sources/linux-yocto 797 $ cd poky_sdk/workspace/sources/linux-yocto
826 798
827 2. *Edit the source file*: Edit the ``init/calibrate.c`` file to have 799 2. *Edit the source file*: Edit the ``init/calibrate.c`` file to have
828 the following changes: 800 the following changes::
829 ::
830 801
831 void calibrate_delay(void) 802 void calibrate_delay(void)
832 { 803 {
@@ -846,8 +817,7 @@ the ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" Se
846 . 817 .
847 818
8483. *Build the Updated Kernel Source:* To build the updated kernel 8193. *Build the Updated Kernel Source:* To build the updated kernel
849 source, use ``devtool``: 820 source, use ``devtool``::
850 ::
851 821
852 $ devtool build linux-yocto 822 $ devtool build linux-yocto
853 823
@@ -872,8 +842,7 @@ the ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" Se
872 using QEMU to verify your changes: 842 using QEMU to verify your changes:
873 843
874 1. *Boot the image*: Boot the modified image in the QEMU emulator 844 1. *Boot the image*: Boot the modified image in the QEMU emulator
875 using this command: 845 using this command::
876 ::
877 846
878 $ runqemu qemux86 847 $ runqemu qemux86
879 848
@@ -891,8 +860,7 @@ the ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" Se
891 860
8926. *Stage and commit your changes*: Within your eSDK terminal, change 8616. *Stage and commit your changes*: Within your eSDK terminal, change
893 your working directory to where you modified the ``calibrate.c`` file 862 your working directory to where you modified the ``calibrate.c`` file
894 and use these Git commands to stage and commit your changes: 863 and use these Git commands to stage and commit your changes::
895 ::
896 864
897 $ cd poky_sdk/workspace/sources/linux-yocto 865 $ cd poky_sdk/workspace/sources/linux-yocto
898 $ git status 866 $ git status
@@ -921,8 +889,7 @@ the ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" Se
921 image that includes your kernel patches. Execute the following 889 image that includes your kernel patches. Execute the following
922 command from your 890 command from your
923 :term:`Build Directory` in the terminal 891 :term:`Build Directory` in the terminal
924 set up to run BitBake: 892 set up to run BitBake::
925 ::
926 893
927 $ cd poky/build 894 $ cd poky/build
928 $ bitbake core-image-minimal 895 $ bitbake core-image-minimal
@@ -966,14 +933,12 @@ Section.
966 1. *Change the working directory*: You need to locate the source 933 1. *Change the working directory*: You need to locate the source
967 files in the local copy of the kernel Git repository. Change to 934 files in the local copy of the kernel Git repository. Change to
968 where the kernel source code is before making your edits to the 935 where the kernel source code is before making your edits to the
969 ``calibrate.c`` file: 936 ``calibrate.c`` file::
970 ::
971 937
972 $ cd ~/linux-yocto-4.12/init 938 $ cd ~/linux-yocto-4.12/init
973 939
974 2. *Edit the source file*: Edit the ``calibrate.c`` file to have the 940 2. *Edit the source file*: Edit the ``calibrate.c`` file to have the
975 following changes: 941 following changes::
976 ::
977 942
978 void calibrate_delay(void) 943 void calibrate_delay(void)
979 { 944 {
@@ -993,8 +958,7 @@ Section.
993 . 958 .
994 959
9952. *Stage and Commit Your Changes:* Use standard Git commands to stage 9602. *Stage and Commit Your Changes:* Use standard Git commands to stage
996 and commit the changes you just made: 961 and commit the changes you just made::
997 ::
998 962
999 $ git add calibrate.c 963 $ git add calibrate.c
1000 $ git commit -m "calibrate.c - Added some printk statements" 964 $ git commit -m "calibrate.c - Added some printk statements"
@@ -1009,13 +973,11 @@ Section.
1009 updated kernel source files. Add 973 updated kernel source files. Add
1010 :term:`SRC_URI` and 974 :term:`SRC_URI` and
1011 :term:`SRCREV` statements similar 975 :term:`SRCREV` statements similar
1012 to the following to your ``local.conf``: 976 to the following to your ``local.conf``::
1013 ::
1014 977
1015 $ cd poky/build/conf 978 $ cd poky/build/conf
1016 979
1017 Add the following to the ``local.conf``: 980 Add the following to the ``local.conf``::
1018 ::
1019 981
1020 SRC_URI_pn-linux-yocto = "git:///path-to/linux-yocto-4.12;protocol=file;name=machine;branch=standard/base; \ 982 SRC_URI_pn-linux-yocto = "git:///path-to/linux-yocto-4.12;protocol=file;name=machine;branch=standard/base; \
1021 git:///path-to/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-4.12;destsuffix=${KMETA}" 983 git:///path-to/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-4.12;destsuffix=${KMETA}"
@@ -1031,16 +993,14 @@ Section.
1031 993
10324. *Build the Image:* With the source modified, your changes staged and 9944. *Build the Image:* With the source modified, your changes staged and
1033 committed, and the ``local.conf`` file pointing to the kernel files, 995 committed, and the ``local.conf`` file pointing to the kernel files,
1034 you can now use BitBake to build the image: 996 you can now use BitBake to build the image::
1035 ::
1036 997
1037 $ cd poky/build 998 $ cd poky/build
1038 $ bitbake core-image-minimal 999 $ bitbake core-image-minimal
1039 1000
10405. *Boot the image*: Boot the modified image in the QEMU emulator using 10015. *Boot the image*: Boot the modified image in the QEMU emulator using
1041 this command. When prompted to login to the QEMU console, use "root" 1002 this command. When prompted to login to the QEMU console, use "root"
1042 with no password: 1003 with no password::
1043 ::
1044 1004
1045 $ cd poky/build 1005 $ cd poky/build
1046 $ runqemu qemux86 1006 $ runqemu qemux86
@@ -1059,8 +1019,7 @@ Section.
1059 1019
10607. *Generate the Patch File:* Once you are sure that your patch works 10207. *Generate the Patch File:* Once you are sure that your patch works
1061 correctly, you can generate a ``*.patch`` file in the kernel source 1021 correctly, you can generate a ``*.patch`` file in the kernel source
1062 repository: 1022 repository::
1063 ::
1064 1023
1065 $ cd ~/linux-yocto-4.12/init 1024 $ cd ~/linux-yocto-4.12/init
1066 $ git format-patch -1 1025 $ git format-patch -1
@@ -1073,8 +1032,7 @@ Section.
1073 ``meta-mylayer``. When the layer was created using the 1032 ``meta-mylayer``. When the layer was created using the
1074 ``yocto-create`` script, no additional hierarchy was created to 1033 ``yocto-create`` script, no additional hierarchy was created to
1075 support patches. Before moving the patch file, you need to add 1034 support patches. Before moving the patch file, you need to add
1076 additional structure to your layer using the following commands: 1035 additional structure to your layer using the following commands::
1077 ::
1078 1036
1079 $ cd ~/meta-mylayer 1037 $ cd ~/meta-mylayer
1080 $ mkdir recipes-kernel 1038 $ mkdir recipes-kernel
@@ -1083,8 +1041,7 @@ Section.
1083 1041
1084 Once you have created this 1042 Once you have created this
1085 hierarchy in your layer, you can move the patch file using the 1043 hierarchy in your layer, you can move the patch file using the
1086 following command: 1044 following command::
1087 ::
1088 1045
1089 $ mv ~/linux-yocto-4.12/init/0001-calibrate.c-Added-some-printk-statements.patch ~/meta-mylayer/recipes-kernel/linux/linux-yocto 1046 $ mv ~/linux-yocto-4.12/init/0001-calibrate.c-Added-some-printk-statements.patch ~/meta-mylayer/recipes-kernel/linux/linux-yocto
1090 1047
@@ -1093,8 +1050,7 @@ Section.
1093 the OpenEmbedded build system to find the patch. The append file 1050 the OpenEmbedded build system to find the patch. The append file
1094 needs to be in your layer's ``recipes-kernel/linux`` directory and it 1051 needs to be in your layer's ``recipes-kernel/linux`` directory and it
1095 must be named ``linux-yocto_4.12.bbappend`` and have the following 1052 must be named ``linux-yocto_4.12.bbappend`` and have the following
1096 contents: 1053 contents::
1097 ::
1098 1054
1099 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" 1055 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
1100 SRC_URI_append = "file://0001-calibrate.c-Added-some-printk-statements.patch" 1056 SRC_URI_append = "file://0001-calibrate.c-Added-some-printk-statements.patch"
@@ -1113,8 +1069,7 @@ Section.
1113 To build ``core-image-minimal`` again and see the effects of your patch, 1069 To build ``core-image-minimal`` again and see the effects of your patch,
1114 you can essentially eliminate the temporary source files saved in 1070 you can essentially eliminate the temporary source files saved in
1115 ``poky/build/tmp/work/...`` and residual effects of the build by entering 1071 ``poky/build/tmp/work/...`` and residual effects of the build by entering
1116 the following sequence of commands: 1072 the following sequence of commands::
1117 ::
1118 1073
1119 $ cd poky/build 1074 $ cd poky/build
1120 $ bitbake -c cleanall yocto-linux 1075 $ bitbake -c cleanall yocto-linux
@@ -1160,8 +1115,7 @@ environment, you must do the following:
1160- You must be sure of the state of your build's configuration in the 1115- You must be sure of the state of your build's configuration in the
1161 :term:`Source Directory`. 1116 :term:`Source Directory`.
1162 1117
1163- Your build host must have the following two packages installed: 1118- Your build host must have the following two packages installed::
1164 ::
1165 1119
1166 libncurses5-dev 1120 libncurses5-dev
1167 libtinfo-dev 1121 libtinfo-dev
@@ -1169,8 +1123,7 @@ environment, you must do the following:
1169The following commands initialize the BitBake environment, run the 1123The following commands initialize the BitBake environment, run the
1170:ref:`ref-tasks-kernel_configme` 1124:ref:`ref-tasks-kernel_configme`
1171task, and launch ``menuconfig``. These commands assume the Source 1125task, and launch ``menuconfig``. These commands assume the Source
1172Directory's top-level folder is ``poky``: 1126Directory's top-level folder is ``poky``::
1173::
1174 1127
1175 $ cd poky 1128 $ cd poky
1176 $ source oe-init-build-env 1129 $ source oe-init-build-env
@@ -1232,8 +1185,7 @@ the ``.config`` file would be:
1232 1185
1233Within the ``.config`` file, you can see the kernel settings. For 1186Within the ``.config`` file, you can see the kernel settings. For
1234example, the following entry shows that symmetric multi-processor 1187example, the following entry shows that symmetric multi-processor
1235support is not set: 1188support is not set::
1236::
1237 1189
1238 # CONFIG_SMP is not set 1190 # CONFIG_SMP is not set
1239 1191
@@ -1274,8 +1226,7 @@ your layer's ``recipes-kernel/linux`` directory, and rename the copied
1274file to "defconfig" (e.g. 1226file to "defconfig" (e.g.
1275``~/meta-mylayer/recipes-kernel/linux/linux-yocto/defconfig``). Then, 1227``~/meta-mylayer/recipes-kernel/linux/linux-yocto/defconfig``). Then,
1276add the following lines to the linux-yocto ``.bbappend`` file in your 1228add the following lines to the linux-yocto ``.bbappend`` file in your
1277layer: 1229layer::
1278::
1279 1230
1280 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" 1231 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
1281 SRC_URI += "file://defconfig" 1232 SRC_URI += "file://defconfig"
@@ -1323,8 +1274,7 @@ appear in the ``.config`` file, which is in the :term:`Build Directory`.
1323It is simple to create a configuration fragment. One method is to use 1274It is simple to create a configuration fragment. One method is to use
1324shell commands. For example, issuing the following from the shell 1275shell commands. For example, issuing the following from the shell
1325creates a configuration fragment file named ``my_smp.cfg`` that enables 1276creates a configuration fragment file named ``my_smp.cfg`` that enables
1326multi-processor support within the kernel: 1277multi-processor support within the kernel::
1327::
1328 1278
1329 $ echo "CONFIG_SMP=y" >> my_smp.cfg 1279 $ echo "CONFIG_SMP=y" >> my_smp.cfg
1330 1280
@@ -1342,8 +1292,7 @@ To create a configuration fragment using this method, follow these
1342steps: 1292steps:
1343 1293
13441. *Complete a Build Through Kernel Configuration:* Complete a build at 12941. *Complete a Build Through Kernel Configuration:* Complete a build at
1345 least through the kernel configuration task as follows: 1295 least through the kernel configuration task as follows::
1346 ::
1347 1296
1348 $ bitbake linux-yocto -c kernel_configme -f 1297 $ bitbake linux-yocto -c kernel_configme -f
1349 1298
@@ -1352,8 +1301,7 @@ steps:
1352 your build state might become unknown, it is best to run this task 1301 your build state might become unknown, it is best to run this task
1353 prior to starting ``menuconfig``. 1302 prior to starting ``menuconfig``.
1354 1303
13552. *Launch menuconfig:* Run the ``menuconfig`` command: 13042. *Launch menuconfig:* Run the ``menuconfig`` command::
1356 ::
1357 1305
1358 $ bitbake linux-yocto -c menuconfig 1306 $ bitbake linux-yocto -c menuconfig
1359 1307
@@ -1361,8 +1309,7 @@ steps:
1361 to prepare a configuration fragment. The resulting file 1309 to prepare a configuration fragment. The resulting file
1362 ``fragment.cfg`` is placed in the 1310 ``fragment.cfg`` is placed in the
1363 ``${``\ :term:`WORKDIR`\ ``}`` 1311 ``${``\ :term:`WORKDIR`\ ``}``
1364 directory: 1312 directory::
1365 ::
1366 1313
1367 $ bitbake linux-yocto -c diffconfig 1314 $ bitbake linux-yocto -c diffconfig
1368 1315
@@ -1387,8 +1334,7 @@ options in a file called ``myconfig.cfg``. If you put that file inside a
1387directory named ``linux-yocto`` that resides in the same directory as 1334directory named ``linux-yocto`` that resides in the same directory as
1388the kernel's append file within your layer and then add the following 1335the kernel's append file within your layer and then add the following
1389statements to the kernel's append file, those configuration options will 1336statements to the kernel's append file, those configuration options will
1390be picked up and applied when the kernel is built: 1337be picked up and applied when the kernel is built::
1391::
1392 1338
1393 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" 1339 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
1394 SRC_URI += "file://myconfig.cfg" 1340 SRC_URI += "file://myconfig.cfg"
@@ -1397,8 +1343,7 @@ As mentioned earlier, you can group related configurations into multiple
1397files and name them all in the ``SRC_URI`` statement as well. For 1343files and name them all in the ``SRC_URI`` statement as well. For
1398example, you could group separate configurations specifically for 1344example, you could group separate configurations specifically for
1399Ethernet and graphics into their own files and add those by using a 1345Ethernet and graphics into their own files and add those by using a
1400``SRC_URI`` statement like the following in your append file: 1346``SRC_URI`` statement like the following in your append file::
1401::
1402 1347
1403 SRC_URI += "file://myconfig.cfg \ 1348 SRC_URI += "file://myconfig.cfg \
1404 file://eth.cfg \ 1349 file://eth.cfg \
@@ -1409,8 +1354,7 @@ Validating Configuration
1409 1354
1410You can use the 1355You can use the
1411:ref:`ref-tasks-kernel_configcheck` 1356:ref:`ref-tasks-kernel_configcheck`
1412task to provide configuration validation: 1357task to provide configuration validation::
1413::
1414 1358
1415 $ bitbake linux-yocto -c kernel_configcheck -f 1359 $ bitbake linux-yocto -c kernel_configcheck -f
1416 1360
@@ -1537,8 +1481,7 @@ To streamline the configuration, do the following:
1537 successfully. Use this configuration file as your baseline. 1481 successfully. Use this configuration file as your baseline.
1538 1482
15392. *Run Configure and Check Tasks:* Separately run the 14832. *Run Configure and Check Tasks:* Separately run the
1540 ``do_kernel_configme`` and ``do_kernel_configcheck`` tasks: 1484 ``do_kernel_configme`` and ``do_kernel_configcheck`` tasks::
1541 ::
1542 1485
1543 $ bitbake linux-yocto -c kernel_configme -f 1486 $ bitbake linux-yocto -c kernel_configme -f
1544 $ bitbake linux-yocto -c kernel_configcheck -f 1487 $ bitbake linux-yocto -c kernel_configcheck -f
@@ -1572,8 +1515,7 @@ Expanding Variables
1572Sometimes it is helpful to determine what a variable expands to during a 1515Sometimes it is helpful to determine what a variable expands to during a
1573build. You can examine the values of variables by examining the 1516build. You can examine the values of variables by examining the
1574output of the ``bitbake -e`` command. The output is long and is more 1517output of the ``bitbake -e`` command. The output is long and is more
1575easily managed in a text file, which allows for easy searches: 1518easily managed in a text file, which allows for easy searches::
1576::
1577 1519
1578 $ bitbake -e virtual/kernel > some_text_file 1520 $ bitbake -e virtual/kernel > some_text_file
1579 1521
@@ -1590,15 +1532,13 @@ source directory. Follow these steps to clean up the version string:
1590 1532
15911. *Discover the Uncommitted Changes:* Go to the kernel's locally cloned 15331. *Discover the Uncommitted Changes:* Go to the kernel's locally cloned
1592 Git repository (source directory) and use the following Git command 1534 Git repository (source directory) and use the following Git command
1593 to list the files that have been changed, added, or removed: 1535 to list the files that have been changed, added, or removed::
1594 ::
1595 1536
1596 $ git status 1537 $ git status
1597 1538
15982. *Commit the Changes:* You should commit those changes to the kernel 15392. *Commit the Changes:* You should commit those changes to the kernel
1599 source tree regardless of whether or not you will save, export, or 1540 source tree regardless of whether or not you will save, export, or
1600 use the changes: 1541 use the changes::
1601 ::
1602 1542
1603 $ git add 1543 $ git add
1604 $ git commit -s -a -m "getting rid of -dirty" 1544 $ git commit -s -a -m "getting rid of -dirty"
@@ -1633,8 +1573,7 @@ linux-yocto custom recipe (``linux-yocto-custom.bb``) that uses
1633``kernel.org`` sources and the Yocto Project Linux kernel tools for 1573``kernel.org`` sources and the Yocto Project Linux kernel tools for
1634managing kernel Metadata. You can find this recipe in the ``poky`` Git 1574managing kernel Metadata. You can find this recipe in the ``poky`` Git
1635repository of the Yocto Project :yocto_git:`Source Repository <>` 1575repository of the Yocto Project :yocto_git:`Source Repository <>`
1636at: 1576at::
1637::
1638 1577
1639 poky/meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb 1578 poky/meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb
1640 1579
@@ -1655,8 +1594,7 @@ Here are some basic steps you can use to work with your own sources:
1655 ``defconfig`` file or configuration fragment files in your layer. 1594 ``defconfig`` file or configuration fragment files in your layer.
1656 When you use the ``linux-yocto-custom.bb`` recipe, you must specify a 1595 When you use the ``linux-yocto-custom.bb`` recipe, you must specify a
1657 configuration. If you do not have a ``defconfig`` file, you can run 1596 configuration. If you do not have a ``defconfig`` file, you can run
1658 the following: 1597 the following::
1659 ::
1660 1598
1661 $ make defconfig 1599 $ make defconfig
1662 1600
@@ -1708,8 +1646,7 @@ Here are some basic steps you can use to work with your own sources:
1708 ``LINUX_VERSION`` with the Source Control Manager (SCM) revision 1646 ``LINUX_VERSION`` with the Source Control Manager (SCM) revision
1709 as derived from the :term:`SRCPV` 1647 as derived from the :term:`SRCPV`
1710 variable. The combined results are a string with the following 1648 variable. The combined results are a string with the following
1711 form: 1649 form::
1712 ::
1713 1650
1714 3.19.11+git1+68a635bf8dfb64b02263c1ac80c948647cc76d5f_1+218bd8d2022b9852c60d32f0d770931e3cf343e2 1651 3.19.11+git1+68a635bf8dfb64b02263c1ac80c948647cc76d5f_1+218bd8d2022b9852c60d32f0d770931e3cf343e2
1715 1652
@@ -1723,8 +1660,7 @@ Here are some basic steps you can use to work with your own sources:
1723 triggers an explicit build failure. You must change it to match a 1660 triggers an explicit build failure. You must change it to match a
1724 list of the machines that your new recipe supports. For example, 1661 list of the machines that your new recipe supports. For example,
1725 to support the ``qemux86`` and ``qemux86-64`` machines, use the 1662 to support the ``qemux86`` and ``qemux86-64`` machines, use the
1726 following form: 1663 following form::
1727 ::
1728 1664
1729 COMPATIBLE_MACHINE = "qemux86|qemux86-64" 1665 COMPATIBLE_MACHINE = "qemux86|qemux86-64"
1730 1666
@@ -1807,8 +1743,7 @@ Typically, you will need to set the following variables:
1807 1743
1808Depending on the build system used by the module sources, you might need 1744Depending on the build system used by the module sources, you might need
1809to make some adjustments. For example, a typical module ``Makefile`` 1745to make some adjustments. For example, a typical module ``Makefile``
1810looks much like the one provided with the ``hello-mod`` template: 1746looks much like the one provided with the ``hello-mod`` template::
1811::
1812 1747
1813 obj-m := hello.o 1748 obj-m := hello.o
1814 1749
@@ -1845,8 +1780,7 @@ them appropriately for your machine configuration file:
1845- :term:`MACHINE_EXTRA_RRECOMMENDS` 1780- :term:`MACHINE_EXTRA_RRECOMMENDS`
1846 1781
1847Modules are often not required for boot and can be excluded from certain 1782Modules are often not required for boot and can be excluded from certain
1848build configurations. The following allows for the most flexibility: 1783build configurations. The following allows for the most flexibility::
1849::
1850 1784
1851 MACHINE_EXTRA_RRECOMMENDS += "kernel-module-mymodule" 1785 MACHINE_EXTRA_RRECOMMENDS += "kernel-module-mymodule"
1852 1786
@@ -1895,26 +1829,22 @@ branch.
1895 1829
1896 $ git whatchanged origin/standard/base..origin/standard/emenlow 1830 $ git whatchanged origin/standard/base..origin/standard/emenlow
1897 1831
1898To see short, one line summaries of changes use the ``git log`` command: 1832To see short, one line summaries of changes use the ``git log`` command::
1899::
1900 1833
1901 $ git log --oneline origin/standard/base..origin/standard/emenlow 1834 $ git log --oneline origin/standard/base..origin/standard/emenlow
1902 1835
1903Use this command to see code differences for the changes: 1836Use this command to see code differences for the changes::
1904::
1905 1837
1906 $ git diff origin/standard/base..origin/standard/emenlow 1838 $ git diff origin/standard/base..origin/standard/emenlow
1907 1839
1908Use this command to see the commit log messages and the text 1840Use this command to see the commit log messages and the text
1909differences: 1841differences::
1910::
1911 1842
1912 $ git show origin/standard/base..origin/standard/emenlow 1843 $ git show origin/standard/base..origin/standard/emenlow
1913 1844
1914Use this command to create individual patches for each change. Here is 1845Use this command to create individual patches for each change. Here is
1915an example that creates patch files for each commit and places them 1846an example that creates patch files for each commit and places them
1916in your ``Documents`` directory: 1847in your ``Documents`` directory::
1917::
1918 1848
1919 $ git format-patch -o $HOME/Documents origin/standard/base..origin/standard/emenlow 1849 $ git format-patch -o $HOME/Documents origin/standard/base..origin/standard/emenlow
1920 1850
@@ -1923,15 +1853,13 @@ Showing a Particular Feature or Branch Change
1923 1853
1924Tags in the Yocto Project kernel tree divide changes for significant 1854Tags in the Yocto Project kernel tree divide changes for significant
1925features or branches. The ``git show`` tag command shows changes based 1855features or branches. The ``git show`` tag command shows changes based
1926on a tag. Here is an example that shows ``systemtap`` changes: 1856on a tag. Here is an example that shows ``systemtap`` changes::
1927::
1928 1857
1929 $ git show systemtap 1858 $ git show systemtap
1930 1859
1931You can use the ``git branch --contains`` tag command to 1860You can use the ``git branch --contains`` tag command to
1932show the branches that contain a particular feature. This command shows 1861show the branches that contain a particular feature. This command shows
1933the branches that contain the ``systemtap`` feature: 1862the branches that contain the ``systemtap`` feature::
1934::
1935 1863
1936 $ git branch --contains systemtap 1864 $ git branch --contains systemtap
1937 1865
@@ -1986,8 +1914,7 @@ build.
1986 searched during the build as potential feature directories. 1914 searched during the build as potential feature directories.
1987 1915
1988 Continuing with the example, suppose the "test.scc" feature you are 1916 Continuing with the example, suppose the "test.scc" feature you are
1989 adding has a ``test.scc`` file in the following directory: 1917 adding has a ``test.scc`` file in the following directory::
1990 ::
1991 1918
1992 my_recipe 1919 my_recipe
1993 | 1920 |
@@ -2001,8 +1928,7 @@ build.
2001 a similarly named configuration fragment file ``test.cfg``. 1928 a similarly named configuration fragment file ``test.cfg``.
2002 1929
20032. *Add the Feature File to SRC_URI:* Add the ``.scc`` file to the 19302. *Add the Feature File to SRC_URI:* Add the ``.scc`` file to the
2004 recipe's ``SRC_URI`` statement: 1931 recipe's ``SRC_URI`` statement::
2005 ::
2006 1932
2007 SRC_URI_append = " file://test.scc" 1933 SRC_URI_append = " file://test.scc"
2008 1934
@@ -2011,8 +1937,7 @@ build.
2011 1937
20123. *Specify the Feature as a Kernel Feature:* Use the 19383. *Specify the Feature as a Kernel Feature:* Use the
2013 ``KERNEL_FEATURES`` statement to specify the feature as a kernel 1939 ``KERNEL_FEATURES`` statement to specify the feature as a kernel
2014 feature: 1940 feature::
2015 ::
2016 1941
2017 KERNEL_FEATURES_append = " test.scc" 1942 KERNEL_FEATURES_append = " test.scc"
2018 1943
diff --git a/documentation/kernel-dev/concepts-appx.rst b/documentation/kernel-dev/concepts-appx.rst
index 4b6dbe5ef9..63e67315fa 100644
--- a/documentation/kernel-dev/concepts-appx.rst
+++ b/documentation/kernel-dev/concepts-appx.rst
@@ -359,8 +359,7 @@ To determine whether or not a given option is "hardware" or
359"non-hardware", the kernel Metadata in ``yocto-kernel-cache`` contains 359"non-hardware", the kernel Metadata in ``yocto-kernel-cache`` contains
360files that classify individual or groups of options as either hardware 360files that classify individual or groups of options as either hardware
361or non-hardware. To better show this, consider a situation where the 361or non-hardware. To better show this, consider a situation where the
362``yocto-kernel-cache`` contains the following files: 362``yocto-kernel-cache`` contains the following files::
363::
364 363
365 yocto-kernel-cache/features/drm-psb/hardware.cfg 364 yocto-kernel-cache/features/drm-psb/hardware.cfg
366 yocto-kernel-cache/features/kgdb/hardware.cfg 365 yocto-kernel-cache/features/kgdb/hardware.cfg
@@ -400,8 +399,7 @@ provides explanations for the various files:
400 (i.e. ``hardware.kcf`` or ``non-hardware.kcf``). 399 (i.e. ``hardware.kcf`` or ``non-hardware.kcf``).
401 400
402Here is a specific example using the 401Here is a specific example using the
403``kernel-cache/bsp/mti-malta32/hardware.cfg``: 402``kernel-cache/bsp/mti-malta32/hardware.cfg``::
404::
405 403
406 CONFIG_SERIAL_8250 404 CONFIG_SERIAL_8250
407 CONFIG_SERIAL_8250_CONSOLE 405 CONFIG_SERIAL_8250_CONSOLE
diff --git a/documentation/kernel-dev/faq.rst b/documentation/kernel-dev/faq.rst
index c2106f81e1..8169511445 100644
--- a/documentation/kernel-dev/faq.rst
+++ b/documentation/kernel-dev/faq.rst
@@ -57,8 +57,7 @@ These other variables are useful for installing specific modules:
57 57
58For example, set the following in the ``qemux86.conf`` file to include 58For example, set the following in the ``qemux86.conf`` file to include
59the ``ab123`` kernel modules with images built for the ``qemux86`` 59the ``ab123`` kernel modules with images built for the ``qemux86``
60machine: 60machine::
61::
62 61
63 MACHINE_EXTRA_RRECOMMENDS += "kernel-module-ab123" 62 MACHINE_EXTRA_RRECOMMENDS += "kernel-module-ab123"
64 63
@@ -71,8 +70,7 @@ How do I change the Linux kernel command line?
71The Linux kernel command line is 70The Linux kernel command line is
72typically specified in the machine config using the ``APPEND`` variable. 71typically specified in the machine config using the ``APPEND`` variable.
73For example, you can add some helpful debug information doing the 72For example, you can add some helpful debug information doing the
74following: 73following::
75::
76 74
77 APPEND += "printk.time=y initcall_debug debug" 75 APPEND += "printk.time=y initcall_debug debug"
78 76
diff --git a/documentation/kernel-dev/maint-appx.rst b/documentation/kernel-dev/maint-appx.rst
index 44c43893e2..f84ab6e239 100644
--- a/documentation/kernel-dev/maint-appx.rst
+++ b/documentation/kernel-dev/maint-appx.rst
@@ -28,8 +28,7 @@ in the Yocto Project Linux kernel in any clone of the Yocto Project
28Linux kernel source repository and ``yocto-kernel-cache`` Git trees. For 28Linux kernel source repository and ``yocto-kernel-cache`` Git trees. For
29example, the following commands clone the Yocto Project baseline Linux 29example, the following commands clone the Yocto Project baseline Linux
30kernel that branches off ``linux.org`` version 4.12 and the 30kernel that branches off ``linux.org`` version 4.12 and the
31``yocto-kernel-cache``, which contains stores of kernel Metadata: 31``yocto-kernel-cache``, which contains stores of kernel Metadata::
32::
33 32
34 $ git clone git://git.yoctoproject.org/linux-yocto-4.12 33 $ git clone git://git.yoctoproject.org/linux-yocto-4.12
35 $ git clone git://git.yoctoproject.org/linux-kernel-cache 34 $ git clone git://git.yoctoproject.org/linux-kernel-cache
@@ -42,16 +41,14 @@ section.
42 41
43Once you have cloned the kernel Git repository and the cache of Metadata 42Once you have cloned the kernel Git repository and the cache of Metadata
44on your local machine, you can discover the branches that are available 43on your local machine, you can discover the branches that are available
45in the repository using the following Git command: 44in the repository using the following Git command::
46::
47 45
48 $ git branch -a 46 $ git branch -a
49 47
50Checking out a branch allows you to work with a particular Yocto Linux 48Checking out a branch allows you to work with a particular Yocto Linux
51kernel. For example, the following commands check out the 49kernel. For example, the following commands check out the
52"standard/beagleboard" branch of the Yocto Linux kernel repository and 50"standard/beagleboard" branch of the Yocto Linux kernel repository and
53the "yocto-4.12" branch of the ``yocto-kernel-cache`` repository: 51the "yocto-4.12" branch of the ``yocto-kernel-cache`` repository::
54::
55 52
56 $ cd ~/linux-yocto-4.12 53 $ cd ~/linux-yocto-4.12
57 $ git checkout -b my-kernel-4.12 remotes/origin/standard/beagleboard 54 $ git checkout -b my-kernel-4.12 remotes/origin/standard/beagleboard
@@ -111,8 +108,7 @@ patch, or BSP:
111 108
112 For a typical build, the target of the search is a feature 109 For a typical build, the target of the search is a feature
113 description in an ``.scc`` file whose name follows this format (e.g. 110 description in an ``.scc`` file whose name follows this format (e.g.
114 ``beaglebone-standard.scc`` and ``beaglebone-preempt-rt.scc``): 111 ``beaglebone-standard.scc`` and ``beaglebone-preempt-rt.scc``)::
115 ::
116 112
117 bsp_root_name-kernel_type.scc 113 bsp_root_name-kernel_type.scc
118 114
@@ -222,8 +218,7 @@ build process generates a build tree that is separate from your kernel's
222local Git source repository tree. This build tree has a name that uses 218local Git source repository tree. This build tree has a name that uses
223the following form, where ``${MACHINE}`` is the metadata name of the 219the following form, where ``${MACHINE}`` is the metadata name of the
224machine (BSP) and "kernel_type" is one of the Yocto Project supported 220machine (BSP) and "kernel_type" is one of the Yocto Project supported
225kernel types (e.g. "standard"): 221kernel types (e.g. "standard")::
226::
227 222
228 linux-${MACHINE}-kernel_type-build 223 linux-${MACHINE}-kernel_type-build
229 224
diff --git a/documentation/overview-manual/concepts.rst b/documentation/overview-manual/concepts.rst
index ada5143b2a..2e3f1af442 100644
--- a/documentation/overview-manual/concepts.rst
+++ b/documentation/overview-manual/concepts.rst
@@ -55,8 +55,7 @@ This section briefly introduces BitBake. If you want more information on
55BitBake, see the :doc:`BitBake User Manual <bitbake:index>`. 55BitBake, see the :doc:`BitBake User Manual <bitbake:index>`.
56 56
57To see a list of the options BitBake supports, use either of the 57To see a list of the options BitBake supports, use either of the
58following commands: 58following commands::
59::
60 59
61 $ bitbake -h 60 $ bitbake -h
62 $ bitbake --help 61 $ bitbake --help
@@ -66,8 +65,7 @@ The most common usage for BitBake is ``bitbake recipename``, where
66to as the "target"). The target often equates to the first part of a 65to as the "target"). The target often equates to the first part of a
67recipe's filename (e.g. "foo" for a recipe named ``foo_1.3.0-r0.bb``). 66recipe's filename (e.g. "foo" for a recipe named ``foo_1.3.0-r0.bb``).
68So, to process the ``matchbox-desktop_1.2.3.bb`` recipe file, you might 67So, to process the ``matchbox-desktop_1.2.3.bb`` recipe file, you might
69type the following: 68type the following::
70::
71 69
72 $ bitbake matchbox-desktop 70 $ bitbake matchbox-desktop
73 71
@@ -1068,15 +1066,13 @@ the image. The formats used for the root filesystem depend on the
1068support compression. 1066support compression.
1069 1067
1070As an example, a dynamically created task when creating a particular 1068As an example, a dynamically created task when creating a particular
1071image type would take the following form: 1069image type would take the following form::
1072::
1073 1070
1074 do_image_type 1071 do_image_type
1075 1072
1076So, if the type 1073So, if the type
1077as specified by the ``IMAGE_FSTYPES`` were ``ext4``, the dynamically 1074as specified by the ``IMAGE_FSTYPES`` were ``ext4``, the dynamically
1078generated task would be as follows: 1075generated task would be as follows::
1079::
1080 1076
1081 do_image_ext4 1077 do_image_ext4
1082 1078
@@ -1478,8 +1474,7 @@ cross-compiler that is used internally within BitBake only.
1478 gcc-cross 1474 gcc-cross
1479 . 1475 .
1480 1476
1481The chain of events that occurs when the standard toolchain is bootstrapped: 1477The chain of events that occurs when the standard toolchain is bootstrapped::
1482::
1483 1478
1484 binutils-cross -> linux-libc-headers -> gcc-cross -> libgcc-initial -> glibc -> libgcc -> gcc-runtime 1479 binutils-cross -> linux-libc-headers -> gcc-cross -> libgcc-initial -> glibc -> libgcc -> gcc-runtime
1485 1480
@@ -1528,8 +1523,7 @@ might not be the same machine as the Build Host.
1528 can take advantage of pre-built images that ship with the Yocto 1523 can take advantage of pre-built images that ship with the Yocto
1529 Project and already contain cross-development toolchain installers. 1524 Project and already contain cross-development toolchain installers.
1530 1525
1531Here is the bootstrap process for the relocatable toolchain: 1526Here is the bootstrap process for the relocatable toolchain::
1532::
1533 1527
1534 gcc -> binutils-crosssdk -> gcc-crosssdk-initial -> linux-libc-headers -> glibc-initial -> nativesdk-glibc -> gcc-crosssdk -> gcc-cross-canadian 1528 gcc -> binutils-crosssdk -> gcc-crosssdk-initial -> linux-libc-headers -> glibc-initial -> nativesdk-glibc -> gcc-crosssdk -> gcc-cross-canadian
1535 1529
@@ -1703,8 +1697,7 @@ to the task.
1703 1697
1704Like the ``WORKDIR`` case, situations exist where dependencies should be 1698Like the ``WORKDIR`` case, situations exist where dependencies should be
1705ignored. For these situations, you can instruct the build process to 1699ignored. For these situations, you can instruct the build process to
1706ignore a dependency by using a line like the following: 1700ignore a dependency by using a line like the following::
1707::
1708 1701
1709 PACKAGE_ARCHS[vardepsexclude] = "MACHINE" 1702 PACKAGE_ARCHS[vardepsexclude] = "MACHINE"
1710 1703
@@ -1714,8 +1707,7 @@ reference it.
1714 1707
1715Equally, there are cases where you need to add dependencies BitBake is 1708Equally, there are cases where you need to add dependencies BitBake is
1716not able to find. You can accomplish this by using a line like the 1709not able to find. You can accomplish this by using a line like the
1717following: 1710following::
1718::
1719 1711
1720 PACKAGE_ARCHS[vardeps] = "MACHINE" 1712 PACKAGE_ARCHS[vardeps] = "MACHINE"
1721 1713
@@ -1745,8 +1737,7 @@ and the dependent task hashes can be influenced. Within the BitBake
1745configuration file, you can give BitBake some extra information to help 1737configuration file, you can give BitBake some extra information to help
1746it construct the basehash. The following statement effectively results 1738it construct the basehash. The following statement effectively results
1747in a list of global variable dependency excludes (i.e. variables never 1739in a list of global variable dependency excludes (i.e. variables never
1748included in any checksum): 1740included in any checksum)::
1749::
1750 1741
1751 BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR \\ 1742 BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR \\
1752 SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM \\ 1743 SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM \\
@@ -1771,8 +1762,7 @@ desired. This file defines the two basic signature generators
1771"OEBasicHash". By default, a dummy "noop" signature handler is enabled 1762"OEBasicHash". By default, a dummy "noop" signature handler is enabled
1772in BitBake. This means that behavior is unchanged from previous 1763in BitBake. This means that behavior is unchanged from previous
1773versions. OE-Core uses the "OEBasicHash" signature handler by default 1764versions. OE-Core uses the "OEBasicHash" signature handler by default
1774through this setting in the ``bitbake.conf`` file: 1765through this setting in the ``bitbake.conf`` file::
1775::
1776 1766
1777 BB_SIGNATURE_HANDLER ?= "OEBasicHash" 1767 BB_SIGNATURE_HANDLER ?= "OEBasicHash"
1778 1768
@@ -1826,8 +1816,7 @@ The Yocto Project team has tried to keep the details of the
1826implementation hidden in ``sstate`` class. From a user's perspective, 1816implementation hidden in ``sstate`` class. From a user's perspective,
1827adding shared state wrapping to a task is as simple as this 1817adding shared state wrapping to a task is as simple as this
1828:ref:`ref-tasks-deploy` example taken 1818:ref:`ref-tasks-deploy` example taken
1829from the :ref:`deploy <ref-classes-deploy>` class: 1819from the :ref:`deploy <ref-classes-deploy>` class::
1830::
1831 1820
1832 DEPLOYDIR = "${WORKDIR}/deploy-${PN}" 1821 DEPLOYDIR = "${WORKDIR}/deploy-${PN}"
1833 SSTATETASKS += "do_deploy" 1822 SSTATETASKS += "do_deploy"
@@ -1871,8 +1860,7 @@ The following list explains the previous example:
1871 instead, skipping the ``do_deploy`` task. 1860 instead, skipping the ``do_deploy`` task.
1872 1861
1873- The following task definition is glue logic needed to make the 1862- The following task definition is glue logic needed to make the
1874 previous settings effective: 1863 previous settings effective::
1875 ::
1876 1864
1877 python do_deploy_setscene () { 1865 python do_deploy_setscene () {
1878 sstate_setscene(d) 1866 sstate_setscene(d)
@@ -1898,8 +1886,7 @@ The following list explains the previous example:
1898 In cases where ``sstate-inputdirs`` and ``sstate-outputdirs`` would be 1886 In cases where ``sstate-inputdirs`` and ``sstate-outputdirs`` would be
1899 the same, you can use ``sstate-plaindirs``. For example, to preserve the 1887 the same, you can use ``sstate-plaindirs``. For example, to preserve the
1900 ${:term:`PKGD`} and ${:term:`PKGDEST`} output from the ``do_package`` 1888 ${:term:`PKGD`} and ${:term:`PKGDEST`} output from the ``do_package``
1901 task, use the following: 1889 task, use the following::
1902 ::
1903 1890
1904 do_package[sstate-plaindirs] = "${PKGD} ${PKGDEST}" 1891 do_package[sstate-plaindirs] = "${PKGD} ${PKGDEST}"
1905 1892
@@ -1917,24 +1904,21 @@ The following list explains the previous example:
1917 multiple directories. For example, the following declares 1904 multiple directories. For example, the following declares
1918 ``PKGDESTWORK`` and ``SHLIBWORK`` as shared state input directories, 1905 ``PKGDESTWORK`` and ``SHLIBWORK`` as shared state input directories,
1919 which populates the shared state cache, and ``PKGDATA_DIR`` and 1906 which populates the shared state cache, and ``PKGDATA_DIR`` and
1920 ``SHLIBSDIR`` as the corresponding shared state output directories: 1907 ``SHLIBSDIR`` as the corresponding shared state output directories::
1921 ::
1922 1908
1923 do_package[sstate-inputdirs] = "${PKGDESTWORK} ${SHLIBSWORKDIR}" 1909 do_package[sstate-inputdirs] = "${PKGDESTWORK} ${SHLIBSWORKDIR}"
1924 do_package[sstate-outputdirs] = "${PKGDATA_DIR} ${SHLIBSDIR}" 1910 do_package[sstate-outputdirs] = "${PKGDATA_DIR} ${SHLIBSDIR}"
1925 1911
1926- These methods also include the ability to take a lockfile when 1912- These methods also include the ability to take a lockfile when
1927 manipulating shared state directory structures, for cases where file 1913 manipulating shared state directory structures, for cases where file
1928 additions or removals are sensitive: 1914 additions or removals are sensitive::
1929 ::
1930 1915
1931 do_package[sstate-lockfile] = "${PACKAGELOCK}" 1916 do_package[sstate-lockfile] = "${PACKAGELOCK}"
1932 1917
1933Behind the scenes, the shared state code works by looking in 1918Behind the scenes, the shared state code works by looking in
1934:term:`SSTATE_DIR` and 1919:term:`SSTATE_DIR` and
1935:term:`SSTATE_MIRRORS` for 1920:term:`SSTATE_MIRRORS` for
1936shared state files. Here is an example: 1921shared state files. Here is an example::
1937::
1938 1922
1939 SSTATE_MIRRORS ?= "\ 1923 SSTATE_MIRRORS ?= "\
1940 file://.\* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \ 1924 file://.\* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \
@@ -2116,8 +2100,7 @@ accomplished using fakeroot.
2116 under fakeroot. Otherwise, the task cannot run root-only operations, 2100 under fakeroot. Otherwise, the task cannot run root-only operations,
2117 and cannot see the fake file ownership and permissions set by the 2101 and cannot see the fake file ownership and permissions set by the
2118 other task. You need to also add a dependency on 2102 other task. You need to also add a dependency on
2119 ``virtual/fakeroot-native:do_populate_sysroot``, giving the following: 2103 ``virtual/fakeroot-native:do_populate_sysroot``, giving the following::
2120 ::
2121 2104
2122 fakeroot do_mytask () { 2105 fakeroot do_mytask () {
2123 ... 2106 ...
diff --git a/documentation/overview-manual/development-environment.rst b/documentation/overview-manual/development-environment.rst
index a33f89e4fa..1decf01e43 100644
--- a/documentation/overview-manual/development-environment.rst
+++ b/documentation/overview-manual/development-environment.rst
@@ -430,8 +430,7 @@ local working area (also called a branch) that tracks a specific
430development branch from the upstream source Git repository. in other 430development branch from the upstream source Git repository. in other
431words, you can define your local Git environment to work on any 431words, you can define your local Git environment to work on any
432development branch in the repository. To help illustrate, consider the 432development branch in the repository. To help illustrate, consider the
433following example Git commands: 433following example Git commands::
434::
435 434
436 $ cd ~ 435 $ cd ~
437 $ git clone git://git.yoctoproject.org/poky 436 $ git clone git://git.yoctoproject.org/poky
@@ -476,8 +475,7 @@ create and checkout a local working Git branch based on a tag name. When
476you do this, you get a snapshot of the Git repository that reflects the 475you do this, you get a snapshot of the Git repository that reflects the
477state of the files when the change was made associated with that tag. 476state of the files when the change was made associated with that tag.
478The most common use is to checkout a working branch that matches a 477The most common use is to checkout a working branch that matches a
479specific Yocto Project release. Here is an example: 478specific Yocto Project release. Here is an example::
480::
481 479
482 $ cd ~ 480 $ cd ~
483 $ git clone git://git.yoctoproject.org/poky 481 $ git clone git://git.yoctoproject.org/poky
diff --git a/documentation/ref-manual/classes.rst b/documentation/ref-manual/classes.rst
index 52a50faf67..9a1fc2c93f 100644
--- a/documentation/ref-manual/classes.rst
+++ b/documentation/ref-manual/classes.rst
@@ -168,8 +168,7 @@ example use for this class.
168 the "subpath" parameter limits the checkout to a specific subpath 168 the "subpath" parameter limits the checkout to a specific subpath
169 of the tree. Here is an example where ``${BP}`` is used so that the files 169 of the tree. Here is an example where ``${BP}`` is used so that the files
170 are extracted into the subdirectory expected by the default value of 170 are extracted into the subdirectory expected by the default value of
171 ``S``: 171 ``S``::
172 ::
173 172
174 SRC_URI = "git://example.com/downloads/somepackage.rpm;subpath=${BP}" 173 SRC_URI = "git://example.com/downloads/somepackage.rpm;subpath=${BP}"
175 174
@@ -221,8 +220,7 @@ each recipe you wish to blacklist. Specify the :term:`PN`
221value as a variable flag (varflag) and provide a reason, which is 220value as a variable flag (varflag) and provide a reason, which is
222reported, if the package is requested to be built as the value. For 221reported, if the package is requested to be built as the value. For
223example, if you want to blacklist a recipe called "exoticware", you add 222example, if you want to blacklist a recipe called "exoticware", you add
224the following to your ``local.conf`` or distribution configuration: 223the following to your ``local.conf`` or distribution configuration::
225::
226 224
227 INHERIT += "blacklist" 225 INHERIT += "blacklist"
228 PNBLACKLIST[exoticware] = "Not supported by our organization." 226 PNBLACKLIST[exoticware] = "Not supported by our organization."
@@ -470,8 +468,7 @@ information about using ``devshell``.
470The ``devupstream`` class uses 468The ``devupstream`` class uses
471:term:`BBCLASSEXTEND` to add a variant of the 469:term:`BBCLASSEXTEND` to add a variant of the
472recipe that fetches from an alternative URI (e.g. Git) instead of a 470recipe that fetches from an alternative URI (e.g. Git) instead of a
473tarball. Following is an example: 471tarball. Following is an example::
474::
475 472
476 BBCLASSEXTEND = "devupstream:target" 473 BBCLASSEXTEND = "devupstream:target"
477 SRC_URI_class-devupstream = "git://git.example.com/example" 474 SRC_URI_class-devupstream = "git://git.example.com/example"
@@ -481,8 +478,7 @@ Adding the above statements to your recipe creates a variant that has
481:term:`DEFAULT_PREFERENCE` set to "-1". 478:term:`DEFAULT_PREFERENCE` set to "-1".
482Consequently, you need to select the variant of the recipe to use it. 479Consequently, you need to select the variant of the recipe to use it.
483Any development-specific adjustments can be done by using the 480Any development-specific adjustments can be done by using the
484``class-devupstream`` override. Here is an example: 481``class-devupstream`` override. Here is an example::
485::
486 482
487 DEPENDS_append_class-devupstream = " gperf-native" 483 DEPENDS_append_class-devupstream = " gperf-native"
488 do_configure_prepend_class-devupstream() { 484 do_configure_prepend_class-devupstream() {
@@ -544,8 +540,7 @@ By default, this class expects the source code to support recipe builds
544that use the :term:`B` variable to point to the directory in 540that use the :term:`B` variable to point to the directory in
545which the OpenEmbedded build system places the generated objects built 541which the OpenEmbedded build system places the generated objects built
546from the recipes. By default, the ``B`` directory is set to the 542from the recipes. By default, the ``B`` directory is set to the
547following, which is separate from the source directory (``S``): 543following, which is separate from the source directory (``S``)::
548::
549 544
550 ${WORKDIR}/${BPN}/{PV}/ 545 ${WORKDIR}/${BPN}/{PV}/
551 546
@@ -581,8 +576,7 @@ be performed using the
581 useradd 576 useradd
582 class to add user and group configuration to a specific recipe. 577 class to add user and group configuration to a specific recipe.
583 578
584Here is an example that uses this class in an image recipe: 579Here is an example that uses this class in an image recipe::
585::
586 580
587 inherit extrausers 581 inherit extrausers
588 EXTRA_USERS_PARAMS = "\ 582 EXTRA_USERS_PARAMS = "\
@@ -595,8 +589,7 @@ Here is an example that uses this class in an image recipe:
595 " 589 "
596 590
597Here is an example that adds two users named "tester-jim" and "tester-sue" and assigns 591Here is an example that adds two users named "tester-jim" and "tester-sue" and assigns
598passwords: 592passwords::
599::
600 593
601 inherit extrausers 594 inherit extrausers
602 EXTRA_USERS_PARAMS = "\ 595 EXTRA_USERS_PARAMS = "\
@@ -604,8 +597,7 @@ passwords:
604 useradd -P tester01 tester-sue; \ 597 useradd -P tester01 tester-sue; \
605 " 598 "
606 599
607Finally, here is an example that sets the root password to "1876*18": 600Finally, here is an example that sets the root password to "1876*18"::
608::
609 601
610 inherit extrausers 602 inherit extrausers
611 EXTRA_USERS_PARAMS = "\ 603 EXTRA_USERS_PARAMS = "\
@@ -867,8 +859,7 @@ system need to either inherit the ``icecc`` class or nobody should.
867At the distribution level, you can inherit the ``icecc`` class to be 859At the distribution level, you can inherit the ``icecc`` class to be
868sure that all builders start with the same sstate signatures. After 860sure that all builders start with the same sstate signatures. After
869inheriting the class, you can then disable the feature by setting the 861inheriting the class, you can then disable the feature by setting the
870:term:`ICECC_DISABLED` variable to "1" as follows: 862:term:`ICECC_DISABLED` variable to "1" as follows::
871::
872 863
873 INHERIT_DISTRO_append = " icecc" 864 INHERIT_DISTRO_append = " icecc"
874 ICECC_DISABLED ??= "1" 865 ICECC_DISABLED ??= "1"
@@ -876,8 +867,7 @@ inheriting the class, you can then disable the feature by setting the
876This practice 867This practice
877makes sure everyone is using the same signatures but also requires 868makes sure everyone is using the same signatures but also requires
878individuals that do want to use Icecream to enable the feature 869individuals that do want to use Icecream to enable the feature
879individually as follows in your ``local.conf`` file: 870individually as follows in your ``local.conf`` file::
880::
881 871
882 ICECC_DISABLED = "" 872 ICECC_DISABLED = ""
883 873
@@ -925,8 +915,7 @@ types.
925 915
926By default, the :ref:`image <ref-classes-image>` class automatically 916By default, the :ref:`image <ref-classes-image>` class automatically
927enables the ``image_types`` class. The ``image`` class uses the 917enables the ``image_types`` class. The ``image`` class uses the
928``IMGCLASSES`` variable as follows: 918``IMGCLASSES`` variable as follows::
929::
930 919
931 IMGCLASSES = "rootfs_${IMAGE_PKGTYPE} image_types ${IMAGE_CLASSES}" 920 IMGCLASSES = "rootfs_${IMAGE_PKGTYPE} image_types ${IMAGE_CLASSES}"
932 IMGCLASSES += "${@['populate_sdk_base', 'populate_sdk_ext']['linux' in d.getVar("SDK_OS")]}" 921 IMGCLASSES += "${@['populate_sdk_base', 'populate_sdk_ext']['linux' in d.getVar("SDK_OS")]}"
@@ -968,8 +957,7 @@ during the :ref:`ref-tasks-rootfs` task, which optimizes
968the size of libraries contained in the image. 957the size of libraries contained in the image.
969 958
970By default, the class is enabled in the ``local.conf.template`` using 959By default, the class is enabled in the ``local.conf.template`` using
971the :term:`USER_CLASSES` variable as follows: 960the :term:`USER_CLASSES` variable as follows::
972::
973 961
974 USER_CLASSES ?= "buildstats image-mklibs image-prelink" 962 USER_CLASSES ?= "buildstats image-mklibs image-prelink"
975 963
@@ -984,8 +972,7 @@ the dynamic linking of shared libraries to reduce executable startup
984time. 972time.
985 973
986By default, the class is enabled in the ``local.conf.template`` using 974By default, the class is enabled in the ``local.conf.template`` using
987the :term:`USER_CLASSES` variable as follows: 975the :term:`USER_CLASSES` variable as follows::
988::
989 976
990 USER_CLASSES ?= "buildstats image-mklibs image-prelink" 977 USER_CLASSES ?= "buildstats image-mklibs image-prelink"
991 978
@@ -1014,8 +1001,7 @@ configuration). However, to skip one or more checks in recipes, you
1014should use :term:`INSANE_SKIP`. For example, to skip 1001should use :term:`INSANE_SKIP`. For example, to skip
1015the check for symbolic link ``.so`` files in the main package of a 1002the check for symbolic link ``.so`` files in the main package of a
1016recipe, add the following to the recipe. You need to realize that the 1003recipe, add the following to the recipe. You need to realize that the
1017package name override, in this example ``${PN}``, must be used: 1004package name override, in this example ``${PN}``, must be used::
1018::
1019 1005
1020 INSANE_SKIP_${PN} += "dev-so" 1006 INSANE_SKIP_${PN} += "dev-so"
1021 1007
@@ -1152,8 +1138,7 @@ The following list shows the tests you can list with the ``WARN_QA`` and
1152 1138
1153- ``invalid-packageconfig:`` Checks that no undefined features are 1139- ``invalid-packageconfig:`` Checks that no undefined features are
1154 being added to :term:`PACKAGECONFIG`. For 1140 being added to :term:`PACKAGECONFIG`. For
1155 example, any name "foo" for which the following form does not exist: 1141 example, any name "foo" for which the following form does not exist::
1156 ::
1157 1142
1158 PACKAGECONFIG[foo] = "..." 1143 PACKAGECONFIG[foo] = "..."
1159 1144
@@ -1636,8 +1621,7 @@ a couple different ways:
1636 .. note:: 1621 .. note::
1637 1622
1638 When creating a recipe this way, the recipe name must follow this 1623 When creating a recipe this way, the recipe name must follow this
1639 naming convention: 1624 naming convention::
1640 ::
1641 1625
1642 myrecipe-native.bb 1626 myrecipe-native.bb
1643 1627
@@ -1645,8 +1629,7 @@ a couple different ways:
1645 Not using this naming convention can lead to subtle problems 1629 Not using this naming convention can lead to subtle problems
1646 caused by existing code that depends on that naming convention. 1630 caused by existing code that depends on that naming convention.
1647 1631
1648- Create or modify a target recipe that contains the following: 1632- Create or modify a target recipe that contains the following::
1649 ::
1650 1633
1651 BBCLASSEXTEND = "native" 1634 BBCLASSEXTEND = "native"
1652 1635
@@ -1677,8 +1660,7 @@ couple different ways:
1677 inherit statement in the recipe after all other inherit statements so 1660 inherit statement in the recipe after all other inherit statements so
1678 that the ``nativesdk`` class is inherited last. 1661 that the ``nativesdk`` class is inherited last.
1679 1662
1680- Create a ``nativesdk`` variant of any recipe by adding the following: 1663- Create a ``nativesdk`` variant of any recipe by adding the following::
1681 ::
1682 1664
1683 BBCLASSEXTEND = "nativesdk" 1665 BBCLASSEXTEND = "nativesdk"
1684 1666
@@ -1689,8 +1671,7 @@ couple different ways:
1689 1671
1690.. note:: 1672.. note::
1691 1673
1692 When creating a recipe, you must follow this naming convention: 1674 When creating a recipe, you must follow this naming convention::
1693 ::
1694 1675
1695 nativesdk-myrecipe.bb 1676 nativesdk-myrecipe.bb
1696 1677
@@ -1753,8 +1734,7 @@ before attempting to fetch it from the upstream specified in
1753:term:`SRC_URI` within each recipe. 1734:term:`SRC_URI` within each recipe.
1754 1735
1755To use this class, inherit it globally and specify 1736To use this class, inherit it globally and specify
1756:term:`SOURCE_MIRROR_URL`. Here is an example: 1737:term:`SOURCE_MIRROR_URL`. Here is an example::
1757::
1758 1738
1759 INHERIT += "own-mirrors" 1739 INHERIT += "own-mirrors"
1760 SOURCE_MIRROR_URL = "http://example.com/my-source-mirror" 1740 SOURCE_MIRROR_URL = "http://example.com/my-source-mirror"
@@ -2017,8 +1997,7 @@ established and then populates the SDK. After populating the SDK, the
2017contains the cross-compiler and associated tooling, and the target, 1997contains the cross-compiler and associated tooling, and the target,
2018which contains a target root filesystem that is configured for the SDK 1998which contains a target root filesystem that is configured for the SDK
2019usage. These two images reside in :term:`SDK_OUTPUT`, 1999usage. These two images reside in :term:`SDK_OUTPUT`,
2020which consists of the following: 2000which consists of the following::
2021::
2022 2001
2023 ${SDK_OUTPUT}/${SDK_ARCH}-nativesdk-pkgs 2002 ${SDK_OUTPUT}/${SDK_ARCH}-nativesdk-pkgs
2024 ${SDK_OUTPUT}/${SDKTARGETSYSROOT}/target-pkgs 2003 ${SDK_OUTPUT}/${SDKTARGETSYSROOT}/target-pkgs
@@ -2180,8 +2159,7 @@ installed by ``libtool``. Removing these files results in them being
2180absent from both the sysroot and target packages. 2159absent from both the sysroot and target packages.
2181 2160
2182If a recipe needs the ``.la`` files to be installed, then the recipe can 2161If a recipe needs the ``.la`` files to be installed, then the recipe can
2183override the removal by setting ``REMOVE_LIBTOOL_LA`` to "0" as follows: 2162override the removal by setting ``REMOVE_LIBTOOL_LA`` to "0" as follows::
2184::
2185 2163
2186 REMOVE_LIBTOOL_LA = "0" 2164 REMOVE_LIBTOOL_LA = "0"
2187 2165
@@ -2231,8 +2209,7 @@ recipe, enabling ``rm_work`` will potentially result in your changes to
2231the source being lost. To exclude some recipes from having their work 2209the source being lost. To exclude some recipes from having their work
2232directories deleted by ``rm_work``, you can add the names of the recipe 2210directories deleted by ``rm_work``, you can add the names of the recipe
2233or recipes you are working on to the ``RM_WORK_EXCLUDE`` variable, which 2211or recipes you are working on to the ``RM_WORK_EXCLUDE`` variable, which
2234can also be set in your ``local.conf`` file. Here is an example: 2212can also be set in your ``local.conf`` file. Here is an example::
2235::
2236 2213
2237 RM_WORK_EXCLUDE += "busybox glibc" 2214 RM_WORK_EXCLUDE += "busybox glibc"
2238 2215
@@ -2531,8 +2508,7 @@ You should set :term:`SYSTEMD_SERVICE` to the
2531name of the service file. You should also use a package name override to 2508name of the service file. You should also use a package name override to
2532indicate the package to which the value applies. If the value applies to 2509indicate the package to which the value applies. If the value applies to
2533the recipe's main package, use ``${``\ :term:`PN`\ ``}``. Here 2510the recipe's main package, use ``${``\ :term:`PN`\ ``}``. Here
2534is an example from the connman recipe: 2511is an example from the connman recipe::
2535::
2536 2512
2537 SYSTEMD_SERVICE_${PN} = "connman.service" 2513 SYSTEMD_SERVICE_${PN} = "connman.service"
2538 2514
@@ -2608,8 +2584,7 @@ The tests are commands that run on the target system over ``ssh``. Each
2608test is written in Python and makes use of the ``unittest`` module. 2584test is written in Python and makes use of the ``unittest`` module.
2609 2585
2610The ``testimage.bbclass`` runs tests on an image when called using the 2586The ``testimage.bbclass`` runs tests on an image when called using the
2611following: 2587following::
2612::
2613 2588
2614 $ bitbake -c testimage image 2589 $ bitbake -c testimage image
2615 2590
@@ -2628,8 +2603,7 @@ section in the Yocto Project Development Tasks Manual.
2628 2603
2629This class supports running automated tests against software development 2604This class supports running automated tests against software development
2630kits (SDKs). The ``testsdk`` class runs tests on an SDK when called 2605kits (SDKs). The ``testsdk`` class runs tests on an SDK when called
2631using the following: 2606using the following::
2632::
2633 2607
2634 $ bitbake -c testsdk image 2608 $ bitbake -c testsdk image
2635 2609
@@ -2684,8 +2658,7 @@ the environment for installed SDKs.
2684The ``typecheck`` class provides support for validating the values of 2658The ``typecheck`` class provides support for validating the values of
2685variables set at the configuration level against their defined types. 2659variables set at the configuration level against their defined types.
2686The OpenEmbedded build system allows you to define the type of a 2660The OpenEmbedded build system allows you to define the type of a
2687variable using the "type" varflag. Here is an example: 2661variable using the "type" varflag. Here is an example::
2688::
2689 2662
2690 IMAGE_FEATURES[type] = "list" 2663 IMAGE_FEATURES[type] = "list"
2691 2664
@@ -2695,14 +2668,12 @@ variable using the "type" varflag. Here is an example:
2695======================== 2668========================
2696 2669
2697The ``uboot-config`` class provides support for U-Boot configuration for 2670The ``uboot-config`` class provides support for U-Boot configuration for
2698a machine. Specify the machine in your recipe as follows: 2671a machine. Specify the machine in your recipe as follows::
2699::
2700 2672
2701 UBOOT_CONFIG ??= <default> 2673 UBOOT_CONFIG ??= <default>
2702 UBOOT_CONFIG[foo] = "config,images" 2674 UBOOT_CONFIG[foo] = "config,images"
2703 2675
2704You can also specify the machine using this method: 2676You can also specify the machine using this method::
2705::
2706 2677
2707 UBOOT_MACHINE = "config" 2678 UBOOT_MACHINE = "config"
2708 2679
diff --git a/documentation/ref-manual/devtool-reference.rst b/documentation/ref-manual/devtool-reference.rst
index 629aa2ffb9..0ce3219831 100644
--- a/documentation/ref-manual/devtool-reference.rst
+++ b/documentation/ref-manual/devtool-reference.rst
@@ -22,8 +22,7 @@ Getting Help
22 22
23The ``devtool`` command line is organized similarly to Git in that it 23The ``devtool`` command line is organized similarly to Git in that it
24has a number of sub-commands for each function. You can run 24has a number of sub-commands for each function. You can run
25``devtool --help`` to see all the commands: 25``devtool --help`` to see all the commands::
26::
27 26
28 $ devtool -h 27 $ devtool -h
29 NOTE: Starting bitbake server... 28 NOTE: Starting bitbake server...
@@ -79,8 +78,7 @@ has a number of sub-commands for each function. You can run
79 78
80As directed in the general help output, you can 79As directed in the general help output, you can
81get more syntax on a specific command by providing the command name and 80get more syntax on a specific command by providing the command name and
82using "--help": 81using "--help"::
83::
84 82
85 $ devtool add --help 83 $ devtool add --help
86 NOTE: Starting bitbake server... 84 NOTE: Starting bitbake server...
@@ -172,8 +170,7 @@ you. The source files the recipe uses should exist in an external area.
172 170
173The following example creates and adds a new recipe named ``jackson`` to 171The following example creates and adds a new recipe named ``jackson`` to
174a workspace layer the tool creates. The source code built by the recipes 172a workspace layer the tool creates. The source code built by the recipes
175resides in ``/home/user/sources/jackson``: 173resides in ``/home/user/sources/jackson``::
176::
177 174
178 $ devtool add jackson /home/user/sources/jackson 175 $ devtool add jackson /home/user/sources/jackson
179 176
@@ -201,8 +198,7 @@ unpacking files from a remote URI. In some cases, you might want to
201specify a source revision by branch, tag, or commit hash. You can 198specify a source revision by branch, tag, or commit hash. You can
202specify these options when using the ``devtool add`` command: 199specify these options when using the ``devtool add`` command:
203 200
204- To specify a source branch, use the ``--srcbranch`` option: 201- To specify a source branch, use the ``--srcbranch`` option::
205 ::
206 202
207 $ devtool add --srcbranch &DISTRO_NAME_NO_CAP; jackson /home/user/sources/jackson 203 $ devtool add --srcbranch &DISTRO_NAME_NO_CAP; jackson /home/user/sources/jackson
208 204
@@ -210,8 +206,7 @@ specify these options when using the ``devtool add`` command:
210 branch. 206 branch.
211 207
212- To specify a specific tag or commit hash, use the ``--srcrev`` 208- To specify a specific tag or commit hash, use the ``--srcrev``
213 option: 209 option::
214 ::
215 210
216 $ devtool add --srcrev &DISTRO_REL_TAG; jackson /home/user/sources/jackson 211 $ devtool add --srcrev &DISTRO_REL_TAG; jackson /home/user/sources/jackson
217 $ devtool add --srcrev some_commit_hash /home/user/sources/jackson 212 $ devtool add --srcrev some_commit_hash /home/user/sources/jackson
@@ -269,8 +264,7 @@ The ``devtool modify`` command extracts the source for a recipe, sets it
269up as a Git repository if the source had not already been fetched from 264up as a Git repository if the source had not already been fetched from
270Git, checks out a branch for development, and applies any patches from 265Git, checks out a branch for development, and applies any patches from
271the recipe as commits on top. You can use the following command to 266the recipe as commits on top. You can use the following command to
272checkout the source files: 267checkout the source files::
273::
274 268
275 $ devtool modify recipe 269 $ devtool modify recipe
276 270
@@ -309,8 +303,7 @@ compile, and test the code.
309 303
310When you are satisfied with the results and you have committed your 304When you are satisfied with the results and you have committed your
311changes to the Git repository, you can then run the 305changes to the Git repository, you can then run the
312``devtool update-recipe`` to create the patches and update the recipe: 306``devtool update-recipe`` to create the patches and update the recipe::
313::
314 307
315 $ devtool update-recipe recipe 308 $ devtool update-recipe recipe
316 309
@@ -321,8 +314,7 @@ Often, you might want to apply customizations made to your software in
321your own layer rather than apply them to the original recipe. If so, you 314your own layer rather than apply them to the original recipe. If so, you
322can use the ``-a`` or ``--append`` option with the 315can use the ``-a`` or ``--append`` option with the
323``devtool update-recipe`` command. These options allow you to specify 316``devtool update-recipe`` command. These options allow you to specify
324the layer into which to write an append file: 317the layer into which to write an append file::
325::
326 318
327 $ devtool update-recipe recipe -a base-layer-directory 319 $ devtool update-recipe recipe -a base-layer-directory
328 320
@@ -358,8 +350,7 @@ particular recipe.
358 recipe's latest version tag. 350 recipe's latest version tag.
359 351
360As with all ``devtool`` commands, you can get help on the individual 352As with all ``devtool`` commands, you can get help on the individual
361command: 353command::
362::
363 354
364 $ devtool check-upgrade-status -h 355 $ devtool check-upgrade-status -h
365 NOTE: Starting bitbake server... 356 NOTE: Starting bitbake server...
@@ -462,8 +453,7 @@ files have been modified, the command preserves the modified files in a
462separate "attic" subdirectory under the workspace layer. 453separate "attic" subdirectory under the workspace layer.
463 454
464Here is an example that resets the workspace directory that contains the 455Here is an example that resets the workspace directory that contains the
465``mtr`` recipe: 456``mtr`` recipe::
466::
467 457
468 $ devtool reset mtr 458 $ devtool reset mtr
469 NOTE: Cleaning sysroot for recipe mtr... 459 NOTE: Cleaning sysroot for recipe mtr...
@@ -482,8 +472,7 @@ Use the ``devtool build`` command to build your recipe. The
482When you use the ``devtool build`` command, you must supply the root 472When you use the ``devtool build`` command, you must supply the root
483name of the recipe (i.e. do not provide versions, paths, or extensions). 473name of the recipe (i.e. do not provide versions, paths, or extensions).
484You can use either the "-s" or the "--disable-parallel-make" options to 474You can use either the "-s" or the "--disable-parallel-make" options to
485disable parallel makes during the build. Here is an example: 475disable parallel makes during the build. Here is an example::
486::
487 476
488 $ devtool build recipe 477 $ devtool build recipe
489 478
@@ -499,8 +488,7 @@ device for testing. For proper integration into a final image, you need
499to edit your custom image recipe appropriately. 488to edit your custom image recipe appropriately.
500 489
501When you use the ``devtool build-image`` command, you must supply the 490When you use the ``devtool build-image`` command, you must supply the
502name of the image. This command has no command line options: 491name of the image. This command has no command line options::
503::
504 492
505 $ devtool build-image image 493 $ devtool build-image image
506 494
@@ -510,8 +498,7 @@ Deploying Your Software on the Target Machine
510============================================= 498=============================================
511 499
512Use the ``devtool deploy-target`` command to deploy the recipe's build 500Use the ``devtool deploy-target`` command to deploy the recipe's build
513output to the live target machine: 501output to the live target machine::
514::
515 502
516 $ devtool deploy-target recipe target 503 $ devtool deploy-target recipe target
517 504
@@ -582,15 +569,13 @@ new workspace layer, it is populated with the ``README`` file and the
582``conf`` directory only. 569``conf`` directory only.
583 570
584The following example creates a new workspace layer in your current 571The following example creates a new workspace layer in your current
585working and by default names the workspace layer "workspace": 572working and by default names the workspace layer "workspace"::
586::
587 573
588 $ devtool create-workspace 574 $ devtool create-workspace
589 575
590You can create a workspace layer anywhere by supplying a pathname with 576You can create a workspace layer anywhere by supplying a pathname with
591the command. The following command creates a new workspace layer named 577the command. The following command creates a new workspace layer named
592"new-workspace": 578"new-workspace"::
593::
594 579
595 $ devtool create-workspace /home/scottrif/new-workspace 580 $ devtool create-workspace /home/scottrif/new-workspace
596 581
@@ -603,15 +588,13 @@ Use the ``devtool status`` command to list the recipes currently in your
603workspace. Information includes the paths to their respective external 588workspace. Information includes the paths to their respective external
604source trees. 589source trees.
605 590
606The ``devtool status`` command has no command-line options: 591The ``devtool status`` command has no command-line options::
607::
608 592
609 $ devtool status 593 $ devtool status
610 594
611Following is sample output after using 595Following is sample output after using
612:ref:`devtool add <ref-manual/devtool-reference:adding a new recipe to the workspace layer>` 596:ref:`devtool add <ref-manual/devtool-reference:adding a new recipe to the workspace layer>`
613to create and add the ``mtr_0.86.bb`` recipe to the ``workspace`` directory: 597to create and add the ``mtr_0.86.bb`` recipe to the ``workspace`` directory::
614::
615 598
616 $ devtool status 599 $ devtool status
617 mtr:/home/scottrif/poky/build/workspace/sources/mtr (/home/scottrif/poky/build/workspace/recipes/mtr/mtr_0.86.bb) 600 mtr:/home/scottrif/poky/build/workspace/sources/mtr (/home/scottrif/poky/build/workspace/recipes/mtr/mtr_0.86.bb)
diff --git a/documentation/ref-manual/faq.rst b/documentation/ref-manual/faq.rst
index a9103f83c6..e7bca829a3 100644
--- a/documentation/ref-manual/faq.rst
+++ b/documentation/ref-manual/faq.rst
@@ -209,8 +209,7 @@ section in the Yocto Project Development Tasks Manual.
209**A:** You need to create a form factor file as described in the 209**A:** You need to create a form factor file as described in the
210":ref:`bsp-guide/bsp:miscellaneous bsp-specific recipe files`" section in 210":ref:`bsp-guide/bsp:miscellaneous bsp-specific recipe files`" section in
211the Yocto Project Board Support Packages (BSP) Developer's Guide. Set 211the Yocto Project Board Support Packages (BSP) Developer's Guide. Set
212the ``HAVE_TOUCHSCREEN`` variable equal to one as follows: 212the ``HAVE_TOUCHSCREEN`` variable equal to one as follows::
213::
214 213
215 HAVE_TOUCHSCREEN=1 214 HAVE_TOUCHSCREEN=1
216 215
@@ -313,8 +312,7 @@ HTTPS requests and direct them to the ``http://`` sources mirror. You
313can use ``file://`` URLs to point to local directories or network shares 312can use ``file://`` URLs to point to local directories or network shares
314as well. 313as well.
315 314
316Aside from the previous technique, these options also exist: 315Aside from the previous technique, these options also exist::
317::
318 316
319 BB_NO_NETWORK = "1" 317 BB_NO_NETWORK = "1"
320 318
@@ -322,8 +320,7 @@ This statement tells BitBake to issue an error
322instead of trying to access the Internet. This technique is useful if 320instead of trying to access the Internet. This technique is useful if
323you want to ensure code builds only from local sources. 321you want to ensure code builds only from local sources.
324 322
325Here is another technique: 323Here is another technique::
326::
327 324
328 BB_FETCH_PREMIRRORONLY = "1" 325 BB_FETCH_PREMIRRORONLY = "1"
329 326
@@ -331,8 +328,7 @@ This statement
331limits the build system to pulling source from the ``PREMIRRORS`` only. 328limits the build system to pulling source from the ``PREMIRRORS`` only.
332Again, this technique is useful for reproducing builds. 329Again, this technique is useful for reproducing builds.
333 330
334Here is another technique: 331Here is another technique::
335::
336 332
337 BB_GENERATE_MIRROR_TARBALLS = "1" 333 BB_GENERATE_MIRROR_TARBALLS = "1"
338 334
diff --git a/documentation/ref-manual/features.rst b/documentation/ref-manual/features.rst
index 89c06eb65f..eb4947d594 100644
--- a/documentation/ref-manual/features.rst
+++ b/documentation/ref-manual/features.rst
@@ -26,8 +26,7 @@ One method you can use to determine which recipes are checking to see if
26a particular feature is contained or not is to ``grep`` through the 26a particular feature is contained or not is to ``grep`` through the
27:term:`Metadata` for the feature. Here is an example that 27:term:`Metadata` for the feature. Here is an example that
28discovers the recipes whose build is potentially changed based on a 28discovers the recipes whose build is potentially changed based on a
29given feature: 29given feature::
30::
31 30
32 $ cd poky 31 $ cd poky
33 $ git grep 'contains.*MACHINE_FEATURES.*feature' 32 $ git grep 'contains.*MACHINE_FEATURES.*feature'
diff --git a/documentation/ref-manual/images.rst b/documentation/ref-manual/images.rst
index 6b4e958a85..b2db1a7734 100644
--- a/documentation/ref-manual/images.rst
+++ b/documentation/ref-manual/images.rst
@@ -18,8 +18,7 @@ image you want.
18 are going to build an image using non-GPLv3 and similarly licensed 18 are going to build an image using non-GPLv3 and similarly licensed
19 components, you must make the following changes in the ``local.conf`` 19 components, you must make the following changes in the ``local.conf``
20 file before using the BitBake command to build the minimal or base 20 file before using the BitBake command to build the minimal or base
21 image: 21 image::
22 ::
23 22
24 1. Comment out the EXTRA_IMAGE_FEATURES line 23 1. Comment out the EXTRA_IMAGE_FEATURES line
25 2. Set INCOMPATIBLE_LICENSE = "GPL-3.0 LGPL-3.0 AGPL-3.0" 24 2. Set INCOMPATIBLE_LICENSE = "GPL-3.0 LGPL-3.0 AGPL-3.0"
diff --git a/documentation/ref-manual/kickstart.rst b/documentation/ref-manual/kickstart.rst
index b87cdc13b1..843292b528 100644
--- a/documentation/ref-manual/kickstart.rst
+++ b/documentation/ref-manual/kickstart.rst
@@ -30,8 +30,7 @@ Command: part or partition
30========================== 30==========================
31 31
32Either of these commands creates a partition on the system and uses the 32Either of these commands creates a partition on the system and uses the
33following syntax: 33following syntax::
34::
35 34
36 part [mntpoint] 35 part [mntpoint]
37 partition [mntpoint] 36 partition [mntpoint]
@@ -59,8 +58,7 @@ must also provide one of the ``--ondrive``, ``--ondisk``, or
59 versions of these application are currently excluded. 58 versions of these application are currently excluded.
60 59
61Here is an example that uses "/" as the mountpoint. The command uses 60Here is an example that uses "/" as the mountpoint. The command uses
62``--ondisk`` to force the partition onto the ``sdb`` disk: 61``--ondisk`` to force the partition onto the ``sdb`` disk::
63::
64 62
65 part / --source rootfs --ondisk sdb --fstype=ext3 --label platform --align 1024 63 part / --source rootfs --ondisk sdb --fstype=ext3 --label platform --align 1024
66 64
diff --git a/documentation/ref-manual/migration-1.3.rst b/documentation/ref-manual/migration-1.3.rst
index 7c522dc123..b90767ff90 100644
--- a/documentation/ref-manual/migration-1.3.rst
+++ b/documentation/ref-manual/migration-1.3.rst
@@ -181,8 +181,7 @@ Linux Kernel Naming
181------------------- 181-------------------
182 182
183The naming scheme for kernel output binaries has been changed to now 183The naming scheme for kernel output binaries has been changed to now
184include :term:`PE` as part of the filename: 184include :term:`PE` as part of the filename::
185::
186 185
187 KERNEL_IMAGE_BASE_NAME ?= "${KERNEL_IMAGETYPE}-${PE}-${PV}-${PR}-${MACHINE}-${DATETIME}" 186 KERNEL_IMAGE_BASE_NAME ?= "${KERNEL_IMAGETYPE}-${PE}-${PV}-${PR}-${MACHINE}-${DATETIME}"
188 187
diff --git a/documentation/ref-manual/migration-1.4.rst b/documentation/ref-manual/migration-1.4.rst
index f5fac7a2ac..deb848749c 100644
--- a/documentation/ref-manual/migration-1.4.rst
+++ b/documentation/ref-manual/migration-1.4.rst
@@ -40,8 +40,7 @@ Differences include the following:
40 40
41- *Shared State Code:* The shared state code has been optimized to 41- *Shared State Code:* The shared state code has been optimized to
42 avoid running unnecessary tasks. For example, the following no longer 42 avoid running unnecessary tasks. For example, the following no longer
43 populates the target sysroot since that is not necessary: 43 populates the target sysroot since that is not necessary::
44 ::
45 44
46 $ bitbake -c rootfs some-image 45 $ bitbake -c rootfs some-image
47 46
@@ -136,8 +135,7 @@ Target Package Management with RPM
136If runtime package management is enabled and the RPM backend is 135If runtime package management is enabled and the RPM backend is
137selected, Smart is now installed for package download, dependency 136selected, Smart is now installed for package download, dependency
138resolution, and upgrades instead of Zypper. For more information on how 137resolution, and upgrades instead of Zypper. For more information on how
139to use Smart, run the following command on the target: 138to use Smart, run the following command on the target::
140::
141 139
142 smart --help 140 smart --help
143 141
diff --git a/documentation/ref-manual/migration-1.6.rst b/documentation/ref-manual/migration-1.6.rst
index fe3e04d685..5a18d63103 100644
--- a/documentation/ref-manual/migration-1.6.rst
+++ b/documentation/ref-manual/migration-1.6.rst
@@ -53,8 +53,7 @@ Matching Branch Requirement for Git Fetching
53When fetching source from a Git repository using 53When fetching source from a Git repository using
54:term:`SRC_URI`, BitBake will now validate the 54:term:`SRC_URI`, BitBake will now validate the
55:term:`SRCREV` value against the branch. You can specify 55:term:`SRCREV` value against the branch. You can specify
56the branch using the following form: 56the branch using the following form::
57::
58 57
59 SRC_URI = "git://server.name/repository;branch=branchname" 58 SRC_URI = "git://server.name/repository;branch=branchname"
60 59
@@ -248,8 +247,7 @@ the ``autotools`` or ``autotools_stage``\ classes.
248 247
249``qemu-native`` now builds without SDL-based graphical output support by 248``qemu-native`` now builds without SDL-based graphical output support by
250default. The following additional lines are needed in your 249default. The following additional lines are needed in your
251``local.conf`` to enable it: 250``local.conf`` to enable it::
252::
253 251
254 PACKAGECONFIG_pn-qemu-native = "sdl" 252 PACKAGECONFIG_pn-qemu-native = "sdl"
255 ASSUME_PROVIDED += "libsdl-native" 253 ASSUME_PROVIDED += "libsdl-native"
diff --git a/documentation/ref-manual/migration-1.7.rst b/documentation/ref-manual/migration-1.7.rst
index 9cf467f28b..46bf126583 100644
--- a/documentation/ref-manual/migration-1.7.rst
+++ b/documentation/ref-manual/migration-1.7.rst
@@ -15,8 +15,7 @@ optional features. The method used to set defaults for these options
15means that existing ``local.conf`` files will need to be modified to 15means that existing ``local.conf`` files will need to be modified to
16append to ``PACKAGECONFIG`` for ``qemu-native`` and ``nativesdk-qemu`` 16append to ``PACKAGECONFIG`` for ``qemu-native`` and ``nativesdk-qemu``
17instead of setting it. In other words, to enable graphical output for 17instead of setting it. In other words, to enable graphical output for
18QEMU, you should now have these lines in ``local.conf``: 18QEMU, you should now have these lines in ``local.conf``::
19::
20 19
21 PACKAGECONFIG_append_pn-qemu-native = " sdl" 20 PACKAGECONFIG_append_pn-qemu-native = " sdl"
22 PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl" 21 PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
@@ -80,8 +79,7 @@ disable the scripts due to the scripts previously requiring error-prone
80path substitution. Software that links against these libraries using 79path substitution. Software that links against these libraries using
81these scripts should use the much more robust ``pkg-config`` instead. 80these scripts should use the much more robust ``pkg-config`` instead.
82The list of recipes changed in this version (and their configuration 81The list of recipes changed in this version (and their configuration
83scripts) is as follows: 82scripts) is as follows::
84::
85 83
86 directfb (directfb-config) 84 directfb (directfb-config)
87 freetype (freetype-config) 85 freetype (freetype-config)
diff --git a/documentation/ref-manual/migration-2.0.rst b/documentation/ref-manual/migration-2.0.rst
index 9da60dfdcb..8319b0ee36 100644
--- a/documentation/ref-manual/migration-2.0.rst
+++ b/documentation/ref-manual/migration-2.0.rst
@@ -25,8 +25,7 @@ and the porting guide at
25https://gcc.gnu.org/gcc-5/porting_to.html. 25https://gcc.gnu.org/gcc-5/porting_to.html.
26 26
27Alternatively, you can switch back to GCC 4.9 or 4.8 by setting 27Alternatively, you can switch back to GCC 4.9 or 4.8 by setting
28``GCCVERSION`` in your configuration, as follows: 28``GCCVERSION`` in your configuration, as follows::
29::
30 29
31 GCCVERSION = "4.9%" 30 GCCVERSION = "4.9%"
32 31
@@ -91,8 +90,7 @@ unlikely to require any changes to Metadata. However, these minor
91changes in behavior exist: 90changes in behavior exist:
92 91
93- All potential overrides are now visible in the variable history as 92- All potential overrides are now visible in the variable history as
94 seen when you run the following: 93 seen when you run the following::
95 ::
96 94
97 $ bitbake -e 95 $ bitbake -e
98 96
@@ -200,8 +198,7 @@ changes.
200 198
201Additionally, work directories for old versions of recipes are now 199Additionally, work directories for old versions of recipes are now
202pruned. If you wish to disable pruning old work directories, you can set 200pruned. If you wish to disable pruning old work directories, you can set
203the following variable in your configuration: 201the following variable in your configuration::
204::
205 202
206 SSTATE_PRUNE_OBSOLETEWORKDIR = "0" 203 SSTATE_PRUNE_OBSOLETEWORKDIR = "0"
207 204
diff --git a/documentation/ref-manual/migration-2.1.rst b/documentation/ref-manual/migration-2.1.rst
index 1eb9ab5525..32d193f0ff 100644
--- a/documentation/ref-manual/migration-2.1.rst
+++ b/documentation/ref-manual/migration-2.1.rst
@@ -42,8 +42,7 @@ defaulted to False if not specified. Now, however, no default exists so
42one must be specified. You must change any ``getVar()`` calls that do 42one must be specified. You must change any ``getVar()`` calls that do
43not specify the final expand parameter to calls that do specify the 43not specify the final expand parameter to calls that do specify the
44parameter. You can run the following ``sed`` command at the base of a 44parameter. You can run the following ``sed`` command at the base of a
45layer to make this change: 45layer to make this change::
46::
47 46
48 sed -e 's:\(\.getVar([^,()]*\)):\1, False):g' -i `grep -ril getVar *` 47 sed -e 's:\(\.getVar([^,()]*\)):\1, False):g' -i `grep -ril getVar *`
49 sed -e 's:\(\.getVarFlag([^,()]*,[^,()]*\)):\1, False):g' -i `grep -ril getVarFlag *` 48 sed -e 's:\(\.getVarFlag([^,()]*,[^,()]*\)):\1, False):g' -i `grep -ril getVarFlag *`
@@ -285,8 +284,7 @@ The following changes have been made for the Poky distribution:
285 Any recipe that needs to opt-out of having the "--disable-static" 284 Any recipe that needs to opt-out of having the "--disable-static"
286 option specified on the configure command line either because it is 285 option specified on the configure command line either because it is
287 not a supported option for the configure script or because static 286 not a supported option for the configure script or because static
288 libraries are needed should set the following variable: 287 libraries are needed should set the following variable::
289 ::
290 288
291 DISABLE_STATIC = "" 289 DISABLE_STATIC = ""
292 290
@@ -369,8 +367,7 @@ These additional changes exist:
369- Previously, the following list of packages were removed if 367- Previously, the following list of packages were removed if
370 package-management was not in 368 package-management was not in
371 :term:`IMAGE_FEATURES`, regardless of any 369 :term:`IMAGE_FEATURES`, regardless of any
372 dependencies: 370 dependencies::
373 ::
374 371
375 update-rc.d 372 update-rc.d
376 base-passwd 373 base-passwd
diff --git a/documentation/ref-manual/migration-2.2.rst b/documentation/ref-manual/migration-2.2.rst
index d11735163e..a9d3cde7b7 100644
--- a/documentation/ref-manual/migration-2.2.rst
+++ b/documentation/ref-manual/migration-2.2.rst
@@ -144,8 +144,7 @@ The new ``runqemu`` is a Python script. Machine knowledge is no longer
144hardcoded into ``runqemu``. You can choose to use the ``qemuboot`` 144hardcoded into ``runqemu``. You can choose to use the ``qemuboot``
145configuration file to define the BSP's own arguments and to make it 145configuration file to define the BSP's own arguments and to make it
146bootable with ``runqemu``. If you use a configuration file, use the 146bootable with ``runqemu``. If you use a configuration file, use the
147following form: 147following form::
148::
149 148
150 image-name-machine.qemuboot.conf 149 image-name-machine.qemuboot.conf
151 150
@@ -160,8 +159,7 @@ rootfs). QEMU boot arguments can be set in BSP's configuration file and
160the ``qemuboot`` class will save them to ``qemuboot.conf``. 159the ``qemuboot`` class will save them to ``qemuboot.conf``.
161 160
162If you want to use ``runqemu`` without a configuration file, use the 161If you want to use ``runqemu`` without a configuration file, use the
163following command form: 162following command form::
164::
165 163
166 $ runqemu machine rootfs kernel [options] 164 $ runqemu machine rootfs kernel [options]
167 165
@@ -244,8 +242,7 @@ recipes. You need to fix these recipes so that they use the expected
244``LDFLAGS``. Depending on how the software is built, the build system 242``LDFLAGS``. Depending on how the software is built, the build system
245used by the software (e.g. a Makefile) might need to be patched. 243used by the software (e.g. a Makefile) might need to be patched.
246However, sometimes making this fix is as simple as adding the following 244However, sometimes making this fix is as simple as adding the following
247to the recipe: 245to the recipe::
248::
249 246
250 TARGET_CC_ARCH += "${LDFLAGS}" 247 TARGET_CC_ARCH += "${LDFLAGS}"
251 248
@@ -258,8 +255,7 @@ The ``KERNEL_IMAGE_BASE_NAME`` variable no longer uses the
258:term:`KERNEL_IMAGETYPE` variable to create the 255:term:`KERNEL_IMAGETYPE` variable to create the
259image's base name. Because the OpenEmbedded build system can now build 256image's base name. Because the OpenEmbedded build system can now build
260multiple kernel image types, this part of the kernel image base name as 257multiple kernel image types, this part of the kernel image base name as
261been removed leaving only the following: 258been removed leaving only the following::
262::
263 259
264 KERNEL_IMAGE_BASE_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}" 260 KERNEL_IMAGE_BASE_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
265 261
diff --git a/documentation/ref-manual/migration-2.3.rst b/documentation/ref-manual/migration-2.3.rst
index 0541eb3e74..dfbda612ae 100644
--- a/documentation/ref-manual/migration-2.3.rst
+++ b/documentation/ref-manual/migration-2.3.rst
@@ -114,8 +114,7 @@ Changes to Scripts
114The following changes to scripts took place: 114The following changes to scripts took place:
115 115
116- ``oe-find-native-sysroot``: The usage for the 116- ``oe-find-native-sysroot``: The usage for the
117 ``oe-find-native-sysroot`` script has changed to the following: 117 ``oe-find-native-sysroot`` script has changed to the following::
118 ::
119 118
120 $ . oe-find-native-sysroot recipe 119 $ . oe-find-native-sysroot recipe
121 120
@@ -124,8 +123,7 @@ The following changes to scripts took place:
124 was not necessary to provide the script with the command. 123 was not necessary to provide the script with the command.
125 124
126- ``oe-run-native``: The usage for the ``oe-run-native`` script has 125- ``oe-run-native``: The usage for the ``oe-run-native`` script has
127 changed to the following: 126 changed to the following::
128 ::
129 127
130 $ oe-run-native native_recipe tool 128 $ oe-run-native native_recipe tool
131 129
@@ -453,14 +451,11 @@ The following miscellaneous changes have occurred:
453 tools. 451 tools.
454 452
455- The ``USE_LDCONFIG`` variable has been replaced with the "ldconfig" 453- The ``USE_LDCONFIG`` variable has been replaced with the "ldconfig"
456 ``DISTRO_FEATURES`` feature. Distributions that previously set: 454 ``DISTRO_FEATURES`` feature. Distributions that previously set::
457 ::
458 455
459 USE_LDCONFIG = "0" 456 USE_LDCONFIG = "0"
460 457
461 should now instead use the following: 458 should now instead use the following::
462
463 ::
464 459
465 DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " ldconfig" 460 DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " ldconfig"
466 461
@@ -478,8 +473,7 @@ The following miscellaneous changes have occurred:
478 order to allow module packages from multiple kernel versions to 473 order to allow module packages from multiple kernel versions to
479 co-exist on a target system. If you wish to return to the previous 474 co-exist on a target system. If you wish to return to the previous
480 naming scheme that does not include the version suffix, use the 475 naming scheme that does not include the version suffix, use the
481 following: 476 following::
482 ::
483 477
484 KERNEL_MODULE_PACKAGE_SUFFIX = "" 478 KERNEL_MODULE_PACKAGE_SUFFIX = ""
485 479
diff --git a/documentation/ref-manual/migration-2.5.rst b/documentation/ref-manual/migration-2.5.rst
index fd5f2f88e0..86a0da9c40 100644
--- a/documentation/ref-manual/migration-2.5.rst
+++ b/documentation/ref-manual/migration-2.5.rst
@@ -138,13 +138,11 @@ The following are BitBake changes:
138 tree" tasks have been removed (e.g. ``fetchall``, ``checkuriall``, 138 tree" tasks have been removed (e.g. ``fetchall``, ``checkuriall``,
139 and the ``*all`` tasks provided by the ``distrodata`` and 139 and the ``*all`` tasks provided by the ``distrodata`` and
140 ``archiver`` classes). There is a BitBake option to complete this for 140 ``archiver`` classes). There is a BitBake option to complete this for
141 any arbitrary task. For example: 141 any arbitrary task. For example::
142 ::
143 142
144 bitbake <target> -c fetchall 143 bitbake <target> -c fetchall
145 144
146 should now be replaced with: 145 should now be replaced with::
147 ::
148 146
149 bitbake <target> --runall=fetch 147 bitbake <target> --runall=fetch
150 148
diff --git a/documentation/ref-manual/migration-2.6.rst b/documentation/ref-manual/migration-2.6.rst
index aeac509808..d1c6c0c5f5 100644
--- a/documentation/ref-manual/migration-2.6.rst
+++ b/documentation/ref-manual/migration-2.6.rst
@@ -161,13 +161,11 @@ The following changes have been made:
161 allows easier and more direct changes. 161 allows easier and more direct changes.
162 162
163 The ``IMAGE_VERSION_SUFFIX`` variable is set in the ``bitbake.conf`` 163 The ``IMAGE_VERSION_SUFFIX`` variable is set in the ``bitbake.conf``
164 configuration file as follows: 164 configuration file as follows::
165 ::
166 165
167 IMAGE_VERSION_SUFFIX = "-${DATETIME}" 166 IMAGE_VERSION_SUFFIX = "-${DATETIME}"
168 167
169- Several variables have changed names for consistency: 168- Several variables have changed names for consistency::
170 ::
171 169
172 Old Variable Name New Variable Name 170 Old Variable Name New Variable Name
173 ======================================================== 171 ========================================================
@@ -292,8 +290,7 @@ avoids the ``systemd`` recipe from becoming machine-specific for cases
292where machine-specific configurations need to be applied (e.g. for 290where machine-specific configurations need to be applied (e.g. for
293``qemu*`` machines). 291``qemu*`` machines).
294 292
295Currently, the new recipe packages the following files: 293Currently, the new recipe packages the following files::
296::
297 294
298 ${sysconfdir}/machine-id 295 ${sysconfdir}/machine-id
299 ${sysconfdir}/systemd/coredump.conf 296 ${sysconfdir}/systemd/coredump.conf
@@ -393,8 +390,7 @@ If you wish to disable Python profile-guided optimization regardless of
393the value of ``MACHINE_FEATURES``, then ensure that 390the value of ``MACHINE_FEATURES``, then ensure that
394:term:`PACKAGECONFIG` for the ``python3`` recipe 391:term:`PACKAGECONFIG` for the ``python3`` recipe
395does not contain "pgo". You could accomplish the latter using the 392does not contain "pgo". You could accomplish the latter using the
396following at the configuration level: 393following at the configuration level::
397::
398 394
399 PACKAGECONFIG_remove_pn-python3 = "pgo" 395 PACKAGECONFIG_remove_pn-python3 = "pgo"
400 396
@@ -411,8 +407,7 @@ The following miscellaneous changes occurred:
411- Default to using the Thumb-2 instruction set for armv7a and above. If 407- Default to using the Thumb-2 instruction set for armv7a and above. If
412 you have any custom recipes that build software that needs to be 408 you have any custom recipes that build software that needs to be
413 built with the ARM instruction set, change the recipe to set the 409 built with the ARM instruction set, change the recipe to set the
414 instruction set as follows: 410 instruction set as follows::
415 ::
416 411
417 ARM_INSTRUCTION_SET = "arm" 412 ARM_INSTRUCTION_SET = "arm"
418 413
diff --git a/documentation/ref-manual/migration-3.1.rst b/documentation/ref-manual/migration-3.1.rst
index c62aba7d48..7822285a87 100644
--- a/documentation/ref-manual/migration-3.1.rst
+++ b/documentation/ref-manual/migration-3.1.rst
@@ -71,8 +71,7 @@ when building a simple image such as core-image-minimal. If you do not
71need runtime tests enabled for core components, then it is recommended 71need runtime tests enabled for core components, then it is recommended
72that you remove "ptest" from 72that you remove "ptest" from
73:term:`DISTRO_FEATURES` to save a significant 73:term:`DISTRO_FEATURES` to save a significant
74amount of build time e.g. by adding the following in your configuration: 74amount of build time e.g. by adding the following in your configuration::
75::
76 75
77 DISTRO_FEATURES_remove = "ptest" 76 DISTRO_FEATURES_remove = "ptest"
78 77
diff --git a/documentation/ref-manual/qa-checks.rst b/documentation/ref-manual/qa-checks.rst
index 79d2d4266a..9cc4c577c7 100644
--- a/documentation/ref-manual/qa-checks.rst
+++ b/documentation/ref-manual/qa-checks.rst
@@ -221,8 +221,7 @@ Errors and Warnings
221 Typically, the way to solve this performance issue is to add "-fPIC" 221 Typically, the way to solve this performance issue is to add "-fPIC"
222 or "-fpic" to the compiler command-line options. For example, given 222 or "-fpic" to the compiler command-line options. For example, given
223 software that reads :term:`CFLAGS` when you build it, 223 software that reads :term:`CFLAGS` when you build it,
224 you could add the following to your recipe: 224 you could add the following to your recipe::
225 ::
226 225
227 CFLAGS_append = " -fPIC " 226 CFLAGS_append = " -fPIC "
228 227
@@ -240,8 +239,7 @@ Errors and Warnings
240 variable is being passed to the linker command. A common workaround 239 variable is being passed to the linker command. A common workaround
241 for this situation is to pass in ``LDFLAGS`` using 240 for this situation is to pass in ``LDFLAGS`` using
242 :term:`TARGET_CC_ARCH` within the recipe as 241 :term:`TARGET_CC_ARCH` within the recipe as
243 follows: 242 follows::
244 ::
245 243
246 TARGET_CC_ARCH += "${LDFLAGS}" 244 TARGET_CC_ARCH += "${LDFLAGS}"
247 245
@@ -265,8 +263,7 @@ Errors and Warnings
265 263
266 The ``/usr/share/info/dir`` should not be packaged. Add the following 264 The ``/usr/share/info/dir`` should not be packaged. Add the following
267 line to your :ref:`ref-tasks-install` task or to your 265 line to your :ref:`ref-tasks-install` task or to your
268 ``do_install_append`` within the recipe as follows: 266 ``do_install_append`` within the recipe as follows::
269 ::
270 267
271 rm ${D}${infodir}/dir 268 rm ${D}${infodir}/dir
272   269  
diff --git a/documentation/ref-manual/structure.rst b/documentation/ref-manual/structure.rst
index 0f2093a8d4..f8dc7d2821 100644
--- a/documentation/ref-manual/structure.rst
+++ b/documentation/ref-manual/structure.rst
@@ -153,8 +153,7 @@ When you run this script, your Yocto Project environment is set up, a
153:term:`Build Directory` is created, your working 153:term:`Build Directory` is created, your working
154directory becomes the Build Directory, and you are presented with some 154directory becomes the Build Directory, and you are presented with some
155simple suggestions as to what to do next, including a list of some 155simple suggestions as to what to do next, including a list of some
156possible targets to build. Here is an example: 156possible targets to build. Here is an example::
157::
158 157
159 $ source oe-init-build-env 158 $ source oe-init-build-env
160 159
@@ -185,8 +184,7 @@ creates the ``build/`` directory in your current working directory. If
185you provide a Build Directory argument when you ``source`` the script, 184you provide a Build Directory argument when you ``source`` the script,
186you direct the OpenEmbedded build system to create a Build Directory of 185you direct the OpenEmbedded build system to create a Build Directory of
187your choice. For example, the following command creates a Build 186your choice. For example, the following command creates a Build
188Directory named ``mybuilds/`` that is outside of the :term:`Source Directory`: 187Directory named ``mybuilds/`` that is outside of the :term:`Source Directory`::
189::
190 188
191 $ source oe-init-build-env ~/mybuilds 189 $ source oe-init-build-env ~/mybuilds
192 190
@@ -269,8 +267,7 @@ and to ``meta/conf/`` when you are building from the OpenEmbedded-Core
269environment. Because the script variable points to the source of the 267environment. Because the script variable points to the source of the
270``local.conf.sample`` file, this implies that you can configure your 268``local.conf.sample`` file, this implies that you can configure your
271build environment from any layer by setting the variable in the 269build environment from any layer by setting the variable in the
272top-level build environment setup script as follows: 270top-level build environment setup script as follows::
273::
274 271
275 TEMPLATECONF=your_layer/conf 272 TEMPLATECONF=your_layer/conf
276 273
@@ -309,8 +306,7 @@ Project development environment, and to ``meta/conf/`` when you are
309building from the OpenEmbedded-Core environment. Because the script 306building from the OpenEmbedded-Core environment. Because the script
310variable points to the source of the ``bblayers.conf.sample`` file, this 307variable points to the source of the ``bblayers.conf.sample`` file, this
311implies that you can base your build from any layer by setting the 308implies that you can base your build from any layer by setting the
312variable in the top-level build environment setup script as follows: 309variable in the top-level build environment setup script as follows::
313::
314 310
315 TEMPLATECONF=your_layer/conf 311 TEMPLATECONF=your_layer/conf
316 312
@@ -463,8 +459,7 @@ image again.
463If you do accidentally delete files here, you will need to force them to 459If you do accidentally delete files here, you will need to force them to
464be re-created. In order to do that, you will need to know the target 460be re-created. In order to do that, you will need to know the target
465that produced them. For example, these commands rebuild and re-create 461that produced them. For example, these commands rebuild and re-create
466the kernel files: 462the kernel files::
467::
468 463
469 $ bitbake -c clean virtual/kernel 464 $ bitbake -c clean virtual/kernel
470 $ bitbake virtual/kernel 465 $ bitbake virtual/kernel
@@ -535,8 +530,7 @@ recipe-specific :term:`WORKDIR` directories. Thus, the
535This directory holds information that BitBake uses for accounting 530This directory holds information that BitBake uses for accounting
536purposes to track what tasks have run and when they have run. The 531purposes to track what tasks have run and when they have run. The
537directory is sub-divided by architecture, package name, and version. 532directory is sub-divided by architecture, package name, and version.
538Following is an example: 533Following is an example::
539::
540 534
541 stamps/all-poky-linux/distcc-config/1.0-r0.do_build-2fdd....2do 535 stamps/all-poky-linux/distcc-config/1.0-r0.do_build-2fdd....2do
542 536
diff --git a/documentation/ref-manual/system-requirements.rst b/documentation/ref-manual/system-requirements.rst
index 80378cedb7..4fa4d3ef52 100644
--- a/documentation/ref-manual/system-requirements.rst
+++ b/documentation/ref-manual/system-requirements.rst
@@ -120,8 +120,7 @@ supported Ubuntu or Debian Linux distribution:
120 might experience QEMU build failures due to the package installing 120 might experience QEMU build failures due to the package installing
121 its own custom ``/usr/include/linux/soundcard.h`` on the Debian 121 its own custom ``/usr/include/linux/soundcard.h`` on the Debian
122 system. If you run into this situation, either of the following 122 system. If you run into this situation, either of the following
123 solutions exist: 123 solutions exist::
124 ::
125 124
126 $ sudo apt-get build-dep qemu 125 $ sudo apt-get build-dep qemu
127 $ sudo apt-get remove oss4-dev 126 $ sudo apt-get remove oss4-dev
@@ -132,14 +131,12 @@ supported Ubuntu or Debian Linux distribution:
132 131
133 $ sudo pip3 install GitPython pylint==1.9.5 132 $ sudo pip3 install GitPython pylint==1.9.5
134 133
135- *Essentials:* Packages needed to build an image on a headless system: 134- *Essentials:* Packages needed to build an image on a headless system::
136 ::
137 135
138 $ sudo apt-get install &UBUNTU_HOST_PACKAGES_ESSENTIAL; 136 $ sudo apt-get install &UBUNTU_HOST_PACKAGES_ESSENTIAL;
139 137
140- *Documentation:* Packages needed if you are going to build out the 138- *Documentation:* Packages needed if you are going to build out the
141 Yocto Project documentation manuals: 139 Yocto Project documentation manuals::
142 ::
143 140
144 $ sudo apt-get install make python3-pip 141 $ sudo apt-get install make python3-pip
145 &PIP3_HOST_PACKAGES_DOC; 142 &PIP3_HOST_PACKAGES_DOC;
@@ -157,14 +154,12 @@ The following list shows the required packages by function given a
157supported Fedora Linux distribution: 154supported Fedora Linux distribution:
158 155
159- *Essentials:* Packages needed to build an image for a headless 156- *Essentials:* Packages needed to build an image for a headless
160 system: 157 system::
161 ::
162 158
163 $ sudo dnf install &FEDORA_HOST_PACKAGES_ESSENTIAL; 159 $ sudo dnf install &FEDORA_HOST_PACKAGES_ESSENTIAL;
164 160
165- *Documentation:* Packages needed if you are going to build out the 161- *Documentation:* Packages needed if you are going to build out the
166 Yocto Project documentation manuals: 162 Yocto Project documentation manuals::
167 ::
168 163
169 $ sudo dnf install make python3-pip which 164 $ sudo dnf install make python3-pip which
170 &PIP3_HOST_PACKAGES_DOC; 165 &PIP3_HOST_PACKAGES_DOC;
@@ -176,14 +171,12 @@ The following list shows the required packages by function given a
176supported openSUSE Linux distribution: 171supported openSUSE Linux distribution:
177 172
178- *Essentials:* Packages needed to build an image for a headless 173- *Essentials:* Packages needed to build an image for a headless
179 system: 174 system::
180 ::
181 175
182 $ sudo zypper install &OPENSUSE_HOST_PACKAGES_ESSENTIAL; 176 $ sudo zypper install &OPENSUSE_HOST_PACKAGES_ESSENTIAL;
183 177
184- *Documentation:* Packages needed if you are going to build out the 178- *Documentation:* Packages needed if you are going to build out the
185 Yocto Project documentation manuals: 179 Yocto Project documentation manuals::
186 ::
187 180
188 $ sudo zypper install make python3-pip which 181 $ sudo zypper install make python3-pip which
189 &PIP3_HOST_PACKAGES_DOC; 182 &PIP3_HOST_PACKAGES_DOC;
@@ -196,8 +189,7 @@ The following list shows the required packages by function given a
196supported CentOS-7 Linux distribution: 189supported CentOS-7 Linux distribution:
197 190
198- *Essentials:* Packages needed to build an image for a headless 191- *Essentials:* Packages needed to build an image for a headless
199 system: 192 system::
200 ::
201 193
202 $ sudo yum install &CENTOS7_HOST_PACKAGES_ESSENTIAL; 194 $ sudo yum install &CENTOS7_HOST_PACKAGES_ESSENTIAL;
203 195
@@ -212,8 +204,7 @@ supported CentOS-7 Linux distribution:
212 ``epel-release``. 204 ``epel-release``.
213 205
214- *Documentation:* Packages needed if you are going to build out the 206- *Documentation:* Packages needed if you are going to build out the
215 Yocto Project documentation manuals: 207 Yocto Project documentation manuals::
216 ::
217 208
218 $ sudo yum install make python3-pip which 209 $ sudo yum install make python3-pip which
219 &PIP3_HOST_PACKAGES_DOC; 210 &PIP3_HOST_PACKAGES_DOC;
@@ -225,8 +216,7 @@ The following list shows the required packages by function given a
225supported CentOS-8 Linux distribution: 216supported CentOS-8 Linux distribution:
226 217
227- *Essentials:* Packages needed to build an image for a headless 218- *Essentials:* Packages needed to build an image for a headless
228 system: 219 system::
229 ::
230 220
231 $ sudo dnf install &CENTOS8_HOST_PACKAGES_ESSENTIAL; 221 $ sudo dnf install &CENTOS8_HOST_PACKAGES_ESSENTIAL;
232 222
@@ -244,8 +234,7 @@ supported CentOS-8 Linux distribution:
244 ``epel-release``. 234 ``epel-release``.
245 235
246- *Documentation:* Packages needed if you are going to build out the 236- *Documentation:* Packages needed if you are going to build out the
247 Yocto Project documentation manuals: 237 Yocto Project documentation manuals::
248 ::
249 238
250 $ sudo dnf install make python3-pip which 239 $ sudo dnf install make python3-pip which
251 &PIP3_HOST_PACKAGES_DOC; 240 &PIP3_HOST_PACKAGES_DOC;
@@ -287,8 +276,7 @@ The ``install-buildtools`` script is the easiest of the three methods by
287which you can get these tools. It downloads a pre-built buildtools 276which you can get these tools. It downloads a pre-built buildtools
288installer and automatically installs the tools for you: 277installer and automatically installs the tools for you:
289 278
2901. Execute the ``install-buildtools`` script. Here is an example: 2791. Execute the ``install-buildtools`` script. Here is an example::
291 ::
292 280
293 $ cd poky 281 $ cd poky
294 $ scripts/install-buildtools --without-extended-buildtools \ 282 $ scripts/install-buildtools --without-extended-buildtools \
@@ -302,22 +290,19 @@ installer and automatically installs the tools for you:
302 installation is functional. 290 installation is functional.
303 291
304 To avoid the need of ``sudo`` privileges, the ``install-buildtools`` 292 To avoid the need of ``sudo`` privileges, the ``install-buildtools``
305 script will by default tell the installer to install in: 293 script will by default tell the installer to install in::
306 ::
307 294
308 /path/to/poky/buildtools 295 /path/to/poky/buildtools
309 296
310 If your host development system needs the additional tools provided 297 If your host development system needs the additional tools provided
311 in the ``buildtools-extended`` tarball, you can instead execute the 298 in the ``buildtools-extended`` tarball, you can instead execute the
312 ``install-buildtools`` script with the default parameters: 299 ``install-buildtools`` script with the default parameters::
313 ::
314 300
315 $ cd poky 301 $ cd poky
316 $ scripts/install-buildtools 302 $ scripts/install-buildtools
317 303
3182. Source the tools environment setup script by using a command like the 3042. Source the tools environment setup script by using a command like the
319 following: 305 following::
320 ::
321 306
322 $ source /path/to/poky/buildtools/environment-setup-x86_64-pokysdk-linux 307 $ source /path/to/poky/buildtools/environment-setup-x86_64-pokysdk-linux
323 308
@@ -342,13 +327,11 @@ steps:
3421. Locate and download the ``*.sh`` at &YOCTO_RELEASE_DL_URL;/buildtools/ 3271. Locate and download the ``*.sh`` at &YOCTO_RELEASE_DL_URL;/buildtools/
343 328
3442. Execute the installation script. Here is an example for the 3292. Execute the installation script. Here is an example for the
345 traditional installer: 330 traditional installer::
346 ::
347 331
348 $ sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh 332 $ sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh
349 333
350 Here is an example for the extended installer: 334 Here is an example for the extended installer::
351 ::
352 335
353 $ sh ~/Downloads/x86_64-buildtools-extended-nativesdk-standalone-&DISTRO;.sh 336 $ sh ~/Downloads/x86_64-buildtools-extended-nativesdk-standalone-&DISTRO;.sh
354 337
@@ -357,8 +340,7 @@ steps:
357 ``/home/your-username/buildtools`` 340 ``/home/your-username/buildtools``
358 341
3593. Source the tools environment setup script by using a command like the 3423. Source the tools environment setup script by using a command like the
360 following: 343 following::
361 ::
362 344
363 $ source /home/your_username/buildtools/environment-setup-i586-poky-linux 345 $ source /home/your_username/buildtools/environment-setup-i586-poky-linux
364 346
@@ -390,13 +372,11 @@ installer:
390 your build environment with the setup script 372 your build environment with the setup script
391 (:ref:`structure-core-script`). 373 (:ref:`structure-core-script`).
392 374
3932. Run the BitBake command to build the tarball: 3752. Run the BitBake command to build the tarball::
394 ::
395 376
396 $ bitbake buildtools-tarball 377 $ bitbake buildtools-tarball
397 378
398 or run the BitBake command to build the extended tarball: 379 or run the BitBake command to build the extended tarball::
399 ::
400 380
401 $ bitbake buildtools-extended-tarball 381 $ bitbake buildtools-extended-tarball
402 382
@@ -415,13 +395,11 @@ installer:
415 395
4164. On the machine that does not meet the requirements, run the ``.sh`` 3964. On the machine that does not meet the requirements, run the ``.sh``
417 file to install the tools. Here is an example for the traditional 397 file to install the tools. Here is an example for the traditional
418 installer: 398 installer::
419 ::
420 399
421 $ sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh 400 $ sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh
422 401
423 Here is an example for the extended installer: 402 Here is an example for the extended installer::
424 ::
425 403
426 $ sh ~/Downloads/x86_64-buildtools-extended-nativesdk-standalone-&DISTRO;.sh 404 $ sh ~/Downloads/x86_64-buildtools-extended-nativesdk-standalone-&DISTRO;.sh
427 405
@@ -430,8 +408,7 @@ installer:
430 ``/home/your_username/buildtools`` 408 ``/home/your_username/buildtools``
431 409
4325. Source the tools environment setup script by using a command like the 4105. Source the tools environment setup script by using a command like the
433 following: 411 following::
434 ::
435 412
436 $ source /home/your_username/buildtools/environment-setup-x86_64-poky-linux 413 $ source /home/your_username/buildtools/environment-setup-x86_64-poky-linux
437 414
diff --git a/documentation/ref-manual/tasks.rst b/documentation/ref-manual/tasks.rst
index 9fe1c296aa..001edf6bb3 100644
--- a/documentation/ref-manual/tasks.rst
+++ b/documentation/ref-manual/tasks.rst
@@ -93,8 +93,7 @@ output from ``${DEPLOYDIR}`` to ``${DEPLOY_DIR_IMAGE}``.
93The ``do_deploy`` task is not added as a task by default and 93The ``do_deploy`` task is not added as a task by default and
94consequently needs to be added manually. If you want the task to run 94consequently needs to be added manually. If you want the task to run
95after :ref:`ref-tasks-compile`, you can add it by doing 95after :ref:`ref-tasks-compile`, you can add it by doing
96the following: 96the following::
97::
98 97
99 addtask deploy after do_compile 98 addtask deploy after do_compile
100 99
@@ -103,8 +102,7 @@ Adding ``do_deploy`` after other tasks works the same way.
103.. note:: 102.. note::
104 103
105 You do not need to add ``before do_build`` to the ``addtask`` command 104 You do not need to add ``before do_build`` to the ``addtask`` command
106 (though it is harmless), because the ``base`` class contains the following: 105 (though it is harmless), because the ``base`` class contains the following::
107 ::
108 106
109 do_build[recrdeptask] += "do_deploy" 107 do_build[recrdeptask] += "do_deploy"
110 108
@@ -302,13 +300,11 @@ Patch files, by default, are ``*.patch`` and ``*.diff`` files created
302and kept in a subdirectory of the directory holding the recipe file. For 300and kept in a subdirectory of the directory holding the recipe file. For
303example, consider the 301example, consider the
304:yocto_git:`bluez5 </poky/tree/meta/recipes-connectivity/bluez5>` 302:yocto_git:`bluez5 </poky/tree/meta/recipes-connectivity/bluez5>`
305recipe from the OE-Core layer (i.e. ``poky/meta``): 303recipe from the OE-Core layer (i.e. ``poky/meta``)::
306::
307 304
308 poky/meta/recipes-connectivity/bluez5 305 poky/meta/recipes-connectivity/bluez5
309 306
310This recipe has two patch files located here: 307This recipe has two patch files located here::
311::
312 308
313 poky/meta/recipes-connectivity/bluez5/bluez5 309 poky/meta/recipes-connectivity/bluez5/bluez5
314 310
@@ -323,8 +319,7 @@ and patch files needed to build the package.
323As mentioned earlier, the build system treats files whose file types are 319As mentioned earlier, the build system treats files whose file types are
324``.patch`` and ``.diff`` as patch files. However, you can use the 320``.patch`` and ``.diff`` as patch files. However, you can use the
325"apply=yes" parameter with the ``SRC_URI`` statement to indicate any 321"apply=yes" parameter with the ``SRC_URI`` statement to indicate any
326file as a patch file: 322file as a patch file::
327::
328 323
329 SRC_URI = " \ 324 SRC_URI = " \
330 git://path_to_repo/some_package \ 325 git://path_to_repo/some_package \
@@ -334,8 +329,7 @@ file as a patch file:
334Conversely, if you have a directory full of patch files and you want to 329Conversely, if you have a directory full of patch files and you want to
335exclude some so that the ``do_patch`` task does not apply them during 330exclude some so that the ``do_patch`` task does not apply them during
336the patch phase, you can use the "apply=no" parameter with the 331the patch phase, you can use the "apply=no" parameter with the
337``SRC_URI`` statement: 332``SRC_URI`` statement::
338::
339 333
340 SRC_URI = " \ 334 SRC_URI = " \
341 git://path_to_repo/some_package \ 335 git://path_to_repo/some_package \
@@ -455,8 +449,7 @@ of the recipe exists upstream and a status of not updated, updated, or
455unknown. 449unknown.
456 450
457To check the upstream version and status of a recipe, use the following 451To check the upstream version and status of a recipe, use the following
458devtool commands: 452devtool commands::
459::
460 453
461 $ devtool latest-version 454 $ devtool latest-version
462 $ devtool check-upgrade-status 455 $ devtool check-upgrade-status
@@ -467,8 +460,7 @@ chapter for more information on
467section for information on checking the upgrade status of a recipe. 460section for information on checking the upgrade status of a recipe.
468 461
469To build the ``checkpkg`` task, use the ``bitbake`` command with the 462To build the ``checkpkg`` task, use the ``bitbake`` command with the
470"-c" option and task name: 463"-c" option and task name::
471::
472 464
473 $ bitbake core-image-minimal -c checkpkg 465 $ bitbake core-image-minimal -c checkpkg
474 466
@@ -494,8 +486,7 @@ Removes all output files for a target from the
494:ref:`ref-tasks-install`, and 486:ref:`ref-tasks-install`, and
495:ref:`ref-tasks-package`). 487:ref:`ref-tasks-package`).
496 488
497You can run this task using BitBake as follows: 489You can run this task using BitBake as follows::
498::
499 490
500 $ bitbake -c clean recipe 491 $ bitbake -c clean recipe
501 492
@@ -519,8 +510,7 @@ downloaded source files for a target (i.e. the contents of
519identical to the :ref:`ref-tasks-cleansstate` task 510identical to the :ref:`ref-tasks-cleansstate` task
520with the added removal of downloaded source files. 511with the added removal of downloaded source files.
521 512
522You can run this task using BitBake as follows: 513You can run this task using BitBake as follows::
523::
524 514
525 $ bitbake -c cleanall recipe 515 $ bitbake -c cleanall recipe
526 516
@@ -540,8 +530,7 @@ target. Essentially, the ``do_cleansstate`` task is identical to the
540shared state (:ref:`sstate <overview-manual/concepts:shared state cache>`) 530shared state (:ref:`sstate <overview-manual/concepts:shared state cache>`)
541cache. 531cache.
542 532
543You can run this task using BitBake as follows: 533You can run this task using BitBake as follows::
544::
545 534
546 $ bitbake -c cleansstate recipe 535 $ bitbake -c cleansstate recipe
547 536
@@ -553,8 +542,7 @@ scratch is guaranteed.
553 542
554 The ``do_cleansstate`` task cannot remove sstate from a remote sstate 543 The ``do_cleansstate`` task cannot remove sstate from a remote sstate
555 mirror. If you need to build a target from scratch using remote mirrors, use 544 mirror. If you need to build a target from scratch using remote mirrors, use
556 the "-f" option as follows: 545 the "-f" option as follows::
557 ::
558 546
559 $ bitbake -f -c do_cleansstate target 547 $ bitbake -f -c do_cleansstate target
560 548
@@ -687,8 +675,7 @@ changes made by the user with other methods (i.e. using
687(:ref:`ref-tasks-kernel_menuconfig`). Once the 675(:ref:`ref-tasks-kernel_menuconfig`). Once the
688file of differences is created, it can be used to create a config 676file of differences is created, it can be used to create a config
689fragment that only contains the differences. You can invoke this task 677fragment that only contains the differences. You can invoke this task
690from the command line as follows: 678from the command line as follows::
691::
692 679
693 $ bitbake linux-yocto -c diffconfig 680 $ bitbake linux-yocto -c diffconfig
694 681
@@ -718,8 +705,7 @@ Validates the configuration produced by the
718configuration does not appear in the final ``.config`` file or when you 705configuration does not appear in the final ``.config`` file or when you
719override a policy configuration in a hardware configuration fragment. 706override a policy configuration in a hardware configuration fragment.
720You can run this task explicitly and view the output by using the 707You can run this task explicitly and view the output by using the
721following command: 708following command::
722::
723 709
724 $ bitbake linux-yocto -c kernel_configcheck -f 710 $ bitbake linux-yocto -c kernel_configcheck -f
725 711
@@ -750,8 +736,7 @@ tool, which you then use to modify the kernel configuration.
750 736
751.. note:: 737.. note::
752 738
753 You can also invoke this tool from the command line as follows: 739 You can also invoke this tool from the command line as follows::
754 ::
755 740
756 $ bitbake linux-yocto -c menuconfig 741 $ bitbake linux-yocto -c menuconfig
757 742
@@ -793,8 +778,7 @@ instead of the default defconfig. The saved defconfig contains the
793differences between the default defconfig and the changes made by the 778differences between the default defconfig and the changes made by the
794user using other methods (i.e. the 779user using other methods (i.e. the
795:ref:`ref-tasks-kernel_menuconfig` task. You 780:ref:`ref-tasks-kernel_menuconfig` task. You
796can invoke the task using the following command: 781can invoke the task using the following command::
797::
798 782
799 $ bitbake linux-yocto -c savedefconfig 783 $ bitbake linux-yocto -c savedefconfig
800 784
diff --git a/documentation/ref-manual/terms.rst b/documentation/ref-manual/terms.rst
index 32bb75b271..0af9af6485 100644
--- a/documentation/ref-manual/terms.rst
+++ b/documentation/ref-manual/terms.rst
@@ -26,8 +26,7 @@ universal, the list includes them just in case:
26 26
27 When you name an append file, you can use the "``%``" wildcard character 27 When you name an append file, you can use the "``%``" wildcard character
28 to allow for matching recipe names. For example, suppose you have an 28 to allow for matching recipe names. For example, suppose you have an
29 append file named as follows: 29 append file named as follows::
30 ::
31 30
32 busybox_1.21.%.bbappend 31 busybox_1.21.%.bbappend
33 32
diff --git a/documentation/ref-manual/variables.rst b/documentation/ref-manual/variables.rst
index 9435aec458..64521b89bb 100644
--- a/documentation/ref-manual/variables.rst
+++ b/documentation/ref-manual/variables.rst
@@ -24,8 +24,7 @@ system and gives an overview of their function and contents.
24 24
25 ABI extensions are set in the machine include files. For example, the 25 ABI extensions are set in the machine include files. For example, the
26 ``meta/conf/machine/include/arm/arch-arm.inc`` file sets the 26 ``meta/conf/machine/include/arm/arch-arm.inc`` file sets the
27 following extension: 27 following extension::
28 ::
29 28
30 ABIEXTENSION = "eabi" 29 ABIEXTENSION = "eabi"
31 30
@@ -37,8 +36,7 @@ system and gives an overview of their function and contents.
37 requirement on the existence of the package. 36 requirement on the existence of the package.
38 37
39 Like all package-controlling variables, you must always use them in 38 Like all package-controlling variables, you must always use them in
40 conjunction with a package name override, as in: 39 conjunction with a package name override, as in::
41 ::
42 40
43 ALLOW_EMPTY_${PN} = "1" 41 ALLOW_EMPTY_${PN} = "1"
44 ALLOW_EMPTY_${PN}-dev = "1" 42 ALLOW_EMPTY_${PN}-dev = "1"
@@ -54,8 +52,7 @@ system and gives an overview of their function and contents.
54 To use the variable, list out the package's commands that also exist 52 To use the variable, list out the package's commands that also exist
55 as part of another package. For example, if the ``busybox`` package 53 as part of another package. For example, if the ``busybox`` package
56 has four commands that also exist as part of another package, you 54 has four commands that also exist as part of another package, you
57 identify them as follows: 55 identify them as follows::
58 ::
59 56
60 ALTERNATIVE_busybox = "sh sed test bracket" 57 ALTERNATIVE_busybox = "sh sed test bracket"
61 58
@@ -68,8 +65,7 @@ system and gives an overview of their function and contents.
68 locations. For example, if the ``bracket`` command provided by the 65 locations. For example, if the ``bracket`` command provided by the
69 ``busybox`` package is duplicated through another package, you must 66 ``busybox`` package is duplicated through another package, you must
70 use the ``ALTERNATIVE_LINK_NAME`` variable to specify the actual 67 use the ``ALTERNATIVE_LINK_NAME`` variable to specify the actual
71 location: 68 location::
72 ::
73 69
74 ALTERNATIVE_LINK_NAME[bracket] = "/usr/bin/[" 70 ALTERNATIVE_LINK_NAME[bracket] = "/usr/bin/["
75 71
@@ -90,8 +86,7 @@ system and gives an overview of their function and contents.
90 default regardless of the command name or package, a default for 86 default regardless of the command name or package, a default for
91 specific duplicated commands regardless of the package, or a default 87 specific duplicated commands regardless of the package, or a default
92 for specific commands tied to particular packages. Here are the 88 for specific commands tied to particular packages. Here are the
93 available syntax forms: 89 available syntax forms::
94 ::
95 90
96 ALTERNATIVE_PRIORITY = "priority" 91 ALTERNATIVE_PRIORITY = "priority"
97 ALTERNATIVE_PRIORITY[name] = "priority" 92 ALTERNATIVE_PRIORITY[name] = "priority"
@@ -107,8 +102,7 @@ system and gives an overview of their function and contents.
107 default location for all duplicated commands regardless of the 102 default location for all duplicated commands regardless of the
108 command name or package, a default for specific duplicated commands 103 command name or package, a default for specific duplicated commands
109 regardless of the package, or a default for specific commands tied to 104 regardless of the package, or a default for specific commands tied to
110 particular packages. Here are the available syntax forms: 105 particular packages. Here are the available syntax forms::
111 ::
112 106
113 ALTERNATIVE_TARGET = "target" 107 ALTERNATIVE_TARGET = "target"
114 ALTERNATIVE_TARGET[name] = "target" 108 ALTERNATIVE_TARGET[name] = "target"
@@ -159,8 +153,7 @@ system and gives an overview of their function and contents.
159 determines the type of information used to create a released archive. 153 determines the type of information used to create a released archive.
160 You can use this variable to create archives of patched source, 154 You can use this variable to create archives of patched source,
161 original source, configured source, and so forth by employing the 155 original source, configured source, and so forth by employing the
162 following variable flags (varflags): 156 following variable flags (varflags)::
163 ::
164 157
165 ARCHIVER_MODE[src] = "original" # Uses original (unpacked) source files. 158 ARCHIVER_MODE[src] = "original" # Uses original (unpacked) source files.
166 ARCHIVER_MODE[src] = "patched" # Uses patched source files. This is the default. 159 ARCHIVER_MODE[src] = "patched" # Uses patched source files. This is the default.
@@ -193,14 +186,12 @@ system and gives an overview of their function and contents.
193 system. Separate multiple entries using spaces. 186 system. Separate multiple entries using spaces.
194 187
195 As an example, use the following form to add an ``shlib`` provider of 188 As an example, use the following form to add an ``shlib`` provider of
196 shlibname in packagename with the optional version: 189 shlibname in packagename with the optional version::
197 ::
198 190
199 shlibname:packagename[_version] 191 shlibname:packagename[_version]
200 192
201 Here is an example that adds a shared library named ``libEGL.so.1`` 193 Here is an example that adds a shared library named ``libEGL.so.1``
202 as being provided by the ``libegl-implementation`` package: 194 as being provided by the ``libegl-implementation`` package::
203 ::
204 195
205 ASSUME_SHLIBS = "libEGL.so.1:libegl-implementation" 196 ASSUME_SHLIBS = "libEGL.so.1:libegl-implementation"
206 197
@@ -224,8 +215,7 @@ system and gives an overview of their function and contents.
224 215
225 :term:`AUTOREV` 216 :term:`AUTOREV`
226 When ``SRCREV`` is set to the value of this variable, it specifies to 217 When ``SRCREV`` is set to the value of this variable, it specifies to
227 use the latest source revision in the repository. Here is an example: 218 use the latest source revision in the repository. Here is an example::
228 ::
229 219
230 SRCREV = "${AUTOREV}" 220 SRCREV = "${AUTOREV}"
231 221
@@ -286,8 +276,7 @@ system and gives an overview of their function and contents.
286 The directory within the :term:`Build Directory` in 276 The directory within the :term:`Build Directory` in
287 which the OpenEmbedded build system places generated objects during a 277 which the OpenEmbedded build system places generated objects during a
288 recipe's build process. By default, this directory is the same as the 278 recipe's build process. By default, this directory is the same as the
289 :term:`S` directory, which is defined as: 279 :term:`S` directory, which is defined as::
290 ::
291 280
292 S = "${WORKDIR}/${BP}" 281 S = "${WORKDIR}/${BP}"
293 282
@@ -301,15 +290,13 @@ system and gives an overview of their function and contents.
301 packages are packages installed only through the 290 packages are packages installed only through the
302 :term:`RRECOMMENDS` variable. You can prevent any 291 :term:`RRECOMMENDS` variable. You can prevent any
303 of these "recommended" packages from being installed by listing them 292 of these "recommended" packages from being installed by listing them
304 with the ``BAD_RECOMMENDATIONS`` variable: 293 with the ``BAD_RECOMMENDATIONS`` variable::
305 ::
306 294
307 BAD_RECOMMENDATIONS = "package_name package_name package_name ..." 295 BAD_RECOMMENDATIONS = "package_name package_name package_name ..."
308 296
309 You can set this variable globally in your ``local.conf`` file or you 297 You can set this variable globally in your ``local.conf`` file or you
310 can attach it to a specific image recipe by using the recipe name 298 can attach it to a specific image recipe by using the recipe name
311 override: 299 override::
312 ::
313 300
314 BAD_RECOMMENDATIONS_pn-target_image = "package_name" 301 BAD_RECOMMENDATIONS_pn-target_image = "package_name"
315 302
@@ -394,8 +381,7 @@ system and gives an overview of their function and contents.
394 381
395 You can change the default behavior by setting this variable to "1", 382 You can change the default behavior by setting this variable to "1",
396 "yes", or "true" in your ``local.conf`` file, which is located in the 383 "yes", or "true" in your ``local.conf`` file, which is located in the
397 :term:`Build Directory`: Here is an example: 384 :term:`Build Directory`: Here is an example::
398 ::
399 385
400 BB_DANGLINGAPPENDS_WARNONLY = "1" 386 BB_DANGLINGAPPENDS_WARNONLY = "1"
401 387
@@ -444,8 +430,7 @@ system and gives an overview of their function and contents.
444 not specify G, M, or K, Kbytes is assumed by 430 not specify G, M, or K, Kbytes is assumed by
445 default. Do not use GB, MB, or KB. 431 default. Do not use GB, MB, or KB.
446 432
447 Here are some examples: 433 Here are some examples::
448 ::
449 434
450 BB_DISKMON_DIRS = "ABORT,${TMPDIR},1G,100K WARN,${SSTATE_DIR},1G,100K" 435 BB_DISKMON_DIRS = "ABORT,${TMPDIR},1G,100K WARN,${SSTATE_DIR},1G,100K"
451 BB_DISKMON_DIRS = "STOPTASKS,${TMPDIR},1G" 436 BB_DISKMON_DIRS = "STOPTASKS,${TMPDIR},1G"
@@ -485,8 +470,7 @@ system and gives an overview of their function and contents.
485 470
486 If you do not provide a ``BB_DISKMON_WARNINTERVAL`` variable and you 471 If you do not provide a ``BB_DISKMON_WARNINTERVAL`` variable and you
487 do use ``BB_DISKMON_DIRS`` with the "WARN" action, the disk 472 do use ``BB_DISKMON_DIRS`` with the "WARN" action, the disk
488 monitoring interval defaults to the following: 473 monitoring interval defaults to the following::
489 ::
490 474
491 BB_DISKMON_WARNINTERVAL = "50M,5K" 475 BB_DISKMON_WARNINTERVAL = "50M,5K"
492 476
@@ -509,8 +493,7 @@ system and gives an overview of their function and contents.
509 G, M, or K for Gbytes, Mbytes, or Kbytes, 493 G, M, or K for Gbytes, Mbytes, or Kbytes,
510 respectively. You cannot use GB, MB, or KB. 494 respectively. You cannot use GB, MB, or KB.
511 495
512 Here is an example: 496 Here is an example::
513 ::
514 497
515 BB_DISKMON_DIRS = "WARN,${SSTATE_DIR},1G,100K" 498 BB_DISKMON_DIRS = "WARN,${SSTATE_DIR},1G,100K"
516 BB_DISKMON_WARNINTERVAL = "50M,5K" 499 BB_DISKMON_WARNINTERVAL = "50M,5K"
@@ -566,8 +549,7 @@ system and gives an overview of their function and contents.
566 long the BitBake server stays resident between invocations. 549 long the BitBake server stays resident between invocations.
567 550
568 For example, the following statement in your ``local.conf`` file 551 For example, the following statement in your ``local.conf`` file
569 instructs the server to be unloaded after 20 seconds of inactivity: 552 instructs the server to be unloaded after 20 seconds of inactivity::
570 ::
571 553
572 BB_SERVER_TIMEOUT = "20" 554 BB_SERVER_TIMEOUT = "20"
573 555
@@ -585,8 +567,7 @@ system and gives an overview of their function and contents.
585 "``multilib:``\ multilib_name". 567 "``multilib:``\ multilib_name".
586 568
587 To build a different variant of the recipe with a minimal amount of 569 To build a different variant of the recipe with a minimal amount of
588 code, it usually is as simple as adding the following to your recipe: 570 code, it usually is as simple as adding the following to your recipe::
589 ::
590 571
591 BBCLASSEXTEND =+ "native nativesdk" 572 BBCLASSEXTEND =+ "native nativesdk"
592 BBCLASSEXTEND =+ "multilib:multilib_name" 573 BBCLASSEXTEND =+ "multilib:multilib_name"
@@ -662,8 +643,7 @@ system and gives an overview of their function and contents.
662 643
663 Use the following form for ``BBFILES_DYNAMIC``: 644 Use the following form for ``BBFILES_DYNAMIC``:
664 collection_name:filename_pattern The following example identifies two 645 collection_name:filename_pattern The following example identifies two
665 collection names and two filename patterns: 646 collection names and two filename patterns::
666 ::
667 647
668 BBFILES_DYNAMIC += " \ 648 BBFILES_DYNAMIC += " \
669 clang-layer:${LAYERDIR}/bbappends/meta-clang/*/*/*.bbappend \ 649 clang-layer:${LAYERDIR}/bbappends/meta-clang/*/*/*.bbappend \
@@ -691,8 +671,7 @@ system and gives an overview of their function and contents.
691 :term:`BBLAYERS` 671 :term:`BBLAYERS`
692 Lists the layers to enable during the build. This variable is defined 672 Lists the layers to enable during the build. This variable is defined
693 in the ``bblayers.conf`` configuration file in the :term:`Build Directory`. 673 in the ``bblayers.conf`` configuration file in the :term:`Build Directory`.
694 Here is an example: 674 Here is an example::
695 ::
696 675
697 BBLAYERS = " \ 676 BBLAYERS = " \
698 /home/scottrif/poky/meta \ 677 /home/scottrif/poky/meta \
@@ -721,8 +700,7 @@ system and gives an overview of their function and contents.
721 700
722 The following example uses a complete regular expression to tell 701 The following example uses a complete regular expression to tell
723 BitBake to ignore all recipe and recipe append files in the 702 BitBake to ignore all recipe and recipe append files in the
724 ``meta-ti/recipes-misc/`` directory: 703 ``meta-ti/recipes-misc/`` directory::
725 ::
726 704
727 BBMASK = "meta-ti/recipes-misc/" 705 BBMASK = "meta-ti/recipes-misc/"
728 706
@@ -746,8 +724,7 @@ system and gives an overview of their function and contents.
746 building targets with multiple configurations. Use this variable in 724 building targets with multiple configurations. Use this variable in
747 your ``conf/local.conf`` configuration file. Specify a 725 your ``conf/local.conf`` configuration file. Specify a
748 multiconfigname for each configuration file you are using. For 726 multiconfigname for each configuration file you are using. For
749 example, the following line specifies three configuration files: 727 example, the following line specifies three configuration files::
750 ::
751 728
752 BBMULTICONFIG = "configA configB configC" 729 BBMULTICONFIG = "configA configB configC"
753 730
@@ -770,8 +747,7 @@ system and gives an overview of their function and contents.
770 If you run BitBake from a directory outside of the 747 If you run BitBake from a directory outside of the
771 :term:`Build Directory`, you must be sure to set ``BBPATH`` 748 :term:`Build Directory`, you must be sure to set ``BBPATH``
772 to point to the Build Directory. Set the variable as you would any 749 to point to the Build Directory. Set the variable as you would any
773 environment variable and then run BitBake: 750 environment variable and then run BitBake::
774 ::
775 751
776 $ BBPATH = "build_directory" 752 $ BBPATH = "build_directory"
777 $ export BBPATH 753 $ export BBPATH
@@ -783,8 +759,7 @@ system and gives an overview of their function and contents.
783 BitBake remote server. 759 BitBake remote server.
784 760
785 Use the following format to export the variable to the BitBake 761 Use the following format to export the variable to the BitBake
786 environment: 762 environment::
787 ::
788 763
789 export BBSERVER=localhost:$port 764 export BBSERVER=localhost:$port
790 765
@@ -803,8 +778,7 @@ system and gives an overview of their function and contents.
803 replaced. 778 replaced.
804 779
805 To add multiple scripts, separate them by spaces. Here is an example 780 To add multiple scripts, separate them by spaces. Here is an example
806 from the ``libpng`` recipe: 781 from the ``libpng`` recipe::
807 ::
808 782
809 BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config" 783 BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config"
810 784
@@ -834,8 +808,7 @@ system and gives an overview of their function and contents.
834 :term:`BP` 808 :term:`BP`
835 The base recipe name and version but without any special recipe name 809 The base recipe name and version but without any special recipe name
836 suffix (i.e. ``-native``, ``lib64-``, and so forth). ``BP`` is 810 suffix (i.e. ``-native``, ``lib64-``, and so forth). ``BP`` is
837 comprised of the following: 811 comprised of the following::
838 ::
839 812
840 ${BPN}-${PV} 813 ${BPN}-${PV}
841 814
@@ -975,8 +948,7 @@ system and gives an overview of their function and contents.
975 you should set this value to "1". 948 you should set this value to "1".
976 949
977 By default, the ``buildhistory`` class does not commit the build 950 By default, the ``buildhistory`` class does not commit the build
978 history output in a local Git repository: 951 history output in a local Git repository::
979 ::
980 952
981 BUILDHISTORY_COMMIT ?= "0" 953 BUILDHISTORY_COMMIT ?= "0"
982 954
@@ -992,8 +964,7 @@ system and gives an overview of their function and contents.
992 email@host". Providing an email address or host that is not valid 964 email@host". Providing an email address or host that is not valid
993 does not produce an error. 965 does not produce an error.
994 966
995 By default, the ``buildhistory`` class sets the variable as follows: 967 By default, the ``buildhistory`` class sets the variable as follows::
996 ::
997 968
998 BUILDHISTORY_COMMIT_AUTHOR ?= "buildhistory <buildhistory@${DISTRO}>" 969 BUILDHISTORY_COMMIT_AUTHOR ?= "buildhistory <buildhistory@${DISTRO}>"
999 970
@@ -1003,8 +974,7 @@ system and gives an overview of their function and contents.
1003 information is kept. For more information on how the variable works, 974 information is kept. For more information on how the variable works,
1004 see the ``buildhistory.class``. 975 see the ``buildhistory.class``.
1005 976
1006 By default, the ``buildhistory`` class sets the directory as follows: 977 By default, the ``buildhistory`` class sets the directory as follows::
1007 ::
1008 978
1009 BUILDHISTORY_DIR ?= "${TOPDIR}/buildhistory" 979 BUILDHISTORY_DIR ?= "${TOPDIR}/buildhistory"
1010 980
@@ -1032,8 +1002,7 @@ system and gives an overview of their function and contents.
1032 each file staged (i.e. the output of the task). 1002 each file staged (i.e. the output of the task).
1033 1003
1034 By default, the ``buildhistory`` class enables the following 1004 By default, the ``buildhistory`` class enables the following
1035 features: 1005 features::
1036 ::
1037 1006
1038 BUILDHISTORY_FEATURES ?= "image package sdk" 1007 BUILDHISTORY_FEATURES ?= "image package sdk"
1039 1008
@@ -1049,8 +1018,7 @@ system and gives an overview of their function and contents.
1049 Consequently, you can include files that might not always be present. 1018 Consequently, you can include files that might not always be present.
1050 1019
1051 By default, the ``buildhistory`` class provides paths to the 1020 By default, the ``buildhistory`` class provides paths to the
1052 following files: 1021 following files::
1053 ::
1054 1022
1055 BUILDHISTORY_IMAGE_FILES ?= "/etc/passwd /etc/group" 1023 BUILDHISTORY_IMAGE_FILES ?= "/etc/passwd /etc/group"
1056 1024
@@ -1067,8 +1035,7 @@ system and gives an overview of their function and contents.
1067 that you have set up manually using ``git remote`` within the local 1035 that you have set up manually using ``git remote`` within the local
1068 repository. 1036 repository.
1069 1037
1070 By default, the ``buildhistory`` class sets the variable as follows: 1038 By default, the ``buildhistory`` class sets the variable as follows::
1071 ::
1072 1039
1073 BUILDHISTORY_PUSH_REPO ?= "" 1040 BUILDHISTORY_PUSH_REPO ?= ""
1074 1041
@@ -1152,8 +1119,7 @@ system and gives an overview of their function and contents.
1152 ``bitbake.conf`` file. 1119 ``bitbake.conf`` file.
1153 1120
1154 As an example, the following override allows you to install extra 1121 As an example, the following override allows you to install extra
1155 files, but only when building for the target: 1122 files, but only when building for the target::
1156 ::
1157 1123
1158 do_install_append_class-target() { 1124 do_install_append_class-target() {
1159 install my-extra-file ${D}${sysconfdir} 1125 install my-extra-file ${D}${sysconfdir}
@@ -1161,8 +1127,7 @@ system and gives an overview of their function and contents.
1161 1127
1162 Here is an example where ``FOO`` is set to 1128 Here is an example where ``FOO`` is set to
1163 "native" when building for the build host, and to "other" when not 1129 "native" when building for the build host, and to "other" when not
1164 building for the build host: 1130 building for the build host::
1165 ::
1166 1131
1167 FOO_class-native = "native" 1132 FOO_class-native = "native"
1168 FOO = "other" 1133 FOO = "other"
@@ -1235,8 +1200,7 @@ system and gives an overview of their function and contents.
1235 1200
1236 To add a new feature item pointing to a wildcard, use a variable flag 1201 To add a new feature item pointing to a wildcard, use a variable flag
1237 to specify the feature item name and use the value to specify the 1202 to specify the feature item name and use the value to specify the
1238 wildcard. Here is an example: 1203 wildcard. Here is an example::
1239 ::
1240 1204
1241 COMPLEMENTARY_GLOB[dev-pkgs] = '*-dev' 1205 COMPLEMENTARY_GLOB[dev-pkgs] = '*-dev'
1242 1206
@@ -1268,8 +1232,7 @@ system and gives an overview of their function and contents.
1268 1232
1269 To use the ``CONFFILES`` variable, provide a package name override 1233 To use the ``CONFFILES`` variable, provide a package name override
1270 that identifies the resulting package. Then, provide a 1234 that identifies the resulting package. Then, provide a
1271 space-separated list of files. Here is an example: 1235 space-separated list of files. Here is an example::
1272 ::
1273 1236
1274 CONFFILES_${PN} += "${sysconfdir}/file1 \ 1237 CONFFILES_${PN} += "${sysconfdir}/file1 \
1275 ${sysconfdir}/file2 ${sysconfdir}/file3" 1238 ${sysconfdir}/file2 ${sysconfdir}/file3"
@@ -1524,8 +1487,7 @@ system and gives an overview of their function and contents.
1524 The destination directory. The location in the :term:`Build Directory` 1487 The destination directory. The location in the :term:`Build Directory`
1525 where components are installed by the 1488 where components are installed by the
1526 :ref:`ref-tasks-install` task. This location defaults 1489 :ref:`ref-tasks-install` task. This location defaults
1527 to: 1490 to::
1528 ::
1529 1491
1530 ${WORKDIR}/image 1492 ${WORKDIR}/image
1531 1493
@@ -1547,8 +1509,7 @@ system and gives an overview of their function and contents.
1547 which is the default behavior, ``DEBIAN_NOAUTONAME`` specifies a 1509 which is the default behavior, ``DEBIAN_NOAUTONAME`` specifies a
1548 particular package should not be renamed according to Debian library 1510 particular package should not be renamed according to Debian library
1549 package naming. You must use the package name as an override when you 1511 package naming. You must use the package name as an override when you
1550 set this variable. Here is an example from the ``fontconfig`` recipe: 1512 set this variable. Here is an example from the ``fontconfig`` recipe::
1551 ::
1552 1513
1553 DEBIAN_NOAUTONAME_fontconfig-utils = "1" 1514 DEBIAN_NOAUTONAME_fontconfig-utils = "1"
1554 1515
@@ -1558,8 +1519,7 @@ system and gives an overview of their function and contents.
1558 the library name for an individual package. Overriding the library 1519 the library name for an individual package. Overriding the library
1559 name in these cases is rare. You must use the package name as an 1520 name in these cases is rare. You must use the package name as an
1560 override when you set this variable. Here is an example from the 1521 override when you set this variable. Here is an example from the
1561 ``dbus`` recipe: 1522 ``dbus`` recipe::
1562 ::
1563 1523
1564 DEBIANNAME_${PN} = "dbus-1" 1524 DEBIANNAME_${PN} = "dbus-1"
1565 1525
@@ -1610,8 +1570,7 @@ system and gives an overview of their function and contents.
1610 needed by the recipe at build time. 1570 needed by the recipe at build time.
1611 1571
1612 As an example, consider a recipe ``foo`` that contains the following 1572 As an example, consider a recipe ``foo`` that contains the following
1613 assignment: 1573 assignment::
1614 ::
1615 1574
1616 DEPENDS = "bar" 1575 DEPENDS = "bar"
1617 1576
@@ -1635,8 +1594,7 @@ system and gives an overview of their function and contents.
1635 As another example, ``DEPENDS`` can also be used to add utilities 1594 As another example, ``DEPENDS`` can also be used to add utilities
1636 that run on the build machine during the build. For example, a recipe 1595 that run on the build machine during the build. For example, a recipe
1637 that makes use of a code generator built by the recipe ``codegen`` 1596 that makes use of a code generator built by the recipe ``codegen``
1638 might have the following: 1597 might have the following::
1639 ::
1640 1598
1641 DEPENDS = "codegen-native" 1599 DEPENDS = "codegen-native"
1642 1600
@@ -1702,8 +1660,7 @@ system and gives an overview of their function and contents.
1702 1660
1703 The BitBake configuration file initially defines the 1661 The BitBake configuration file initially defines the
1704 ``DEPLOY_DIR_DEB`` variable as a sub-folder of 1662 ``DEPLOY_DIR_DEB`` variable as a sub-folder of
1705 :term:`DEPLOY_DIR`: 1663 :term:`DEPLOY_DIR`::
1706 ::
1707 1664
1708 DEPLOY_DIR_DEB = "${DEPLOY_DIR}/deb" 1665 DEPLOY_DIR_DEB = "${DEPLOY_DIR}/deb"
1709 1666
@@ -1738,8 +1695,7 @@ system and gives an overview of their function and contents.
1738 "package_ipk". 1695 "package_ipk".
1739 1696
1740 The BitBake configuration file initially defines this variable as a 1697 The BitBake configuration file initially defines this variable as a
1741 sub-folder of :term:`DEPLOY_DIR`: 1698 sub-folder of :term:`DEPLOY_DIR`::
1742 ::
1743 1699
1744 DEPLOY_DIR_IPK = "${DEPLOY_DIR}/ipk" 1700 DEPLOY_DIR_IPK = "${DEPLOY_DIR}/ipk"
1745 1701
@@ -1759,8 +1715,7 @@ system and gives an overview of their function and contents.
1759 "package_rpm". 1715 "package_rpm".
1760 1716
1761 The BitBake configuration file initially defines this variable as a 1717 The BitBake configuration file initially defines this variable as a
1762 sub-folder of :term:`DEPLOY_DIR`: 1718 sub-folder of :term:`DEPLOY_DIR`::
1763 ::
1764 1719
1765 DEPLOY_DIR_RPM = "${DEPLOY_DIR}/rpm" 1720 DEPLOY_DIR_RPM = "${DEPLOY_DIR}/rpm"
1766 1721
@@ -1780,8 +1735,7 @@ system and gives an overview of their function and contents.
1780 "package_tar". 1735 "package_tar".
1781 1736
1782 The BitBake configuration file initially defines this variable as a 1737 The BitBake configuration file initially defines this variable as a
1783 sub-folder of :term:`DEPLOY_DIR`: 1738 sub-folder of :term:`DEPLOY_DIR`::
1784 ::
1785 1739
1786 DEPLOY_DIR_TAR = "${DEPLOY_DIR}/tar" 1740 DEPLOY_DIR_TAR = "${DEPLOY_DIR}/tar"
1787 1741
@@ -1796,8 +1750,7 @@ system and gives an overview of their function and contents.
1796 :term:`DEPLOYDIR` 1750 :term:`DEPLOYDIR`
1797 When inheriting the :ref:`deploy <ref-classes-deploy>` class, the 1751 When inheriting the :ref:`deploy <ref-classes-deploy>` class, the
1798 ``DEPLOYDIR`` points to a temporary work area for deployed files that 1752 ``DEPLOYDIR`` points to a temporary work area for deployed files that
1799 is set in the ``deploy`` class as follows: 1753 is set in the ``deploy`` class as follows::
1800 ::
1801 1754
1802 DEPLOYDIR = "${WORKDIR}/deploy-${PN}" 1755 DEPLOYDIR = "${WORKDIR}/deploy-${PN}"
1803 1756
@@ -1824,8 +1777,7 @@ system and gives an overview of their function and contents.
1824 :term:`Source Directory`. 1777 :term:`Source Directory`.
1825 1778
1826 Within that ``poky.conf`` file, the ``DISTRO`` variable is set as 1779 Within that ``poky.conf`` file, the ``DISTRO`` variable is set as
1827 follows: 1780 follows::
1828 ::
1829 1781
1830 DISTRO = "poky" 1782 DISTRO = "poky"
1831 1783
@@ -1899,8 +1851,7 @@ system and gives an overview of their function and contents.
1899 able to reuse the default 1851 able to reuse the default
1900 :term:`DISTRO_FEATURES` options without the 1852 :term:`DISTRO_FEATURES` options without the
1901 need to write out the full set. Here is an example that uses 1853 need to write out the full set. Here is an example that uses
1902 ``DISTRO_FEATURES_DEFAULT`` from a custom distro configuration file: 1854 ``DISTRO_FEATURES_DEFAULT`` from a custom distro configuration file::
1903 ::
1904 1855
1905 DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} myfeature" 1856 DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} myfeature"
1906 1857
@@ -1948,8 +1899,7 @@ system and gives an overview of their function and contents.
1948 of the :term:`Source Directory`. 1899 of the :term:`Source Directory`.
1949 1900
1950 Within that ``poky.conf`` file, the ``DISTRO_NAME`` variable is set 1901 Within that ``poky.conf`` file, the ``DISTRO_NAME`` variable is set
1951 as follows: 1902 as follows::
1952 ::
1953 1903
1954 DISTRO_NAME = "Poky (Yocto Project Reference Distro)" 1904 DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
1955 1905
@@ -2065,8 +2015,7 @@ system and gives an overview of their function and contents.
2065 2015
2066 You can set ``ERR_REPORT_DIR`` to the path you want the error 2016 You can set ``ERR_REPORT_DIR`` to the path you want the error
2067 reporting tool to store the debug files as follows in your 2017 reporting tool to store the debug files as follows in your
2068 ``local.conf`` file: 2018 ``local.conf`` file::
2069 ::
2070 2019
2071 ERR_REPORT_DIR = "path" 2020 ERR_REPORT_DIR = "path"
2072 2021
@@ -2094,8 +2043,7 @@ system and gives an overview of their function and contents.
2094 package's particular libraries only and not the whole package. 2043 package's particular libraries only and not the whole package.
2095 2044
2096 Use the ``EXCLUDE_FROM_SHLIBS`` variable by setting it to "1" for a 2045 Use the ``EXCLUDE_FROM_SHLIBS`` variable by setting it to "1" for a
2097 particular package: 2046 particular package::
2098 ::
2099 2047
2100 EXCLUDE_FROM_SHLIBS = "1" 2048 EXCLUDE_FROM_SHLIBS = "1"
2101 2049
@@ -2129,8 +2077,7 @@ system and gives an overview of their function and contents.
2129 The full package version specification as it appears on the final 2077 The full package version specification as it appears on the final
2130 packages produced by a recipe. The variable's value is normally used 2078 packages produced by a recipe. The variable's value is normally used
2131 to fix a runtime dependency to the exact same version of another 2079 to fix a runtime dependency to the exact same version of another
2132 package in the same recipe: 2080 package in the same recipe::
2133 ::
2134 2081
2135 RDEPENDS_${PN}-additional-module = "${PN} (= ${EXTENDPKGV})" 2082 RDEPENDS_${PN}-additional-module = "${PN} (= ${EXTENDPKGV})"
2136 2083
@@ -2230,8 +2177,7 @@ system and gives an overview of their function and contents.
2230 Specifies additional options for the image creation command that has 2177 Specifies additional options for the image creation command that has
2231 been specified in :term:`IMAGE_CMD`. When setting 2178 been specified in :term:`IMAGE_CMD`. When setting
2232 this variable, use an override for the associated image type. Here is 2179 this variable, use an override for the associated image type. Here is
2233 an example: 2180 an example::
2234 ::
2235 2181
2236 EXTRA_IMAGECMD_ext3 ?= "-i 4096" 2182 EXTRA_IMAGECMD_ext3 ?= "-i 4096"
2237 2183
@@ -2255,8 +2201,7 @@ system and gives an overview of their function and contents.
2255 added to the beginning of the environment variable ``PATH``. As an 2201 added to the beginning of the environment variable ``PATH``. As an
2256 example, the following prepends 2202 example, the following prepends
2257 "${STAGING_BINDIR_NATIVE}/foo:${STAGING_BINDIR_NATIVE}/bar:" to 2203 "${STAGING_BINDIR_NATIVE}/foo:${STAGING_BINDIR_NATIVE}/bar:" to
2258 ``PATH``: 2204 ``PATH``::
2259 ::
2260 2205
2261 EXTRANATIVEPATH = "foo bar" 2206 EXTRANATIVEPATH = "foo bar"
2262 2207
@@ -2294,8 +2239,7 @@ system and gives an overview of their function and contents.
2294 2239
2295 The set list of commands you can configure using the 2240 The set list of commands you can configure using the
2296 ``EXTRA_USERS_PARAMS`` is shown in the ``extrausers`` class. These 2241 ``EXTRA_USERS_PARAMS`` is shown in the ``extrausers`` class. These
2297 commands map to the normal Unix commands of the same names: 2242 commands map to the normal Unix commands of the same names::
2298 ::
2299 2243
2300 # EXTRA_USERS_PARAMS = "\ 2244 # EXTRA_USERS_PARAMS = "\
2301 # useradd -p '' tester; \ 2245 # useradd -p '' tester; \
@@ -2321,8 +2265,7 @@ system and gives an overview of their function and contents.
2321 Defines one or more packages to include in an image when a specific 2265 Defines one or more packages to include in an image when a specific
2322 item is included in :term:`IMAGE_FEATURES`. 2266 item is included in :term:`IMAGE_FEATURES`.
2323 When setting the value, ``FEATURE_PACKAGES`` should have the name of 2267 When setting the value, ``FEATURE_PACKAGES`` should have the name of
2324 the feature item as an override. Here is an example: 2268 the feature item as an override. Here is an example::
2325 ::
2326 2269
2327 FEATURE_PACKAGES_widget = "package1 package2" 2270 FEATURE_PACKAGES_widget = "package1 package2"
2328 2271
@@ -2342,8 +2285,7 @@ system and gives an overview of their function and contents.
2342 OPKG to support runtime package management of IPK packages. You set 2285 OPKG to support runtime package management of IPK packages. You set
2343 this variable in your ``local.conf`` file. 2286 this variable in your ``local.conf`` file.
2344 2287
2345 Consider the following example: 2288 Consider the following example::
2346 ::
2347 2289
2348 FEED_DEPLOYDIR_BASE_URI = "http://192.168.7.1/BOARD-dir" 2290 FEED_DEPLOYDIR_BASE_URI = "http://192.168.7.1/BOARD-dir"
2349 2291
@@ -2362,8 +2304,7 @@ system and gives an overview of their function and contents.
2362 To use the ``FILES`` variable, provide a package name override that 2304 To use the ``FILES`` variable, provide a package name override that
2363 identifies the resulting package. Then, provide a space-separated 2305 identifies the resulting package. Then, provide a space-separated
2364 list of files or paths that identify the files you want included as 2306 list of files or paths that identify the files you want included as
2365 part of the resulting package. Here is an example: 2307 part of the resulting package. Here is an example::
2366 ::
2367 2308
2368 FILES_${PN} += "${bindir}/mydir1 ${bindir}/mydir2/myfile" 2309 FILES_${PN} += "${bindir}/mydir1 ${bindir}/mydir2/myfile"
2369 2310
@@ -2398,8 +2339,7 @@ system and gives an overview of their function and contents.
2398 symbolic link (symlink) for shared libraries on the target platform. 2339 symbolic link (symlink) for shared libraries on the target platform.
2399 2340
2400 The following statement from the ``bitbake.conf`` shows how it is 2341 The following statement from the ``bitbake.conf`` shows how it is
2401 set: 2342 set::
2402 ::
2403 2343
2404 FILES_SOLIBSDEV ?= "${base_libdir}/lib*${SOLIBSDEV} ${libdir}/lib*${SOLIBSDEV}" 2344 FILES_SOLIBSDEV ?= "${base_libdir}/lib*${SOLIBSDEV} ${libdir}/lib*${SOLIBSDEV}"
2405 2345
@@ -2413,8 +2353,7 @@ system and gives an overview of their function and contents.
2413 2353
2414 Best practices dictate that you accomplish this by using 2354 Best practices dictate that you accomplish this by using
2415 ``FILESEXTRAPATHS`` from within a ``.bbappend`` file and that you 2355 ``FILESEXTRAPATHS`` from within a ``.bbappend`` file and that you
2416 prepend paths as follows: 2356 prepend paths as follows::
2417 ::
2418 2357
2419 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" 2358 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
2420 2359
@@ -2436,8 +2375,7 @@ system and gives an overview of their function and contents.
2436 are directing BitBake to extend the path by prepending directories 2375 are directing BitBake to extend the path by prepending directories
2437 to the search path. 2376 to the search path.
2438 2377
2439 Here is another common use: 2378 Here is another common use::
2440 ::
2441 2379
2442 FILESEXTRAPATHS_prepend := "${THISDIR}/files:" 2380 FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
2443 2381
@@ -2445,15 +2383,13 @@ system and gives an overview of their function and contents.
2445 ``FILESPATH`` variable to include a directory named ``files`` that is 2383 ``FILESPATH`` variable to include a directory named ``files`` that is
2446 in the same directory as the corresponding append file. 2384 in the same directory as the corresponding append file.
2447 2385
2448 This next example specifically adds three paths: 2386 This next example specifically adds three paths::
2449 ::
2450 2387
2451 FILESEXTRAPATHS_prepend := "path_1:path_2:path_3:" 2388 FILESEXTRAPATHS_prepend := "path_1:path_2:path_3:"
2452 2389
2453 A final example shows how you can extend the search path and include 2390 A final example shows how you can extend the search path and include
2454 a :term:`MACHINE`-specific override, which is useful 2391 a :term:`MACHINE`-specific override, which is useful
2455 in a BSP layer: 2392 in a BSP layer::
2456 ::
2457 2393
2458 FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/${PN}:" 2394 FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/${PN}:"
2459 2395
@@ -2485,8 +2421,7 @@ system and gives an overview of their function and contents.
2485 ":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-metadata:conditional syntax (overrides)`" 2421 ":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-metadata:conditional syntax (overrides)`"
2486 section of the BitBake User Manual. 2422 section of the BitBake User Manual.
2487 2423
2488 By default, the ``FILESOVERRIDES`` variable is defined as: 2424 By default, the ``FILESOVERRIDES`` variable is defined as::
2489 ::
2490 2425
2491 FILESOVERRIDES = "${TRANSLATED_TARGET_ARCH}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}" 2426 FILESOVERRIDES = "${TRANSLATED_TARGET_ARCH}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}"
2492 2427
@@ -2507,8 +2442,7 @@ system and gives an overview of their function and contents.
2507 2442
2508 The default value for the ``FILESPATH`` variable is defined in the 2443 The default value for the ``FILESPATH`` variable is defined in the
2509 ``base.bbclass`` class found in ``meta/classes`` in the 2444 ``base.bbclass`` class found in ``meta/classes`` in the
2510 :term:`Source Directory`: 2445 :term:`Source Directory`::
2511 ::
2512 2446
2513 FILESPATH = "${@base_set_filespath(["${FILE_DIRNAME}/${BP}", \ 2447 FILESPATH = "${@base_set_filespath(["${FILE_DIRNAME}/${BP}", \
2514 "${FILE_DIRNAME}/${BPN}", "${FILE_DIRNAME}/files"], d)}" 2448 "${FILE_DIRNAME}/${BPN}", "${FILE_DIRNAME}/files"], d)}"
@@ -2533,8 +2467,7 @@ system and gives an overview of their function and contents.
2533 2467
2534 You can take advantage of this searching behavior in useful ways. For 2468 You can take advantage of this searching behavior in useful ways. For
2535 example, consider a case where the following directory structure 2469 example, consider a case where the following directory structure
2536 exists for general and machine-specific configurations: 2470 exists for general and machine-specific configurations::
2537 ::
2538 2471
2539 files/defconfig 2472 files/defconfig
2540 files/MACHINEA/defconfig 2473 files/MACHINEA/defconfig
@@ -2662,16 +2595,14 @@ system and gives an overview of their function and contents.
2662 Programming (ROP) attacks much more difficult to execute. 2595 Programming (ROP) attacks much more difficult to execute.
2663 2596
2664 By default the ``security_flags.inc`` file enables PIE by setting the 2597 By default the ``security_flags.inc`` file enables PIE by setting the
2665 variable as follows: 2598 variable as follows::
2666 ::
2667 2599
2668 GCCPIE ?= "--enable-default-pie" 2600 GCCPIE ?= "--enable-default-pie"
2669 2601
2670 :term:`GCCVERSION` 2602 :term:`GCCVERSION`
2671 Specifies the default version of the GNU C Compiler (GCC) used for 2603 Specifies the default version of the GNU C Compiler (GCC) used for
2672 compilation. By default, ``GCCVERSION`` is set to "8.x" in the 2604 compilation. By default, ``GCCVERSION`` is set to "8.x" in the
2673 ``meta/conf/distro/include/tcmode-default.inc`` include file: 2605 ``meta/conf/distro/include/tcmode-default.inc`` include file::
2674 ::
2675 2606
2676 GCCVERSION ?= "8.%" 2607 GCCVERSION ?= "8.%"
2677 2608
@@ -2706,8 +2637,7 @@ system and gives an overview of their function and contents.
2706 passed to the ``groupadd`` command if you wish to add a group to the 2637 passed to the ``groupadd`` command if you wish to add a group to the
2707 system when the package is installed. 2638 system when the package is installed.
2708 2639
2709 Here is an example from the ``dbus`` recipe: 2640 Here is an example from the ``dbus`` recipe::
2710 ::
2711 2641
2712 GROUPADD_PARAM_${PN} = "-r netdev" 2642 GROUPADD_PARAM_${PN} = "-r netdev"
2713 2643
@@ -2855,13 +2785,11 @@ system and gives an overview of their function and contents.
2855 section. 2785 section.
2856 2786
2857 Setting this variable to "1" in your ``local.conf`` disables the 2787 Setting this variable to "1" in your ``local.conf`` disables the
2858 function: 2788 function::
2859 ::
2860 2789
2861 ICECC_DISABLED ??= "1" 2790 ICECC_DISABLED ??= "1"
2862 2791
2863 To enable the function, set the variable as follows: 2792 To enable the function, set the variable as follows::
2864 ::
2865 2793
2866 ICECC_DISABLED = "" 2794 ICECC_DISABLED = ""
2867 2795
@@ -2946,8 +2874,7 @@ system and gives an overview of their function and contents.
2946 installed name, separate it from the original name with a semi-colon 2874 installed name, separate it from the original name with a semi-colon
2947 (;). Source files need to be located in 2875 (;). Source files need to be located in
2948 :term:`DEPLOY_DIR_IMAGE`. Here are two 2876 :term:`DEPLOY_DIR_IMAGE`. Here are two
2949 examples: 2877 examples::
2950 ::
2951 2878
2952 IMAGE_EFI_BOOT_FILES = "${KERNEL_IMAGETYPE};bz2" 2879 IMAGE_EFI_BOOT_FILES = "${KERNEL_IMAGETYPE};bz2"
2953 IMAGE_EFI_BOOT_FILES = "${KERNEL_IMAGETYPE} microcode.cpio" 2880 IMAGE_EFI_BOOT_FILES = "${KERNEL_IMAGETYPE} microcode.cpio"
@@ -2956,8 +2883,7 @@ system and gives an overview of their function and contents.
2956 this case, the destination file must have the same name as the base 2883 this case, the destination file must have the same name as the base
2957 name of the source file path. To install files into a directory 2884 name of the source file path. To install files into a directory
2958 within the target location, pass its name after a semi-colon (;). 2885 within the target location, pass its name after a semi-colon (;).
2959 Here are two examples: 2886 Here are two examples::
2960 ::
2961 2887
2962 IMAGE_EFI_BOOT_FILES = "boot/loader/*" 2888 IMAGE_EFI_BOOT_FILES = "boot/loader/*"
2963 IMAGE_EFI_BOOT_FILES = "boot/loader/*;boot/" 2889 IMAGE_EFI_BOOT_FILES = "boot/loader/*;boot/"
@@ -2982,8 +2908,7 @@ system and gives an overview of their function and contents.
2982 installed name, separate it from the original name with a semi-colon 2908 installed name, separate it from the original name with a semi-colon
2983 (;). Source files need to be located in 2909 (;). Source files need to be located in
2984 :term:`DEPLOY_DIR_IMAGE`. Here are two 2910 :term:`DEPLOY_DIR_IMAGE`. Here are two
2985 examples: 2911 examples::
2986 ::
2987 2912
2988 IMAGE_BOOT_FILES = "u-boot.img uImage;kernel" 2913 IMAGE_BOOT_FILES = "u-boot.img uImage;kernel"
2989 IMAGE_BOOT_FILES = "u-boot.${UBOOT_SUFFIX} ${KERNEL_IMAGETYPE}" 2914 IMAGE_BOOT_FILES = "u-boot.${UBOOT_SUFFIX} ${KERNEL_IMAGETYPE}"
@@ -2992,8 +2917,7 @@ system and gives an overview of their function and contents.
2992 this case, the destination file must have the same name as the base 2917 this case, the destination file must have the same name as the base
2993 name of the source file path. To install files into a directory 2918 name of the source file path. To install files into a directory
2994 within the target location, pass its name after a semi-colon (;). 2919 within the target location, pass its name after a semi-colon (;).
2995 Here are two examples: 2920 Here are two examples::
2996 ::
2997 2921
2998 IMAGE_BOOT_FILES = "bcm2835-bootfiles/*" 2922 IMAGE_BOOT_FILES = "bcm2835-bootfiles/*"
2999 IMAGE_BOOT_FILES = "bcm2835-bootfiles/*;boot/" 2923 IMAGE_BOOT_FILES = "bcm2835-bootfiles/*;boot/"
@@ -3026,8 +2950,7 @@ system and gives an overview of their function and contents.
3026 type, which corresponds to the value set in 2950 type, which corresponds to the value set in
3027 :term:`IMAGE_FSTYPES`, (e.g. ``ext3``, 2951 :term:`IMAGE_FSTYPES`, (e.g. ``ext3``,
3028 ``btrfs``, and so forth). When setting this variable, you should use 2952 ``btrfs``, and so forth). When setting this variable, you should use
3029 an override for the associated type. Here is an example: 2953 an override for the associated type. Here is an example::
3030 ::
3031 2954
3032 IMAGE_CMD_jffs2 = "mkfs.jffs2 --root=${IMAGE_ROOTFS} \ 2955 IMAGE_CMD_jffs2 = "mkfs.jffs2 --root=${IMAGE_ROOTFS} \
3033 --faketime --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \ 2956 --faketime --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
@@ -3071,8 +2994,7 @@ system and gives an overview of their function and contents.
3071 Specifies the formats the OpenEmbedded build system uses during the 2994 Specifies the formats the OpenEmbedded build system uses during the
3072 build when creating the root filesystem. For example, setting 2995 build when creating the root filesystem. For example, setting
3073 ``IMAGE_FSTYPES`` as follows causes the build system to create root 2996 ``IMAGE_FSTYPES`` as follows causes the build system to create root
3074 filesystems using two formats: ``.ext3`` and ``.tar.bz2``: 2997 filesystems using two formats: ``.ext3`` and ``.tar.bz2``::
3075 ::
3076 2998
3077 IMAGE_FSTYPES = "ext3 tar.bz2" 2999 IMAGE_FSTYPES = "ext3 tar.bz2"
3078 3000
@@ -3103,8 +3025,7 @@ system and gives an overview of their function and contents.
3103 auto-generated entries in ``IMAGE_INSTALL`` in addition to its 3025 auto-generated entries in ``IMAGE_INSTALL`` in addition to its
3104 default contents. 3026 default contents.
3105 3027
3106 When you use this variable, it is best to use it as follows: 3028 When you use this variable, it is best to use it as follows::
3107 ::
3108 3029
3109 IMAGE_INSTALL_append = " package-name" 3030 IMAGE_INSTALL_append = " package-name"
3110 3031
@@ -3147,8 +3068,7 @@ system and gives an overview of their function and contents.
3147 into separate packages. Setting the ``IMAGE_LINGUAS`` variable 3068 into separate packages. Setting the ``IMAGE_LINGUAS`` variable
3148 ensures that any locale packages that correspond to packages already 3069 ensures that any locale packages that correspond to packages already
3149 selected for installation into the image are also installed. Here is 3070 selected for installation into the image are also installed. Here is
3150 an example: 3071 an example::
3151 ::
3152 3072
3153 IMAGE_LINGUAS = "pt-br de-de" 3073 IMAGE_LINGUAS = "pt-br de-de"
3154 3074
@@ -3167,8 +3087,7 @@ system and gives an overview of their function and contents.
3167 The name of the output image symlink (which does not include 3087 The name of the output image symlink (which does not include
3168 the version part as :term:`IMAGE_NAME` does). The default value 3088 the version part as :term:`IMAGE_NAME` does). The default value
3169 is derived using the :term:`IMAGE_BASENAME` and :term:`MACHINE` 3089 is derived using the :term:`IMAGE_BASENAME` and :term:`MACHINE`
3170 variables: 3090 variables::
3171 ::
3172 3091
3173 IMAGE_LINK_NAME ?= "${IMAGE_BASENAME}-${MACHINE}" 3092 IMAGE_LINK_NAME ?= "${IMAGE_BASENAME}-${MACHINE}"
3174 3093
@@ -3176,14 +3095,12 @@ system and gives an overview of their function and contents.
3176 :term:`IMAGE_MANIFEST` 3095 :term:`IMAGE_MANIFEST`
3177 The manifest file for the image. This file lists all the installed 3096 The manifest file for the image. This file lists all the installed
3178 packages that make up the image. The file contains package 3097 packages that make up the image. The file contains package
3179 information on a line-per-package basis as follows: 3098 information on a line-per-package basis as follows::
3180 ::
3181 3099
3182 packagename packagearch version 3100 packagename packagearch version
3183 3101
3184 The :ref:`image <ref-classes-image>` class defines the manifest 3102 The :ref:`image <ref-classes-image>` class defines the manifest
3185 file as follows: 3103 file as follows::
3186 ::
3187 3104
3188 IMAGE_MANIFEST ="${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.manifest" 3105 IMAGE_MANIFEST ="${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.manifest"
3189 3106
@@ -3197,8 +3114,7 @@ system and gives an overview of their function and contents.
3197 The name of the output image files minus the extension. This variable 3114 The name of the output image files minus the extension. This variable
3198 is derived using the :term:`IMAGE_BASENAME`, 3115 is derived using the :term:`IMAGE_BASENAME`,
3199 :term:`MACHINE`, and :term:`IMAGE_VERSION_SUFFIX` 3116 :term:`MACHINE`, and :term:`IMAGE_VERSION_SUFFIX`
3200 variables: 3117 variables::
3201 ::
3202 3118
3203 IMAGE_NAME ?= "${IMAGE_BASENAME}-${MACHINE}${IMAGE_VERSION_SUFFIX}" 3119 IMAGE_NAME ?= "${IMAGE_BASENAME}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
3204 3120
@@ -3229,8 +3145,7 @@ system and gives an overview of their function and contents.
3229 to boot and allows for basic post installs while still leaving a 3145 to boot and allows for basic post installs while still leaving a
3230 small amount of free disk space. If 30% free space is inadequate, you 3146 small amount of free disk space. If 30% free space is inadequate, you
3231 can increase the default value. For example, the following setting 3147 can increase the default value. For example, the following setting
3232 gives you 50% free space added to the image: 3148 gives you 50% free space added to the image::
3233 ::
3234 3149
3235 IMAGE_OVERHEAD_FACTOR = "1.5" 3150 IMAGE_OVERHEAD_FACTOR = "1.5"
3236 3151
@@ -3271,8 +3186,7 @@ system and gives an overview of their function and contents.
3271 :term:`IMAGE_POSTPROCESS_COMMAND` 3186 :term:`IMAGE_POSTPROCESS_COMMAND`
3272 Specifies a list of functions to call once the OpenEmbedded build 3187 Specifies a list of functions to call once the OpenEmbedded build
3273 system creates the final image output files. You can specify 3188 system creates the final image output files. You can specify
3274 functions separated by semicolons: 3189 functions separated by semicolons::
3275 ::
3276 3190
3277 IMAGE_POSTPROCESS_COMMAND += "function; ... " 3191 IMAGE_POSTPROCESS_COMMAND += "function; ... "
3278 3192
@@ -3285,8 +3199,7 @@ system and gives an overview of their function and contents.
3285 :term:`IMAGE_PREPROCESS_COMMAND` 3199 :term:`IMAGE_PREPROCESS_COMMAND`
3286 Specifies a list of functions to call before the OpenEmbedded build 3200 Specifies a list of functions to call before the OpenEmbedded build
3287 system creates the final image output files. You can specify 3201 system creates the final image output files. You can specify
3288 functions separated by semicolons: 3202 functions separated by semicolons::
3289 ::
3290 3203
3291 IMAGE_PREPROCESS_COMMAND += "function; ... " 3204 IMAGE_PREPROCESS_COMMAND += "function; ... "
3292 3205
@@ -3317,14 +3230,12 @@ system and gives an overview of their function and contents.
3317 This variable is particularly useful when you want to ensure that a 3230 This variable is particularly useful when you want to ensure that a
3318 specific amount of free disk space is available on a device after an 3231 specific amount of free disk space is available on a device after an
3319 image is installed and running. For example, to be sure 5 Gbytes of 3232 image is installed and running. For example, to be sure 5 Gbytes of
3320 free disk space is available, set the variable as follows: 3233 free disk space is available, set the variable as follows::
3321 ::
3322 3234
3323 IMAGE_ROOTFS_EXTRA_SPACE = "5242880" 3235 IMAGE_ROOTFS_EXTRA_SPACE = "5242880"
3324 3236
3325 For example, the Yocto Project Build Appliance specifically requests 3237 For example, the Yocto Project Build Appliance specifically requests
3326 40 Gbytes of extra space with the line: 3238 40 Gbytes of extra space with the line::
3327 ::
3328 3239
3329 IMAGE_ROOTFS_EXTRA_SPACE = "41943040" 3240 IMAGE_ROOTFS_EXTRA_SPACE = "41943040"
3330 3241
@@ -3335,8 +3246,7 @@ system and gives an overview of their function and contents.
3335 the generated image, a requested size for the image, and requested 3246 the generated image, a requested size for the image, and requested
3336 additional free disk space to be added to the image. Programatically, 3247 additional free disk space to be added to the image. Programatically,
3337 the build system determines the final size of the generated image as 3248 the build system determines the final size of the generated image as
3338 follows: 3249 follows::
3339 ::
3340 3250
3341 if (image-du * overhead) < rootfs-size: 3251 if (image-du * overhead) < rootfs-size:
3342 internal-rootfs-size = rootfs-size + xspace 3252 internal-rootfs-size = rootfs-size + xspace
@@ -3355,8 +3265,7 @@ system and gives an overview of their function and contents.
3355 3265
3356 :term:`IMAGE_TYPEDEP` 3266 :term:`IMAGE_TYPEDEP`
3357 Specifies a dependency from one image type on another. Here is an 3267 Specifies a dependency from one image type on another. Here is an
3358 example from the :ref:`image-live <ref-classes-image-live>` class: 3268 example from the :ref:`image-live <ref-classes-image-live>` class::
3359 ::
3360 3269
3361 IMAGE_TYPEDEP_live = "ext3" 3270 IMAGE_TYPEDEP_live = "ext3"
3362 3271
@@ -3443,8 +3352,7 @@ system and gives an overview of their function and contents.
3443 variable. Once the variable is defined in the ``include`` file, you 3352 variable. Once the variable is defined in the ``include`` file, you
3444 can use the variable to set the ``PR`` values in each recipe. You 3353 can use the variable to set the ``PR`` values in each recipe. You
3445 will notice that when you set a recipe's ``PR`` you can provide more 3354 will notice that when you set a recipe's ``PR`` you can provide more
3446 granular revisioning by appending values to the ``INC_PR`` variable: 3355 granular revisioning by appending values to the ``INC_PR`` variable::
3447 ::
3448 3356
3449 recipes-graphics/xorg-font/xorg-font-common.inc:INC_PR = "r2" 3357 recipes-graphics/xorg-font/xorg-font-common.inc:INC_PR = "r2"
3450 recipes-graphics/xorg-font/encodings_1.0.4.bb:PR = "${INC_PR}.1" 3358 recipes-graphics/xorg-font/encodings_1.0.4.bb:PR = "${INC_PR}.1"
@@ -3467,8 +3375,7 @@ system and gives an overview of their function and contents.
3467 .. note:: 3375 .. note::
3468 3376
3469 This functionality is only regularly tested using the following 3377 This functionality is only regularly tested using the following
3470 setting: 3378 setting::
3471 ::
3472 3379
3473 INCOMPATIBLE_LICENSE = "GPL-3.0 LGPL-3.0 AGPL-3.0" 3380 INCOMPATIBLE_LICENSE = "GPL-3.0 LGPL-3.0 AGPL-3.0"
3474 3381
@@ -3482,8 +3389,7 @@ system and gives an overview of their function and contents.
3482 It is possible to define a list of licenses that are allowed to be 3389 It is possible to define a list of licenses that are allowed to be
3483 used instead of the licenses that are excluded. To do this, define 3390 used instead of the licenses that are excluded. To do this, define
3484 a variable ``COMPATIBLE_LICENSES`` with the names of the licenses 3391 a variable ``COMPATIBLE_LICENSES`` with the names of the licenses
3485 that are allowed. Then define ``INCOMPATIBLE_LICENSE`` as: 3392 that are allowed. Then define ``INCOMPATIBLE_LICENSE`` as::
3486 ::
3487 3393
3488 INCOMPATIBLE_LICENSE = "${@' '.join(sorted(set(d.getVar('AVAILABLE_LICENSES').split()) - set(d.getVar('COMPATIBLE_LICENSES').split())))}" 3394 INCOMPATIBLE_LICENSE = "${@' '.join(sorted(set(d.getVar('AVAILABLE_LICENSES').split()) - set(d.getVar('COMPATIBLE_LICENSES').split())))}"
3489 3395
@@ -3508,8 +3414,7 @@ system and gives an overview of their function and contents.
3508 unlikely that you want to edit this variable. 3414 unlikely that you want to edit this variable.
3509 3415
3510 The default value of the variable is set as follows in the 3416 The default value of the variable is set as follows in the
3511 ``meta/conf/distro/defaultsetup.conf`` file: 3417 ``meta/conf/distro/defaultsetup.conf`` file::
3512 ::
3513 3418
3514 INHERIT_DISTRO ?= "debian devshell sstate license" 3419 INHERIT_DISTRO ?= "debian devshell sstate license"
3515 3420
@@ -3533,8 +3438,7 @@ system and gives an overview of their function and contents.
3533 3438
3534 To prevent the build system from splitting out debug information 3439 To prevent the build system from splitting out debug information
3535 during packaging, set the ``INHIBIT_PACKAGE_DEBUG_SPLIT`` variable as 3440 during packaging, set the ``INHIBIT_PACKAGE_DEBUG_SPLIT`` variable as
3536 follows: 3441 follows::
3537 ::
3538 3442
3539 INHIBIT_PACKAGE_DEBUG_SPLIT = "1" 3443 INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
3540 3444
@@ -3646,15 +3550,13 @@ system and gives an overview of their function and contents.
3646 3550
3647 Setting the variable to "1" in a configuration file causes the 3551 Setting the variable to "1" in a configuration file causes the
3648 OpenEmbedded build system to generate a kernel image with the 3552 OpenEmbedded build system to generate a kernel image with the
3649 initramfs specified in ``INITRAMFS_IMAGE`` bundled within: 3553 initramfs specified in ``INITRAMFS_IMAGE`` bundled within::
3650 ::
3651 3554
3652 INITRAMFS_IMAGE_BUNDLE = "1" 3555 INITRAMFS_IMAGE_BUNDLE = "1"
3653 3556
3654 By default, the 3557 By default, the
3655 :ref:`kernel <ref-classes-kernel>` class sets this variable to a 3558 :ref:`kernel <ref-classes-kernel>` class sets this variable to a
3656 null string as follows: 3559 null string as follows::
3657 ::
3658 3560
3659 INITRAMFS_IMAGE_BUNDLE ?= "" 3561 INITRAMFS_IMAGE_BUNDLE ?= ""
3660 3562
@@ -3672,15 +3574,13 @@ system and gives an overview of their function and contents.
3672 :term:`INITRAMFS_LINK_NAME` 3574 :term:`INITRAMFS_LINK_NAME`
3673 The link name of the initial RAM filesystem image. This variable is 3575 The link name of the initial RAM filesystem image. This variable is
3674 set in the ``meta/classes/kernel-artifact-names.bbclass`` file as 3576 set in the ``meta/classes/kernel-artifact-names.bbclass`` file as
3675 follows: 3577 follows::
3676 ::
3677 3578
3678 INITRAMFS_LINK_NAME ?= "initramfs-${KERNEL_ARTIFACT_LINK_NAME}" 3579 INITRAMFS_LINK_NAME ?= "initramfs-${KERNEL_ARTIFACT_LINK_NAME}"
3679 3580
3680 The value of the 3581 The value of the
3681 ``KERNEL_ARTIFACT_LINK_NAME`` variable, which is set in the same 3582 ``KERNEL_ARTIFACT_LINK_NAME`` variable, which is set in the same
3682 file, has the following value: 3583 file, has the following value::
3683 ::
3684 3584
3685 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}" 3585 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
3686 3586
@@ -3690,14 +3590,12 @@ system and gives an overview of their function and contents.
3690 :term:`INITRAMFS_NAME` 3590 :term:`INITRAMFS_NAME`
3691 The base name of the initial RAM filesystem image. This variable is 3591 The base name of the initial RAM filesystem image. This variable is
3692 set in the ``meta/classes/kernel-artifact-names.bbclass`` file as 3592 set in the ``meta/classes/kernel-artifact-names.bbclass`` file as
3693 follows: 3593 follows::
3694 ::
3695 3594
3696 INITRAMFS_NAME ?= "initramfs-${KERNEL_ARTIFACT_NAME}" 3595 INITRAMFS_NAME ?= "initramfs-${KERNEL_ARTIFACT_NAME}"
3697 3596
3698 The value of the :term:`KERNEL_ARTIFACT_NAME` 3597 The value of the :term:`KERNEL_ARTIFACT_NAME`
3699 variable, which is set in the same file, has the following value: 3598 variable, which is set in the same file, has the following value::
3700 ::
3701 3599
3702 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}" 3600 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
3703 3601
@@ -3735,8 +3633,7 @@ system and gives an overview of their function and contents.
3735 variable. 3633 variable.
3736 3634
3737 :term:`INITSCRIPT_PARAMS` 3635 :term:`INITSCRIPT_PARAMS`
3738 Specifies the options to pass to ``update-rc.d``. Here is an example: 3636 Specifies the options to pass to ``update-rc.d``. Here is an example::
3739 ::
3740 3637
3741 INITSCRIPT_PARAMS = "start 99 5 2 . stop 20 0 1 6 ." 3638 INITSCRIPT_PARAMS = "start 99 5 2 . stop 20 0 1 6 ."
3742 3639
@@ -3756,8 +3653,7 @@ system and gives an overview of their function and contents.
3756 recipe. For example, to skip the check for symbolic link ``.so`` 3653 recipe. For example, to skip the check for symbolic link ``.so``
3757 files in the main package of a recipe, add the following to the 3654 files in the main package of a recipe, add the following to the
3758 recipe. The package name override must be used, which in this example 3655 recipe. The package name override must be used, which in this example
3759 is ``${PN}``: 3656 is ``${PN}``::
3760 ::
3761 3657
3762 INSANE_SKIP_${PN} += "dev-so" 3658 INSANE_SKIP_${PN} += "dev-so"
3763 3659
@@ -3799,8 +3695,7 @@ system and gives an overview of their function and contents.
3799 kernel's append file. For example, if you are using the 3695 kernel's append file. For example, if you are using the
3800 ``linux-yocto_4.12`` kernel, the kernel recipe file is the 3696 ``linux-yocto_4.12`` kernel, the kernel recipe file is the
3801 ``meta/recipes-kernel/linux/linux-yocto_4.12.bb`` file. ``KBRANCH`` 3697 ``meta/recipes-kernel/linux/linux-yocto_4.12.bb`` file. ``KBRANCH``
3802 is set as follows in that kernel recipe file: 3698 is set as follows in that kernel recipe file::
3803 ::
3804 3699
3805 KBRANCH ?= "standard/base" 3700 KBRANCH ?= "standard/base"
3806 3701
@@ -3812,8 +3707,7 @@ system and gives an overview of their function and contents.
3812 Beaglebone, EdgeRouter, and generic versions of both 32 and 64-bit IA 3707 Beaglebone, EdgeRouter, and generic versions of both 32 and 64-bit IA
3813 machines (``meta-yocto-bsp``) is named 3708 machines (``meta-yocto-bsp``) is named
3814 ``meta-yocto-bsp/recipes-kernel/linux/linux-yocto_4.12.bbappend``. 3709 ``meta-yocto-bsp/recipes-kernel/linux/linux-yocto_4.12.bbappend``.
3815 Here are the related statements from that append file: 3710 Here are the related statements from that append file::
3816 ::
3817 3711
3818 KBRANCH_genericx86 = "standard/base" 3712 KBRANCH_genericx86 = "standard/base"
3819 KBRANCH_genericx86-64 = "standard/base" 3713 KBRANCH_genericx86-64 = "standard/base"
@@ -3839,19 +3733,16 @@ system and gives an overview of their function and contents.
3839 ``defconfig`` file. 3733 ``defconfig`` file.
3840 3734
3841 To use the variable, set it in the append file for your kernel recipe 3735 To use the variable, set it in the append file for your kernel recipe
3842 using the following form: 3736 using the following form::
3843 ::
3844 3737
3845 KBUILD_DEFCONFIG_KMACHINE ?= defconfig_file 3738 KBUILD_DEFCONFIG_KMACHINE ?= defconfig_file
3846 3739
3847 Here is an example from a "raspberrypi2" ``KMACHINE`` build that uses 3740 Here is an example from a "raspberrypi2" ``KMACHINE`` build that uses
3848 a ``defconfig`` file named "bcm2709_defconfig": 3741 a ``defconfig`` file named "bcm2709_defconfig"::
3849 ::
3850 3742
3851 KBUILD_DEFCONFIG_raspberrypi2 = "bcm2709_defconfig" 3743 KBUILD_DEFCONFIG_raspberrypi2 = "bcm2709_defconfig"
3852 3744
3853 As an alternative, you can use the following within your append file: 3745 As an alternative, you can use the following within your append file::
3854 ::
3855 3746
3856 KBUILD_DEFCONFIG_pn-linux-yocto ?= defconfig_file 3747 KBUILD_DEFCONFIG_pn-linux-yocto ?= defconfig_file
3857 3748
@@ -3872,8 +3763,7 @@ system and gives an overview of their function and contents.
3872 3763
3873 The value of ``KERNEL_ARTIFACT_NAME``, which is set in the 3764 The value of ``KERNEL_ARTIFACT_NAME``, which is set in the
3874 ``meta/classes/kernel-artifact-names.bbclass`` file, has the 3765 ``meta/classes/kernel-artifact-names.bbclass`` file, has the
3875 following default value: 3766 following default value::
3876 ::
3877 3767
3878 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}" 3768 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
3879 3769
@@ -3905,15 +3795,13 @@ system and gives an overview of their function and contents.
3905 :term:`KERNEL_DTB_LINK_NAME` 3795 :term:`KERNEL_DTB_LINK_NAME`
3906 The link name of the kernel device tree binary (DTB). This variable 3796 The link name of the kernel device tree binary (DTB). This variable
3907 is set in the ``meta/classes/kernel-artifact-names.bbclass`` file as 3797 is set in the ``meta/classes/kernel-artifact-names.bbclass`` file as
3908 follows: 3798 follows::
3909 ::
3910 3799
3911 KERNEL_DTB_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}" 3800 KERNEL_DTB_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
3912 3801
3913 The 3802 The
3914 value of the ``KERNEL_ARTIFACT_LINK_NAME`` variable, which is set in 3803 value of the ``KERNEL_ARTIFACT_LINK_NAME`` variable, which is set in
3915 the same file, has the following value: 3804 the same file, has the following value::
3916 ::
3917 3805
3918 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}" 3806 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
3919 3807
@@ -3923,14 +3811,12 @@ system and gives an overview of their function and contents.
3923 :term:`KERNEL_DTB_NAME` 3811 :term:`KERNEL_DTB_NAME`
3924 The base name of the kernel device tree binary (DTB). This variable 3812 The base name of the kernel device tree binary (DTB). This variable
3925 is set in the ``meta/classes/kernel-artifact-names.bbclass`` file as 3813 is set in the ``meta/classes/kernel-artifact-names.bbclass`` file as
3926 follows: 3814 follows::
3927 ::
3928 3815
3929 KERNEL_DTB_NAME ?= "${KERNEL_ARTIFACT_NAME}" 3816 KERNEL_DTB_NAME ?= "${KERNEL_ARTIFACT_NAME}"
3930 3817
3931 The value of the :term:`KERNEL_ARTIFACT_NAME` 3818 The value of the :term:`KERNEL_ARTIFACT_NAME`
3932 variable, which is set in the same file, has the following value: 3819 variable, which is set in the same file, has the following value::
3933 ::
3934 3820
3935 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}" 3821 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
3936 3822
@@ -3965,8 +3851,7 @@ system and gives an overview of their function and contents.
3965 For example, the following example from the ``linux-yocto-rt_4.12`` 3851 For example, the following example from the ``linux-yocto-rt_4.12``
3966 kernel recipe adds "netfilter" and "taskstats" features to all BSPs 3852 kernel recipe adds "netfilter" and "taskstats" features to all BSPs
3967 as well as "virtio" configurations to all QEMU machines. The last two 3853 as well as "virtio" configurations to all QEMU machines. The last two
3968 statements add specific configurations to targeted machine types: 3854 statements add specific configurations to targeted machine types::
3969 ::
3970 3855
3971 KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc" 3856 KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
3972 KERNEL_FEATURES_append = "${KERNEL_EXTRA_FEATURES}" 3857 KERNEL_FEATURES_append = "${KERNEL_EXTRA_FEATURES}"
@@ -3977,15 +3862,13 @@ system and gives an overview of their function and contents.
3977 :term:`KERNEL_FIT_LINK_NAME` 3862 :term:`KERNEL_FIT_LINK_NAME`
3978 The link name of the kernel flattened image tree (FIT) image. This 3863 The link name of the kernel flattened image tree (FIT) image. This
3979 variable is set in the ``meta/classes/kernel-artifact-names.bbclass`` 3864 variable is set in the ``meta/classes/kernel-artifact-names.bbclass``
3980 file as follows: 3865 file as follows::
3981 ::
3982 3866
3983 KERNEL_FIT_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}" 3867 KERNEL_FIT_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
3984 3868
3985 The value of the 3869 The value of the
3986 ``KERNEL_ARTIFACT_LINK_NAME`` variable, which is set in the same 3870 ``KERNEL_ARTIFACT_LINK_NAME`` variable, which is set in the same
3987 file, has the following value: 3871 file, has the following value::
3988 ::
3989 3872
3990 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}" 3873 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
3991 3874
@@ -3995,28 +3878,24 @@ system and gives an overview of their function and contents.
3995 :term:`KERNEL_FIT_NAME` 3878 :term:`KERNEL_FIT_NAME`
3996 The base name of the kernel flattened image tree (FIT) image. This 3879 The base name of the kernel flattened image tree (FIT) image. This
3997 variable is set in the ``meta/classes/kernel-artifact-names.bbclass`` 3880 variable is set in the ``meta/classes/kernel-artifact-names.bbclass``
3998 file as follows: 3881 file as follows::
3999 ::
4000 3882
4001 KERNEL_FIT_NAME ?= "${KERNEL_ARTIFACT_NAME}" 3883 KERNEL_FIT_NAME ?= "${KERNEL_ARTIFACT_NAME}"
4002 3884
4003 The value of the :term:`KERNEL_ARTIFACT_NAME` 3885 The value of the :term:`KERNEL_ARTIFACT_NAME`
4004 variable, which is set in the same file, has the following value: 3886 variable, which is set in the same file, has the following value::
4005 ::
4006 3887
4007 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}" 3888 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
4008 3889
4009 :term:`KERNEL_IMAGE_LINK_NAME` 3890 :term:`KERNEL_IMAGE_LINK_NAME`
4010 The link name for the kernel image. This variable is set in the 3891 The link name for the kernel image. This variable is set in the
4011 ``meta/classes/kernel-artifact-names.bbclass`` file as follows: 3892 ``meta/classes/kernel-artifact-names.bbclass`` file as follows::
4012 ::
4013 3893
4014 KERNEL_IMAGE_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}" 3894 KERNEL_IMAGE_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
4015 3895
4016 The value of 3896 The value of
4017 the ``KERNEL_ARTIFACT_LINK_NAME`` variable, which is set in the same 3897 the ``KERNEL_ARTIFACT_LINK_NAME`` variable, which is set in the same
4018 file, has the following value: 3898 file, has the following value::
4019 ::
4020 3899
4021 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}" 3900 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
4022 3901
@@ -4038,15 +3917,13 @@ system and gives an overview of their function and contents.
4038 3917
4039 :term:`KERNEL_IMAGE_NAME` 3918 :term:`KERNEL_IMAGE_NAME`
4040 The base name of the kernel image. This variable is set in the 3919 The base name of the kernel image. This variable is set in the
4041 ``meta/classes/kernel-artifact-names.bbclass`` file as follows: 3920 ``meta/classes/kernel-artifact-names.bbclass`` file as follows::
4042 ::
4043 3921
4044 KERNEL_IMAGE_NAME ?= "${KERNEL_ARTIFACT_NAME}" 3922 KERNEL_IMAGE_NAME ?= "${KERNEL_ARTIFACT_NAME}"
4045 3923
4046 The value of the 3924 The value of the
4047 :term:`KERNEL_ARTIFACT_NAME` variable, 3925 :term:`KERNEL_ARTIFACT_NAME` variable,
4048 which is set in the same file, has the following value: 3926 which is set in the same file, has the following value::
4049 ::
4050 3927
4051 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}" 3928 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
4052 3929
@@ -4074,8 +3951,7 @@ system and gives an overview of their function and contents.
4074 configuration file, an append file for the recipe, or the recipe 3951 configuration file, an append file for the recipe, or the recipe
4075 itself). 3952 itself).
4076 3953
4077 Specify it as follows: 3954 Specify it as follows::
4078 ::
4079 3955
4080 KERNEL_MODULE_AUTOLOAD += "module_name1 module_name2 module_name3" 3956 KERNEL_MODULE_AUTOLOAD += "module_name1 module_name2 module_name3"
4081 3957
@@ -4083,8 +3959,7 @@ system and gives an overview of their function and contents.
4083 system to populate the ``/etc/modules-load.d/modname.conf`` file with 3959 system to populate the ``/etc/modules-load.d/modname.conf`` file with
4084 the list of modules to be auto-loaded on boot. The modules appear 3960 the list of modules to be auto-loaded on boot. The modules appear
4085 one-per-line in the file. Here is an example of the most common use 3961 one-per-line in the file. Here is an example of the most common use
4086 case: 3962 case::
4087 ::
4088 3963
4089 KERNEL_MODULE_AUTOLOAD += "module_name" 3964 KERNEL_MODULE_AUTOLOAD += "module_name"
4090 3965
@@ -4146,8 +4021,7 @@ system and gives an overview of their function and contents.
4146 Provides a short description of a configuration fragment. You use 4021 Provides a short description of a configuration fragment. You use
4147 this variable in the ``.scc`` file that describes a configuration 4022 this variable in the ``.scc`` file that describes a configuration
4148 fragment file. Here is the variable used in a file named ``smp.scc`` 4023 fragment file. Here is the variable used in a file named ``smp.scc``
4149 to describe SMP being enabled: 4024 to describe SMP being enabled::
4150 ::
4151 4025
4152 define KFEATURE_DESCRIPTION "Enable SMP" 4026 define KFEATURE_DESCRIPTION "Enable SMP"
4153 4027
@@ -4163,8 +4037,7 @@ system and gives an overview of their function and contents.
4163 4037
4164 These mappings between different names occur in the Yocto Linux 4038 These mappings between different names occur in the Yocto Linux
4165 Kernel's ``meta`` branch. As an example take a look in the 4039 Kernel's ``meta`` branch. As an example take a look in the
4166 ``common/recipes-kernel/linux/linux-yocto_3.19.bbappend`` file: 4040 ``common/recipes-kernel/linux/linux-yocto_3.19.bbappend`` file::
4167 ::
4168 4041
4169 LINUX_VERSION_core2-32-intel-common = "3.19.0" 4042 LINUX_VERSION_core2-32-intel-common = "3.19.0"
4170 COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}" 4043 COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}"
@@ -4202,8 +4075,7 @@ system and gives an overview of their function and contents.
4202 :term:`LAYERDEPENDS` 4075 :term:`LAYERDEPENDS`
4203 Lists the layers, separated by spaces, on which this recipe depends. 4076 Lists the layers, separated by spaces, on which this recipe depends.
4204 Optionally, you can specify a specific layer version for a dependency 4077 Optionally, you can specify a specific layer version for a dependency
4205 by adding it to the end of the layer name. Here is an example: 4078 by adding it to the end of the layer name. Here is an example::
4206 ::
4207 4079
4208 LAYERDEPENDS_mylayer = "anotherlayer (=3)" 4080 LAYERDEPENDS_mylayer = "anotherlayer (=3)"
4209 4081
@@ -4228,8 +4100,7 @@ system and gives an overview of their function and contents.
4228 4100
4229 Optionally, you can specify a specific layer version for a 4101 Optionally, you can specify a specific layer version for a
4230 recommendation by adding the version to the end of the layer name. 4102 recommendation by adding the version to the end of the layer name.
4231 Here is an example: 4103 Here is an example::
4232 ::
4233 4104
4234 LAYERRECOMMENDS_mylayer = "anotherlayer (=3)" 4105 LAYERRECOMMENDS_mylayer = "anotherlayer (=3)"
4235 4106
@@ -4253,8 +4124,7 @@ system and gives an overview of their function and contents.
4253 For the list, use the Yocto Project 4124 For the list, use the Yocto Project
4254 :yocto_wiki:`Release Name </Releases>` (e.g. 4125 :yocto_wiki:`Release Name </Releases>` (e.g.
4255 &DISTRO_NAME_NO_CAP;). To specify multiple OE-Core versions for the 4126 &DISTRO_NAME_NO_CAP;). To specify multiple OE-Core versions for the
4256 layer, use a space-separated list: 4127 layer, use a space-separated list::
4257 ::
4258 4128
4259 LAYERSERIES_COMPAT_layer_root_name = "&DISTRO_NAME_NO_CAP; &DISTRO_NAME_NO_CAP_MINUS_ONE;" 4129 LAYERSERIES_COMPAT_layer_root_name = "&DISTRO_NAME_NO_CAP; &DISTRO_NAME_NO_CAP_MINUS_ONE;"
4260 4130
@@ -4335,8 +4205,7 @@ system and gives an overview of their function and contents.
4335 :term:`SPDXLICENSEMAP` flag names defined in 4205 :term:`SPDXLICENSEMAP` flag names defined in
4336 ``meta/conf/licenses.conf``. 4206 ``meta/conf/licenses.conf``.
4337 4207
4338 Here are some examples: 4208 Here are some examples::
4339 ::
4340 4209
4341 LICENSE = "LGPLv2.1 | GPLv3" 4210 LICENSE = "LGPLv2.1 | GPLv3"
4342 LICENSE = "MPL-1 & LGPLv2.1" 4211 LICENSE = "MPL-1 & LGPLv2.1"
@@ -4353,8 +4222,7 @@ system and gives an overview of their function and contents.
4353 situations where components of the output have different licenses. 4222 situations where components of the output have different licenses.
4354 For example, a piece of software whose code is licensed under GPLv2 4223 For example, a piece of software whose code is licensed under GPLv2
4355 but has accompanying documentation licensed under the GNU Free 4224 but has accompanying documentation licensed under the GNU Free
4356 Documentation License 1.2 could be specified as follows: 4225 Documentation License 1.2 could be specified as follows::
4357 ::
4358 4226
4359 LICENSE = "GFDL-1.2 & GPLv2" 4227 LICENSE = "GFDL-1.2 & GPLv2"
4360 LICENSE_${PN} = "GPLv2" 4228 LICENSE_${PN} = "GPLv2"
@@ -4409,8 +4277,7 @@ system and gives an overview of their function and contents.
4409 OpenEmbedded build system uses ``COMMON_LICENSE_DIR`` to define the 4277 OpenEmbedded build system uses ``COMMON_LICENSE_DIR`` to define the
4410 directory that holds common license text used during the build. The 4278 directory that holds common license text used during the build. The
4411 ``LICENSE_PATH`` variable allows you to extend that location to other 4279 ``LICENSE_PATH`` variable allows you to extend that location to other
4412 areas that have additional licenses: 4280 areas that have additional licenses::
4413 ::
4414 4281
4415 LICENSE_PATH += "path-to-additional-common-licenses" 4282 LICENSE_PATH += "path-to-additional-common-licenses"
4416 4283
@@ -4434,14 +4301,12 @@ system and gives an overview of their function and contents.
4434 being built using the OpenEmbedded build system is based. You define 4301 being built using the OpenEmbedded build system is based. You define
4435 this variable in the kernel recipe. For example, the 4302 this variable in the kernel recipe. For example, the
4436 ``linux-yocto-3.4.bb`` kernel recipe found in 4303 ``linux-yocto-3.4.bb`` kernel recipe found in
4437 ``meta/recipes-kernel/linux`` defines the variables as follows: 4304 ``meta/recipes-kernel/linux`` defines the variables as follows::
4438 ::
4439 4305
4440 LINUX_VERSION ?= "3.4.24" 4306 LINUX_VERSION ?= "3.4.24"
4441 4307
4442 The ``LINUX_VERSION`` variable is used to define :term:`PV` 4308 The ``LINUX_VERSION`` variable is used to define :term:`PV`
4443 for the recipe: 4309 for the recipe::
4444 ::
4445 4310
4446 PV = "${LINUX_VERSION}+git${SRCPV}" 4311 PV = "${LINUX_VERSION}+git${SRCPV}"
4447 4312
@@ -4449,16 +4314,14 @@ system and gives an overview of their function and contents.
4449 A string extension compiled into the version string of the Linux 4314 A string extension compiled into the version string of the Linux
4450 kernel built with the OpenEmbedded build system. You define this 4315 kernel built with the OpenEmbedded build system. You define this
4451 variable in the kernel recipe. For example, the linux-yocto kernel 4316 variable in the kernel recipe. For example, the linux-yocto kernel
4452 recipes all define the variable as follows: 4317 recipes all define the variable as follows::
4453 ::
4454 4318
4455 LINUX_VERSION_EXTENSION ?= "-yocto-${LINUX_KERNEL_TYPE}" 4319 LINUX_VERSION_EXTENSION ?= "-yocto-${LINUX_KERNEL_TYPE}"
4456 4320
4457 Defining this variable essentially sets the Linux kernel 4321 Defining this variable essentially sets the Linux kernel
4458 configuration item ``CONFIG_LOCALVERSION``, which is visible through 4322 configuration item ``CONFIG_LOCALVERSION``, which is visible through
4459 the ``uname`` command. Here is an example that shows the extension 4323 the ``uname`` command. Here is an example that shows the extension
4460 assuming it was set as previously shown: 4324 assuming it was set as previously shown::
4461 ::
4462 4325
4463 $ uname -r 4326 $ uname -r
4464 3.7.0-rc8-custom 4327 3.7.0-rc8-custom
@@ -4475,8 +4338,7 @@ system and gives an overview of their function and contents.
4475 ``MACHINE`` in the ``local.conf`` file found in the 4338 ``MACHINE`` in the ``local.conf`` file found in the
4476 :term:`Build Directory`. By default, ``MACHINE`` is set to 4339 :term:`Build Directory`. By default, ``MACHINE`` is set to
4477 "qemux86", which is an x86-based architecture machine to be emulated 4340 "qemux86", which is an x86-based architecture machine to be emulated
4478 using QEMU: 4341 using QEMU::
4479 ::
4480 4342
4481 MACHINE ?= "qemux86" 4343 MACHINE ?= "qemux86"
4482 4344
@@ -4488,8 +4350,7 @@ system and gives an overview of their function and contents.
4488 ``meta/conf/machine``. 4350 ``meta/conf/machine``.
4489 4351
4490 The list of machines supported by the Yocto Project as shipped 4352 The list of machines supported by the Yocto Project as shipped
4491 include the following: 4353 include the following::
4492 ::
4493 4354
4494 MACHINE ?= "qemuarm" 4355 MACHINE ?= "qemuarm"
4495 MACHINE ?= "qemuarm64" 4356 MACHINE ?= "qemuarm64"
@@ -4535,8 +4396,7 @@ system and gives an overview of their function and contents.
4535 As an example, suppose the machine for which you are building 4396 As an example, suppose the machine for which you are building
4536 requires ``example-init`` to be run during boot to initialize the 4397 requires ``example-init`` to be run during boot to initialize the
4537 hardware. In this case, you would use the following in the machine's 4398 hardware. In this case, you would use the following in the machine's
4538 ``.conf`` configuration file: 4399 ``.conf`` configuration file::
4539 ::
4540 4400
4541 MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "example-init" 4401 MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "example-init"
4542 4402
@@ -4567,8 +4427,7 @@ system and gives an overview of their function and contents.
4567 "recommends" relationship so that in the latter case, the build will 4427 "recommends" relationship so that in the latter case, the build will
4568 not fail due to the missing package. To accomplish this, assuming the 4428 not fail due to the missing package. To accomplish this, assuming the
4569 package for the module was called ``kernel-module-ab123``, you would 4429 package for the module was called ``kernel-module-ab123``, you would
4570 use the following in the machine's ``.conf`` configuration file: 4430 use the following in the machine's ``.conf`` configuration file::
4571 ::
4572 4431
4573 MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-module-ab123" 4432 MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-module-ab123"
4574 4433
@@ -4604,8 +4463,7 @@ system and gives an overview of their function and contents.
4604 exist, so it is acceptable for the build process to depend upon 4463 exist, so it is acceptable for the build process to depend upon
4605 finding the package. In this case, assuming the package for the 4464 finding the package. In this case, assuming the package for the
4606 firmware was called ``wifidriver-firmware``, you would use the 4465 firmware was called ``wifidriver-firmware``, you would use the
4607 following in the ``.conf`` file for the machine: 4466 following in the ``.conf`` file for the machine::
4608 ::
4609 4467
4610 MACHINE_EXTRA_RDEPENDS += "wifidriver-firmware" 4468 MACHINE_EXTRA_RDEPENDS += "wifidriver-firmware"
4611 4469
@@ -4631,8 +4489,7 @@ system and gives an overview of their function and contents.
4631 the build to succeed instead of failing as a result of the package 4489 the build to succeed instead of failing as a result of the package
4632 not being found. To accomplish this, assuming the package for the 4490 not being found. To accomplish this, assuming the package for the
4633 module was called ``kernel-module-examplewifi``, you would use the 4491 module was called ``kernel-module-examplewifi``, you would use the
4634 following in the ``.conf`` file for the machine: 4492 following in the ``.conf`` file for the machine::
4635 ::
4636 4493
4637 MACHINE_EXTRA_RRECOMMENDS += "kernel-module-examplewifi" 4494 MACHINE_EXTRA_RRECOMMENDS += "kernel-module-examplewifi"
4638 4495
@@ -4671,16 +4528,14 @@ system and gives an overview of their function and contents.
4671 should apply to a machine. For example, all machines emulated in QEMU 4528 should apply to a machine. For example, all machines emulated in QEMU
4672 (e.g. ``qemuarm``, ``qemux86``, and so forth) include a file named 4529 (e.g. ``qemuarm``, ``qemux86``, and so forth) include a file named
4673 ``meta/conf/machine/include/qemu.inc`` that prepends the following 4530 ``meta/conf/machine/include/qemu.inc`` that prepends the following
4674 override to ``MACHINEOVERRIDES``: 4531 override to ``MACHINEOVERRIDES``::
4675 ::
4676 4532
4677 MACHINEOVERRIDES =. "qemuall:" 4533 MACHINEOVERRIDES =. "qemuall:"
4678 4534
4679 This 4535 This
4680 override allows variables to be overridden for all machines emulated 4536 override allows variables to be overridden for all machines emulated
4681 in QEMU, like in the following example from the ``connman-conf`` 4537 in QEMU, like in the following example from the ``connman-conf``
4682 recipe: 4538 recipe::
4683 ::
4684 4539
4685 SRC_URI_append_qemuall = " file://wired.config \ 4540 SRC_URI_append_qemuall = " file://wired.config \
4686 file://wired-setup \ 4541 file://wired-setup \
@@ -4734,27 +4589,23 @@ system and gives an overview of their function and contents.
4734 recipes by using :term:`DEPENDS`, then a dependency on 4589 recipes by using :term:`DEPENDS`, then a dependency on
4735 "foo" will automatically get rewritten to a dependency on 4590 "foo" will automatically get rewritten to a dependency on
4736 "nativesdk-foo". However, dependencies like the following will not 4591 "nativesdk-foo". However, dependencies like the following will not
4737 get rewritten automatically: 4592 get rewritten automatically::
4738 ::
4739 4593
4740 do_foo[depends] += "recipe:do_foo" 4594 do_foo[depends] += "recipe:do_foo"
4741 4595
4742 If you want such a dependency to also get transformed, you can do the 4596 If you want such a dependency to also get transformed, you can do the
4743 following: 4597 following::
4744 ::
4745 4598
4746 do_foo[depends] += "${MLPREFIX}recipe:do_foo" 4599 do_foo[depends] += "${MLPREFIX}recipe:do_foo"
4747 4600
4748 module_autoload 4601 module_autoload
4749 This variable has been replaced by the ``KERNEL_MODULE_AUTOLOAD`` 4602 This variable has been replaced by the ``KERNEL_MODULE_AUTOLOAD``
4750 variable. You should replace all occurrences of ``module_autoload`` 4603 variable. You should replace all occurrences of ``module_autoload``
4751 with additions to ``KERNEL_MODULE_AUTOLOAD``, for example: 4604 with additions to ``KERNEL_MODULE_AUTOLOAD``, for example::
4752 ::
4753 4605
4754 module_autoload_rfcomm = "rfcomm" 4606 module_autoload_rfcomm = "rfcomm"
4755 4607
4756 should now be replaced with: 4608 should now be replaced with::
4757 ::
4758 4609
4759 KERNEL_MODULE_AUTOLOAD += "rfcomm" 4610 KERNEL_MODULE_AUTOLOAD += "rfcomm"
4760 4611
@@ -4773,8 +4624,7 @@ system and gives an overview of their function and contents.
4773 :term:`KERNEL_MODULE_AUTOLOAD` 4624 :term:`KERNEL_MODULE_AUTOLOAD`
4774 variable. 4625 variable.
4775 4626
4776 Here is the general syntax: 4627 Here is the general syntax::
4777 ::
4778 4628
4779 module_conf_module_name = "modprobe.d-syntax" 4629 module_conf_module_name = "modprobe.d-syntax"
4780 4630
@@ -4786,8 +4636,7 @@ system and gives an overview of their function and contents.
4786 Including ``module_conf`` causes the OpenEmbedded build system to 4636 Including ``module_conf`` causes the OpenEmbedded build system to
4787 populate the ``/etc/modprobe.d/modname.conf`` file with 4637 populate the ``/etc/modprobe.d/modname.conf`` file with
4788 ``modprobe.d`` syntax lines. Here is an example that adds the options 4638 ``modprobe.d`` syntax lines. Here is an example that adds the options
4789 ``arg1`` and ``arg2`` to a module named ``mymodule``: 4639 ``arg1`` and ``arg2`` to a module named ``mymodule``::
4790 ::
4791 4640
4792 module_conf_mymodule = "options mymodule arg1=val1 arg2=val2" 4641 module_conf_mymodule = "options mymodule arg1=val1 arg2=val2"
4793 4642
@@ -4801,15 +4650,13 @@ system and gives an overview of their function and contents.
4801 4650
4802 :term:`MODULE_TARBALL_LINK_NAME` 4651 :term:`MODULE_TARBALL_LINK_NAME`
4803 The link name of the kernel module tarball. This variable is set in 4652 The link name of the kernel module tarball. This variable is set in
4804 the ``meta/classes/kernel-artifact-names.bbclass`` file as follows: 4653 the ``meta/classes/kernel-artifact-names.bbclass`` file as follows::
4805 ::
4806 4654
4807 MODULE_TARBALL_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}" 4655 MODULE_TARBALL_LINK_NAME ?= "${KERNEL_ARTIFACT_LINK_NAME}"
4808 4656
4809 The value 4657 The value
4810 of the ``KERNEL_ARTIFACT_LINK_NAME`` variable, which is set in the 4658 of the ``KERNEL_ARTIFACT_LINK_NAME`` variable, which is set in the
4811 same file, has the following value: 4659 same file, has the following value::
4812 ::
4813 4660
4814 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}" 4661 KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
4815 4662
@@ -4817,14 +4664,12 @@ system and gives an overview of their function and contents.
4817 4664
4818 :term:`MODULE_TARBALL_NAME` 4665 :term:`MODULE_TARBALL_NAME`
4819 The base name of the kernel module tarball. This variable is set in 4666 The base name of the kernel module tarball. This variable is set in
4820 the ``meta/classes/kernel-artifact-names.bbclass`` file as follows: 4667 the ``meta/classes/kernel-artifact-names.bbclass`` file as follows::
4821 ::
4822 4668
4823 MODULE_TARBALL_NAME ?= "${KERNEL_ARTIFACT_NAME}" 4669 MODULE_TARBALL_NAME ?= "${KERNEL_ARTIFACT_NAME}"
4824 4670
4825 The value of the :term:`KERNEL_ARTIFACT_NAME` variable, 4671 The value of the :term:`KERNEL_ARTIFACT_NAME` variable,
4826 which is set in the same file, has the following value: 4672 which is set in the same file, has the following value::
4827 ::
4828 4673
4829 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}" 4674 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
4830 4675
@@ -4834,8 +4679,7 @@ system and gives an overview of their function and contents.
4834 target systems to be put into different subdirectories of the same 4679 target systems to be put into different subdirectories of the same
4835 output directory. 4680 output directory.
4836 4681
4837 The default value of this variable is: 4682 The default value of this variable is::
4838 ::
4839 4683
4840 ${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS} 4684 ${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}
4841 4685
@@ -4874,15 +4718,13 @@ system and gives an overview of their function and contents.
4874 not exist in common licenses. 4718 not exist in common licenses.
4875 4719
4876 The following example shows how to add ``NO_GENERIC_LICENSE`` to a 4720 The following example shows how to add ``NO_GENERIC_LICENSE`` to a
4877 recipe: 4721 recipe::
4878 ::
4879 4722
4880 NO_GENERIC_LICENSE[license_name] = "license_file_in_fetched_source" 4723 NO_GENERIC_LICENSE[license_name] = "license_file_in_fetched_source"
4881 4724
4882 The following is an example that 4725 The following is an example that
4883 uses the ``LICENSE.Abilis.txt`` file as the license from the fetched 4726 uses the ``LICENSE.Abilis.txt`` file as the license from the fetched
4884 source: 4727 source::
4885 ::
4886 4728
4887 NO_GENERIC_LICENSE[Firmware-Abilis] = "LICENSE.Abilis.txt" 4729 NO_GENERIC_LICENSE[Firmware-Abilis] = "LICENSE.Abilis.txt"
4888 4730
@@ -4923,8 +4765,7 @@ system and gives an overview of their function and contents.
4923 Disables auto package from splitting ``.debug`` files. If a recipe 4765 Disables auto package from splitting ``.debug`` files. If a recipe
4924 requires ``FILES_${PN}-dbg`` to be set manually, the 4766 requires ``FILES_${PN}-dbg`` to be set manually, the
4925 ``NOAUTOPACKAGEDEBUG`` can be defined allowing you to define the 4767 ``NOAUTOPACKAGEDEBUG`` can be defined allowing you to define the
4926 content of the debug package. For example: 4768 content of the debug package. For example::
4927 ::
4928 4769
4929 NOAUTOPACKAGEDEBUG = "1" 4770 NOAUTOPACKAGEDEBUG = "1"
4930 FILES_${PN}-dev = "${includedir}/${QT_DIR_NAME}/Qt/*" 4771 FILES_${PN}-dev = "${includedir}/${QT_DIR_NAME}/Qt/*"
@@ -5016,8 +4857,7 @@ system and gives an overview of their function and contents.
5016 As an example, if the string "an-override" appears as an element in 4857 As an example, if the string "an-override" appears as an element in
5017 the colon-separated list in ``OVERRIDES``, then the following 4858 the colon-separated list in ``OVERRIDES``, then the following
5018 assignment will override ``FOO`` with the value "overridden" at the 4859 assignment will override ``FOO`` with the value "overridden" at the
5019 end of parsing: 4860 end of parsing::
5020 ::
5021 4861
5022 FOO_an-override = "overridden" 4862 FOO_an-override = "overridden"
5023 4863
@@ -5032,8 +4872,7 @@ system and gives an overview of their function and contents.
5032 :term:`DISTROOVERRIDES` variables. Another 4872 :term:`DISTROOVERRIDES` variables. Another
5033 important override included by default is ``pn-${PN}``. This override 4873 important override included by default is ``pn-${PN}``. This override
5034 allows variables to be set for a single recipe within configuration 4874 allows variables to be set for a single recipe within configuration
5035 (``.conf``) files. Here is an example: 4875 (``.conf``) files. Here is an example::
5036 ::
5037 4876
5038 FOO_pn-myrecipe = "myrecipe-specific value" 4877 FOO_pn-myrecipe = "myrecipe-specific value"
5039 4878
@@ -5045,8 +4884,7 @@ system and gives an overview of their function and contents.
5045 Project Development Tasks Manual for more information. 4884 Project Development Tasks Manual for more information.
5046 4885
5047 :term:`P` 4886 :term:`P`
5048 The recipe name and version. ``P`` is comprised of the following: 4887 The recipe name and version. ``P`` is comprised of the following::
5049 ::
5050 4888
5051 ${PN}-${PV} 4889 ${PN}-${PV}
5052 4890
@@ -5082,8 +4920,7 @@ system and gives an overview of their function and contents.
5082 However, if your recipe's output packages are built specific to the 4920 However, if your recipe's output packages are built specific to the
5083 target machine rather than generally for the architecture of the 4921 target machine rather than generally for the architecture of the
5084 machine, you should set ``PACKAGE_ARCH`` to the value of 4922 machine, you should set ``PACKAGE_ARCH`` to the value of
5085 :term:`MACHINE_ARCH` in the recipe as follows: 4923 :term:`MACHINE_ARCH` in the recipe as follows::
5086 ::
5087 4924
5088 PACKAGE_ARCH = "${MACHINE_ARCH}" 4925 PACKAGE_ARCH = "${MACHINE_ARCH}"
5089 4926
@@ -5119,8 +4956,7 @@ system and gives an overview of their function and contents.
5119 The build system uses only the first argument in the list as the 4956 The build system uses only the first argument in the list as the
5120 package manager when creating your image or SDK. However, packages 4957 package manager when creating your image or SDK. However, packages
5121 will be created using any additional packaging classes you specify. 4958 will be created using any additional packaging classes you specify.
5122 For example, if you use the following in your ``local.conf`` file: 4959 For example, if you use the following in your ``local.conf`` file::
5123 ::
5124 4960
5125 PACKAGE_CLASSES ?= "package_ipk" 4961 PACKAGE_CLASSES ?= "package_ipk"
5126 4962
@@ -5178,15 +5014,13 @@ system and gives an overview of their function and contents.
5178 5014
5179 :term:`PACKAGE_EXCLUDE` 5015 :term:`PACKAGE_EXCLUDE`
5180 Lists packages that should not be installed into an image. For 5016 Lists packages that should not be installed into an image. For
5181 example: 5017 example::
5182 ::
5183 5018
5184 PACKAGE_EXCLUDE = "package_name package_name package_name ..." 5019 PACKAGE_EXCLUDE = "package_name package_name package_name ..."
5185 5020
5186 You can set this variable globally in your ``local.conf`` file or you 5021 You can set this variable globally in your ``local.conf`` file or you
5187 can attach it to a specific image recipe by using the recipe name 5022 can attach it to a specific image recipe by using the recipe name
5188 override: 5023 override::
5189 ::
5190 5024
5191 PACKAGE_EXCLUDE_pn-target_image = "package_name" 5025 PACKAGE_EXCLUDE_pn-target_image = "package_name"
5192 5026
@@ -5230,8 +5064,7 @@ system and gives an overview of their function and contents.
5230 5064
5231 Consider the following example where the ``PACKAGE_FEED_URIS``, 5065 Consider the following example where the ``PACKAGE_FEED_URIS``,
5232 ``PACKAGE_FEED_BASE_PATHS``, and ``PACKAGE_FEED_ARCHS`` variables are 5066 ``PACKAGE_FEED_BASE_PATHS``, and ``PACKAGE_FEED_ARCHS`` variables are
5233 defined in your ``local.conf`` file: 5067 defined in your ``local.conf`` file::
5234 ::
5235 5068
5236 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \ 5069 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
5237 https://example.com/packagerepos/updates" 5070 https://example.com/packagerepos/updates"
@@ -5260,8 +5093,7 @@ system and gives an overview of their function and contents.
5260 5093
5261 Consider the following example where the ``PACKAGE_FEED_URIS``, 5094 Consider the following example where the ``PACKAGE_FEED_URIS``,
5262 ``PACKAGE_FEED_BASE_PATHS``, and ``PACKAGE_FEED_ARCHS`` variables are 5095 ``PACKAGE_FEED_BASE_PATHS``, and ``PACKAGE_FEED_ARCHS`` variables are
5263 defined in your ``local.conf`` file: 5096 defined in your ``local.conf`` file::
5264 ::
5265 5097
5266 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \ 5098 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
5267 https://example.com/packagerepos/updates" 5099 https://example.com/packagerepos/updates"
@@ -5290,8 +5122,7 @@ system and gives an overview of their function and contents.
5290 5122
5291 Consider the following example where the ``PACKAGE_FEED_URIS``, 5123 Consider the following example where the ``PACKAGE_FEED_URIS``,
5292 ``PACKAGE_FEED_BASE_PATHS``, and ``PACKAGE_FEED_ARCHS`` variables are 5124 ``PACKAGE_FEED_BASE_PATHS``, and ``PACKAGE_FEED_ARCHS`` variables are
5293 defined in your ``local.conf`` file: 5125 defined in your ``local.conf`` file::
5294 ::
5295 5126
5296 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \ 5127 PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \
5297 https://example.com/packagerepos/updates" 5128 https://example.com/packagerepos/updates"
@@ -5356,8 +5187,7 @@ system and gives an overview of their function and contents.
5356 recipe on a per-recipe basis. ``PACKAGECONFIG`` blocks are defined in 5187 recipe on a per-recipe basis. ``PACKAGECONFIG`` blocks are defined in
5357 recipes when you specify features and then arguments that define 5188 recipes when you specify features and then arguments that define
5358 feature behaviors. Here is the basic block structure (broken over 5189 feature behaviors. Here is the basic block structure (broken over
5359 multiple lines for readability): 5190 multiple lines for readability)::
5360 ::
5361 5191
5362 PACKAGECONFIG ??= "f1 f2 f3 ..." 5192 PACKAGECONFIG ??= "f1 f2 f3 ..."
5363 PACKAGECONFIG[f1] = "\ 5193 PACKAGECONFIG[f1] = "\
@@ -5423,26 +5253,22 @@ system and gives an overview of their function and contents.
5423 - *Append file:* Create an append file named 5253 - *Append file:* Create an append file named
5424 recipename\ ``.bbappend`` in your layer and override the value of 5254 recipename\ ``.bbappend`` in your layer and override the value of
5425 ``PACKAGECONFIG``. You can either completely override the 5255 ``PACKAGECONFIG``. You can either completely override the
5426 variable: 5256 variable::
5427 ::
5428 5257
5429 PACKAGECONFIG = "f4 f5" 5258 PACKAGECONFIG = "f4 f5"
5430 5259
5431 Or, you can just append the variable: 5260 Or, you can just append the variable::
5432 ::
5433 5261
5434 PACKAGECONFIG_append = " f4" 5262 PACKAGECONFIG_append = " f4"
5435 5263
5436 - *Configuration file:* This method is identical to changing the 5264 - *Configuration file:* This method is identical to changing the
5437 block through an append file except you edit your ``local.conf`` 5265 block through an append file except you edit your ``local.conf``
5438 or ``mydistro.conf`` file. As with append files previously 5266 or ``mydistro.conf`` file. As with append files previously
5439 described, you can either completely override the variable: 5267 described, you can either completely override the variable::
5440 ::
5441 5268
5442 PACKAGECONFIG_pn-recipename = "f4 f5" 5269 PACKAGECONFIG_pn-recipename = "f4 f5"
5443 5270
5444 Or, you can just amend the variable: 5271 Or, you can just amend the variable::
5445 ::
5446 5272
5447 PACKAGECONFIG_append_pn-recipename = " f4" 5273 PACKAGECONFIG_append_pn-recipename = " f4"
5448 5274
@@ -5467,8 +5293,7 @@ system and gives an overview of their function and contents.
5467 5293
5468 :term:`PACKAGES` 5294 :term:`PACKAGES`
5469 The list of packages the recipe creates. The default value is the 5295 The list of packages the recipe creates. The default value is the
5470 following: 5296 following::
5471 ::
5472 5297
5473 ${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN} 5298 ${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}
5474 5299
@@ -5594,8 +5419,7 @@ system and gives an overview of their function and contents.
5594 patched, it uses "patch". 5419 patched, it uses "patch".
5595 5420
5596 If you wish to use an alternative patching tool, set the variable in 5421 If you wish to use an alternative patching tool, set the variable in
5597 the recipe using one of the following: 5422 the recipe using one of the following::
5598 ::
5599 5423
5600 PATCHTOOL = "patch" 5424 PATCHTOOL = "patch"
5601 PATCHTOOL = "quilt" 5425 PATCHTOOL = "quilt"
@@ -5641,8 +5465,7 @@ system and gives an overview of their function and contents.
5641 :term:`PKGD` 5465 :term:`PKGD`
5642 Points to the destination directory for files to be packaged before 5466 Points to the destination directory for files to be packaged before
5643 they are split into individual packages. This directory defaults to 5467 they are split into individual packages. This directory defaults to
5644 the following: 5468 the following::
5645 ::
5646 5469
5647 ${WORKDIR}/package 5470 ${WORKDIR}/package
5648 5471
@@ -5654,8 +5477,7 @@ system and gives an overview of their function and contents.
5654 :ref:`ref-tasks-packagedata` task packages data 5477 :ref:`ref-tasks-packagedata` task packages data
5655 for each recipe and installs it into this temporary, shared area. 5478 for each recipe and installs it into this temporary, shared area.
5656 This directory defaults to the following, which you should not 5479 This directory defaults to the following, which you should not
5657 change: 5480 change::
5658 ::
5659 5481
5660 ${STAGING_DIR_HOST}/pkgdata 5482 ${STAGING_DIR_HOST}/pkgdata
5661 5483
@@ -5670,8 +5492,7 @@ system and gives an overview of their function and contents.
5670 :term:`PKGDEST` 5492 :term:`PKGDEST`
5671 Points to the parent directory for files to be packaged after they 5493 Points to the parent directory for files to be packaged after they
5672 have been split into individual packages. This directory defaults to 5494 have been split into individual packages. This directory defaults to
5673 the following: 5495 the following::
5674 ::
5675 5496
5676 ${WORKDIR}/packages-split 5497 ${WORKDIR}/packages-split
5677 5498
@@ -5682,8 +5503,7 @@ system and gives an overview of their function and contents.
5682 :term:`PKGDESTWORK` 5503 :term:`PKGDESTWORK`
5683 Points to a temporary work area where the 5504 Points to a temporary work area where the
5684 :ref:`ref-tasks-package` task saves package metadata. 5505 :ref:`ref-tasks-package` task saves package metadata.
5685 The ``PKGDESTWORK`` location defaults to the following: 5506 The ``PKGDESTWORK`` location defaults to the following::
5686 ::
5687 5507
5688 ${WORKDIR}/pkgdata 5508 ${WORKDIR}/pkgdata
5689 5509
@@ -5732,16 +5552,14 @@ system and gives an overview of their function and contents.
5732 5552
5733 To prevent a recipe from being built, use the ``PNBLACKLIST`` 5553 To prevent a recipe from being built, use the ``PNBLACKLIST``
5734 variable in your ``local.conf`` file. Here is an example that 5554 variable in your ``local.conf`` file. Here is an example that
5735 prevents ``myrecipe`` from being built: 5555 prevents ``myrecipe`` from being built::
5736 ::
5737 5556
5738 PNBLACKLIST[myrecipe] = "Not supported by our organization." 5557 PNBLACKLIST[myrecipe] = "Not supported by our organization."
5739 5558
5740 :term:`POPULATE_SDK_POST_HOST_COMMAND` 5559 :term:`POPULATE_SDK_POST_HOST_COMMAND`
5741 Specifies a list of functions to call once the OpenEmbedded build 5560 Specifies a list of functions to call once the OpenEmbedded build
5742 system has created the host part of the SDK. You can specify 5561 system has created the host part of the SDK. You can specify
5743 functions separated by semicolons: 5562 functions separated by semicolons::
5744 ::
5745 5563
5746 POPULATE_SDK_POST_HOST_COMMAND += "function; ... " 5564 POPULATE_SDK_POST_HOST_COMMAND += "function; ... "
5747 5565
@@ -5753,8 +5571,7 @@ system and gives an overview of their function and contents.
5753 :term:`POPULATE_SDK_POST_TARGET_COMMAND` 5571 :term:`POPULATE_SDK_POST_TARGET_COMMAND`
5754 Specifies a list of functions to call once the OpenEmbedded build 5572 Specifies a list of functions to call once the OpenEmbedded build
5755 system has created the target part of the SDK. You can specify 5573 system has created the target part of the SDK. You can specify
5756 functions separated by semicolons: 5574 functions separated by semicolons::
5757 ::
5758 5575
5759 POPULATE_SDK_POST_TARGET_COMMAND += "function; ... " 5576 POPULATE_SDK_POST_TARGET_COMMAND += "function; ... "
5760 5577
@@ -5804,8 +5621,7 @@ system and gives an overview of their function and contents.
5804 preferred provider). You should always suffix this variable with the 5621 preferred provider). You should always suffix this variable with the
5805 name of the provided item. And, you should define the variable using 5622 name of the provided item. And, you should define the variable using
5806 the preferred recipe's name (:term:`PN`). Here is a common 5623 the preferred recipe's name (:term:`PN`). Here is a common
5807 example: 5624 example::
5808 ::
5809 5625
5810 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" 5626 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
5811 5627
@@ -5813,8 +5629,7 @@ system and gives an overview of their function and contents.
5813 The ``PREFERRED_PROVIDER`` variable is set with the name (``PN``) of 5629 The ``PREFERRED_PROVIDER`` variable is set with the name (``PN``) of
5814 the recipe you prefer to provide "virtual/kernel". 5630 the recipe you prefer to provide "virtual/kernel".
5815 5631
5816 Following are more examples: 5632 Following are more examples::
5817 ::
5818 5633
5819 PREFERRED_PROVIDER_virtual/xserver = "xserver-xf86" 5634 PREFERRED_PROVIDER_virtual/xserver = "xserver-xf86"
5820 PREFERRED_PROVIDER_virtual/libgl ?= "mesa" 5635 PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
@@ -5842,8 +5657,7 @@ system and gives an overview of their function and contents.
5842 through the "``%``" character. You can use the character to match any 5657 through the "``%``" character. You can use the character to match any
5843 number of characters, which can be useful when specifying versions 5658 number of characters, which can be useful when specifying versions
5844 that contain long revision numbers that potentially change. Here are 5659 that contain long revision numbers that potentially change. Here are
5845 two examples: 5660 two examples::
5846 ::
5847 5661
5848 PREFERRED_VERSION_python = "3.4.0" 5662 PREFERRED_VERSION_python = "3.4.0"
5849 PREFERRED_VERSION_linux-yocto = "5.0%" 5663 PREFERRED_VERSION_linux-yocto = "5.0%"
@@ -5857,35 +5671,30 @@ system and gives an overview of their function and contents.
5857 The specified version is matched against :term:`PV`, which 5671 The specified version is matched against :term:`PV`, which
5858 does not necessarily match the version part of the recipe's filename. 5672 does not necessarily match the version part of the recipe's filename.
5859 For example, consider two recipes ``foo_1.2.bb`` and ``foo_git.bb`` 5673 For example, consider two recipes ``foo_1.2.bb`` and ``foo_git.bb``
5860 where ``foo_git.bb`` contains the following assignment: 5674 where ``foo_git.bb`` contains the following assignment::
5861 ::
5862 5675
5863 PV = "1.1+git${SRCPV}" 5676 PV = "1.1+git${SRCPV}"
5864 5677
5865 In this case, the correct way to select 5678 In this case, the correct way to select
5866 ``foo_git.bb`` is by using an assignment such as the following: 5679 ``foo_git.bb`` is by using an assignment such as the following::
5867 ::
5868 5680
5869 PREFERRED_VERSION_foo = "1.1+git%" 5681 PREFERRED_VERSION_foo = "1.1+git%"
5870 5682
5871 Compare that previous example 5683 Compare that previous example
5872 against the following incorrect example, which does not work: 5684 against the following incorrect example, which does not work::
5873 ::
5874 5685
5875 PREFERRED_VERSION_foo = "git" 5686 PREFERRED_VERSION_foo = "git"
5876 5687
5877 Sometimes the ``PREFERRED_VERSION`` variable can be set by 5688 Sometimes the ``PREFERRED_VERSION`` variable can be set by
5878 configuration files in a way that is hard to change. You can use 5689 configuration files in a way that is hard to change. You can use
5879 :term:`OVERRIDES` to set a machine-specific 5690 :term:`OVERRIDES` to set a machine-specific
5880 override. Here is an example: 5691 override. Here is an example::
5881 ::
5882 5692
5883 PREFERRED_VERSION_linux-yocto_qemux86 = "5.0%" 5693 PREFERRED_VERSION_linux-yocto_qemux86 = "5.0%"
5884 5694
5885 Although not recommended, worst case, you can also use the 5695 Although not recommended, worst case, you can also use the
5886 "forcevariable" override, which is the strongest override possible. 5696 "forcevariable" override, which is the strongest override possible.
5887 Here is an example: 5697 Here is an example::
5888 ::
5889 5698
5890 PREFERRED_VERSION_linux-yocto_forcevariable = "5.0%" 5699 PREFERRED_VERSION_linux-yocto_forcevariable = "5.0%"
5891 5700
@@ -5913,8 +5722,7 @@ system and gives an overview of their function and contents.
5913 Typically, you could add a specific server for the build system to 5722 Typically, you could add a specific server for the build system to
5914 attempt before any others by adding something like the following to 5723 attempt before any others by adding something like the following to
5915 the ``local.conf`` configuration file in the 5724 the ``local.conf`` configuration file in the
5916 :term:`Build Directory`: 5725 :term:`Build Directory`::
5917 ::
5918 5726
5919 PREMIRRORS_prepend = "\ 5727 PREMIRRORS_prepend = "\
5920 git://.*/.* http://www.yoctoproject.org/sources/ \n \ 5728 git://.*/.* http://www.yoctoproject.org/sources/ \n \
@@ -5950,8 +5758,7 @@ system and gives an overview of their function and contents.
5950 standard version of the library. 5758 standard version of the library.
5951 5759
5952 Libraries specified in this variable should be specified by their 5760 Libraries specified in this variable should be specified by their
5953 file name. For example, from the Firefox recipe in meta-browser: 5761 file name. For example, from the Firefox recipe in meta-browser::
5954 ::
5955 5762
5956 PRIVATE_LIBS = "libmozjs.so \ 5763 PRIVATE_LIBS = "libmozjs.so \
5957 libxpcom.so \ 5764 libxpcom.so \
@@ -5975,8 +5782,7 @@ system and gives an overview of their function and contents.
5975 ``DEPENDS``. 5782 ``DEPENDS``.
5976 5783
5977 Consider the following example ``PROVIDES`` statement from the recipe 5784 Consider the following example ``PROVIDES`` statement from the recipe
5978 file ``eudev_3.2.9.bb``: 5785 file ``eudev_3.2.9.bb``::
5979 ::
5980 5786
5981 PROVIDES += "udev" 5787 PROVIDES += "udev"
5982 5788
@@ -6013,8 +5819,7 @@ system and gives an overview of their function and contents.
6013 the component that manages the ``/dev`` directory. 5819 the component that manages the ``/dev`` directory.
6014 5820
6015 Setting the "preferred provider" for runtime dependencies is as 5821 Setting the "preferred provider" for runtime dependencies is as
6016 simple as using the following assignment in a configuration file: 5822 simple as using the following assignment in a configuration file::
6017 ::
6018 5823
6019 VIRTUAL-RUNTIME_dev_manager = "udev" 5824 VIRTUAL-RUNTIME_dev_manager = "udev"
6020 5825
@@ -6024,8 +5829,7 @@ system and gives an overview of their function and contents.
6024 5829
6025 The ``conf/local.conf.sample.extended`` configuration file in the 5830 The ``conf/local.conf.sample.extended`` configuration file in the
6026 :term:`Source Directory` shows how the 5831 :term:`Source Directory` shows how the
6027 ``PRSERV_HOST`` variable is set: 5832 ``PRSERV_HOST`` variable is set::
6028 ::
6029 5833
6030 PRSERV_HOST = "localhost:0" 5834 PRSERV_HOST = "localhost:0"
6031 5835
@@ -6086,8 +5890,7 @@ system and gives an overview of their function and contents.
6086 OpenEmbedded build system automatically sets it for you. 5890 OpenEmbedded build system automatically sets it for you.
6087 5891
6088 The variable allows recipes to use common infrastructure such as the 5892 The variable allows recipes to use common infrastructure such as the
6089 following: 5893 following::
6090 ::
6091 5894
6092 DEPENDS += "${PYTHON_PN}-native" 5895 DEPENDS += "${PYTHON_PN}-native"
6093 5896
@@ -6102,8 +5905,7 @@ system and gives an overview of their function and contents.
6102 will not be installed if conflicting packages are not first removed. 5905 will not be installed if conflicting packages are not first removed.
6103 5906
6104 Like all package-controlling variables, you must always use them in 5907 Like all package-controlling variables, you must always use them in
6105 conjunction with a package name override. Here is an example: 5908 conjunction with a package name override. Here is an example::
6106 ::
6107 5909
6108 RCONFLICTS_${PN} = "another_conflicting_package_name" 5910 RCONFLICTS_${PN} = "another_conflicting_package_name"
6109 5911
@@ -6111,8 +5913,7 @@ system and gives an overview of their function and contents.
6111 specifying versioned dependencies. Although the syntax varies 5913 specifying versioned dependencies. Although the syntax varies
6112 depending on the packaging format, BitBake hides these differences 5914 depending on the packaging format, BitBake hides these differences
6113 from you. Here is the general syntax to specify versions with the 5915 from you. Here is the general syntax to specify versions with the
6114 ``RCONFLICTS`` variable: 5916 ``RCONFLICTS`` variable::
6115 ::
6116 5917
6117 RCONFLICTS_${PN} = "package (operator version)" 5918 RCONFLICTS_${PN} = "package (operator version)"
6118 5919
@@ -6125,8 +5926,7 @@ system and gives an overview of their function and contents.
6125 - >= 5926 - >=
6126 5927
6127 For example, the following sets up a dependency on version 1.2 or 5928 For example, the following sets up a dependency on version 1.2 or
6128 greater of the package ``foo``: 5929 greater of the package ``foo``::
6129 ::
6130 5930
6131 RCONFLICTS_${PN} = "foo (>= 1.2)" 5931 RCONFLICTS_${PN} = "foo (>= 1.2)"
6132 5932
@@ -6135,8 +5935,7 @@ system and gives an overview of their function and contents.
6135 packages that must be installed in order for the package to function 5935 packages that must be installed in order for the package to function
6136 correctly. As an example, the following assignment declares that the 5936 correctly. As an example, the following assignment declares that the
6137 package ``foo`` needs the packages ``bar`` and ``baz`` to be 5937 package ``foo`` needs the packages ``bar`` and ``baz`` to be
6138 installed: 5938 installed::
6139 ::
6140 5939
6141 RDEPENDS_foo = "bar baz" 5940 RDEPENDS_foo = "bar baz"
6142 5941
@@ -6177,8 +5976,7 @@ system and gives an overview of their function and contents.
6177 name (remember that a single recipe can build multiple packages). For 5976 name (remember that a single recipe can build multiple packages). For
6178 example, suppose you are building a development package that depends 5977 example, suppose you are building a development package that depends
6179 on the ``perl`` package. In this case, you would use the following 5978 on the ``perl`` package. In this case, you would use the following
6180 ``RDEPENDS`` statement: 5979 ``RDEPENDS`` statement::
6181 ::
6182 5980
6183 RDEPENDS_${PN}-dev += "perl" 5981 RDEPENDS_${PN}-dev += "perl"
6184 5982
@@ -6207,8 +6005,7 @@ system and gives an overview of their function and contents.
6207 specifying versioned dependencies. Although the syntax varies 6005 specifying versioned dependencies. Although the syntax varies
6208 depending on the packaging format, BitBake hides these differences 6006 depending on the packaging format, BitBake hides these differences
6209 from you. Here is the general syntax to specify versions with the 6007 from you. Here is the general syntax to specify versions with the
6210 ``RDEPENDS`` variable: 6008 ``RDEPENDS`` variable::
6211 ::
6212 6009
6213 RDEPENDS_${PN} = "package (operator version)" 6010 RDEPENDS_${PN} = "package (operator version)"
6214 6011
@@ -6228,8 +6025,7 @@ system and gives an overview of their function and contents.
6228 specification. 6025 specification.
6229 6026
6230 For example, the following sets up a dependency on version 1.2 or 6027 For example, the following sets up a dependency on version 1.2 or
6231 greater of the package ``foo``: 6028 greater of the package ``foo``::
6232 ::
6233 6029
6234 RDEPENDS_${PN} = "foo (>= 1.2)" 6030 RDEPENDS_${PN} = "foo (>= 1.2)"
6235 6031
@@ -6270,8 +6066,7 @@ system and gives an overview of their function and contents.
6270 6066
6271 :term:`ROOT_HOME` 6067 :term:`ROOT_HOME`
6272 Defines the root home directory. By default, this directory is set as 6068 Defines the root home directory. By default, this directory is set as
6273 follows in the BitBake configuration file: 6069 follows in the BitBake configuration file::
6274 ::
6275 6070
6276 ROOT_HOME ??= "/home/root" 6071 ROOT_HOME ??= "/home/root"
6277 6072
@@ -6284,8 +6079,7 @@ system and gives an overview of their function and contents.
6284 You can override the default by setting the variable in any layer or 6079 You can override the default by setting the variable in any layer or
6285 in the ``local.conf`` file. Because the default is set using a "weak" 6080 in the ``local.conf`` file. Because the default is set using a "weak"
6286 assignment (i.e. "??="), you can use either of the following forms to 6081 assignment (i.e. "??="), you can use either of the following forms to
6287 define your override: 6082 define your override::
6288 ::
6289 6083
6290 ROOT_HOME = "/root" 6084 ROOT_HOME = "/root"
6291 ROOT_HOME ?= "/root" 6085 ROOT_HOME ?= "/root"
@@ -6303,8 +6097,7 @@ system and gives an overview of their function and contents.
6303 :term:`ROOTFS_POSTINSTALL_COMMAND` 6097 :term:`ROOTFS_POSTINSTALL_COMMAND`
6304 Specifies a list of functions to call after the OpenEmbedded build 6098 Specifies a list of functions to call after the OpenEmbedded build
6305 system has installed packages. You can specify functions separated by 6099 system has installed packages. You can specify functions separated by
6306 semicolons: 6100 semicolons::
6307 ::
6308 6101
6309 ROOTFS_POSTINSTALL_COMMAND += "function; ... " 6102 ROOTFS_POSTINSTALL_COMMAND += "function; ... "
6310 6103
@@ -6317,8 +6110,7 @@ system and gives an overview of their function and contents.
6317 :term:`ROOTFS_POSTPROCESS_COMMAND` 6110 :term:`ROOTFS_POSTPROCESS_COMMAND`
6318 Specifies a list of functions to call once the OpenEmbedded build 6111 Specifies a list of functions to call once the OpenEmbedded build
6319 system has created the root filesystem. You can specify functions 6112 system has created the root filesystem. You can specify functions
6320 separated by semicolons: 6113 separated by semicolons::
6321 ::
6322 6114
6323 ROOTFS_POSTPROCESS_COMMAND += "function; ... " 6115 ROOTFS_POSTPROCESS_COMMAND += "function; ... "
6324 6116
@@ -6333,8 +6125,7 @@ system and gives an overview of their function and contents.
6333 system has removed unnecessary packages. When runtime package 6125 system has removed unnecessary packages. When runtime package
6334 management is disabled in the image, several packages are removed 6126 management is disabled in the image, several packages are removed
6335 including ``base-passwd``, ``shadow``, and ``update-alternatives``. 6127 including ``base-passwd``, ``shadow``, and ``update-alternatives``.
6336 You can specify functions separated by semicolons: 6128 You can specify functions separated by semicolons::
6337 ::
6338 6129
6339 ROOTFS_POSTUNINSTALL_COMMAND += "function; ... " 6130 ROOTFS_POSTUNINSTALL_COMMAND += "function; ... "
6340 6131
@@ -6347,8 +6138,7 @@ system and gives an overview of their function and contents.
6347 :term:`ROOTFS_PREPROCESS_COMMAND` 6138 :term:`ROOTFS_PREPROCESS_COMMAND`
6348 Specifies a list of functions to call before the OpenEmbedded build 6139 Specifies a list of functions to call before the OpenEmbedded build
6349 system has created the root filesystem. You can specify functions 6140 system has created the root filesystem. You can specify functions
6350 separated by semicolons: 6141 separated by semicolons::
6351 ::
6352 6142
6353 ROOTFS_PREPROCESS_COMMAND += "function; ... " 6143 ROOTFS_PREPROCESS_COMMAND += "function; ... "
6354 6144
@@ -6370,8 +6160,7 @@ system and gives an overview of their function and contents.
6370 6160
6371 As with all package-controlling variables, you must always use the 6161 As with all package-controlling variables, you must always use the
6372 variable in conjunction with a package name override. Here is an 6162 variable in conjunction with a package name override. Here is an
6373 example: 6163 example::
6374 ::
6375 6164
6376 RPROVIDES_${PN} = "widget-abi-2" 6165 RPROVIDES_${PN} = "widget-abi-2"
6377 6166
@@ -6402,8 +6191,7 @@ system and gives an overview of their function and contents.
6402 particular package whose usability is being extended. For example, 6191 particular package whose usability is being extended. For example,
6403 suppose you are building a development package that is extended to 6192 suppose you are building a development package that is extended to
6404 support wireless functionality. In this case, you would use the 6193 support wireless functionality. In this case, you would use the
6405 following: 6194 following::
6406 ::
6407 6195
6408 RRECOMMENDS_${PN}-dev += "wireless_package_name" 6196 RRECOMMENDS_${PN}-dev += "wireless_package_name"
6409 6197
@@ -6416,8 +6204,7 @@ system and gives an overview of their function and contents.
6416 specifying versioned recommends. Although the syntax varies depending 6204 specifying versioned recommends. Although the syntax varies depending
6417 on the packaging format, BitBake hides these differences from you. 6205 on the packaging format, BitBake hides these differences from you.
6418 Here is the general syntax to specify versions with the 6206 Here is the general syntax to specify versions with the
6419 ``RRECOMMENDS`` variable: 6207 ``RRECOMMENDS`` variable::
6420 ::
6421 6208
6422 RRECOMMENDS_${PN} = "package (operator version)" 6209 RRECOMMENDS_${PN} = "package (operator version)"
6423 6210
@@ -6430,8 +6217,7 @@ system and gives an overview of their function and contents.
6430 - >= 6217 - >=
6431 6218
6432 For example, the following sets up a recommend on version 1.2 or 6219 For example, the following sets up a recommend on version 1.2 or
6433 greater of the package ``foo``: 6220 greater of the package ``foo``::
6434 ::
6435 6221
6436 RRECOMMENDS_${PN} = "foo (>= 1.2)" 6222 RRECOMMENDS_${PN} = "foo (>= 1.2)"
6437 6223
@@ -6443,8 +6229,7 @@ system and gives an overview of their function and contents.
6443 the other package to the ``RCONFLICTS`` variable. 6229 the other package to the ``RCONFLICTS`` variable.
6444 6230
6445 As with all package-controlling variables, you must use this variable 6231 As with all package-controlling variables, you must use this variable
6446 in conjunction with a package name override. Here is an example: 6232 in conjunction with a package name override. Here is an example::
6447 ::
6448 6233
6449 RREPLACES_${PN} = "other_package_being_replaced" 6234 RREPLACES_${PN} = "other_package_being_replaced"
6450 6235
@@ -6452,8 +6237,7 @@ system and gives an overview of their function and contents.
6452 specifying versioned replacements. Although the syntax varies 6237 specifying versioned replacements. Although the syntax varies
6453 depending on the packaging format, BitBake hides these differences 6238 depending on the packaging format, BitBake hides these differences
6454 from you. Here is the general syntax to specify versions with the 6239 from you. Here is the general syntax to specify versions with the
6455 ``RREPLACES`` variable: 6240 ``RREPLACES`` variable::
6456 ::
6457 6241
6458 RREPLACES_${PN} = "package (operator version)" 6242 RREPLACES_${PN} = "package (operator version)"
6459 6243
@@ -6466,8 +6250,7 @@ system and gives an overview of their function and contents.
6466 - >= 6250 - >=
6467 6251
6468 For example, the following sets up a replacement using version 1.2 6252 For example, the following sets up a replacement using version 1.2
6469 or greater of the package ``foo``: 6253 or greater of the package ``foo``::
6470 ::
6471 6254
6472 RREPLACES_${PN} = "foo (>= 1.2)" 6255 RREPLACES_${PN} = "foo (>= 1.2)"
6473 6256
@@ -6478,8 +6261,7 @@ system and gives an overview of their function and contents.
6478 6261
6479 As with all package-controlling variables, you must always use this 6262 As with all package-controlling variables, you must always use this
6480 variable in conjunction with a package name override. Here is an 6263 variable in conjunction with a package name override. Here is an
6481 example: 6264 example::
6482 ::
6483 6265
6484 RSUGGESTS_${PN} = "useful_package another_package" 6266 RSUGGESTS_${PN} = "useful_package another_package"
6485 6267
@@ -6497,8 +6279,7 @@ system and gives an overview of their function and contents.
6497 As an example, assume a :term:`Source Directory` 6279 As an example, assume a :term:`Source Directory`
6498 top-level folder named ``poky`` and a default Build Directory at 6280 top-level folder named ``poky`` and a default Build Directory at
6499 ``poky/build``. In this case, the work directory the build system 6281 ``poky/build``. In this case, the work directory the build system
6500 uses to keep the unpacked recipe for ``db`` is the following: 6282 uses to keep the unpacked recipe for ``db`` is the following::
6501 ::
6502 6283
6503 poky/build/tmp/work/qemux86-poky-linux/db/5.1.19-r3/db-5.1.19 6284 poky/build/tmp/work/qemux86-poky-linux/db/5.1.19-r3/db-5.1.19
6504 6285
@@ -6508,8 +6289,7 @@ system and gives an overview of their function and contents.
6508 repositories are cloned to ``${WORKDIR}/git`` during 6289 repositories are cloned to ``${WORKDIR}/git`` during
6509 :ref:`ref-tasks-fetch`. Since this path is different 6290 :ref:`ref-tasks-fetch`. Since this path is different
6510 from the default value of ``S``, you must set it specifically so the 6291 from the default value of ``S``, you must set it specifically so the
6511 source can be located: 6292 source can be located::
6512 ::
6513 6293
6514 SRC_URI = "git://path/to/repo.git" 6294 SRC_URI = "git://path/to/repo.git"
6515 S = "${WORKDIR}/git" 6295 S = "${WORKDIR}/git"
@@ -6544,8 +6324,7 @@ system and gives an overview of their function and contents.
6544 The directory set up and used by the 6324 The directory set up and used by the
6545 :ref:`populate_sdk_base <ref-classes-populate-sdk>` class to which 6325 :ref:`populate_sdk_base <ref-classes-populate-sdk>` class to which
6546 the SDK is deployed. The ``populate_sdk_base`` class defines 6326 the SDK is deployed. The ``populate_sdk_base`` class defines
6547 ``SDK_DEPLOY`` as follows: 6327 ``SDK_DEPLOY`` as follows::
6548 ::
6549 6328
6550 SDK_DEPLOY = "${TMPDIR}/deploy/sdk" 6329 SDK_DEPLOY = "${TMPDIR}/deploy/sdk"
6551 6330
@@ -6553,8 +6332,7 @@ system and gives an overview of their function and contents.
6553 The parent directory used by the OpenEmbedded build system when 6332 The parent directory used by the OpenEmbedded build system when
6554 creating SDK output. The 6333 creating SDK output. The
6555 :ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class defines 6334 :ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class defines
6556 the variable as follows: 6335 the variable as follows::
6557 ::
6558 6336
6559 SDK_DIR = "${WORKDIR}/sdk" 6337 SDK_DIR = "${WORKDIR}/sdk"
6560 6338
@@ -6579,14 +6357,12 @@ system and gives an overview of their function and contents.
6579 The manifest file for the host part of the SDK. This file lists all 6357 The manifest file for the host part of the SDK. This file lists all
6580 the installed packages that make up the host part of the SDK. The 6358 the installed packages that make up the host part of the SDK. The
6581 file contains package information on a line-per-package basis as 6359 file contains package information on a line-per-package basis as
6582 follows: 6360 follows::
6583 ::
6584 6361
6585 packagename packagearch version 6362 packagename packagearch version
6586 6363
6587 The :ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class 6364 The :ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class
6588 defines the manifest file as follows: 6365 defines the manifest file as follows::
6589 ::
6590 6366
6591 SDK_HOST_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.host.manifest" 6367 SDK_HOST_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.host.manifest"
6592 6368
@@ -6624,8 +6400,7 @@ system and gives an overview of their function and contents.
6624 A list of classes to remove from the :term:`INHERIT` 6400 A list of classes to remove from the :term:`INHERIT`
6625 value globally within the extensible SDK configuration. The 6401 value globally within the extensible SDK configuration. The
6626 :ref:`populate-sdk-ext <ref-classes-populate-sdk-*>` class sets the 6402 :ref:`populate-sdk-ext <ref-classes-populate-sdk-*>` class sets the
6627 default value: 6403 default value::
6628 ::
6629 6404
6630 SDK_INHERIT_BLACKLIST ?= "buildhistory icecc" 6405 SDK_INHERIT_BLACKLIST ?= "buildhistory icecc"
6631 6406
@@ -6688,8 +6463,7 @@ system and gives an overview of their function and contents.
6688 :term:`DISTRO`, :term:`TCLIBC`, 6463 :term:`DISTRO`, :term:`TCLIBC`,
6689 :term:`SDK_ARCH`, 6464 :term:`SDK_ARCH`,
6690 :term:`IMAGE_BASENAME`, and 6465 :term:`IMAGE_BASENAME`, and
6691 :term:`TUNE_PKGARCH` variables: 6466 :term:`TUNE_PKGARCH` variables::
6692 ::
6693 6467
6694 SDK_NAME = "${DISTRO}-${TCLIBC}-${SDK_ARCH}-${IMAGE_BASENAME}-${TUNE_PKGARCH}" 6468 SDK_NAME = "${DISTRO}-${TCLIBC}-${SDK_ARCH}-${IMAGE_BASENAME}-${TUNE_PKGARCH}"
6695 6469
@@ -6700,8 +6474,7 @@ system and gives an overview of their function and contents.
6700 :term:`SDK_OUTPUT` 6474 :term:`SDK_OUTPUT`
6701 The location used by the OpenEmbedded build system when creating SDK 6475 The location used by the OpenEmbedded build system when creating SDK
6702 output. The :ref:`populate_sdk_base <ref-classes-populate-sdk-*>` 6476 output. The :ref:`populate_sdk_base <ref-classes-populate-sdk-*>`
6703 class defines the variable as follows: 6477 class defines the variable as follows::
6704 ::
6705 6478
6706 SDK_DIR = "${WORKDIR}/sdk" 6479 SDK_DIR = "${WORKDIR}/sdk"
6707 SDK_OUTPUT = "${SDK_DIR}/image" 6480 SDK_OUTPUT = "${SDK_DIR}/image"
@@ -6766,14 +6539,12 @@ system and gives an overview of their function and contents.
6766 The manifest file for the target part of the SDK. This file lists all 6539 The manifest file for the target part of the SDK. This file lists all
6767 the installed packages that make up the target part of the SDK. The 6540 the installed packages that make up the target part of the SDK. The
6768 file contains package information on a line-per-package basis as 6541 file contains package information on a line-per-package basis as
6769 follows: 6542 follows::
6770 ::
6771 6543
6772 packagename packagearch version 6544 packagename packagearch version
6773 6545
6774 The :ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class 6546 The :ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class
6775 defines the manifest file as follows: 6547 defines the manifest file as follows::
6776 ::
6777 6548
6778 SDK_TARGET_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.target.manifest" 6549 SDK_TARGET_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.target.manifest"
6779 6550
@@ -6793,8 +6564,7 @@ system and gives an overview of their function and contents.
6793 this title is based on the :term:`DISTRO_NAME` or 6564 this title is based on the :term:`DISTRO_NAME` or
6794 :term:`DISTRO` variable and is set in the 6565 :term:`DISTRO` variable and is set in the
6795 :ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class as 6566 :ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class as
6796 follows: 6567 follows::
6797 ::
6798 6568
6799 SDK_TITLE ??= "${@d.getVar('DISTRO_NAME') or d.getVar('DISTRO')} SDK" 6569 SDK_TITLE ??= "${@d.getVar('DISTRO_NAME') or d.getVar('DISTRO')} SDK"
6800 6570
@@ -6817,8 +6587,7 @@ system and gives an overview of their function and contents.
6817 :term:`SDK_VERSION` 6587 :term:`SDK_VERSION`
6818 Specifies the version of the SDK. The Poky distribution configuration file 6588 Specifies the version of the SDK. The Poky distribution configuration file
6819 (``/meta-poky/conf/distro/poky.conf``) sets the default 6589 (``/meta-poky/conf/distro/poky.conf``) sets the default
6820 ``SDK_VERSION`` as follows: 6590 ``SDK_VERSION`` as follows::
6821 ::
6822 6591
6823 SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${METADATA_REVISION}', 'snapshot')}" 6592 SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${METADATA_REVISION}', 'snapshot')}"
6824 6593
@@ -6831,8 +6600,7 @@ system and gives an overview of their function and contents.
6831 default, this directory is based on the :term:`DISTRO` 6600 default, this directory is based on the :term:`DISTRO`
6832 variable and is set in the 6601 variable and is set in the
6833 :ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class as 6602 :ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class as
6834 follows: 6603 follows::
6835 ::
6836 6604
6837 SDKEXTPATH ??= "~/${@d.getVar('DISTRO')}_sdk" 6605 SDKEXTPATH ??= "~/${@d.getVar('DISTRO')}_sdk"
6838 6606
@@ -6846,8 +6614,7 @@ system and gives an overview of their function and contents.
6846 6614
6847 :term:`SDKIMAGE_FEATURES` 6615 :term:`SDKIMAGE_FEATURES`
6848 Equivalent to ``IMAGE_FEATURES``. However, this variable applies to 6616 Equivalent to ``IMAGE_FEATURES``. However, this variable applies to
6849 the SDK generated from an image using the following command: 6617 the SDK generated from an image using the following command::
6850 ::
6851 6618
6852 $ bitbake -c populate_sdk imagename 6619 $ bitbake -c populate_sdk imagename
6853 6620
@@ -6899,8 +6666,7 @@ system and gives an overview of their function and contents.
6899 Defines a serial console (TTY) to enable using 6666 Defines a serial console (TTY) to enable using
6900 `getty <https://en.wikipedia.org/wiki/Getty_(Unix)>`__. Provide a 6667 `getty <https://en.wikipedia.org/wiki/Getty_(Unix)>`__. Provide a
6901 value that specifies the baud rate followed by the TTY device name 6668 value that specifies the baud rate followed by the TTY device name
6902 separated by a space. You cannot specify more than one TTY device: 6669 separated by a space. You cannot specify more than one TTY device::
6903 ::
6904 6670
6905 SERIAL_CONSOLE = "115200 ttyS0" 6671 SERIAL_CONSOLE = "115200 ttyS0"
6906 6672
@@ -6913,8 +6679,7 @@ system and gives an overview of their function and contents.
6913 Defines a serial console (TTY) to enable using 6679 Defines a serial console (TTY) to enable using
6914 `getty <https://en.wikipedia.org/wiki/Getty_(Unix)>`__. Provide a 6680 `getty <https://en.wikipedia.org/wiki/Getty_(Unix)>`__. Provide a
6915 value that specifies the baud rate followed by the TTY device name 6681 value that specifies the baud rate followed by the TTY device name
6916 separated by a semicolon. Use spaces to separate multiple devices: 6682 separated by a semicolon. Use spaces to separate multiple devices::
6917 ::
6918 6683
6919 SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1" 6684 SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1"
6920 6685
@@ -7044,8 +6809,7 @@ system and gives an overview of their function and contents.
7044 6809
7045 To use this variable, you must globally inherit the 6810 To use this variable, you must globally inherit the
7046 :ref:`own-mirrors <ref-classes-own-mirrors>` class and then provide 6811 :ref:`own-mirrors <ref-classes-own-mirrors>` class and then provide
7047 the URL to your mirrors. Here is the general syntax: 6812 the URL to your mirrors. Here is the general syntax::
7048 ::
7049 6813
7050 INHERIT += "own-mirrors" 6814 INHERIT += "own-mirrors"
7051 SOURCE_MIRROR_URL = "http://example.com/my_source_mirror" 6815 SOURCE_MIRROR_URL = "http://example.com/my_source_mirror"
@@ -7076,8 +6840,7 @@ system and gives an overview of their function and contents.
7076 U-Boot recipe. 6840 U-Boot recipe.
7077 6841
7078 The SPL file type is set to "null" by default in the ``u-boot.inc`` 6842 The SPL file type is set to "null" by default in the ``u-boot.inc``
7079 file as follows: 6843 file as follows::
7080 ::
7081 6844
7082 # Some versions of u-boot build an SPL (Second Program Loader) image that 6845 # Some versions of u-boot build an SPL (Second Program Loader) image that
7083 # should be packaged along with the u-boot binary as well as placed in the 6846 # should be packaged along with the u-boot binary as well as placed in the
@@ -7236,8 +6999,7 @@ system and gives an overview of their function and contents.
7236 6999
7237 - ``name`` - Specifies a name to be used for association with 7000 - ``name`` - Specifies a name to be used for association with
7238 ``SRC_URI`` checksums or :term:`SRCREV` when you have more than one 7001 ``SRC_URI`` checksums or :term:`SRCREV` when you have more than one
7239 file or git repository specified in ``SRC_URI``. For example: 7002 file or git repository specified in ``SRC_URI``. For example::
7240 ::
7241 7003
7242 SRC_URI = "git://example.com/foo.git;name=first \ 7004 SRC_URI = "git://example.com/foo.git;name=first \
7243 git://example.com/bar.git;name=second \ 7005 git://example.com/bar.git;name=second \
@@ -7268,16 +7030,14 @@ system and gives an overview of their function and contents.
7268 7030
7269 The ``SRCPV`` variable is defined in the ``meta/conf/bitbake.conf`` 7031 The ``SRCPV`` variable is defined in the ``meta/conf/bitbake.conf``
7270 configuration file in the :term:`Source Directory` as 7032 configuration file in the :term:`Source Directory` as
7271 follows: 7033 follows::
7272 ::
7273 7034
7274 SRCPV = "${@bb.fetch2.get_srcrev(d)}" 7035 SRCPV = "${@bb.fetch2.get_srcrev(d)}"
7275 7036
7276 Recipes that need to define ``PV`` do so with the help of the 7037 Recipes that need to define ``PV`` do so with the help of the
7277 ``SRCPV``. For example, the ``ofono`` recipe (``ofono_git.bb``) 7038 ``SRCPV``. For example, the ``ofono`` recipe (``ofono_git.bb``)
7278 located in ``meta/recipes-connectivity`` in the Source Directory 7039 located in ``meta/recipes-connectivity`` in the Source Directory
7279 defines ``PV`` as follows: 7040 defines ``PV`` as follows::
7280 ::
7281 7041
7282 PV = "0.12-git${SRCPV}" 7042 PV = "0.12-git${SRCPV}"
7283 7043
@@ -7328,8 +7088,7 @@ system and gives an overview of their function and contents.
7328 :term:`NATIVELSBSTRING` set by the 7088 :term:`NATIVELSBSTRING` set by the
7329 :ref:`uninative <ref-classes-uninative>` class. For example, the 7089 :ref:`uninative <ref-classes-uninative>` class. For example, the
7330 following maps the local search path ``universal-4.9`` to the 7090 following maps the local search path ``universal-4.9`` to the
7331 server-provided path server_url_sstate_path: 7091 server-provided path server_url_sstate_path::
7332 ::
7333 7092
7334 SSTATE_MIRRORS ?= "file://universal-4.9/(.*) http://server_url_sstate_path/universal-4.8/\1 \n" 7093 SSTATE_MIRRORS ?= "file://universal-4.9/(.*) http://server_url_sstate_path/universal-4.8/\1 \n"
7335 7094
@@ -7524,8 +7283,7 @@ system and gives an overview of their function and contents.
7524 to an actual stamp file is constructed by evaluating this string and 7283 to an actual stamp file is constructed by evaluating this string and
7525 then appending additional information. Currently, the default 7284 then appending additional information. Currently, the default
7526 assignment for ``STAMP`` as set in the ``meta/conf/bitbake.conf`` 7285 assignment for ``STAMP`` as set in the ``meta/conf/bitbake.conf``
7527 file is: 7286 file is::
7528 ::
7529 7287
7530 STAMP = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}" 7288 STAMP = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
7531 7289
@@ -7562,8 +7320,7 @@ system and gives an overview of their function and contents.
7562 :term:`SYSLINUX_DEFAULT_CONSOLE` 7320 :term:`SYSLINUX_DEFAULT_CONSOLE`
7563 Specifies the kernel boot default console. If you want to use a 7321 Specifies the kernel boot default console. If you want to use a
7564 console other than the default, set this variable in your recipe as 7322 console other than the default, set this variable in your recipe as
7565 follows where "X" is the console number you want to use: 7323 follows where "X" is the console number you want to use::
7566 ::
7567 7324
7568 SYSLINUX_DEFAULT_CONSOLE = "console=ttyX" 7325 SYSLINUX_DEFAULT_CONSOLE = "console=ttyX"
7569 7326
@@ -7582,8 +7339,7 @@ system and gives an overview of their function and contents.
7582 Specifies the alternate serial port or turns it off. To turn off 7339 Specifies the alternate serial port or turns it off. To turn off
7583 serial, set this variable to an empty string in your recipe. The 7340 serial, set this variable to an empty string in your recipe. The
7584 variable's default value is set in the 7341 variable's default value is set in the
7585 :ref:`syslinux <ref-classes-syslinux>` class as follows: 7342 :ref:`syslinux <ref-classes-syslinux>` class as follows::
7586 ::
7587 7343
7588 SYSLINUX_SERIAL ?= "0 115200" 7344 SYSLINUX_SERIAL ?= "0 115200"
7589 7345
@@ -7592,8 +7348,7 @@ system and gives an overview of their function and contents.
7592 :term:`SYSLINUX_SERIAL_TTY` 7348 :term:`SYSLINUX_SERIAL_TTY`
7593 Specifies the alternate console=tty... kernel boot argument. The 7349 Specifies the alternate console=tty... kernel boot argument. The
7594 variable's default value is set in the 7350 variable's default value is set in the
7595 :ref:`syslinux <ref-classes-syslinux>` class as follows: 7351 :ref:`syslinux <ref-classes-syslinux>` class as follows::
7596 ::
7597 7352
7598 SYSLINUX_SERIAL_TTY ?= "console=ttyS0,115200" 7353 SYSLINUX_SERIAL_TTY ?= "console=ttyS0,115200"
7599 7354
@@ -7616,8 +7371,7 @@ system and gives an overview of their function and contents.
7616 :term:`SYSROOT_DIRS` 7371 :term:`SYSROOT_DIRS`
7617 Directories that are staged into the sysroot by the 7372 Directories that are staged into the sysroot by the
7618 :ref:`ref-tasks-populate_sysroot` task. By 7373 :ref:`ref-tasks-populate_sysroot` task. By
7619 default, the following directories are staged: 7374 default, the following directories are staged::
7620 ::
7621 7375
7622 SYSROOT_DIRS = " \ 7376 SYSROOT_DIRS = " \
7623 ${includedir} \ 7377 ${includedir} \
@@ -7632,8 +7386,7 @@ system and gives an overview of their function and contents.
7632 :ref:`ref-tasks-populate_sysroot` task. You 7386 :ref:`ref-tasks-populate_sysroot` task. You
7633 can use this variable to exclude certain subdirectories of 7387 can use this variable to exclude certain subdirectories of
7634 directories listed in :term:`SYSROOT_DIRS` from 7388 directories listed in :term:`SYSROOT_DIRS` from
7635 staging. By default, the following directories are not staged: 7389 staging. By default, the following directories are not staged::
7636 ::
7637 7390
7638 SYSROOT_DIRS_BLACKLIST = " \ 7391 SYSROOT_DIRS_BLACKLIST = " \
7639 ${mandir} \ 7392 ${mandir} \
@@ -7650,8 +7403,7 @@ system and gives an overview of their function and contents.
7650 :ref:`ref-tasks-populate_sysroot` task for 7403 :ref:`ref-tasks-populate_sysroot` task for
7651 ``-native`` recipes, in addition to those specified in 7404 ``-native`` recipes, in addition to those specified in
7652 :term:`SYSROOT_DIRS`. By default, the following 7405 :term:`SYSROOT_DIRS`. By default, the following
7653 extra directories are staged: 7406 extra directories are staged::
7654 ::
7655 7407
7656 SYSROOT_DIRS_NATIVE = " \ 7408 SYSROOT_DIRS_NATIVE = " \
7657 ${bindir} \ 7409 ${bindir} \
@@ -7680,8 +7432,7 @@ system and gives an overview of their function and contents.
7680 :term:`SYSTEMD_SERVICE` should start 7432 :term:`SYSTEMD_SERVICE` should start
7681 automatically or not. By default, the service is enabled to 7433 automatically or not. By default, the service is enabled to
7682 automatically start at boot time. The default setting is in the 7434 automatically start at boot time. The default setting is in the
7683 :ref:`systemd <ref-classes-systemd>` class as follows: 7435 :ref:`systemd <ref-classes-systemd>` class as follows::
7684 ::
7685 7436
7686 SYSTEMD_AUTO_ENABLE ??= "enable" 7437 SYSTEMD_AUTO_ENABLE ??= "enable"
7687 7438
@@ -7692,8 +7443,7 @@ system and gives an overview of their function and contents.
7692 "systemd-boot", the ``SYSTEMD_BOOT_CFG`` variable specifies the 7443 "systemd-boot", the ``SYSTEMD_BOOT_CFG`` variable specifies the
7693 configuration file that should be used. By default, the 7444 configuration file that should be used. By default, the
7694 :ref:`systemd-boot <ref-classes-systemd-boot>` class sets the 7445 :ref:`systemd-boot <ref-classes-systemd-boot>` class sets the
7695 ``SYSTEMD_BOOT_CFG`` as follows: 7446 ``SYSTEMD_BOOT_CFG`` as follows::
7696 ::
7697 7447
7698 SYSTEMD_BOOT_CFG ?= "${:term:`S`}/loader.conf" 7448 SYSTEMD_BOOT_CFG ?= "${:term:`S`}/loader.conf"
7699 7449
@@ -7706,8 +7456,7 @@ system and gives an overview of their function and contents.
7706 list of entry files (``*.conf``) to install that contain one boot 7456 list of entry files (``*.conf``) to install that contain one boot
7707 entry per file. By default, the 7457 entry per file. By default, the
7708 :ref:`systemd-boot <ref-classes-systemd-boot>` class sets the 7458 :ref:`systemd-boot <ref-classes-systemd-boot>` class sets the
7709 ``SYSTEMD_BOOT_ENTRIES`` as follows: 7459 ``SYSTEMD_BOOT_ENTRIES`` as follows::
7710 ::
7711 7460
7712 SYSTEMD_BOOT_ENTRIES ?= "" 7461 SYSTEMD_BOOT_ENTRIES ?= ""
7713 7462
@@ -7719,8 +7468,7 @@ system and gives an overview of their function and contents.
7719 "systemd-boot", the ``SYSTEMD_BOOT_TIMEOUT`` variable specifies the 7468 "systemd-boot", the ``SYSTEMD_BOOT_TIMEOUT`` variable specifies the
7720 boot menu timeout in seconds. By default, the 7469 boot menu timeout in seconds. By default, the
7721 :ref:`systemd-boot <ref-classes-systemd-boot>` class sets the 7470 :ref:`systemd-boot <ref-classes-systemd-boot>` class sets the
7722 ``SYSTEMD_BOOT_TIMEOUT`` as follows: 7471 ``SYSTEMD_BOOT_TIMEOUT`` as follows::
7723 ::
7724 7472
7725 SYSTEMD_BOOT_TIMEOUT ?= "10" 7473 SYSTEMD_BOOT_TIMEOUT ?= "10"
7726 7474
@@ -7732,8 +7480,7 @@ system and gives an overview of their function and contents.
7732 this variable locates the systemd unit files when they are not found 7480 this variable locates the systemd unit files when they are not found
7733 in the main recipe's package. By default, the ``SYSTEMD_PACKAGES`` 7481 in the main recipe's package. By default, the ``SYSTEMD_PACKAGES``
7734 variable is set such that the systemd unit files are assumed to 7482 variable is set such that the systemd unit files are assumed to
7735 reside in the recipes main package: 7483 reside in the recipes main package::
7736 ::
7737 7484
7738 SYSTEMD_PACKAGES ?= "${PN}" 7485 SYSTEMD_PACKAGES ?= "${PN}"
7739 7486
@@ -7747,8 +7494,7 @@ system and gives an overview of their function and contents.
7747 7494
7748 When you specify this file in your recipe, use a package name 7495 When you specify this file in your recipe, use a package name
7749 override to indicate the package to which the value applies. Here is 7496 override to indicate the package to which the value applies. Here is
7750 an example from the connman recipe: 7497 an example from the connman recipe::
7751 ::
7752 7498
7753 SYSTEMD_SERVICE_${PN} = "connman.service" 7499 SYSTEMD_SERVICE_${PN} = "connman.service"
7754 7500
@@ -7766,8 +7512,7 @@ system and gives an overview of their function and contents.
7766 :term:`T` 7512 :term:`T`
7767 This variable points to a directory were BitBake places temporary 7513 This variable points to a directory were BitBake places temporary
7768 files, which consist mostly of task logs and scripts, when building a 7514 files, which consist mostly of task logs and scripts, when building a
7769 particular recipe. The variable is typically set as follows: 7515 particular recipe. The variable is typically set as follows::
7770 ::
7771 7516
7772 T = "${WORKDIR}/temp" 7517 T = "${WORKDIR}/temp"
7773 7518
@@ -7801,8 +7546,7 @@ system and gives an overview of their function and contents.
7801 Specifies architecture-specific assembler flags for the target 7546 Specifies architecture-specific assembler flags for the target
7802 system. ``TARGET_AS_ARCH`` is initialized from 7547 system. ``TARGET_AS_ARCH`` is initialized from
7803 :term:`TUNE_ASARGS` by default in the BitBake 7548 :term:`TUNE_ASARGS` by default in the BitBake
7804 configuration file (``meta/conf/bitbake.conf``): 7549 configuration file (``meta/conf/bitbake.conf``)::
7805 ::
7806 7550
7807 TARGET_AS_ARCH = "${TUNE_ASARGS}" 7551 TARGET_AS_ARCH = "${TUNE_ASARGS}"
7808 7552
@@ -7869,8 +7613,7 @@ system and gives an overview of their function and contents.
7869 Specifies architecture-specific linker flags for the target system. 7613 Specifies architecture-specific linker flags for the target system.
7870 ``TARGET_LD_ARCH`` is initialized from 7614 ``TARGET_LD_ARCH`` is initialized from
7871 :term:`TUNE_LDARGS` by default in the BitBake 7615 :term:`TUNE_LDARGS` by default in the BitBake
7872 configuration file (``meta/conf/bitbake.conf``): 7616 configuration file (``meta/conf/bitbake.conf``)::
7873 ::
7874 7617
7875 TARGET_LD_ARCH = "${TUNE_LDARGS}" 7618 TARGET_LD_ARCH = "${TUNE_LDARGS}"
7876 7619
@@ -8051,8 +7794,7 @@ system and gives an overview of their function and contents.
8051 program does. 7794 program does.
8052 7795
8053 For example, to use the Picocom terminal program on serial device 7796 For example, to use the Picocom terminal program on serial device
8054 ``/dev/ttyUSB0`` at 115200bps, you would set the variable as follows: 7797 ``/dev/ttyUSB0`` at 115200bps, you would set the variable as follows::
8055 ::
8056 7798
8057 TEST_SERIALCONTROL_CMD = "picocom /dev/ttyUSB0 -b 115200" 7799 TEST_SERIALCONTROL_CMD = "picocom /dev/ttyUSB0 -b 115200"
8058 7800
@@ -8090,8 +7832,7 @@ system and gives an overview of their function and contents.
8090 7832
8091 Tests include ``ping``, ``ssh``, ``df`` among others. You can add 7833 Tests include ``ping``, ``ssh``, ``df`` among others. You can add
8092 your own tests to the list of tests by appending ``TEST_SUITES`` as 7834 your own tests to the list of tests by appending ``TEST_SUITES`` as
8093 follows: 7835 follows::
8094 ::
8095 7836
8096 TEST_SUITES_append = " mytest" 7837 TEST_SUITES_append = " mytest"
8097 7838
@@ -8110,8 +7851,7 @@ system and gives an overview of their function and contents.
8110 another test must appear later in the list than the test on which 7851 another test must appear later in the list than the test on which
8111 they depend. For example, if you append the list of tests with two 7852 they depend. For example, if you append the list of tests with two
8112 tests (``test_A`` and ``test_B``) where ``test_B`` is dependent on 7853 tests (``test_A`` and ``test_B``) where ``test_B`` is dependent on
8113 ``test_A``, then you must order the tests as follows: 7854 ``test_A``, then you must order the tests as follows::
8114 ::
8115 7855
8116 TEST_SUITES = "test_A test_B" 7856 TEST_SUITES = "test_A test_B"
8117 7857
@@ -8121,8 +7861,7 @@ system and gives an overview of their function and contents.
8121 7861
8122 :term:`TEST_TARGET` 7862 :term:`TEST_TARGET`
8123 Specifies the target controller to use when running tests against a 7863 Specifies the target controller to use when running tests against a
8124 test image. The default controller to use is "qemu": 7864 test image. The default controller to use is "qemu"::
8125 ::
8126 7865
8127 TEST_TARGET = "qemu" 7866 TEST_TARGET = "qemu"
8128 7867
@@ -8161,8 +7900,7 @@ system and gives an overview of their function and contents.
8161 set to "qemu". 7900 set to "qemu".
8162 7901
8163 When you specify the IP address, you can also include a port. Here is 7902 When you specify the IP address, you can also include a port. Here is
8164 an example: 7903 an example::
8165 ::
8166 7904
8167 TEST_TARGET_IP = "192.168.1.4:2201" 7905 TEST_TARGET_IP = "192.168.1.4:2201"
8168 7906
@@ -8211,8 +7949,7 @@ system and gives an overview of their function and contents.
8211 7949
8212 If you want to establish this directory in a location other than the 7950 If you want to establish this directory in a location other than the
8213 default, you can uncomment and edit the following statement in the 7951 default, you can uncomment and edit the following statement in the
8214 ``conf/local.conf`` file in the :term:`Source Directory`: 7952 ``conf/local.conf`` file in the :term:`Source Directory`::
8215 ::
8216 7953
8217 #TMPDIR = "${TOPDIR}/tmp" 7954 #TMPDIR = "${TOPDIR}/tmp"
8218 7955
@@ -8231,8 +7968,7 @@ system and gives an overview of their function and contents.
8231 packages specified by this variable are part of the toolchain set 7968 packages specified by this variable are part of the toolchain set
8232 that runs on the :term:`SDKMACHINE`, and each 7969 that runs on the :term:`SDKMACHINE`, and each
8233 package should usually have the prefix ``nativesdk-``. For example, 7970 package should usually have the prefix ``nativesdk-``. For example,
8234 consider the following command when building an SDK: 7971 consider the following command when building an SDK::
8235 ::
8236 7972
8237 $ bitbake -c populate_sdk imagename 7973 $ bitbake -c populate_sdk imagename
8238 7974
@@ -8253,8 +7989,7 @@ system and gives an overview of their function and contents.
8253 :term:`TOOLCHAIN_OUTPUTNAME` 7989 :term:`TOOLCHAIN_OUTPUTNAME`
8254 This variable defines the name used for the toolchain output. The 7990 This variable defines the name used for the toolchain output. The
8255 :ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class sets 7991 :ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class sets
8256 the ``TOOLCHAIN_OUTPUTNAME`` variable as follows: 7992 the ``TOOLCHAIN_OUTPUTNAME`` variable as follows::
8257 ::
8258 7993
8259 TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${SDK_VERSION}" 7994 TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${SDK_VERSION}"
8260 7995
@@ -8310,8 +8045,7 @@ system and gives an overview of their function and contents.
8310 ``TUNE_ARCH`` is tied closely to 8045 ``TUNE_ARCH`` is tied closely to
8311 :term:`TARGET_ARCH`, which defines the target 8046 :term:`TARGET_ARCH`, which defines the target
8312 machine's architecture. The BitBake configuration file 8047 machine's architecture. The BitBake configuration file
8313 (``meta/conf/bitbake.conf``) sets ``TARGET_ARCH`` as follows: 8048 (``meta/conf/bitbake.conf``) sets ``TARGET_ARCH`` as follows::
8314 ::
8315 8049
8316 TARGET_ARCH = "${TUNE_ARCH}" 8050 TARGET_ARCH = "${TUNE_ARCH}"
8317 8051
@@ -8333,8 +8067,7 @@ system and gives an overview of their function and contents.
8333 typically under ``meta/conf/machine/include/`` and are influenced 8067 typically under ``meta/conf/machine/include/`` and are influenced
8334 through :term:`TUNE_FEATURES`. For example, the 8068 through :term:`TUNE_FEATURES`. For example, the
8335 ``meta/conf/machine/include/x86/arch-x86.inc`` file defines the flags 8069 ``meta/conf/machine/include/x86/arch-x86.inc`` file defines the flags
8336 for the x86 architecture as follows: 8070 for the x86 architecture as follows::
8337 ::
8338 8071
8339 TUNE_ASARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-x32", "", d)}" 8072 TUNE_ASARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-x32", "", d)}"
8340 8073
@@ -8367,8 +8100,7 @@ system and gives an overview of their function and contents.
8367 are not conflicting and that they are supported. 8100 are not conflicting and that they are supported.
8368 8101
8369 The BitBake configuration file (``meta/conf/bitbake.conf``) defines 8102 The BitBake configuration file (``meta/conf/bitbake.conf``) defines
8370 ``TUNE_FEATURES`` as follows: 8103 ``TUNE_FEATURES`` as follows::
8371 ::
8372 8104
8373 TUNE_FEATURES ??= "${TUNE_FEATURES_tune-${DEFAULTTUNE}}" 8105 TUNE_FEATURES ??= "${TUNE_FEATURES_tune-${DEFAULTTUNE}}"
8374 8106
@@ -8381,8 +8113,7 @@ system and gives an overview of their function and contents.
8381 typically under ``meta/conf/machine/include/`` and are influenced 8113 typically under ``meta/conf/machine/include/`` and are influenced
8382 through :term:`TUNE_FEATURES`. For example, the 8114 through :term:`TUNE_FEATURES`. For example, the
8383 ``meta/conf/machine/include/x86/arch-x86.inc`` file defines the flags 8115 ``meta/conf/machine/include/x86/arch-x86.inc`` file defines the flags
8384 for the x86 architecture as follows: 8116 for the x86 architecture as follows::
8385 ::
8386 8117
8387 TUNE_LDARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-m elf32_x86_64", "", d)}" 8118 TUNE_LDARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-m elf32_x86_64", "", d)}"
8388 8119
@@ -8395,15 +8126,13 @@ system and gives an overview of their function and contents.
8395 :term:`TUNE_PKGARCH` 8126 :term:`TUNE_PKGARCH`
8396 The package architecture understood by the packaging system to define 8127 The package architecture understood by the packaging system to define
8397 the architecture, ABI, and tuning of output packages. The specific 8128 the architecture, ABI, and tuning of output packages. The specific
8398 tune is defined using the "_tune" override as follows: 8129 tune is defined using the "_tune" override as follows::
8399 ::
8400 8130
8401 TUNE_PKGARCH_tune-tune = "tune" 8131 TUNE_PKGARCH_tune-tune = "tune"
8402 8132
8403 These tune-specific package architectures are defined in the machine 8133 These tune-specific package architectures are defined in the machine
8404 include files. Here is an example of the "core2-32" tuning as used in 8134 include files. Here is an example of the "core2-32" tuning as used in
8405 the ``meta/conf/machine/include/tune-core2.inc`` file: 8135 the ``meta/conf/machine/include/tune-core2.inc`` file::
8406 ::
8407 8136
8408 TUNE_PKGARCH_tune-core2-32 = "core2-32" 8137 TUNE_PKGARCH_tune-core2-32 = "core2-32"
8409 8138
@@ -8449,8 +8178,7 @@ system and gives an overview of their function and contents.
8449 the :term:`Source Directory`. Here is an example from 8178 the :term:`Source Directory`. Here is an example from
8450 the ``meta/conf/machine/include/mips/arch-mips.inc`` include file 8179 the ``meta/conf/machine/include/mips/arch-mips.inc`` include file
8451 that lists the "o32" and "n64" features as conflicting with the "n32" 8180 that lists the "o32" and "n64" features as conflicting with the "n32"
8452 feature: 8181 feature::
8453 ::
8454 8182
8455 TUNECONFLICTS[n32] = "o32 n64" 8183 TUNECONFLICTS[n32] = "o32 n64"
8456 8184
@@ -8459,8 +8187,7 @@ system and gives an overview of their function and contents.
8459 feature. The specified feature is stored as a flag. Valid features 8187 feature. The specified feature is stored as a flag. Valid features
8460 are specified in the machine include files (e.g. 8188 are specified in the machine include files (e.g.
8461 ``meta/conf/machine/include/arm/arch-arm.inc``). Here is an example 8189 ``meta/conf/machine/include/arm/arch-arm.inc``). Here is an example
8462 from that file: 8190 from that file::
8463 ::
8464 8191
8465 TUNEVALID[bigendian] = "Enable big-endian mode." 8192 TUNEVALID[bigendian] = "Enable big-endian mode."
8466 8193
@@ -8516,8 +8243,7 @@ system and gives an overview of their function and contents.
8516 Appends a string to the name of the local version of the U-Boot 8243 Appends a string to the name of the local version of the U-Boot
8517 image. For example, assuming the version of the U-Boot image built 8244 image. For example, assuming the version of the U-Boot image built
8518 was "2013.10", the full version string reported by U-Boot would be 8245 was "2013.10", the full version string reported by U-Boot would be
8519 "2013.10-yocto" given the following statement: 8246 "2013.10-yocto" given the following statement::
8520 ::
8521 8247
8522 UBOOT_LOCALVERSION = "-yocto" 8248 UBOOT_LOCALVERSION = "-yocto"
8523 8249
@@ -8691,8 +8417,7 @@ system and gives an overview of their function and contents.
8691 OpenEmbedded build system to enable extra features (e.g. 8417 OpenEmbedded build system to enable extra features (e.g.
8692 ``buildstats``, ``image-mklibs``, and so forth). 8418 ``buildstats``, ``image-mklibs``, and so forth).
8693 8419
8694 The default list is set in your ``local.conf`` file: 8420 The default list is set in your ``local.conf`` file::
8695 ::
8696 8421
8697 USER_CLASSES ?= "buildstats image-mklibs image-prelink" 8422 USER_CLASSES ?= "buildstats image-mklibs image-prelink"
8698 8423
@@ -8712,8 +8437,7 @@ system and gives an overview of their function and contents.
8712 ``USERADD_ERROR_DYNAMIC`` variable is by default not set. If you plan 8437 ``USERADD_ERROR_DYNAMIC`` variable is by default not set. If you plan
8713 on using statically assigned ``gid`` and ``uid`` values, you should 8438 on using statically assigned ``gid`` and ``uid`` values, you should
8714 set the ``USERADD_ERROR_DYNAMIC`` variable in your ``local.conf`` 8439 set the ``USERADD_ERROR_DYNAMIC`` variable in your ``local.conf``
8715 file as follows: 8440 file as follows::
8716 ::
8717 8441
8718 USERADD_ERROR_DYNAMIC = "error" 8442 USERADD_ERROR_DYNAMIC = "error"
8719 8443
@@ -8743,8 +8467,7 @@ system and gives an overview of their function and contents.
8743 When applying static group identification (``gid``) values, the 8467 When applying static group identification (``gid``) values, the
8744 OpenEmbedded build system looks in :term:`BBPATH` for a 8468 OpenEmbedded build system looks in :term:`BBPATH` for a
8745 ``files/group`` file and then applies those ``uid`` values. Set the 8469 ``files/group`` file and then applies those ``uid`` values. Set the
8746 variable as follows in your ``local.conf`` file: 8470 variable as follows in your ``local.conf`` file::
8747 ::
8748 8471
8749 8472
8750 USERADD_GID_TABLES = "files/group" 8473 USERADD_GID_TABLES = "files/group"
@@ -8761,8 +8484,7 @@ system and gives an overview of their function and contents.
8761 8484
8762 You must set this variable if the recipe inherits the class. For 8485 You must set this variable if the recipe inherits the class. For
8763 example, the following enables adding a user for the main package in 8486 example, the following enables adding a user for the main package in
8764 a recipe: 8487 a recipe::
8765 ::
8766 8488
8767 USERADD_PACKAGES = "${PN}" 8489 USERADD_PACKAGES = "${PN}"
8768 8490
@@ -8778,8 +8500,7 @@ system and gives an overview of their function and contents.
8778 the ``useradd`` command if you add a user to the system when the 8500 the ``useradd`` command if you add a user to the system when the
8779 package is installed. 8501 package is installed.
8780 8502
8781 Here is an example from the ``dbus`` recipe: 8503 Here is an example from the ``dbus`` recipe::
8782 ::
8783 8504
8784 USERADD_PARAM_${PN} = "--system --home ${localstatedir}/lib/dbus \ 8505 USERADD_PARAM_${PN} = "--system --home ${localstatedir}/lib/dbus \
8785 --no-create-home --shell /bin/false \ 8506 --no-create-home --shell /bin/false \
@@ -8797,8 +8518,7 @@ system and gives an overview of their function and contents.
8797 When applying static user identification (``uid``) values, the 8518 When applying static user identification (``uid``) values, the
8798 OpenEmbedded build system looks in :term:`BBPATH` for a 8519 OpenEmbedded build system looks in :term:`BBPATH` for a
8799 ``files/passwd`` file and then applies those ``uid`` values. Set the 8520 ``files/passwd`` file and then applies those ``uid`` values. Set the
8800 variable as follows in your ``local.conf`` file: 8521 variable as follows in your ``local.conf`` file::
8801 ::
8802 8522
8803 USERADD_UID_TABLES = "files/passwd" 8523 USERADD_UID_TABLES = "files/passwd"
8804 8524
@@ -8869,8 +8589,7 @@ system and gives an overview of their function and contents.
8869 With the ``WKS_FILE_DEPENDS`` variable, you have the possibility to 8589 With the ``WKS_FILE_DEPENDS`` variable, you have the possibility to
8870 specify a list of additional dependencies (e.g. native tools, 8590 specify a list of additional dependencies (e.g. native tools,
8871 bootloaders, and so forth), that are required to build Wic images. 8591 bootloaders, and so forth), that are required to build Wic images.
8872 Following is an example: 8592 Following is an example::
8873 ::
8874 8593
8875 WKS_FILE_DEPENDS = "some-native-tool" 8594 WKS_FILE_DEPENDS = "some-native-tool"
8876 8595
@@ -8884,8 +8603,7 @@ system and gives an overview of their function and contents.
8884 :term:`TMPDIR` directory structure and is specific to 8603 :term:`TMPDIR` directory structure and is specific to
8885 the recipe being built and the system for which it is being built. 8604 the recipe being built and the system for which it is being built.
8886 8605
8887 The ``WORKDIR`` directory is defined as follows: 8606 The ``WORKDIR`` directory is defined as follows::
8888 ::
8889 8607
8890 ${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR} 8608 ${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}
8891 8609
@@ -8904,8 +8622,7 @@ system and gives an overview of their function and contents.
8904 ``qemux86-poky-linux`` machine target system. Furthermore, suppose 8622 ``qemux86-poky-linux`` machine target system. Furthermore, suppose
8905 your recipe is named ``foo_1.3.0-r0.bb``. In this case, the work 8623 your recipe is named ``foo_1.3.0-r0.bb``. In this case, the work
8906 directory the build system uses to build the package would be as 8624 directory the build system uses to build the package would be as
8907 follows: 8625 follows::
8908 ::
8909 8626
8910 poky/build/tmp/work/qemux86-poky-linux/foo/1.3.0-r0 8627 poky/build/tmp/work/qemux86-poky-linux/foo/1.3.0-r0
8911 8628
diff --git a/documentation/sdk-manual/appendix-customizing.rst b/documentation/sdk-manual/appendix-customizing.rst
index 8e7115046b..fb2d78452b 100644
--- a/documentation/sdk-manual/appendix-customizing.rst
+++ b/documentation/sdk-manual/appendix-customizing.rst
@@ -149,8 +149,7 @@ from the :term:`DISTRO` variable.
149The 149The
150:ref:`populate_sdk_base <ref-classes-populate-sdk-*>` 150:ref:`populate_sdk_base <ref-classes-populate-sdk-*>`
151class defines the default value of the ``SDK_TITLE`` variable as 151class defines the default value of the ``SDK_TITLE`` variable as
152follows: 152follows::
153::
154 153
155 SDK_TITLE ??= "${@d.getVar('DISTRO_NAME') or d.getVar('DISTRO')} SDK" 154 SDK_TITLE ??= "${@d.getVar('DISTRO_NAME') or d.getVar('DISTRO')} SDK"
156 155
@@ -162,8 +161,7 @@ an example, assume you have your own layer for your distribution named
162does the default "poky" distribution. If so, you could update the 161does the default "poky" distribution. If so, you could update the
163``SDK_TITLE`` variable in the 162``SDK_TITLE`` variable in the
164``~/meta-mydistro/conf/distro/mydistro.conf`` file using the following 163``~/meta-mydistro/conf/distro/mydistro.conf`` file using the following
165form: 164form::
166::
167 165
168 SDK_TITLE = "your_title" 166 SDK_TITLE = "your_title"
169 167
@@ -194,8 +192,7 @@ the installed SDKs to update the installed SDKs by using the
1943. Build the extensible SDK normally (i.e., use the 1923. Build the extensible SDK normally (i.e., use the
195 ``bitbake -c populate_sdk_ext`` imagename command). 193 ``bitbake -c populate_sdk_ext`` imagename command).
196 194
1974. Publish the SDK using the following command: 1954. Publish the SDK using the following command::
198 ::
199 196
200 $ oe-publish-sdk some_path/sdk-installer.sh path_to_shared_http_directory 197 $ oe-publish-sdk some_path/sdk-installer.sh path_to_shared_http_directory
201 198
@@ -218,8 +215,7 @@ installation directory for the SDK is based on the
218:term:`SDKEXTPATH` variables from 215:term:`SDKEXTPATH` variables from
219within the 216within the
220:ref:`populate_sdk_base <ref-classes-populate-sdk-*>` 217:ref:`populate_sdk_base <ref-classes-populate-sdk-*>`
221class as follows: 218class as follows::
222::
223 219
224 SDKEXTPATH ??= "~/${@d.getVar('DISTRO')}_sdk" 220 SDKEXTPATH ??= "~/${@d.getVar('DISTRO')}_sdk"
225 221
@@ -236,8 +232,7 @@ assume you have your own layer for your distribution named
236does the default "poky" distribution. If so, you could update the 232does the default "poky" distribution. If so, you could update the
237``SDKEXTPATH`` variable in the 233``SDKEXTPATH`` variable in the
238``~/meta-mydistro/conf/distro/mydistro.conf`` file using the following 234``~/meta-mydistro/conf/distro/mydistro.conf`` file using the following
239form: 235form::
240::
241 236
242 SDKEXTPATH = "some_path_for_your_installed_sdk" 237 SDKEXTPATH = "some_path_for_your_installed_sdk"
243 238
@@ -272,8 +267,7 @@ source, you need to do a number of things:
272 267
2733. Set the appropriate configuration so that the produced SDK knows how 2683. Set the appropriate configuration so that the produced SDK knows how
274 to find the configuration. The variable you need to set is 269 to find the configuration. The variable you need to set is
275 :term:`SSTATE_MIRRORS`: 270 :term:`SSTATE_MIRRORS`::
276 ::
277 271
278 SSTATE_MIRRORS = "file://.* http://example.com/some_path/sstate-cache/PATH" 272 SSTATE_MIRRORS = "file://.* http://example.com/some_path/sstate-cache/PATH"
279 273
@@ -287,8 +281,7 @@ source, you need to do a number of things:
287 side, and its contents will not interfere with the build), then 281 side, and its contents will not interfere with the build), then
288 you can set the variable in your ``local.conf`` or custom distro 282 you can set the variable in your ``local.conf`` or custom distro
289 configuration file. You can then "whitelist" the variable through 283 configuration file. You can then "whitelist" the variable through
290 to the SDK by adding the following: 284 to the SDK by adding the following::
291 ::
292 285
293 SDK_LOCAL_CONF_WHITELIST = "SSTATE_MIRRORS" 286 SDK_LOCAL_CONF_WHITELIST = "SSTATE_MIRRORS"
294 287
@@ -313,8 +306,7 @@ everything needed to reconstruct the image for which the SDK was built.
313This bundling can lead to an SDK installer file that is a Gigabyte or 306This bundling can lead to an SDK installer file that is a Gigabyte or
314more in size. If the size of this file causes a problem, you can build 307more in size. If the size of this file causes a problem, you can build
315an SDK that has just enough in it to install and provide access to the 308an SDK that has just enough in it to install and provide access to the
316``devtool command`` by setting the following in your configuration: 309``devtool command`` by setting the following in your configuration::
317::
318 310
319 SDK_EXT_TYPE = "minimal" 311 SDK_EXT_TYPE = "minimal"
320 312
@@ -336,8 +328,7 @@ information enables the ``devtool search`` command to return useful
336results. 328results.
337 329
338To facilitate this wider range of information, you would need to set the 330To facilitate this wider range of information, you would need to set the
339following: 331following::
340::
341 332
342 SDK_INCLUDE_PKGDATA = "1" 333 SDK_INCLUDE_PKGDATA = "1"
343 334
diff --git a/documentation/sdk-manual/appendix-obtain.rst b/documentation/sdk-manual/appendix-obtain.rst
index 3c1dc52d19..0ce828aa29 100644
--- a/documentation/sdk-manual/appendix-obtain.rst
+++ b/documentation/sdk-manual/appendix-obtain.rst
@@ -25,8 +25,7 @@ Follow these steps to locate and hand-install the toolchain:
25 download the installer appropriate for your build host, target 25 download the installer appropriate for your build host, target
26 hardware, and image type. 26 hardware, and image type.
27 27
28 The installer files (``*.sh``) follow this naming convention: 28 The installer files (``*.sh``) follow this naming convention::
29 ::
30 29
31 poky-glibc-host_system-core-image-type-arch-toolchain[-ext]-release.sh 30 poky-glibc-host_system-core-image-type-arch-toolchain[-ext]-release.sh
32 31
@@ -55,15 +54,13 @@ Follow these steps to locate and hand-install the toolchain:
55 54
56 For example, if your build host is a 64-bit x86 system and you need 55 For example, if your build host is a 64-bit x86 system and you need
57 an extended SDK for a 64-bit core2 target, go into the ``x86_64`` 56 an extended SDK for a 64-bit core2 target, go into the ``x86_64``
58 folder and download the following installer: 57 folder and download the following installer::
59 ::
60 58
61 poky-glibc-x86_64-core-image-sato-core2-64-toolchain-ext-&DISTRO;.sh 59 poky-glibc-x86_64-core-image-sato-core2-64-toolchain-ext-&DISTRO;.sh
62 60
634. *Run the Installer:* Be sure you have execution privileges and run 614. *Run the Installer:* Be sure you have execution privileges and run
64 the installer. Following is an example from the ``Downloads`` 62 the installer. Following is an example from the ``Downloads``
65 directory: 63 directory::
66 ::
67 64
68 $ ~/Downloads/poky-glibc-x86_64-core-image-sato-core2-64-toolchain-ext-&DISTRO;.sh 65 $ ~/Downloads/poky-glibc-x86_64-core-image-sato-core2-64-toolchain-ext-&DISTRO;.sh
69 66
@@ -132,8 +129,7 @@ build the SDK installer. Follow these steps:
132 using to build the installer. If 129 using to build the installer. If
133 SDKMACHINE 130 SDKMACHINE
134 is not set appropriately, the build fails and provides an error 131 is not set appropriately, the build fails and provides an error
135 message similar to the following: 132 message similar to the following::
136 ::
137 133
138 The extensible SDK can currently only be built for the same architecture as the machine being built on - SDK_ARCH is 134 The extensible SDK can currently only be built for the same architecture as the machine being built on - SDK_ARCH is
139 set to i686 (likely via setting SDKMACHINE) which is different from the architecture of the build machine (x86_64). 135 set to i686 (likely via setting SDKMACHINE) which is different from the architecture of the build machine (x86_64).
@@ -144,8 +140,7 @@ build the SDK installer. Follow these steps:
144 SDK and populate the SDK image, use the following command form. Be 140 SDK and populate the SDK image, use the following command form. Be
145 sure to replace image with an image (e.g. "core-image-sato"): $ 141 sure to replace image with an image (e.g. "core-image-sato"): $
146 bitbake image -c populate_sdk You can do the same for the extensible 142 bitbake image -c populate_sdk You can do the same for the extensible
147 SDK using this command form: 143 SDK using this command form::
148 ::
149 144
150 $ bitbake image -c populate_sdk_ext 145 $ bitbake image -c populate_sdk_ext
151 146
@@ -170,8 +165,7 @@ build the SDK installer. Follow these steps:
170 libc-staticdev" 165 libc-staticdev"
171 166
1727. *Run the Installer:* You can now run the SDK installer from 1677. *Run the Installer:* You can now run the SDK installer from
173 ``tmp/deploy/sdk`` in the Build Directory. Following is an example: 168 ``tmp/deploy/sdk`` in the Build Directory. Following is an example::
174 ::
175 169
176 $ cd poky/build/tmp/deploy/sdk 170 $ cd poky/build/tmp/deploy/sdk
177 $ ./poky-glibc-x86_64-core-image-sato-core2-64-toolchain-ext-&DISTRO;.sh 171 $ ./poky-glibc-x86_64-core-image-sato-core2-64-toolchain-ext-&DISTRO;.sh
@@ -211,8 +205,7 @@ Follow these steps to extract the root filesystem:
211 which you can use with QEMU directly. 205 which you can use with QEMU directly.
212 206
213 The pre-built root filesystem image files follow these naming 207 The pre-built root filesystem image files follow these naming
214 conventions: 208 conventions::
215 ::
216 209
217 core-image-profile-arch.tar.bz2 210 core-image-profile-arch.tar.bz2
218 211
@@ -233,8 +226,7 @@ Follow these steps to extract the root filesystem:
233 226
234 For example, if you plan on using a BeagleBone device as your target 227 For example, if you plan on using a BeagleBone device as your target
235 hardware and your image is a ``core-image-sato-sdk`` image, you can 228 hardware and your image is a ``core-image-sato-sdk`` image, you can
236 download the following file: 229 download the following file::
237 ::
238 230
239 core-image-sato-sdk-beaglebone-yocto.tar.bz2 231 core-image-sato-sdk-beaglebone-yocto.tar.bz2
240 232
@@ -246,8 +238,7 @@ Follow these steps to extract the root filesystem:
246 installed the toolchain (e.g. ``poky_sdk``). 238 installed the toolchain (e.g. ``poky_sdk``).
247 239
248 Following is an example based on the toolchain installed in the 240 Following is an example based on the toolchain installed in the
249 ":ref:`sdk-manual/appendix-obtain:locating pre-built sdk installers`" section: 241 ":ref:`sdk-manual/appendix-obtain:locating pre-built sdk installers`" section::
250 ::
251 242
252 $ source poky_sdk/environment-setup-core2-64-poky-linux 243 $ source poky_sdk/environment-setup-core2-64-poky-linux
253 244
@@ -258,8 +249,7 @@ Follow these steps to extract the root filesystem:
258 from a previously built root filesystem image that was downloaded 249 from a previously built root filesystem image that was downloaded
259 from the :yocto_dl:`Index of Releases </releases/yocto/yocto-&DISTRO;/machines/>`. 250 from the :yocto_dl:`Index of Releases </releases/yocto/yocto-&DISTRO;/machines/>`.
260 This command extracts the root filesystem into the ``core2-64-sato`` 251 This command extracts the root filesystem into the ``core2-64-sato``
261 directory: 252 directory::
262 ::
263 253
264 $ runqemu-extract-sdk ~/Downloads/core-image-sato-sdk-beaglebone-yocto.tar.bz2 ~/beaglebone-sato 254 $ runqemu-extract-sdk ~/Downloads/core-image-sato-sdk-beaglebone-yocto.tar.bz2 ~/beaglebone-sato
265 255
diff --git a/documentation/sdk-manual/extensible.rst b/documentation/sdk-manual/extensible.rst
index baa432ef3b..04bafaed9e 100644
--- a/documentation/sdk-manual/extensible.rst
+++ b/documentation/sdk-manual/extensible.rst
@@ -59,8 +59,7 @@ The names of the tarball installer scripts are such that a string
59representing the host system appears first in the filename and then is 59representing the host system appears first in the filename and then is
60immediately followed by a string representing the target architecture. 60immediately followed by a string representing the target architecture.
61An extensible SDK has the string "-ext" as part of the name. Following 61An extensible SDK has the string "-ext" as part of the name. Following
62is the general form: 62is the general form::
63::
64 63
65 poky-glibc-host_system-image_type-arch-toolchain-ext-release_version.sh 64 poky-glibc-host_system-image_type-arch-toolchain-ext-release_version.sh
66 65
@@ -83,8 +82,7 @@ is the general form:
83 82
84For example, the following SDK installer is for a 64-bit 83For example, the following SDK installer is for a 64-bit
85development host system and a i586-tuned target architecture based off 84development host system and a i586-tuned target architecture based off
86the SDK for ``core-image-sato`` and using the current &DISTRO; snapshot: 85the SDK for ``core-image-sato`` and using the current &DISTRO; snapshot::
87::
88 86
89 poky-glibc-x86_64-core-image-sato-i586-toolchain-ext-&DISTRO;.sh 87 poky-glibc-x86_64-core-image-sato-i586-toolchain-ext-&DISTRO;.sh
90 88
@@ -150,8 +148,7 @@ begin with the string "``environment-setup``" and include as part of
150their name the tuned target architecture. As an example, the following 148their name the tuned target architecture. As an example, the following
151commands set the working directory to where the SDK was installed and 149commands set the working directory to where the SDK was installed and
152then source the environment setup script. In this example, the setup 150then source the environment setup script. In this example, the setup
153script is for an IA-based target machine using i586 tuning: 151script is for an IA-based target machine using i586 tuning::
154::
155 152
156 $ cd /home/scottrif/poky_sdk 153 $ cd /home/scottrif/poky_sdk
157 $ source environment-setup-core2-64-poky-linux 154 $ source environment-setup-core2-64-poky-linux
@@ -258,8 +255,7 @@ command:
258 to be extracted. In this situation, the source code is extracted 255 to be extracted. In this situation, the source code is extracted
259 to the default workspace - you do not want the files in some 256 to the default workspace - you do not want the files in some
260 specific location outside of the workspace. Thus, everything you 257 specific location outside of the workspace. Thus, everything you
261 need will be located in the workspace: 258 need will be located in the workspace::
262 ::
263 259
264 $ devtool add recipe fetchuri 260 $ devtool add recipe fetchuri
265 261
@@ -283,8 +279,7 @@ command:
283 Furthermore, the first positional argument srctree in this case 279 Furthermore, the first positional argument srctree in this case
284 identifies where the ``devtool add`` command will locate the 280 identifies where the ``devtool add`` command will locate the
285 extracted code outside of the workspace. You need to specify an 281 extracted code outside of the workspace. You need to specify an
286 empty directory: 282 empty directory::
287 ::
288 283
289 $ devtool add recipe srctree fetchuri 284 $ devtool add recipe srctree fetchuri
290 285
@@ -300,8 +295,7 @@ command:
300 ``devtool`` workspace. 295 ``devtool`` workspace.
301 296
302 The following command provides a new recipe name and identifies 297 The following command provides a new recipe name and identifies
303 the existing source tree location: 298 the existing source tree location::
304 ::
305 299
306 $ devtool add recipe srctree 300 $ devtool add recipe srctree
307 301
@@ -317,8 +311,7 @@ command:
317 311
3182. *Edit the Recipe*: You can use ``devtool edit-recipe`` to open up the 3122. *Edit the Recipe*: You can use ``devtool edit-recipe`` to open up the
319 editor as defined by the ``$EDITOR`` environment variable and modify 313 editor as defined by the ``$EDITOR`` environment variable and modify
320 the file: 314 the file::
321 ::
322 315
323 $ devtool edit-recipe recipe 316 $ devtool edit-recipe recipe
324 317
@@ -338,8 +331,7 @@ command:
338 On the other hand, if you want an image to contain the recipe's 331 On the other hand, if you want an image to contain the recipe's
339 packages from the workspace for immediate deployment onto a device 332 packages from the workspace for immediate deployment onto a device
340 (e.g. for testing purposes), you can use the ``devtool build-image`` 333 (e.g. for testing purposes), you can use the ``devtool build-image``
341 command: 334 command::
342 ::
343 335
344 $ devtool build-image image 336 $ devtool build-image image
345 337
@@ -435,8 +427,7 @@ command:
435 outside the workspace (i.e. ``meta-``\ layername). 427 outside the workspace (i.e. ``meta-``\ layername).
436 428
437 The following command identifies the recipe and, by default, 429 The following command identifies the recipe and, by default,
438 extracts the source files: 430 extracts the source files::
439 ::
440 431
441 $ devtool modify recipe 432 $ devtool modify recipe
442 433
@@ -474,8 +465,7 @@ command:
474 The following command tells ``devtool`` the recipe with which to 465 The following command tells ``devtool`` the recipe with which to
475 work and, in this case, identifies a local area for the extracted 466 work and, in this case, identifies a local area for the extracted
476 source files that exists outside of the default ``devtool`` 467 source files that exists outside of the default ``devtool``
477 workspace: 468 workspace::
478 ::
479 469
480 $ devtool modify recipe srctree 470 $ devtool modify recipe srctree
481 471
@@ -508,8 +498,7 @@ command:
508 The following command tells ``devtool`` the recipe with which to 498 The following command tells ``devtool`` the recipe with which to
509 work, uses the "-n" option to indicate source does not need to be 499 work, uses the "-n" option to indicate source does not need to be
510 extracted, and uses srctree to point to the previously extracted 500 extracted, and uses srctree to point to the previously extracted
511 source files: 501 source files::
512 ::
513 502
514 $ devtool modify -n recipe srctree 503 $ devtool modify -n recipe srctree
515 504
@@ -532,8 +521,7 @@ command:
532 depends on what you are going to do with the new code. 521 depends on what you are going to do with the new code.
533 522
534 If you need to eventually move the build output to the target 523 If you need to eventually move the build output to the target
535 hardware, use the following ``devtool`` command: 524 hardware, use the following ``devtool`` command::
536 ::
537 525
538 $ devtool build recipe 526 $ devtool build recipe
539 527
@@ -556,8 +544,7 @@ command:
556 development machine. 544 development machine.
557 545
558 You can deploy your build output to that target hardware by using the 546 You can deploy your build output to that target hardware by using the
559 ``devtool deploy-target`` command: 547 ``devtool deploy-target`` command::
560 ::
561 548
562 $ devtool deploy-target recipe target 549 $ devtool deploy-target recipe target
563 550
@@ -651,8 +638,7 @@ The following diagram shows the common development flow used with the
651 A common situation is where third-party software has undergone a 638 A common situation is where third-party software has undergone a
652 revision so that it has been upgraded. The recipe you have access to 639 revision so that it has been upgraded. The recipe you have access to
653 is likely in your own layer. Thus, you need to upgrade the recipe to 640 is likely in your own layer. Thus, you need to upgrade the recipe to
654 use the newer version of the software: 641 use the newer version of the software::
655 ::
656 642
657 $ devtool upgrade -V version recipe 643 $ devtool upgrade -V version recipe
658 644
@@ -703,16 +689,14 @@ The following diagram shows the common development flow used with the
703 depends on what you are going to do with the new code. 689 depends on what you are going to do with the new code.
704 690
705 If you need to eventually move the build output to the target 691 If you need to eventually move the build output to the target
706 hardware, use the following ``devtool`` command: 692 hardware, use the following ``devtool`` command::
707 ::
708 693
709 $ devtool build recipe 694 $ devtool build recipe
710 695
711 On the other hand, if you want an image to contain the recipe's 696 On the other hand, if you want an image to contain the recipe's
712 packages from the workspace for immediate deployment onto a device 697 packages from the workspace for immediate deployment onto a device
713 (e.g. for testing purposes), you can use the ``devtool build-image`` 698 (e.g. for testing purposes), you can use the ``devtool build-image``
714 command: 699 command::
715 ::
716 700
717 $ devtool build-image image 701 $ devtool build-image image
718 702
@@ -828,8 +812,7 @@ name and version, just the name, or just the version as part of the
828command line. 812command line.
829 813
830Sometimes the name or version determined from the source tree might be 814Sometimes the name or version determined from the source tree might be
831incorrect. For such a case, you must reset the recipe: 815incorrect. For such a case, you must reset the recipe::
832::
833 816
834 $ devtool reset -n recipename 817 $ devtool reset -n recipename
835 818
@@ -853,8 +836,7 @@ the ``DEPENDS`` variable in the original recipe to include the new
853recipe. 836recipe.
854 837
855If you need to add runtime dependencies, you can do so by adding the 838If you need to add runtime dependencies, you can do so by adding the
856following to your recipe: 839following to your recipe::
857::
858 840
859 RDEPENDS_${PN} += "dependency1 dependency2 ..." 841 RDEPENDS_${PN} += "dependency1 dependency2 ..."
860 842
@@ -938,8 +920,7 @@ mind:
938 the command line, add the variable setting to 920 the command line, add the variable setting to
939 :term:`EXTRA_OEMAKE` or 921 :term:`EXTRA_OEMAKE` or
940 :term:`PACKAGECONFIG_CONFARGS` 922 :term:`PACKAGECONFIG_CONFARGS`
941 within the recipe. Here is an example using ``EXTRA_OEMAKE``: 923 within the recipe. Here is an example using ``EXTRA_OEMAKE``::
942 ::
943 924
944 EXTRA_OEMAKE += "'CC=${CC}' 'CXX=${CXX}'" 925 EXTRA_OEMAKE += "'CC=${CC}' 'CXX=${CXX}'"
945 926
@@ -993,8 +974,7 @@ You can use the ``devtool add`` command two different ways to add
993Node.js modules: 1) Through ``npm`` and, 2) from a repository or local 974Node.js modules: 1) Through ``npm`` and, 2) from a repository or local
994source. 975source.
995 976
996Use the following form to add Node.js modules through ``npm``: 977Use the following form to add Node.js modules through ``npm``::
997::
998 978
999 $ devtool add "npm://registry.npmjs.org;name=forever;version=0.15.1" 979 $ devtool add "npm://registry.npmjs.org;name=forever;version=0.15.1"
1000 980
@@ -1018,8 +998,7 @@ these behaviors ensure the reproducibility and integrity of the build.
1018 998
1019As mentioned earlier, you can also add Node.js modules directly from a 999As mentioned earlier, you can also add Node.js modules directly from a
1020repository or local source tree. To add modules this way, use 1000repository or local source tree. To add modules this way, use
1021``devtool add`` in the following form: 1001``devtool add`` in the following form::
1022::
1023 1002
1024 $ devtool add https://github.com/diversario/node-ssdp 1003 $ devtool add https://github.com/diversario/node-ssdp
1025 1004
@@ -1196,15 +1175,13 @@ need to restore the original files that existed prior to running the
1196``devtool deploy-target`` command. Because the ``devtool deploy-target`` 1175``devtool deploy-target`` command. Because the ``devtool deploy-target``
1197command backs up any files it overwrites, you can use the 1176command backs up any files it overwrites, you can use the
1198``devtool undeploy-target`` command to restore those files and remove 1177``devtool undeploy-target`` command to restore those files and remove
1199any other files the recipe deployed. Consider the following example: 1178any other files the recipe deployed. Consider the following example::
1200::
1201 1179
1202 $ devtool undeploy-target lighttpd root@192.168.7.2 1180 $ devtool undeploy-target lighttpd root@192.168.7.2
1203 1181
1204If you have deployed 1182If you have deployed
1205multiple applications, you can remove them all using the "-a" option 1183multiple applications, you can remove them all using the "-a" option
1206thus restoring the target device to its original state: 1184thus restoring the target device to its original state::
1207::
1208 1185
1209 $ devtool undeploy-target -a root@192.168.7.2 1186 $ devtool undeploy-target -a root@192.168.7.2
1210 1187
@@ -1235,22 +1212,19 @@ populated on-demand. Sometimes you must explicitly install extra items
1235into the SDK. If you need these extra items, you can first search for 1212into the SDK. If you need these extra items, you can first search for
1236the items using the ``devtool search`` command. For example, suppose you 1213the items using the ``devtool search`` command. For example, suppose you
1237need to link to libGL but you are not sure which recipe provides libGL. 1214need to link to libGL but you are not sure which recipe provides libGL.
1238You can use the following command to find out: 1215You can use the following command to find out::
1239::
1240 1216
1241 $ devtool search libGL mesa 1217 $ devtool search libGL mesa
1242 1218
1243A free implementation of the OpenGL API Once you know the recipe 1219A free implementation of the OpenGL API Once you know the recipe
1244(i.e. ``mesa`` in this example), you can install it: 1220(i.e. ``mesa`` in this example), you can install it::
1245::
1246 1221
1247 $ devtool sdk-install mesa 1222 $ devtool sdk-install mesa
1248 1223
1249By default, the ``devtool sdk-install`` command assumes 1224By default, the ``devtool sdk-install`` command assumes
1250the item is available in pre-built form from your SDK provider. If the 1225the item is available in pre-built form from your SDK provider. If the
1251item is not available and it is acceptable to build the item from 1226item is not available and it is acceptable to build the item from
1252source, you can add the "-s" option as follows: 1227source, you can add the "-s" option as follows::
1253::
1254 1228
1255 $ devtool sdk-install -s mesa 1229 $ devtool sdk-install -s mesa
1256 1230
@@ -1266,8 +1240,7 @@ If you are working with an installed extensible SDK that gets
1266occasionally updated (e.g. a third-party SDK), then you will need to 1240occasionally updated (e.g. a third-party SDK), then you will need to
1267manually "pull down" the updates into the installed SDK. 1241manually "pull down" the updates into the installed SDK.
1268 1242
1269To update your installed SDK, use ``devtool`` as follows: 1243To update your installed SDK, use ``devtool`` as follows::
1270::
1271 1244
1272 $ devtool sdk-update 1245 $ devtool sdk-update
1273 1246
diff --git a/documentation/sdk-manual/using.rst b/documentation/sdk-manual/using.rst
index 62967f5572..fa0e8d4098 100644
--- a/documentation/sdk-manual/using.rst
+++ b/documentation/sdk-manual/using.rst
@@ -77,8 +77,7 @@ immediately followed by a string representing the target architecture.
77 77
78For example, the following SDK installer is for a 64-bit 78For example, the following SDK installer is for a 64-bit
79development host system and a i586-tuned target architecture based off 79development host system and a i586-tuned target architecture based off
80the SDK for ``core-image-sato`` and using the current DISTRO snapshot: 80the SDK for ``core-image-sato`` and using the current DISTRO snapshot::
81::
82 81
83 poky-glibc-x86_64-core-image-sato-i586-toolchain-DISTRO.sh 82 poky-glibc-x86_64-core-image-sato-i586-toolchain-DISTRO.sh
84 83
@@ -141,8 +140,7 @@ begin with the string "``environment-setup``" and include as part of
141their name the tuned target architecture. As an example, the following 140their name the tuned target architecture. As an example, the following
142commands set the working directory to where the SDK was installed and 141commands set the working directory to where the SDK was installed and
143then source the environment setup script. In this example, the setup 142then source the environment setup script. In this example, the setup
144script is for an IA-based target machine using i586 tuning: 143script is for an IA-based target machine using i586 tuning::
145::
146 144
147 $ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux 145 $ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux
148 146
diff --git a/documentation/sdk-manual/working-projects.rst b/documentation/sdk-manual/working-projects.rst
index f880cbe0d5..ad84ce2b87 100644
--- a/documentation/sdk-manual/working-projects.rst
+++ b/documentation/sdk-manual/working-projects.rst
@@ -45,16 +45,14 @@ project:
45 respectively. 45 respectively.
46 46
47 Use the following command to create an empty README file, which is 47 Use the following command to create an empty README file, which is
48 required by GNU Coding Standards: 48 required by GNU Coding Standards::
49 ::
50 49
51 $ touch README 50 $ touch README
52 51
53 Create the remaining 52 Create the remaining
54 three files as follows: 53 three files as follows:
55 54
56 - ``hello.c``: 55 - ``hello.c``::
57 ::
58 56
59 #include <stdio.h> 57 #include <stdio.h>
60 58
@@ -63,8 +61,7 @@ project:
63 printf("Hello World!\n"); 61 printf("Hello World!\n");
64 } 62 }
65 63
66 - ``configure.ac``: 64 - ``configure.ac``::
67 ::
68 65
69 AC_INIT(hello,0.1) 66 AC_INIT(hello,0.1)
70 AM_INIT_AUTOMAKE([foreign]) 67 AM_INIT_AUTOMAKE([foreign])
@@ -72,8 +69,7 @@ project:
72 AC_CONFIG_FILES(Makefile) 69 AC_CONFIG_FILES(Makefile)
73 AC_OUTPUT 70 AC_OUTPUT
74 71
75 - ``Makefile.am``: 72 - ``Makefile.am``::
76 ::
77 73
78 bin_PROGRAMS = hello 74 bin_PROGRAMS = hello
79 hello_SOURCES = hello.c 75 hello_SOURCES = hello.c
@@ -87,8 +83,7 @@ project:
87 which is followed by the string "poky-linux". For this example, the 83 which is followed by the string "poky-linux". For this example, the
88 command sources a script from the default SDK installation directory 84 command sources a script from the default SDK installation directory
89 that uses the 32-bit Intel x86 Architecture and the &DISTRO; Yocto 85 that uses the 32-bit Intel x86 Architecture and the &DISTRO; Yocto
90 Project release: 86 Project release::
91 ::
92 87
93 $ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux 88 $ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux
94 89
@@ -113,8 +108,7 @@ project:
113 the cross-compiler. The 108 the cross-compiler. The
114 :term:`CONFIGURE_FLAGS` 109 :term:`CONFIGURE_FLAGS`
115 environment variable provides the minimal arguments for GNU 110 environment variable provides the minimal arguments for GNU
116 configure: 111 configure::
117 ::
118 112
119 $ ./configure ${CONFIGURE_FLAGS} 113 $ ./configure ${CONFIGURE_FLAGS}
120 114
@@ -127,14 +121,12 @@ project:
127 ``armv5te-poky-linux-gnueabi``. You will notice that the name of the 121 ``armv5te-poky-linux-gnueabi``. You will notice that the name of the
128 script is ``environment-setup-armv5te-poky-linux-gnueabi``. Thus, the 122 script is ``environment-setup-armv5te-poky-linux-gnueabi``. Thus, the
129 following command works to update your project and rebuild it using 123 following command works to update your project and rebuild it using
130 the appropriate cross-toolchain tools: 124 the appropriate cross-toolchain tools::
131 ::
132 125
133 $ ./configure --host=armv5te-poky-linux-gnueabi --with-libtool-sysroot=sysroot_dir 126 $ ./configure --host=armv5te-poky-linux-gnueabi --with-libtool-sysroot=sysroot_dir
134 127
1355. *Make and Install the Project:* These two commands generate and 1285. *Make and Install the Project:* These two commands generate and
136 install the project into the destination directory: 129 install the project into the destination directory::
137 ::
138 130
139 $ make 131 $ make
140 $ make install DESTDIR=./tmp 132 $ make install DESTDIR=./tmp
@@ -157,8 +149,7 @@ project:
157 149
1586. *Execute Your Project:* To execute the project, you would need to run 1506. *Execute Your Project:* To execute the project, you would need to run
159 it on your target hardware. If your target hardware happens to be 151 it on your target hardware. If your target hardware happens to be
160 your build host, you could run the project as follows: 152 your build host, you could run the project as follows::
161 ::
162 153
163 $ ./tmp/usr/local/bin/hello 154 $ ./tmp/usr/local/bin/hello
164 155
@@ -203,8 +194,7 @@ regarding variable behavior:
203.. note:: 194.. note::
204 195
205 Regardless of how you set your variables, if you use the "-e" option 196 Regardless of how you set your variables, if you use the "-e" option
206 with ``make``, the variables from the SDK setup script take precedence: 197 with ``make``, the variables from the SDK setup script take precedence::
207 ::
208 198
209 $ make -e target 199 $ make -e target
210 200
@@ -226,8 +216,7 @@ Running the
226SDK setup script for a 64-bit build host and an i586-tuned target 216SDK setup script for a 64-bit build host and an i586-tuned target
227architecture for a ``core-image-sato`` image using the current &DISTRO; 217architecture for a ``core-image-sato`` image using the current &DISTRO;
228Yocto Project release and then echoing that variable shows the value 218Yocto Project release and then echoing that variable shows the value
229established through the script: 219established through the script::
230::
231 220
232 $ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux 221 $ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux
233 $ echo ${CC} 222 $ echo ${CC}
@@ -252,8 +241,7 @@ example:
252 241
253 Create the three files as follows: 242 Create the three files as follows:
254 243
255 - ``main.c``: 244 - ``main.c``::
256 ::
257 245
258 #include "module.h" 246 #include "module.h"
259 void sample_func(); 247 void sample_func();
@@ -263,14 +251,12 @@ example:
263 return 0; 251 return 0;
264 } 252 }
265 253
266 - ``module.h``: 254 - ``module.h``::
267 ::
268 255
269 #include <stdio.h> 256 #include <stdio.h>
270 void sample_func(); 257 void sample_func();
271 258
272 - ``module.c``: 259 - ``module.c``::
273 ::
274 260
275 #include "module.h" 261 #include "module.h"
276 void sample_func() 262 void sample_func()
@@ -288,8 +274,7 @@ example:
288 which is followed by the string "poky-linux". For this example, the 274 which is followed by the string "poky-linux". For this example, the
289 command sources a script from the default SDK installation directory 275 command sources a script from the default SDK installation directory
290 that uses the 32-bit Intel x86 Architecture and the &DISTRO_NAME; Yocto 276 that uses the 32-bit Intel x86 Architecture and the &DISTRO_NAME; Yocto
291 Project release: 277 Project release::
292 ::
293 278
294 $ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux 279 $ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux
295 280
@@ -297,8 +282,7 @@ example:
297 two lines that can be used to set the ``CC`` variable. One line is 282 two lines that can be used to set the ``CC`` variable. One line is
298 identical to the value that is set when you run the SDK environment 283 identical to the value that is set when you run the SDK environment
299 setup script, and the other line sets ``CC`` to "gcc", the default 284 setup script, and the other line sets ``CC`` to "gcc", the default
300 GNU compiler on the build host: 285 GNU compiler on the build host::
301 ::
302 286
303 # CC=i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/2.5/sysroots/i586-poky-linux 287 # CC=i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/2.5/sysroots/i586-poky-linux
304 # CC="gcc" 288 # CC="gcc"
@@ -315,8 +299,7 @@ example:
3154. *Make the Project:* Use the ``make`` command to create the binary 2994. *Make the Project:* Use the ``make`` command to create the binary
316 output file. Because variables are commented out in the Makefile, the 300 output file. Because variables are commented out in the Makefile, the
317 value used for ``CC`` is the value set when the SDK environment setup 301 value used for ``CC`` is the value set when the SDK environment setup
318 file was run: 302 file was run::
319 ::
320 303
321 $ make 304 $ make
322 i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/2.5/sysroots/i586-poky-linux -I . -c main.c 305 i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/2.5/sysroots/i586-poky-linux -I . -c main.c
@@ -351,8 +334,7 @@ example:
351 variable as part of the command line. Go into the Makefile and 334 variable as part of the command line. Go into the Makefile and
352 re-insert the comment character so that running ``make`` uses the 335 re-insert the comment character so that running ``make`` uses the
353 established SDK compiler. However, when you run ``make``, use a 336 established SDK compiler. However, when you run ``make``, use a
354 command-line argument to set ``CC`` to "gcc": 337 command-line argument to set ``CC`` to "gcc"::
355 ::
356 338
357 $ make clean 339 $ make clean
358 rm -rf *.o 340 rm -rf *.o
@@ -376,8 +358,7 @@ example:
376 environment variable. 358 environment variable.
377 359
378 In this last case, edit Makefile again to use the "gcc" compiler but 360 In this last case, edit Makefile again to use the "gcc" compiler but
379 then use the "-e" option on the ``make`` command line: 361 then use the "-e" option on the ``make`` command line::
380 ::
381 362
382 $ make clean 363 $ make clean
383 rm -rf *.o 364 rm -rf *.o
@@ -402,8 +383,7 @@ example:
402 Makefile. 383 Makefile.
403 384
4045. *Execute Your Project:* To execute the project (i.e. ``target_bin``), 3855. *Execute Your Project:* To execute the project (i.e. ``target_bin``),
405 use the following command: 386 use the following command::
406 ::
407 387
408 $ ./target_bin 388 $ ./target_bin
409 Hello World! 389 Hello World!