diff options
| author | Scott Rifenbark <scott.m.rifenbark@intel.com> | 2013-09-13 13:57:28 -0700 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-09-22 12:20:44 +0100 |
| commit | b577e74096b35ecae114b09113415ec90bca7849 (patch) | |
| tree | 82da2f0cfee5d25b6e03f42c55d583846baa1b64 | |
| parent | da7a072aa0d3b40c54c279aa204979109f56f81b (diff) | |
| download | poky-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>
| -rw-r--r-- | documentation/ref-manual/closer-look.xml | 91 |
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"> |
