summaryrefslogtreecommitdiffstats
path: root/poky/documentation/dev-manual
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@fuzziesquirrel.com>2018-12-16 17:11:34 -0800
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2019-01-08 18:21:44 -0500
commit1a4b7ee28bf7413af6513fb45ad0d0736048f866 (patch)
tree79f6d8ea698cab8f2eaf4f54b793d2ca7a1451ce /poky/documentation/dev-manual
parent5b9ede0403237c7dace972affa65cf64a1aadd0e (diff)
downloadtalos-openbmc-1a4b7ee28bf7413af6513fb45ad0d0736048f866.tar.gz
talos-openbmc-1a4b7ee28bf7413af6513fb45ad0d0736048f866.zip
reset upstream subtrees to yocto 2.6
Reset the following subtrees on thud HEAD: poky: 87e3a9739d meta-openembedded: 6094ae18c8 meta-security: 31dc4e7532 meta-raspberrypi: a48743dc36 meta-xilinx: c42016e2e6 Also re-apply backports that didn't make it into thud: poky: 17726d0 systemd-systemctl-native: handle Install wildcards meta-openembedded: 4321a5d libtinyxml2: update to 7.0.1 042f0a3 libcereal: Add native and nativesdk classes e23284f libcereal: Allow empty package 030e8d4 rsyslog: curl-less build with fmhttp PACKAGECONFIG 179a1b9 gtest: update to 1.8.1 Squashed OpenBMC subtree compatibility updates: meta-aspeed: Brad Bishop (1): aspeed: add yocto 2.6 compatibility meta-ibm: Brad Bishop (1): ibm: prepare for yocto 2.6 meta-ingrasys: Brad Bishop (1): ingrasys: set layer compatibility to yocto 2.6 meta-openpower: Brad Bishop (1): openpower: set layer compatibility to yocto 2.6 meta-phosphor: Brad Bishop (3): phosphor: set layer compatibility to thud phosphor: libgpg-error: drop patches phosphor: react to fitimage artifact rename Ed Tanous (4): Dropbear: upgrade options for latest upgrade yocto2.6: update openssl options busybox: remove upstream watchdog patch systemd: Rebase CONFIG_CGROUP_BPF patch Change-Id: I7b1fe71cca880d0372a82d94b5fd785323e3a9e7 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'poky/documentation/dev-manual')
-rw-r--r--poky/documentation/dev-manual/dev-manual-common-tasks.xml396
-rw-r--r--poky/documentation/dev-manual/dev-manual-intro.xml4
-rw-r--r--poky/documentation/dev-manual/dev-manual-start.xml448
-rw-r--r--poky/documentation/dev-manual/dev-manual.xml10
-rw-r--r--poky/documentation/dev-manual/figures/multiconfig_files.pngbin0 -> 18611 bytes
5 files changed, 529 insertions, 329 deletions
diff --git a/poky/documentation/dev-manual/dev-manual-common-tasks.xml b/poky/documentation/dev-manual/dev-manual-common-tasks.xml
index fe1bfba6c..c75e718d6 100644
--- a/poky/documentation/dev-manual/dev-manual-common-tasks.xml
+++ b/poky/documentation/dev-manual/dev-manual-common-tasks.xml
@@ -189,8 +189,8 @@
<ulink url='&YOCTO_WIKI_URL;/wiki/Releases'>Yocto Project</ulink>
releases for which the current version is
compatible.
- This variable is a good way to indicate how
- up-to-date your particular layer is.
+ This variable is a good way to indicate if
+ your particular layer is current.
</para></listitem>
</itemizedlist>
</para></listitem>
@@ -3237,30 +3237,22 @@
post-installation script to be delayed until the first boot.
For example, the script might need to be executed on the
device itself.
- To delay script execution until boot time, use the following
- structure in the post-installation script:
- <literallayout class='monospaced'>
- pkg_postinst_<replaceable>PACKAGENAME</replaceable>() {
- if [ x"$D" = "x" ]; then
- # Actions to carry out on the device go here
- else
- exit 1
- fi
- }
- </literallayout>
- </para>
-
- <para>
- The previous example delays execution until the image boots
- again because the environment variable <filename>D</filename>
- points to the directory containing the image when
- the root filesystem is created at build time but is unset
- when executed on the first boot.
+ To delay script execution until boot time, you must explicitly
+ mark post installs to defer to the target.
+ You can use <filename>pkg_postinst_ontarget()</filename> or
+ call
+ <filename>postinst-intercepts defer_to_first_boot</filename>
+ from <filename>pkg_postinst()</filename>.
+ Any failure of a <filename>pkg_postinst()</filename> script
+ (including exit 1) triggers an error during the
+ <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-rootfs'><filename>do_rootfs</filename></ulink>
+ task.
</para>
<para>
- If you have recipes that use <filename>pkg_postinst</filename>
- scripts and they require the use of non-standard native
+ If you have recipes that use
+ <filename>pkg_postinst</filename> function
+ and they require the use of non-standard native
tools that have dependencies during rootfs construction, you
need to use the
<ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_WRITE_DEPS'><filename>PACKAGE_WRITE_DEPS</filename></ulink>
@@ -3279,8 +3271,8 @@
<filename>pkg_prerm</filename>, and
<filename>pkg_postrm</filename>, respectively.
These scrips work in exactly the same way as does
- <filename>pkg_postinst</filename> with the exception that they
- run at different times.
+ <filename>pkg_postinst</filename> with the exception
+ that they run at different times.
Also, because of when they run, they are not applicable to
being run at image creation time like
<filename>pkg_postinst</filename>.
@@ -4264,7 +4256,7 @@
You need to be sure that your development host is
set up to use the Yocto Project.
For information on how to set up your host, see the
- "<link linkend='setting-up-the-development-host-to-use-the-yocto-project'>Preparing the Build Host</link>"
+ "<link linkend='dev-preparing-the-build-host'>Preparing the Build Host</link>"
section.
</para></listitem>
<listitem><para>
@@ -5321,104 +5313,215 @@
</para>
</section>
- <section id='platdev-building-targets-with-multiple-configurations'>
- <title>Building Targets with Multiple Configurations</title>
+ <section id='dev-building-images-for-multiple-targets-using-multiple-configurations'>
+ <title>Building Images for Multiple Targets Using Multiple Configurations</title>
<para>
- Bitbake also has functionality that allows you to build
- multiple targets at the same time, where each target uses
- a different configuration.
+ You can use a single <filename>bitbake</filename> command
+ to build multiple images or packages for different targets
+ where each image or package requires a different configuration
+ (multiple configuration builds).
+ The builds, in this scenario, are sometimes referred to as
+ "multiconfigs", and this section uses that term throughout.
</para>
<para>
- In order to accomplish this, you setup each of the configurations
- you need to use in parallel by placing the configuration files in
- your current build directory alongside the usual
- <filename>local.conf</filename> file.
+ This section describes how to set up for multiple
+ configuration builds and how to account for cross-build
+ dependencies between the multiconfigs.
</para>
- <para>
- Follow these guidelines to create an environment that supports
- multiple configurations:
- <itemizedlist>
- <listitem><para>
- <emphasis>Create Configuration Files</emphasis>:
- You need to create a single configuration file for each
- configuration for which you want to add support.
- These files would contain lines such as the following:
- <literallayout class='monospaced'>
- MACHINE = "A"
- </literallayout>
- The files would contain any other variables that can
- be set and built in the same directory.
- <note>
- You can change the
- <ulink url='&YOCTO_DOCS_REF_URL;#var-TMPDIR'><filename>TMPDIR</filename></ulink>
- to not conflict.
- </note></para>
+ <section id='dev-setting-up-and-running-a-multiple-configuration-build'>
+ <title>Setting Up and Running a Multiple Configuration Build</title>
- <para>
- Furthermore, the configuration file must be located in the
- current build directory in a directory named
- <filename>multiconfig</filename> under the build's
- <filename>conf</filename> directory where
- <filename>local.conf</filename> resides.
- The reason for this restriction is because the
- <filename>BBPATH</filename> variable is not constructed
- until the layers are parsed.
- Consequently, using the configuration file as a
- pre-configuration file is not possible unless it is
- located in the current working directory.
- </para></listitem>
- <listitem><para>
- <emphasis>Add the BitBake Multi-Config Variable to you Local Configuration File</emphasis>:
- Use the
- <filename>BBMULTICONFIG</filename>
- variable in your <filename>conf/local.conf</filename>
- configuration file to specify each separate configuration.
- For example, the following line tells BitBake it should load
- <filename>conf/multiconfig/configA.conf</filename>,
- <filename>conf/multiconfig/configB.conf</filename>, and
- <filename>conf/multiconfig/configC.conf</filename>.
- <literallayout class='monospaced'>
- BBMULTICONFIG = "configA configB configC"
- </literallayout>
- </para></listitem>
- <listitem><para>
- <emphasis>Launch BitBake</emphasis>:
- Use the following BitBake command form to launch the
- build:
- <literallayout class='monospaced'>
- $ bitbake [multiconfig:<replaceable>multiconfigname</replaceable>:]<replaceable>target</replaceable> [[[multiconfig:<replaceable>multiconfigname</replaceable>:]<replaceable>target</replaceable>] ... ]
- </literallayout>
- Following is an example that supports building a minimal
- image for configuration A alongside a standard
- <filename>core-image-sato</filename>, which takes its
- configuration from <filename>local.conf</filename>:
- <literallayout class='monospaced'>
- $ bitbake multiconfig:configA:core-image-minimal core-image-sato
- </literallayout>
- </para></listitem>
- </itemizedlist>
- </para>
+ <para>
+ To accomplish a multiple configuration build, you must
+ define each target's configuration separately using
+ a parallel configuration file in the
+ <ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>,
+ and you must follow a required file hierarchy.
+ Additionally, you must enable the multiple configuration
+ builds in your <filename>local.conf</filename> file.
+ </para>
- <para>
- Support for multiple configurations in this current release of
- the Yocto Project (&DISTRO_NAME; &DISTRO;) has some known issues:
- <itemizedlist>
- <listitem><para>
- No inter-multi-configuration dependencies exist.
- </para></listitem>
- <listitem><para>
- Shared State (sstate) optimizations do not exist.
- Consequently, if the build uses the same object twice
+ <para>
+ Follow these steps to set up and execute multiple
+ configuration builds:
+ <itemizedlist>
+ <listitem><para>
+ <emphasis>Create Separate Configuration Files</emphasis>:
+ You need to create a single configuration file for
+ each build target (each multiconfig).
+ Minimally, each configuration file must define the
+ machine and the temporary directory BitBake uses
+ for the build.
+ Suggested practice dictates that you do not
+ overlap the temporary directories
+ used during the builds.
+ However, it is possible that you can share the
+ temporary directory
+ (<ulink url='&YOCTO_DOCS_REF_URL;#var-TMPDIR'><filename>TMPDIR</filename></ulink>).
+ For example, consider a scenario with two
+ different multiconfigs for the same
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink>: "qemux86" built for
+ two distributions such as "poky" and "poky-lsb".
+ In this case, you might want to use the same
+ <filename>TMPDIR</filename>.</para>
+
+ <para>Here is an example showing the minimal
+ statements needed in a configuration file for
+ a "qemux86" target whose temporary build directory
+ is <filename>tmpmultix86</filename>:
+ <literallayout class='monospaced'>
+ MACHINE="qemux86"
+ TMPDIR="${TOPDIR}/tmpmultix86"
+ </literallayout></para>
+
+ <para>The location for these multiconfig
+ configuration files is specific.
+ They must reside in the current build directory in
+ a sub-directory of <filename>conf</filename> named
+ <filename>multiconfig</filename>.
+ Following is an example that defines two
+ configuration files for the "x86" and "arm"
+ multiconfigs:
+ <imagedata fileref="figures/multiconfig_files.png" align="center" width="4in" depth="3in" />
+ </para>
+
+ <para>The reason for this required file hierarchy
+ is because the <filename>BBPATH</filename> variable
+ is not constructed until the layers are parsed.
+ Consequently, using the configuration file as a
+ pre-configuration file is not possible unless it is
+ located in the current working directory.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Add the BitBake Multi-configuration Variable to the Local Configuration File</emphasis>:
+ Use the
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-BBMULTICONFIG'><filename>BBMULTICONFIG</filename></ulink>
+ variable in your
+ <filename>conf/local.conf</filename> configuration
+ file to specify each multiconfig.
+ Continuing with the example from the previous
+ figure, the <filename>BBMULTICONFIG</filename>
+ variable needs to enable two multiconfigs: "x86"
+ and "arm" by specifying each configuration file:
+ <literallayout class='monospaced'>
+ BBMULTICONFIG = "x86 arm"
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Launch BitBake</emphasis>:
+ Use the following BitBake command form to launch the
+ multiple configuration build:
+ <literallayout class='monospaced'>
+ $ bitbake [multiconfig:<replaceable>multiconfigname</replaceable>:]<replaceable>target</replaceable> [[[multiconfig:<replaceable>multiconfigname</replaceable>:]<replaceable>target</replaceable>] ... ]
+ </literallayout>
+ For the example in this section, the following
+ command applies:
+ <literallayout class='monospaced'>
+ $ bitbake multiconfig:x86:core-image-minimal multiconfig:arm:core-image-sato
+ </literallayout>
+ The previous BitBake command builds a
+ <filename>core-image-minimal</filename> image that
+ is configured through the
+ <filename>x86.conf</filename> configuration file
+ and builds a <filename>core-image-sato</filename>
+ image that is configured through the
+ <filename>arm.conf</filename> configuration file.
+ </para></listitem>
+ </itemizedlist>
+ <note>
+ Support for multiple configuration builds in the
+ Yocto Project &DISTRO; (&DISTRO_NAME;) Release does
+ not include Shared State (sstate) optimizations.
+ Consequently, if a build uses the same object twice
in, for example, two different
<filename>TMPDIR</filename> directories, the build
- will either load from an existing sstate cache at the
- start or build the object twice.
- </para></listitem>
- </itemizedlist>
- </para>
+ either loads from an existing sstate cache for that
+ build at the start or builds the object fresh.
+ </note>
+ </para>
+ </section>
+
+ <section id='dev-enabling-multiple-configuration-build-dependencies'>
+ <title>Enabling Multiple Configuration Build Dependencies</title>
+
+ <para>
+ Sometimes dependencies can exist between targets
+ (multiconfigs) in a multiple configuration build.
+ For example, suppose that in order to build a
+ <filename>core-image-sato</filename> image for an "x86"
+ multiconfig, the root filesystem of an "arm"
+ multiconfig must exist.
+ This dependency is essentially that the
+ <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-image'><filename>do_image</filename></ulink>
+ task in the <filename>core-image-sato</filename> recipe
+ depends on the completion of the
+ <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-rootfs'><filename>do_rootfs</filename></ulink>
+ task of the <filename>core-image-minimal</filename>
+ recipe.
+ </para>
+
+ <para>
+ To enable dependencies in a multiple configuration
+ build, you must declare the dependencies in the recipe
+ using the following statement form:
+ <literallayout class='monospaced'>
+ <replaceable>task_or_package</replaceable>[mcdepends] = "multiconfig:<replaceable>from_multiconfig</replaceable>:<replaceable>to_multiconfig</replaceable>:<replaceable>recipe_name</replaceable>:<replaceable>task_on_which_to_depend</replaceable>"
+ </literallayout>
+ To better show how to use this statement, consider the
+ example scenario from the first paragraph of this section.
+ The following statement needs to be added to the recipe
+ that builds the <filename>core-image-sato</filename>
+ image:
+ <literallayout class='monospaced'>
+ do_image[mcdepends] = "multiconfig:x86:arm:core-image-minimal:do_rootfs"
+ </literallayout>
+ In this example, the
+ <replaceable>from_multiconfig</replaceable> is "x86".
+ The <replaceable>to_multiconfig</replaceable> is "arm".
+ The task on which the <filename>do_image</filename> task
+ in the recipe depends is the <filename>do_rootfs</filename>
+ task from the <filename>core-image-minimal</filename>
+ recipe associated with the "arm" multiconfig.
+ </para>
+
+ <para>
+ Once you set up this dependency, you can build the
+ "x86" multiconfig using a BitBake command as follows:
+ <literallayout class='monospaced'>
+ $ bitbake multiconfig:x86:core-image-sato
+ </literallayout>
+ This command executes all the tasks needed to create
+ the <filename>core-image-sato</filename> image for the
+ "x86" multiconfig.
+ Because of the dependency, BitBake also executes through
+ the <filename>do_rootfs</filename> task for the "arm"
+ multiconfig build.
+ </para>
+
+ <para>
+ Having a recipe depend on the root filesystem of another
+ build might not seem that useful.
+ Consider this change to the statement in the
+ <filename>core-image-sato</filename> recipe:
+ <literallayout class='monospaced'>
+ do_image[mcdepends] = "multiconfig:x86:arm:core-image-minimal:do_image"
+ </literallayout>
+ In this case, BitBake must create the
+ <filename>core-image-minimal</filename> image for the
+ "arm" build since the "x86" build depends on it.
+ </para>
+
+ <para>
+ Because "x86" and "arm" are enabled for multiple
+ configuration builds and have separate configuration
+ files, BitBake places the artifacts for each build in the
+ respective temporary build directories (i.e.
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-TMPDIR'><filename>TMPDIR</filename></ulink>).
+ </para>
+ </section>
</section>
<section id='building-an-initramfs-image'>
@@ -7159,13 +7262,12 @@
easier-to-use and more flexible replacements for an
existing functionality in OE-Core's
<ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-image-live'><filename>image-live</filename></ulink>
- class and <filename>mkefidisk.sh</filename> script.
- The difference between
- Wic and those examples is
- that with Wic the
- functionality of those scripts is implemented
- by a general-purpose partitioning language, which is
- based on Redhat kickstart syntax.</para></listitem>
+ class.
+ The difference between Wic and those examples is
+ that with Wic the functionality of those scripts is
+ implemented by a general-purpose partitioning language,
+ which is based on Redhat kickstart syntax.
+ </para></listitem>
</itemizedlist>
</para>
</section>
@@ -11400,8 +11502,8 @@
within a separately started QEMU or any
other virtual machine manager.
</para></listitem>
- <listitem><para><emphasis>"Systemd-bootTarget":</emphasis>
- Choose "Systemd-bootTarget" if your hardware is
+ <listitem><para><emphasis>"SystemdbootTarget":</emphasis>
+ Choose "SystemdbootTarget" if your hardware is
an EFI-based machine with
<filename>systemd-boot</filename> as bootloader and
<filename>core-image-testmaster</filename>
@@ -11409,10 +11511,10 @@
Also, your hardware under test must be in a
DHCP-enabled network that gives it the same IP
address for each reboot.</para>
- <para>If you choose "Systemd-bootTarget", there are
+ <para>If you choose "SystemdbootTarget", there are
additional requirements and considerations.
See the
- "<link linkend='selecting-systemd-boottarget'>Selecting Systemd-bootTarget</link>"
+ "<link linkend='selecting-systemdboottarget'>Selecting SystemdbootTarget</link>"
section, which follows, for more information.
</para></listitem>
<listitem><para><emphasis>"BeagleBoneTarget":</emphasis>
@@ -11458,12 +11560,12 @@
</para>
</section>
- <section id='selecting-systemd-boottarget'>
- <title>Selecting Systemd-bootTarget</title>
+ <section id='selecting-systemdboottarget'>
+ <title>Selecting SystemdbootTarget</title>
<para>
If you did not set <filename>TEST_TARGET</filename> to
- "Systemd-bootTarget", then you do not need any information
+ "SystemdbootTarget", then you do not need any information
in this section.
You can skip down to the
"<link linkend='qemu-image-running-tests'>Running Tests</link>"
@@ -11472,7 +11574,7 @@
<para>
If you did set <filename>TEST_TARGET</filename> to
- "Systemd-bootTarget", you also need to perform a one-time
+ "SystemdbootTarget", you also need to perform a one-time
setup of your master image by doing the following:
<orderedlist>
<listitem><para><emphasis>Set <filename>EFI_PROVIDER</filename>:</emphasis>
@@ -11543,7 +11645,7 @@
<para>
The final thing you need to do when setting
- <filename>TEST_TARGET</filename> to "Systemd-bootTarget" is
+ <filename>TEST_TARGET</filename> to "SystemdbootTarget" is
to set up the test image:
<orderedlist>
<listitem><para><emphasis>Set up your <filename>local.conf</filename> file:</emphasis>
@@ -11552,7 +11654,7 @@
<literallayout class='monospaced'>
IMAGE_FSTYPES += "tar.gz"
INHERIT += "testimage"
- TEST_TARGET = "Systemd-bootTarget"
+ TEST_TARGET = "SystemdbootTarget"
TEST_TARGET_IP = "192.168.2.3"
</literallayout>
</para></listitem>
@@ -11687,16 +11789,15 @@
To run the tests automatically after the
OpenEmbedded build system successfully creates an image,
first set the
- <ulink url='&YOCTO_DOCS_REF_URL;#var-TEST_IMAGE'><filename>TEST_IMAGE</filename></ulink>
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-TESTIMAGE_AUTO'><filename>TESTIMAGE_AUTO</filename></ulink>
variable to "1" in your <filename>local.conf</filename>
file in the
<ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>:
<literallayout class='monospaced'>
- TEST_IMAGE = "1"
+ TESTIMAGE_AUTO = "1"
</literallayout>
Next, build your image.
- If the image successfully builds, the tests will be
- run:
+ If the image successfully builds, the tests run:
<literallayout class='monospaced'>
bitbake core-image-sato
</literallayout></para></listitem>
@@ -11969,7 +12070,7 @@
The target controller object used to deploy
and start an image on a particular target
(e.g. QemuTarget, SimpleRemote, and
- Systemd-bootTarget).
+ SystemdbootTarget).
Tests usually use the following:
<itemizedlist>
<listitem><para><emphasis><filename>ip</filename>:</emphasis>
@@ -15072,6 +15173,31 @@
</para>
</section>
</section>
+
+ <section id='copying-licenses-that-do-not-exist'>
+ <title>Copying Licenses that Do Not Exist</title>
+
+ <para>
+ Some packages, such as the linux-firmware package, have many
+ licenses that are not in any way common.
+ You can avoid adding a lot of these types of common license
+ files, which are only applicable to a specific package, by using
+ the
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-NO_GENERIC_LICENSE'><filename>NO_GENERIC_LICENSE</filename></ulink>
+ variable.
+ Using this variable also avoids QA errors when you use a
+ non-common, non-CLOSED license in a recipe.
+ </para>
+
+ <para>
+ The following is an example that uses the
+ <filename>LICENSE.Abilis.txt</filename>
+ file as the license from the fetched source:
+ <literallayout class='monospaced'>
+ NO_GENERIC_LICENSE[Firmware-Abilis] = "LICENSE.Abilis.txt"
+ </literallayout>
+ </para>
+ </section>
</section>
<section id='using-the-error-reporting-tool'>
diff --git a/poky/documentation/dev-manual/dev-manual-intro.xml b/poky/documentation/dev-manual/dev-manual-intro.xml
index f457c8033..3a34094b8 100644
--- a/poky/documentation/dev-manual/dev-manual-intro.xml
+++ b/poky/documentation/dev-manual/dev-manual-intro.xml
@@ -19,7 +19,7 @@
</para>
<para>
- The following list describes what you can get from this manual:
+ This manual provides the following:
<itemizedlist>
<listitem><para>
Procedures that help you get going with the Yocto Project.
@@ -44,7 +44,7 @@
</para>
<para>
- This manual will not give you the following:
+ This manual does not provide the following:
<itemizedlist>
<listitem><para>
Redundant Step-by-step Instructions:
diff --git a/poky/documentation/dev-manual/dev-manual-start.xml b/poky/documentation/dev-manual/dev-manual-start.xml
index d8726b485..3f971ba4b 100644
--- a/poky/documentation/dev-manual/dev-manual-start.xml
+++ b/poky/documentation/dev-manual/dev-manual-start.xml
@@ -10,8 +10,10 @@
This chapter provides procedures related to getting set up to use the
Yocto Project.
You can learn about creating a team environment that develops using the
- Yocto Project, how to set up a build host, how to locate Yocto Project
- source repositories, and how to create local Git repositories.
+ Yocto Project, how to set up a
+ <ulink url='&YOCTO_DOCS_REF_URL;#hardware-build-system-term'>build host</ulink>,
+ how to locate Yocto Project source repositories, and how to create local
+ Git repositories.
</para>
<section id="usingpoky-changes-collaborate">
@@ -19,69 +21,71 @@
<para>
It might not be immediately clear how you can use the Yocto
- Project in a team development environment, or scale it for a large
- team of developers.
+ Project in a team development environment, or how to scale it for a
+ large team of developers.
One of the strengths of the Yocto Project is that it is extremely
flexible.
Thus, you can adapt it to many different use cases and scenarios.
- However, these characteristics can cause a struggle if you are trying
+ However, this flexibility could cause difficulties if you are trying
to create a working setup that scales across a large team.
</para>
<para>
To help you understand how to set up this type of environment,
- this section presents a procedure that gives you the information
- to learn how to get the results you want.
+ this section presents a procedure that gives you information
+ that can help you get the results you want.
The procedure is high-level and presents some of the project's most
successful experiences, practices, solutions, and available
- technologies that work well.
+ technologies that have proved to work well in the past.
Keep in mind, the procedure here is a starting point.
- You can build off it and customize it to fit any
+ You can build off these steps and customize the procedure to fit any
particular working environment and set of practices.
<orderedlist>
<listitem><para>
<emphasis>Determine Who is Going to be Developing:</emphasis>
You need to understand who is going to be doing anything
related to the Yocto Project and what their roles would be.
- Making this determination is essential to completing the
+ Making this determination is essential to completing
steps two and three, which are to get your equipment together
and set up your development environment's hardware topology.
</para>
<para>The following roles exist:
- <itemizedlist>
- <listitem><para>
- <emphasis>Application Development:</emphasis>
- These types of developers do application level work
- on top of an existing software stack.
- </para></listitem>
- <listitem><para>
- <emphasis>Core System Development:</emphasis>
- These types of developers work on the contents of the
- operating system image itself.
- </para></listitem>
- <listitem><para>
- <emphasis>Build Engineer:</emphasis>
- This type of developer manages Autobuilders and
- releases.
- Not all environments need a Build Engineer.
- </para></listitem>
- <listitem><para>
- <emphasis>Test Engineer:</emphasis>
- This type of developer creates and manages automated
- tests needed to ensure all application and core
- system development meets desired quality standards.
- </para></listitem>
- </itemizedlist>
+ <itemizedlist>
+ <listitem><para>
+ <emphasis>Application Developer:</emphasis>
+ This type of developer does application level work
+ on top of an existing software stack.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Core System Developer:</emphasis>
+ This type of developer works on the contents of the
+ operating system image itself.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Build Engineer:</emphasis>
+ This type of developer manages Autobuilders and
+ releases.
+ Not all environments need a Build Engineer.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Test Engineer:</emphasis>
+ This type of developer creates and manages automated
+ tests that are used to ensure all application and
+ core system development meets desired quality
+ standards.
+ </para></listitem>
+ </itemizedlist>
</para></listitem>
<listitem><para>
<emphasis>Gather the Hardware:</emphasis>
Based on the size and make-up of the team, get the hardware
together.
- Any development, build, or test engineer should be using
- a system that is running a supported Linux distribution.
- Systems, in general, should be high performance (e.g. dual,
- six-core Xeons with 24 Gbytes of RAM and plenty of disk space).
+ Ideally, any development, build, or test engineer uses
+ a system that runs a supported Linux distribution.
+ These systems, in general, should be high performance
+ (e.g. dual, six-core Xeons with 24 Gbytes of RAM and plenty
+ of disk space).
You can help ensure efficiency by having any machines used
for testing or that run Autobuilders be as high performance
as possible.
@@ -107,11 +111,12 @@
<emphasis>Use Git as Your Source Control Manager (SCM):</emphasis>
Keeping your
<ulink url='&YOCTO_DOCS_REF_URL;#metadata'>Metadata</ulink>
- and any software you are developing under the
- control of an SCM system that is compatible
- with the OpenEmbedded build system is advisable.
- Of the SCMs BitBake supports, the
- Yocto Project team strongly recommends using
+ (i.e. recipes, configuration files, classes, and so forth)
+ and any software you are developing under the control of an SCM
+ system that is compatible with the OpenEmbedded build system
+ is advisable.
+ Of the SCMs BitBake supports, the Yocto Project team strongly
+ recommends using
<ulink url='&YOCTO_DOCS_OM_URL;#git'>Git</ulink>.
Git is a distributed system that is easy to backup,
allows you to work remotely, and then connects back to the
@@ -129,20 +134,19 @@
being used to generate the web interface that lets you view the
repositories.
The <filename>gitolite</filename> software identifies users
- using SSH keys and allows branch-based
- access controls to repositories that you can control as little
- or as much as necessary.
-
+ using SSH keys and allows branch-based access controls to
+ repositories that you can control as little or as much as
+ necessary.
<note>
The setup of these services is beyond the scope of this
manual.
- However, sites such as these exist that describe how to
- perform setup:
+ However, sites such as the following exist that describe
+ how to perform setup:
<itemizedlist>
<listitem><para>
<ulink url='http://git-scm.com/book/ch4-8.html'>Git documentation</ulink>:
- Describes how to install <filename>gitolite</filename>
- on the server.
+ Describes how to install
+ <filename>gitolite</filename> on the server.
</para></listitem>
<listitem><para>
<ulink url='http://gitolite.com'>Gitolite</ulink>:
@@ -150,8 +154,8 @@
</para></listitem>
<listitem><para>
<ulink url='https://git.wiki.kernel.org/index.php/Interfaces,_frontends,_and_tools'>Interfaces, frontends, and tools</ulink>:
- Documentation on how to create interfaces and frontends
- for Git.
+ Documentation on how to create interfaces and
+ frontends for Git.
</para></listitem>
</itemizedlist>
</note>
@@ -161,23 +165,22 @@
As mentioned earlier, application developers are creating
applications on top of existing software stacks.
Following are some best practices for setting up machines
- that do application development:
+ used for application development:
<itemizedlist>
<listitem><para>
- Use a pre-built toolchain that
- contains the software stack itself.
+ Use a pre-built toolchain that contains the software
+ stack itself.
Then, develop the application code on top of the
stack.
This method works well for small numbers of relatively
isolated applications.
</para></listitem>
<listitem><para>
- When possible, use the Yocto Project
- plug-in for the
+ When possible, use the Yocto Project plug-in for the
<trademark class='trade'>Eclipse</trademark> IDE
and SDK development practices.
For more information, see the
- "<ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>"
+ <ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>
manual.
</para></listitem>
<listitem><para>
@@ -186,27 +189,29 @@
toolchain downloads or as updates through a package
update mechanism using <filename>opkg</filename>
to provide updates to an existing toolchain.
- The exact mechanics of how and when to do this are a
- question for local policy.
+ The exact mechanics of how and when to do this depend
+ on local policy.
</para></listitem>
<listitem><para>
- Use multiple toolchains installed locally
- into different locations to allow development across
+ Use multiple toolchains installed locally into
+ different locations to allow development across
versions.
</para></listitem>
</itemizedlist>
</para></listitem>
<listitem><para>
<emphasis>Set up the Core Development Machines:</emphasis>
- As mentioned earlier, these types of developers work on the
- contents of the operating system itself.
+ As mentioned earlier, core developers work on the contents of
+ the operating system itself.
Following are some best practices for setting up machines
used for developing images:
<itemizedlist>
<listitem><para>
- Have the Yocto Project build system itself available on
- the developer workstations so developers can run their own
- builds and directly rebuild the software stack.
+ Have the
+ <ulink url='&YOCTO_DOCS_REF_URL;#build-system-term'>OpenEmbedded build system</ulink>
+ available on the developer workstations so developers
+ can run their own builds and directly rebuild the
+ software stack.
</para></listitem>
<listitem><para>
Keep the core system unchanged as much as
@@ -228,8 +233,9 @@
Autobuilders are often the core of the development
environment.
It is here that changes from individual developers are brought
- together and centrally tested and subsequent decisions about
- releases can be made.
+ together and centrally tested.
+ Based on this automated build and test environment, subsequent
+ decisions about releases can be made.
Autobuilders also allow for "continuous integration" style
testing of software components and regression identification
and tracking.</para>
@@ -239,22 +245,23 @@
The Yocto Project team has found this implementation
works well in this role.
A public example of this is the Yocto Project
- Autobuilders, which we use to test the overall health of the
- project.</para>
+ Autobuilders, which the Yocto Project team uses to test the
+ overall health of the project.</para>
<para>The features of this system are:
<itemizedlist>
<listitem><para>
- Highlights when commits break the build.
- </para></listitem>
+ Highlights when commits break the build.
+ </para></listitem>
<listitem><para>
- Populates an sstate cache from which
- developers can pull rather than requiring local
- builds.
+ Populates an
+ <ulink url='&YOCTO_DOCS_OM_URL;#shared-state-cache'>sstate cache</ulink>
+ from which developers can pull rather than requiring
+ local builds.
</para></listitem>
<listitem><para>
- Allows commit hook triggers,
- which trigger builds when commits are made.
+ Allows commit hook triggers, which trigger builds when
+ commits are made.
</para></listitem>
<listitem><para>
Allows triggering of automated image booting
@@ -275,19 +282,19 @@
Allows scheduling of builds so that resources
can be used efficiently.
</para></listitem>
- </itemizedlist>
- </para></listitem>
- <listitem><para>
- <emphasis>Set up Test Machines:</emphasis>
- Use a small number of shared, high performance systems
- for testing purposes.
- Developers can use these systems for wider, more
- extensive testing while they continue to develop
- locally using their primary development system.
- </para></listitem>
- <listitem><para>
- <emphasis>Document Policies and Change Flow:</emphasis>
- The Yocto Project itself uses a hierarchical structure and a
+ </itemizedlist>
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Set up Test Machines:</emphasis>
+ Use a small number of shared, high performance systems
+ for testing purposes.
+ Developers can use these systems for wider, more
+ extensive testing while they continue to develop
+ locally using their primary development system.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Document Policies and Change Flow:</emphasis>
+ The Yocto Project uses a hierarchical structure and a
pull model.
Scripts exist to create and send pull requests
(i.e. <filename>create-pull-request</filename> and
@@ -330,16 +337,20 @@
<listitem><para>
Maintain your Metadata in layers that make sense
for your situation.
- See the "<link linkend='understanding-and-creating-layers'>Understanding
- and Creating Layers</link>" section for more information on
- layers.
+ See the
+ "<ulink url='&YOCTO_DOCS_OM_URL;#the-yocto-project-layer-model'>The Yocto Project Layer Model</ulink>"
+ section in the Yocto Project Overview and Concepts
+ Manual and the
+ "<link linkend='understanding-and-creating-layers'>Understanding and Creating Layers</link>"
+ section for more information on layers.
</para></listitem>
<listitem><para>
Separate the project's Metadata and code by using
separate Git repositories.
See the
"<ulink url='&YOCTO_DOCS_OM_URL;#yocto-project-repositories'>Yocto Project Source Repositories</ulink>"
- section for information on these repositories.
+ section in the Yocto Project Overview and Concepts
+ Manual for information on these repositories.
See the
"<link linkend='locating-yocto-project-source-files'>Locating Yocto Project Source Files</link>"
section for information on how to set up local Git
@@ -360,7 +371,8 @@
</para></listitem>
<listitem><para>
The Yocto Project community encourages you
- to send patches to the project to fix bugs or add features.
+ to send patches to the project to fix bugs or add
+ features.
If you do submit patches, follow the project commit
guidelines for writing good commit messages.
See the "<link linkend='how-to-submit-a-change'>Submitting a Change to the Yocto Project</link>"
@@ -369,10 +381,12 @@
<listitem><para>
Send changes to the core sooner than later
as others are likely to run into the same issues.
- For some guidance on mailing lists to use, see the list in the
+ For some guidance on mailing lists to use, see the list
+ in the
"<link linkend='how-to-submit-a-change'>Submitting a Change to the Yocto Project</link>"
section.
- For a description of the available mailing lists, see the
+ For a description of the available mailing lists, see
+ the
"<ulink url='&YOCTO_DOCS_REF_URL;#resources-mailinglist'>Mailing Lists</ulink>"
section in the Yocto Project Reference Manual.
</para></listitem>
@@ -382,22 +396,28 @@
</para>
</section>
-<section id='setting-up-the-development-host-to-use-the-yocto-project'>
+<section id='dev-preparing-the-build-host'>
<title>Preparing the Build Host</title>
<para>
- This section provides procedures to set up your development host to
- use the Yocto Project.
- You can use the Yocto Project on a native Linux development host or
- you can use
+ This section provides procedures to set up a system to be used as your
+ <ulink url='&YOCTO_DOCS_REF_URL;#hardware-build-system-term'>build host</ulink>
+ for development using the Yocto Project.
+ Your build host can be a native Linux machine (recommended) or it can
+ be a machine (Linux, Mac, or Windows) that uses
<ulink url='https://git.yoctoproject.org/cgit/cgit.cgi/crops/about/'>CROPS</ulink>,
which leverages
- <ulink url='https://www.docker.com/'>Docker Containers</ulink>,
- to prepare any Linux, Mac, or Windows development host.
+ <ulink url='https://www.docker.com/'>Docker Containers</ulink>.
+ <note>
+ You cannot use a build host that is using the
+ <ulink url='https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux'>Windows Subsystem for Linux</ulink>
+ (WSL).
+ The Yocto Project is not compatible with WSL.
+ </note>
</para>
<para>
- Once your development host is set up to use the Yocto Project,
+ Once your build host is set up to use the Yocto Project,
further steps are necessary depending on what you want to
accomplish.
See the following references for information on how to prepare for
@@ -432,7 +452,7 @@
<para>
Follow these steps to prepare a native Linux machine as your
- Yocto Project development host:
+ Yocto Project Build Host:
<orderedlist>
<listitem><para>
<emphasis>Use a Supported Linux Distribution:</emphasis>
@@ -450,8 +470,8 @@
</para></listitem>
<listitem><para>
<emphasis>Have Enough Free Memory:</emphasis>
- You should have at least 50 Gbytes of free disk space
- for building images.
+ Your system should have at least 50 Gbytes of free disk
+ space for building images.
</para></listitem>
<listitem><para>
<emphasis>Meet Minimal Version Requirements:</emphasis>
@@ -480,14 +500,14 @@
<listitem><para>
<emphasis>Install Development Host Packages:</emphasis>
Required development host packages vary depending on your
- build machine and what you want to do with the Yocto
+ build host and what you want to do with the Yocto
Project.
Collectively, the number of required packages is large
if you want to be able to cover all cases.</para>
<para>For lists of required packages for all scenarios,
see the
- "<ulink url='&YOCTO_DOCS_REF_URL;#required-packages-for-the-host-development-system'>Required Packages for the Host Development System</ulink>"
+ "<ulink url='&YOCTO_DOCS_REF_URL;#required-packages-for-the-build-host'>Required Packages for the Build Host</ulink>"
section in the Yocto Project Reference Manual.
</para></listitem>
</orderedlist>
@@ -514,7 +534,7 @@
<para>
With
- <ulink url='https://git.yoctoproject.org/cgit/cgit.cgi/crops/about/'>CROPS</ulink>,
+ <ulink url='https://github.com/crops/crops/blob/master/README.md'>CROPS</ulink>,
which leverages
<ulink url='https://www.docker.com/'>Docker Containers</ulink>,
you can create a Yocto Project development environment that
@@ -525,66 +545,101 @@
<para>
Follow these general steps to prepare a Windows, Mac, or Linux
- machine as your Yocto Project development host:
+ machine as your Yocto Project build host:
<orderedlist>
<listitem><para>
- <emphasis>Go to the Docker Installation Site:</emphasis>
+ <emphasis>Determine What Your Build Host Needs:</emphasis>
<ulink url='https://www.docker.com/what-docker'>Docker</ulink>
is a software container platform that you need to install
- on the host development machine.
- To start the installation process, see the
- <ulink url='https://docs.docker.com/engine/installation/'>Docker Installation</ulink>
- site.
+ on the build host.
+ Depending on your build host, you might have to install
+ different software to support Docker containers.
+ Go to the Docker installation page and read about the
+ platform requirements in
+ "<ulink url='https://docs.docker.com/install/#supported-platforms'>Supported Platforms</ulink>"
+ your build host needs to run containers.
</para></listitem>
<listitem><para>
- <emphasis>Choose Your Docker Edition:</emphasis>
- Docker comes in several editions.
- For the Yocto Project, the stable community edition
- (i.e. "Docker CE Stable") is adequate.
- You can learn more about the Docker editions from the
- site.
+ <emphasis>Choose What To Install:</emphasis>
+ Depending on whether or not your build host meets system
+ requirements, you need to install "Docker CE Stable" or
+ the "Docker Toolbox".
+ Most situations call for Docker CE.
+ However, if you have a build host that does not meet
+ requirements (e.g. Pre-Windows 10 or Windows 10 "Home"
+ version), you must install Docker Toolbox instead.
</para></listitem>
<listitem><para>
<emphasis>Go to the Install Site for Your Platform:</emphasis>
Click the link for the Docker edition associated with
- your development host machine's native software.
- For example, if your machine is running Microsoft
+ your build host's native software.
+ For example, if your build host is running Microsoft
Windows Version 10 and you want the Docker CE Stable
edition, click that link under "Supported Platforms".
</para></listitem>
<listitem><para>
- <emphasis>Understand What You Need:</emphasis>
- The install page has pre-requisites your machine must
- meet.
- Be sure you read through this page and make sure your
- machine meets the requirements to run Docker.
- If your machine does not meet the requirements, the page
- has instructions to handle exceptions.
- For example, to run Docker on Windows 10, you must have
- the pro version of the operating system.
- If you have the home version, you need to install the
- <ulink url='https://docs.docker.com/toolbox/overview/#ready-to-get-started'>Docker Toolbox</ulink>.
- </para>
-
- <para>Another example is that a Windows machine needs to
- have Microsoft Hyper-V.
- If you have a legacy version of the the Microsoft
- operating system or for any other reason you do not have
- Microsoft Hyper-V, you would have to enter the BIOS and
- enable virtualization.
- </para></listitem>
- <listitem><para>
<emphasis>Install the Software:</emphasis>
Once you have understood all the pre-requisites, you can
download and install the appropriate software.
Follow the instructions for your specific machine and
- the type of the software you need to install.
+ the type of the software you need to install:
+ <itemizedlist>
+ <listitem><para>
+ Install
+ <ulink url='https://docs.docker.com/docker-for-windows/install/#install-docker-for-windows-desktop-app'>Docker CE for Windows</ulink>
+ for Windows build hosts that meet requirements.
+ </para></listitem>
+ <listitem><para>
+ Install
+ <ulink url='https://docs.docker.com/docker-for-mac/install/#install-and-run-docker-for-mac'>Docker CE for Macs</ulink>
+ for Mac build hosts that meet requirements.
+ </para></listitem>
+ <listitem><para>
+ Install
+ <ulink url='https://docs.docker.com/toolbox/toolbox_install_windows/'>Docker Toolbox for Windows</ulink>
+ for Windows build hosts that do not meet Docker
+ requirements.
+ </para></listitem>
+ <listitem><para>
+ Install
+ <ulink url='https://docs.docker.com/toolbox/toolbox_install_mac/'>Docker Toolbox for MacOS</ulink>
+ for Mac build hosts that do not meet Docker
+ requirements.
+ </para></listitem>
+ <listitem><para>
+ Install
+ <ulink url='https://docs.docker.com/install/linux/docker-ce/centos/'>Docker CE for CentOS</ulink>
+ for Linux build hosts running the CentOS
+ distribution.
+ </para></listitem>
+ <listitem><para>
+ Install
+ <ulink url='https://docs.docker.com/install/linux/docker-ce/debian/'>Docker CE for Debian</ulink>
+ for Linux build hosts running the Debian
+ distribution.
+ </para></listitem>
+ <listitem><para>
+ Install
+ <ulink url='https://docs.docker.com/install/linux/docker-ce/fedora/'>Docker CE for Fedora</ulink>
+ for Linux build hosts running the Fedora
+ distribution.
+ </para></listitem>
+ <listitem><para>
+ Install
+ <ulink url='https://docs.docker.com/install/linux/docker-ce/ubuntu/'>Docker CE for Ubuntu</ulink>
+ for Linux build hosts running the Ubuntu
+ distribution.
+ </para></listitem>
+ </itemizedlist>
</para></listitem>
<listitem><para>
<emphasis>Optionally Orient Yourself With Docker:</emphasis>
If you are unfamiliar with Docker and the container
concept, you can learn more here -
<ulink url='https://docs.docker.com/get-started/'></ulink>.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Launch Docker or Docker Toolbox:</emphasis>
You should be able to launch Docker or the Docker Toolbox
and have a terminal shell on your development host.
</para></listitem>
@@ -593,7 +648,7 @@
Go to
<ulink url='https://github.com/crops/docker-win-mac-docs/wiki'></ulink>
and follow the directions for your particular
- development host (i.e. Linux, Mac, or Windows).</para>
+ build host (i.e. Linux, Mac, or Windows).</para>
<para>Once you complete the setup instructions for your
machine, you have the Poky, Extensible SDK, and Toaster
@@ -622,8 +677,8 @@
<title>Locating Yocto Project Source Files</title>
<para>
- This section contains procedures related to locating Yocto Project
- files.
+ This section shows you how to locate and access the
+ source files that ship with the Yocto Project.
You establish and use these local files to work on projects.
<note><title>Notes</title>
<itemizedlist>
@@ -670,7 +725,7 @@
</para></listitem>
<listitem><para>
<emphasis>Select the Repository:</emphasis>
- Click on the repository in which you are interested (i.e.
+ Click on the repository in which you are interested (e.g.
<filename>poky</filename>).
</para></listitem>
<listitem><para>
@@ -704,6 +759,7 @@
The procedure in this section exists should you desire a
tarball snapshot of any given component.
</note>
+ Follow these steps to locate and download a particular tarball:
<orderedlist>
<listitem><para>
<emphasis>Access the Index of Releases:</emphasis>
@@ -753,7 +809,10 @@
uses a "DOWNLOADS" page from which you can locate and download
tarballs of any Yocto Project release.
Rather than Git repositories, these files represent snapshot
- tarballs.
+ tarballs similar to the tarballs located in the Index of Releases
+ described in the
+ "<link linkend='accessing-index-of-releases'>Accessing Index of Releases</link>"
+ section.
<note><title>Tip</title>
The recommended method for accessing Yocto Project
components is to use Git to clone a repository and work from
@@ -771,18 +830,23 @@
<listitem><para>
<emphasis>Get to the Downloads Area:</emphasis>
Select the "DOWNLOADS" item from the pull-down
- "SOFTWARE" tab menu.
+ "SOFTWARE" tab menu near the top of the page.
</para></listitem>
<listitem><para>
<emphasis>Select a Yocto Project Release:</emphasis>
Use the menu next to "RELEASE" to display and choose
- a Yocto Project release (e.g. sumo, rocko, pyro, and
- so forth.
- For a "map" of Yocto Project releases to version numbers,
- see the
- <ulink url='https://wiki.yoctoproject.org/wiki/Releases'>Releases</ulink>
- wiki page.
- </para></listitem>
+ a recent or past supported Yocto Project release
+ (e.g. &DISTRO_NAME_NO_CAP;,
+ &DISTRO_NAME_NO_CAP_MINUS_ONE;, and so forth).
+ <note><title>Tip</title>
+ For a "map" of Yocto Project releases to version
+ numbers, see the
+ <ulink url='https://wiki.yoctoproject.org/wiki/Releases'>Releases</ulink>
+ wiki page.
+ </note>
+ You can use the "RELEASE ARCHIVE" link to reveal a menu of
+ all Yocto Project releases.
+ </para></listitem>
<listitem><para>
<emphasis>Download Tools or Board Support Packages (BSPs):</emphasis>
From the "DOWNLOADS" page, you can download tools or
@@ -799,8 +863,9 @@
<para>
Yocto Project maintains an area for nightly builds that contains
tarball releases at <ulink url='&YOCTO_AB_NIGHTLY_URL;'/>.
- These builds include Yocto Project releases, SDK installation
- scripts, and experimental builds.
+ These builds include Yocto Project releases ("poky"),
+ toolchains, Yocto Project plugins for Eclipse, and builds for
+ supported machines.
</para>
<para>
@@ -808,14 +873,21 @@
Yocto Project component, use the following procedure:
<orderedlist>
<listitem><para>
- <emphasis>Access the Nightly Builds:</emphasis>
+ <emphasis>Locate the Index of Nightly Builds:</emphasis>
Open a browser and go to
<ulink url='&YOCTO_AB_NIGHTLY_URL;'/> to access the
Nightly Builds.
</para></listitem>
<listitem><para>
+ <emphasis>Select a Date:</emphasis>
+ Click on the date in which you are interested.
+ If you want the latest builds, use "CURRENT".
+ </para></listitem>
+ <listitem><para>
<emphasis>Select a Build:</emphasis>
- Click on any build by date in which you are interested.
+ Choose the area in which you are interested.
+ For example, if you are looking for the most recent
+ toolchains, select the "toolchain" link.
</para></listitem>
<listitem><para>
<emphasis>Find the Tarball:</emphasis>
@@ -831,27 +903,23 @@
</section>
</section>
-<section id='cloning-and-checking-out-branchs'>
+<section id='cloning-and-checking-out-branches'>
<title>Cloning and Checking Out Branches</title>
<para>
- To use the Yocto Project, you need a release of the Yocto Project
- locally installed on your development system.
- The locally installed set of files is referred to as the
+ To use the Yocto Project for development, you need a release locally
+ installed on your development system.
+ This locally installed set of files is referred to as the
<ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>
in the Yocto Project documentation.
</para>
<para>
- You create your Source Directory by using
+ The preferred method of creating your Source Directory is by using
<ulink url='&YOCTO_DOCS_OM_URL;#git'>Git</ulink> to clone a local
copy of the upstream <filename>poky</filename> repository.
- <note><title>Tip</title>
- The preferred method of getting the Yocto Project Source
- Directory set up is to clone the repository.
- </note>
- Working from a copy of the upstream repository allows you
- to contribute back into the Yocto Project or simply work with
+ Working from a cloned copy of the upstream repository allows you
+ to contribute back into the Yocto Project or to simply work with
the latest software on a development branch.
Because Git maintains and creates an upstream repository with
a complete history of changes and you are working with a local
@@ -871,21 +939,23 @@
<orderedlist>
<listitem><para>
<emphasis>Set Your Directory:</emphasis>
- Be in the directory where you want to create your local
- copy of poky.
+ Change your working directory to where you want to
+ create your local copy of
+ <filename>poky</filename>.
</para></listitem>
<listitem><para>
<emphasis>Clone the Repository:</emphasis>
- The following command clones the repository and uses
+ The following example command clones the
+ <filename>poky</filename> repository and uses
the default name "poky" for your local repository:
<literallayout class='monospaced'>
$ git clone git://git.yoctoproject.org/poky
Cloning into 'poky'...
- remote: Counting objects: 367178, done.
- remote: Compressing objects: 100% (88161/88161), done.
- remote: Total 367178 (delta 272761), reused 366942 (delta 272525)
- Receiving objects: 100% (367178/367178), 133.26 MiB | 6.40 MiB/s, done.
- Resolving deltas: 100% (272761/272761), done.
+ remote: Counting objects: 416542, done.
+ remote: Compressing objects: 100% (98611/98611), done.
+ remote: Total 416542 (delta 311104), reused 416377 (delta 310939)
+ Receiving objects: 100% (416542/416542), 150.39 MiB | 15.77 MiB/s, done.
+ Resolving deltas: 100% (311104/311104), done.
Checking connectivity... done.
</literallayout>
Unless you specify a specific development branch or
@@ -900,8 +970,8 @@
<link linkend='checkout-out-by-tag-in-poky'>Checking Out By Tag in Poky</link>"
sections, respectively.</para>
- <para>Once the repository is created, you can change to
- that directory and check its status.
+ <para>Once the local repository is created, you can
+ change to that directory and check its status.
Here, the single "master" branch exists on your system
and by default, it is checked out:
<literallayout class='monospaced'>
@@ -916,6 +986,10 @@
Your local repository of poky is identical to the
upstream poky repository at the time from which it was
cloned.
+ As you work with the local branch, you can periodically
+ use the <filename>git pull &dash;&dash;rebase</filename>
+ command to be sure you are up-to-date with the upstream
+ branch.
</para></listitem>
</orderedlist>
</para>
diff --git a/poky/documentation/dev-manual/dev-manual.xml b/poky/documentation/dev-manual/dev-manual.xml
index d473142f3..b54c0d65d 100644
--- a/poky/documentation/dev-manual/dev-manual.xml
+++ b/poky/documentation/dev-manual/dev-manual.xml
@@ -107,14 +107,14 @@
<revremark>Released with the Yocto Project 2.5 Release.</revremark>
</revision>
<revision>
- <revnumber>2.5.1</revnumber>
- <date>September 2018</date>
- <revremark>The initial document released with the Yocto Project 2.5.1 Release.</revremark>
+ <revnumber>2.6</revnumber>
+ <date>November 2018</date>
+ <revremark>Released with the Yocto Project 2.6 Release.</revremark>
</revision>
<revision>
- <revnumber>2.5.2</revnumber>
+ <revnumber>2.6.1</revnumber>
<date>&REL_MONTH_YEAR;</date>
- <revremark>The initial document released with the Yocto Project 2.5.2 Release.</revremark>
+ <revremark>Released with the Yocto Project 2.6.1 Release.</revremark>
</revision>
</revhistory>
diff --git a/poky/documentation/dev-manual/figures/multiconfig_files.png b/poky/documentation/dev-manual/figures/multiconfig_files.png
new file mode 100644
index 000000000..0b59338b3
--- /dev/null
+++ b/poky/documentation/dev-manual/figures/multiconfig_files.png
Binary files differ
OpenPOWER on IntegriCloud