summaryrefslogtreecommitdiffstats
path: root/documentation
diff options
context:
space:
mode:
authorScott Rifenbark <scott.m.rifenbark@intel.com>2013-09-13 13:57:28 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-09-22 12:20:44 +0100
commitb577e74096b35ecae114b09113415ec90bca7849 (patch)
tree82da2f0cfee5d25b6e03f42c55d583846baa1b64 /documentation
parentda7a072aa0d3b40c54c279aa204979109f56f81b (diff)
downloadpoky-b577e74096b35ecae114b09113415ec90bca7849.tar.gz
ref-manual: First draft of the "Image Generation" section
Fixes [YOCTO #2808] Added the first draft of the expanded explanation for generating an image. (From yocto-docs rev: 72e4db25d89cad62e1cd9ee1d638af374ec1bfc0) Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation')
-rw-r--r--documentation/ref-manual/closer-look.xml91
1 files changed, 91 insertions, 0 deletions
diff --git a/documentation/ref-manual/closer-look.xml b/documentation/ref-manual/closer-look.xml
index d22de8fd99..a690544364 100644
--- a/documentation/ref-manual/closer-look.xml
+++ b/documentation/ref-manual/closer-look.xml
@@ -830,6 +830,97 @@
830 </note> 830 </note>
831 </para> 831 </para>
832 </section> 832 </section>
833
834 <section id='image-generation-dev-environment'>
835 <title>Image Generation</title>
836
837 <para>
838 Once packages are split and stored in the Package Feeds area,
839 the OpenEmbedded build system uses BitBake to generate the
840 root filesystem image:
841 <imagedata fileref="figures/image-generation.png" align="center" width="6in" depth="7in" />
842 </para>
843
844 <para>
845 The image generation process consists of several stages and
846 depends on many variables.
847 The <filename>do_rootfs</filename> uses these key variables
848 to help create the list of packages to actually install:
849 <itemizedlist>
850 <listitem><para><link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>:
851 Lists out the base set of packages to install from
852 the Package Feeds area.</para></listitem>
853 <listitem><para><link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>:
854 Specifies features to include in the image.
855 These features map to additional packages for
856 installation.</para></listitem>
857 <listitem><para><link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>:
858 Specifies the package manager to use and consequently
859 helps determine where to locate packages within the
860 Package Feeds area.</para></listitem>
861 <listitem><para><link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>:
862 Specifies packages that should not be installed.
863 </para></listitem>
864 </itemizedlist>
865 </para>
866
867 <para>
868 In addition to the previously mentioned variables, the image
869 generation process uses
870 <link linkend='var-IMAGE_LINGUAS'><filename>IMAGE_LINGUAS</filename></link>
871 to determine what language for which packages are being
872 installed.
873 </para>
874
875 <para>
876 Part of the image generation process includes compressing the
877 root filesystem image.
878 Compression is accomplished through several optimization
879 routines designed to reduce the overall size of the image.
880 </para>
881
882 <para>
883 The process runs as many post installation scripts as possible.
884 Any scripts that cannot be run are run when the system is
885 first booted.
886 If you are using a read-only root filesystem, all the post
887 installation scripts are run during the package installation
888 phase since the root filesystem cannot be written into.
889 </para>
890
891 <para>
892 During the Prelink phase, optimization processes are run across
893 the image.
894 These processes include <filename>mklibs</filename> and
895 <filename>prelink</filename>.
896 The <filename>mklibs</filename> optimizes the size of the
897 libraries.
898 The <filename>prelink</filename> process optimizes the dynamic
899 linking of shared libraries to reduce start up time of the
900 executables.
901 See the
902 <link linkend='var-IMAGE_POSTPROCESS_COMMAND'><filename>IMAGE_POSTPROCESS_COMMAND</filename></link>
903 and
904 <link linkend='var-ROOTFS_POSTPROCESS_COMMAND'><filename>ROOTFS_POSTPROCESS_COMMAND</filename></link>
905 variables for additional information.
906 </para>
907
908 <para>
909 After the root filesystem has been constructed, the image
910 generation process turns everything into an image file or
911 a set of image files.
912 we need to turn into an image file or set of image files.
913 The formats used for the root filesystem depend on the
914 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
915 variable.
916 </para>
917
918 <note>
919 The entire image generation process is run under Pseudo.
920 Running under Pseudo ensures that the files in the root
921 filesystem have correct ownership.
922 </note>
923 </section>
833 </section> 924 </section>
834 925
835 <section id="package-feeds-dev-environment"> 926 <section id="package-feeds-dev-environment">