ref-manual: Start of new section on deeper look into dev env.
Start of the new section on the closer look into the development environment. (From yocto-docs rev: e1f1cee951433144d1adedcb4f0bbc8d8296c444) Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
482943bd2c
commit
95cdad1c2e
|
@ -153,6 +153,216 @@
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section id="a-closer-look-at-the-yocto-project-development-environment">
|
||||||
|
<title>A Closer Look at the Yocto Project Development Environment</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This section is a work-in-progress for an expanded discussion of the
|
||||||
|
Yocto Project Development Environment.
|
||||||
|
The section is rooted in the figure found in the
|
||||||
|
"<ulink url='&YOCTO_DOCS_QS_URL;#yp-intro'>Introducing the Yocto Project Development Environment</ulink>"
|
||||||
|
section of the Yocto Project Quick Start.
|
||||||
|
This expanded discussion presents a deeper level of detail regarding
|
||||||
|
sources of input, generated output, and controlling
|
||||||
|
<ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
I will either replicate the exact figure from the YP Quick Start here
|
||||||
|
or I will create a more simplified version that can be used as the
|
||||||
|
top-level diagram from which to base subsequent sections and expanded
|
||||||
|
illustrations.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
[NEED REPEATED FIGURE HERE OR A NEW FIGURE]
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This paragraph will introduce the main blocks of the preceding figure
|
||||||
|
to overview and organize the remainder of the section:
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para><emphasis>User Configuration:</emphasis>
|
||||||
|
Methods by with the user can directly control the build
|
||||||
|
process.</para></listitem>
|
||||||
|
<listitem><para><emphasis>Metadata Layers:</emphasis>
|
||||||
|
Various layers that provide software, machine, and
|
||||||
|
distro Metadata.</para></listitem>
|
||||||
|
<listitem><para><emphasis>Soure Files:</emphasis>
|
||||||
|
Upstream releases, local projects, and SCMs.</para></listitem>
|
||||||
|
<listitem><para><emphasis>Build System:</emphasis>
|
||||||
|
Processes inside the BitBake "box".
|
||||||
|
This block expands on how BitBake fetches source, applies
|
||||||
|
patches, completes compilation, analyzes output for package
|
||||||
|
generation, creates and tests packages, generates images, and
|
||||||
|
generates cross-development tools.</para></listitem>
|
||||||
|
<listitem><para><emphasis>Package Feeds</emphasis>
|
||||||
|
Package feeds into the BitBake process.</para></listitem>
|
||||||
|
<listitem><para><emphasis>Images</emphasis>
|
||||||
|
Images produced by the development process.
|
||||||
|
Where do they go?
|
||||||
|
Can you mess with them (i.e. freely delete them or move them?).
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para><emphasis>Application Development SDK</emphasis>
|
||||||
|
Cross-development tools that are produced along with an image
|
||||||
|
or separately with BitBake.</para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<section id="user-configuration">
|
||||||
|
<title>User Configuration</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
User configuration affects how you define the build.
|
||||||
|
The following figure shows an expanded representation of the
|
||||||
|
user configuration in the Yocto Project development environment:
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<mediaobject>
|
||||||
|
<imageobject>
|
||||||
|
<imagedata fileref="figures/user-configuration.png"
|
||||||
|
format="PNG" align='center' scalefit='1' width="100%"/>
|
||||||
|
</imageobject>
|
||||||
|
</mediaobject>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
BitBake needs some basic configuration files in order to complete
|
||||||
|
a build.
|
||||||
|
These files are <filename>*.conf</filename> files and the
|
||||||
|
minimally necessary ones reside as example files in the
|
||||||
|
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
|
||||||
|
For simplicity, this section refers to the Source Directory as
|
||||||
|
the "Poky Directory."
|
||||||
|
<note>
|
||||||
|
Poky is primarily an aggregation of existing repositories and
|
||||||
|
is not actual canonical upstream source for anything.
|
||||||
|
</note>
|
||||||
|
When you clone the <filename>poky</filename> Git repository or you
|
||||||
|
download and unpack a Yocto Project release, you can set up the
|
||||||
|
Source Directory to be named anything you want.
|
||||||
|
Here, though, we will assume that you have a cloned repository that
|
||||||
|
has the default name <filename>poky</filename>.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The <filename>meta-yocto</filename> layer inside Poky contains
|
||||||
|
a <filename>conf</filename> directory that has example
|
||||||
|
configuration files.
|
||||||
|
These example files are used as a basis for creating actual
|
||||||
|
configuration files when you source the build environment
|
||||||
|
script <filename>oe-init-build-env</filename>.
|
||||||
|
<note>
|
||||||
|
The <filename>oe-init-build-env</filename> script also exists
|
||||||
|
in the <filename>meta</filename> directory of the OE-Core
|
||||||
|
root directory.
|
||||||
|
Both scripts look for sample configuration files through
|
||||||
|
a <filename>$TEMPLATECONF</filename> variable.
|
||||||
|
When using the Yocto Project Development Environment,
|
||||||
|
that location resolves to the samples found in the
|
||||||
|
<filename>poky/meta-yocto/conf</filename> directory.
|
||||||
|
</note>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
When you source the build environment script, it creates a
|
||||||
|
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
|
||||||
|
that BitBake uses as the area in which it does all its work
|
||||||
|
during builds.
|
||||||
|
The Build Directory has a <filename>conf</filename> directory that
|
||||||
|
contains default versions of your <filename>local.conf</filename>
|
||||||
|
and <filename>bblayers.conf</filename> configuration files.
|
||||||
|
These default configuration files are created by
|
||||||
|
<filename>oe-init-build-env</filename> only if versions of these
|
||||||
|
files do not already exist in the Build Directory you specify
|
||||||
|
when you run the script.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The <filename>local.conf</filename> file provides many
|
||||||
|
basic variables that define your build.
|
||||||
|
Here is a list of a few.
|
||||||
|
To see the default configurations in a <filename>local.conf</filename>
|
||||||
|
file created by the build environment script, see the
|
||||||
|
<filename>local.conf.sample</filename> in the
|
||||||
|
<filename>meta-yocto</filename> layer:
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para><emphasis>Parallelism Options:</emphasis>
|
||||||
|
Controlled by the
|
||||||
|
<link linkend='var-BB_NUMBER_THREADS'><filename>BB_NUMBER_THREADS</filename></link>
|
||||||
|
and
|
||||||
|
<link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
|
||||||
|
variables.</para></listitem>
|
||||||
|
<listitem><para><emphasis>Target Machine Selection:</emphasis>
|
||||||
|
Controlled by the
|
||||||
|
<link linkend='var-MACHINE'><filename>MACHINE</filename></link>
|
||||||
|
variable.</para></listitem>
|
||||||
|
<listitem><para><emphasis>Download Directory:</emphasis>
|
||||||
|
Controlled by the
|
||||||
|
<link linkend='var-DL_DIR'><filename>DL_DIR</filename></link>
|
||||||
|
variable.</para></listitem>
|
||||||
|
<listitem><para><emphasis>Shared State Directory:</emphasis>
|
||||||
|
Controlled by the
|
||||||
|
<link linkend='var-SSTATE_DIR'><filename>SSTATE_DIR</filename></link>
|
||||||
|
variable.</para></listitem>
|
||||||
|
<listitem><para><emphasis>Build Output:</emphasis>
|
||||||
|
Controlled by the
|
||||||
|
<link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
|
||||||
|
variable.</para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The <filename>bblayers.conf</filename> file tells BitBake what
|
||||||
|
layers you want it to consider during the build.
|
||||||
|
The list of layers includes default layers needed by the build
|
||||||
|
system.
|
||||||
|
You have to manually add any custom layers that you have created.
|
||||||
|
You can find more information on working with the
|
||||||
|
<filename>bblayers.conf</filename> file in the
|
||||||
|
"<ulink url='&YOCTO_DOCS_DEV_URL;#enabling-your-layer'>Enabling Your Layer</ulink>"
|
||||||
|
section in the Yocto Project Development Manual.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The files <filename>site.conf</filename> and
|
||||||
|
<filename>auto.conf</filename> are not created by the environment
|
||||||
|
initialization script.
|
||||||
|
If you want these configuration files, you must create them
|
||||||
|
yourself.
|
||||||
|
Here a bit about what these files do:
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para><emphasis><filename>site.conf</filename>:</emphasis>
|
||||||
|
I don't really know what this does.
|
||||||
|
All I know is that if you want it, you need to hand-create
|
||||||
|
it.
|
||||||
|
I need some information on it.</para></listitem>
|
||||||
|
<listitem><para><emphasis><filename>auto.conf</filename>:</emphasis>
|
||||||
|
This file is not hand-created.
|
||||||
|
Rather, the file is usually created and written to by
|
||||||
|
an autobuilder.
|
||||||
|
The settings put into the file are typically the same as
|
||||||
|
you would find in the <filename>local.conf</filename>
|
||||||
|
or <filename>site.conf</filename> files.
|
||||||
|
</para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
All configuration files can undergo edits to further define
|
||||||
|
the build.
|
||||||
|
This process is represented by the "User Configuration Edits"
|
||||||
|
box in the figure.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
When you launch your build with the
|
||||||
|
<filename>bitbake <target></filename> command, BitBake
|
||||||
|
draws on the user configurations you have provided in your
|
||||||
|
Build Directory.
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
|
||||||
<section id="cross-development-toolchain-generation">
|
<section id="cross-development-toolchain-generation">
|
||||||
<title>Cross-Development Toolchain Generation</title>
|
<title>Cross-Development Toolchain Generation</title>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue