1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-30 00:20:08 +00:00

ref-manual: Rewrite of "Image Generation" and devtool text.

Rewrite of devtool reference section. This was a separate commit
but got squashed wrong so it ended up with this commit.

The changes to "Image Generation" section reflect the new, more
detailed image generation figure

(From yocto-docs rev: 827c6872b88c17d2d0c8d44b1024fff19076e505)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Scott Rifenbark
2016-01-19 05:26:02 -08:00
committed by Richard Purdie
parent 1e7735e290
commit d39e9d1451
2 changed files with 250 additions and 38 deletions
+71 -32
View File
@@ -993,11 +993,13 @@
<para>
The image generation process consists of several stages and
depends on many variables.
depends on several tasks and variables.
The
<link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
task uses these key variables
to help create the list of packages to actually install:
task creates the root filesystem (file and directory structure)
for an image.
This task uses several key variables to help create the list
of packages to actually install:
<itemizedlist>
<listitem><para><link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>:
Lists out the base set of packages to install from
@@ -1017,9 +1019,22 @@
Determines the language(s) for which additional
language support packages are installed.
</para></listitem>
<listitem><para><link linkend='var-PACKAGE_INSTALL'><filename>PACKAGE_INSTALL</filename></link>:
The final list of packages passed to the package manager
for installation into the image.
</para></listitem>
</itemizedlist>
</para>
<para>
With
<link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link>
pointing to the location of the filesystem under construction and
the <filename>PACKAGE_INSTALL</filename> variable providing the
final list of packages to install, the root file system is
created.
</para>
<para>
Package installation is under control of the package manager
(e.g. smart/rpm, opkg, or apt/dpkg) regardless of whether or
@@ -1027,13 +1042,11 @@
At the end of the process, if package management is not
enabled for the target, the package manager's data files
are deleted from the root filesystem.
</para>
<para>
During image generation, the build system attempts to run
all post-installation scripts.
Any that fail to run on the build host are run on the
target when the target system is first booted.
As part of the final stage of package installation, postinstall
scripts that are part of the packages are run.
Any scripts that fail to run
on the build host are run on the target when the target system
is first booted.
If you are using a
<ulink url='&YOCTO_DOCS_DEV_URL;#creating-a-read-only-root-filesystem'>read-only root filesystem</ulink>,
all the post installation scripts must succeed during the
@@ -1042,24 +1055,17 @@
</para>
<para>
During Optimization, optimizing processes are run across
the image.
These processes include <filename>mklibs</filename> and
<filename>prelink</filename>.
The <filename>mklibs</filename> process optimizes the size
of the libraries.
A <filename>prelink</filename> process optimizes the dynamic
linking of shared libraries to reduce start up time of
executables.
The final stages of the <filename>do_rootfs</filename> task
handle post processing.
Post processing includes creation of a manifest file and
optimizations.
</para>
<para>
Along with writing out the root filesystem image, the
<filename>do_rootfs</filename> task creates a manifest file
(<filename>.manifest</filename>) in the same directory as
the root filesystem image that lists out, line-by-line, the
installed packages.
This manifest file is useful for the
The manifest file (<filename>.manifest</filename>) resides
in the same directory as the root filesystem image.
This file lists out, line-by-line, the installed packages.
The manifest file is useful for the
<link linkend='ref-classes-testimage*'><filename>testimage</filename></link>
class, for example, to determine whether or not to run
specific tests.
@@ -1069,21 +1075,54 @@
</para>
<para>
Part of the image generation process includes compressing the
root filesystem image.
Compression is accomplished through several optimization
routines designed to reduce the overall size of the image.
Optimizing processes run across the image include
<filename>mklibs</filename>, <filename>prelink</filename>,
and any other post-processing commands as defined by the
<link linkend='var-ROOTFS_POSTPROCESS_COMMAND'><filename>ROOTFS_POSTPROCESS_COMMAND</filename></link>
variable.
The <filename>mklibs</filename> process optimizes the size
of the libraries, while the
<filename>prelink</filename> process optimizes the dynamic
linking of shared libraries to reduce start up time of
executables.
</para>
<para>
After the root filesystem has been constructed, the image
generation process turns everything into an image file or
a set of image files.
After the root filesystem is built, processing begins on
the image through the <filename>do_image</filename> task.
The build system runs any pre-processing commands as defined
by the
<link linkend='var-IMAGE_PREPROCESS_COMMAND'><filename>IMAGE_PREPROCESS_COMMAND</filename></link>
variable.
This variable specifies a list of functions to call before
the OpenEmbedded build system creates the final image output
files.
</para>
<para>
The <filename>do_image</filename> task dynamically creates
other <filename>do_image_*</filename> tasks as needed, which
include compressing the root filesystem image to reduce the
overall size of the image.
The process turns everything into an image file or a set of
image files.
The formats used for the root filesystem depend on the
<link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
variable.
</para>
<para>
The final task involved in image creation is the
<filename>do_image_complete</filename> task.
This task completes the image by applying any image
post processing as defined through the
<link linkend='var-IMAGE_POSTPROCESS_COMMAND'><filename>IMAGE_POSTPROCESS_COMMAND</filename></link>
variable.
The variable specifies a list of functions to call once the
OpenEmbedded build system has created the final image output
files.
</para>
<note>
The entire image generation process is run under Pseudo.
Running under Pseudo ensures that the files in the root