diff options
| author | Scott Rifenbark <srifenbark@gmail.com> | 2016-01-19 05:26:02 -0800 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-01-29 17:04:47 +0000 |
| commit | d39e9d1451c316083aee809fee22c539d4b8869d (patch) | |
| tree | 2d1aca21abbd51c96164c832c2160a7ec3250e75 /documentation/ref-manual/closer-look.xml | |
| parent | 1e7735e2901c1db0fbc810b102dda4645a0a97a1 (diff) | |
| download | poky-d39e9d1451c316083aee809fee22c539d4b8869d.tar.gz | |
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>
Diffstat (limited to 'documentation/ref-manual/closer-look.xml')
| -rw-r--r-- | documentation/ref-manual/closer-look.xml | 103 |
1 files changed, 71 insertions, 32 deletions
diff --git a/documentation/ref-manual/closer-look.xml b/documentation/ref-manual/closer-look.xml index bb7624c9e8..c05972e9ec 100644 --- a/documentation/ref-manual/closer-look.xml +++ b/documentation/ref-manual/closer-look.xml | |||
| @@ -993,11 +993,13 @@ | |||
| 993 | 993 | ||
| 994 | <para> | 994 | <para> |
| 995 | The image generation process consists of several stages and | 995 | The image generation process consists of several stages and |
| 996 | depends on many variables. | 996 | depends on several tasks and variables. |
| 997 | The | 997 | The |
| 998 | <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link> | 998 | <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link> |
| 999 | task uses these key variables | 999 | task creates the root filesystem (file and directory structure) |
| 1000 | to help create the list of packages to actually install: | 1000 | for an image. |
| 1001 | This task uses several key variables to help create the list | ||
| 1002 | of packages to actually install: | ||
| 1001 | <itemizedlist> | 1003 | <itemizedlist> |
| 1002 | <listitem><para><link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>: | 1004 | <listitem><para><link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>: |
| 1003 | Lists out the base set of packages to install from | 1005 | Lists out the base set of packages to install from |
| @@ -1017,23 +1019,34 @@ | |||
| 1017 | Determines the language(s) for which additional | 1019 | Determines the language(s) for which additional |
| 1018 | language support packages are installed. | 1020 | language support packages are installed. |
| 1019 | </para></listitem> | 1021 | </para></listitem> |
| 1022 | <listitem><para><link linkend='var-PACKAGE_INSTALL'><filename>PACKAGE_INSTALL</filename></link>: | ||
| 1023 | The final list of packages passed to the package manager | ||
| 1024 | for installation into the image. | ||
| 1025 | </para></listitem> | ||
| 1020 | </itemizedlist> | 1026 | </itemizedlist> |
| 1021 | </para> | 1027 | </para> |
| 1022 | 1028 | ||
| 1023 | <para> | 1029 | <para> |
| 1030 | With | ||
| 1031 | <link linkend='var-IMAGE_ROOTFS'><filename>IMAGE_ROOTFS</filename></link> | ||
| 1032 | pointing to the location of the filesystem under construction and | ||
| 1033 | the <filename>PACKAGE_INSTALL</filename> variable providing the | ||
| 1034 | final list of packages to install, the root file system is | ||
| 1035 | created. | ||
| 1036 | </para> | ||
| 1037 | |||
| 1038 | <para> | ||
| 1024 | Package installation is under control of the package manager | 1039 | Package installation is under control of the package manager |
| 1025 | (e.g. smart/rpm, opkg, or apt/dpkg) regardless of whether or | 1040 | (e.g. smart/rpm, opkg, or apt/dpkg) regardless of whether or |
| 1026 | not package management is enabled for the target. | 1041 | not package management is enabled for the target. |
| 1027 | At the end of the process, if package management is not | 1042 | At the end of the process, if package management is not |
| 1028 | enabled for the target, the package manager's data files | 1043 | enabled for the target, the package manager's data files |
| 1029 | are deleted from the root filesystem. | 1044 | are deleted from the root filesystem. |
| 1030 | </para> | 1045 | As part of the final stage of package installation, postinstall |
| 1031 | 1046 | scripts that are part of the packages are run. | |
| 1032 | <para> | 1047 | Any scripts that fail to run |
| 1033 | During image generation, the build system attempts to run | 1048 | on the build host are run on the target when the target system |
| 1034 | all post-installation scripts. | 1049 | is first booted. |
| 1035 | Any that fail to run on the build host are run on the | ||
| 1036 | target when the target system is first booted. | ||
| 1037 | If you are using a | 1050 | If you are using a |
| 1038 | <ulink url='&YOCTO_DOCS_DEV_URL;#creating-a-read-only-root-filesystem'>read-only root filesystem</ulink>, | 1051 | <ulink url='&YOCTO_DOCS_DEV_URL;#creating-a-read-only-root-filesystem'>read-only root filesystem</ulink>, |
| 1039 | all the post installation scripts must succeed during the | 1052 | all the post installation scripts must succeed during the |
| @@ -1042,24 +1055,17 @@ | |||
| 1042 | </para> | 1055 | </para> |
| 1043 | 1056 | ||
| 1044 | <para> | 1057 | <para> |
| 1045 | During Optimization, optimizing processes are run across | 1058 | The final stages of the <filename>do_rootfs</filename> task |
| 1046 | the image. | 1059 | handle post processing. |
| 1047 | These processes include <filename>mklibs</filename> and | 1060 | Post processing includes creation of a manifest file and |
| 1048 | <filename>prelink</filename>. | 1061 | optimizations. |
| 1049 | The <filename>mklibs</filename> process optimizes the size | ||
| 1050 | of the libraries. | ||
| 1051 | A <filename>prelink</filename> process optimizes the dynamic | ||
| 1052 | linking of shared libraries to reduce start up time of | ||
| 1053 | executables. | ||
| 1054 | </para> | 1062 | </para> |
| 1055 | 1063 | ||
| 1056 | <para> | 1064 | <para> |
| 1057 | Along with writing out the root filesystem image, the | 1065 | The manifest file (<filename>.manifest</filename>) resides |
| 1058 | <filename>do_rootfs</filename> task creates a manifest file | 1066 | in the same directory as the root filesystem image. |
| 1059 | (<filename>.manifest</filename>) in the same directory as | 1067 | This file lists out, line-by-line, the installed packages. |
| 1060 | the root filesystem image that lists out, line-by-line, the | 1068 | The manifest file is useful for the |
| 1061 | installed packages. | ||
| 1062 | This manifest file is useful for the | ||
| 1063 | <link linkend='ref-classes-testimage*'><filename>testimage</filename></link> | 1069 | <link linkend='ref-classes-testimage*'><filename>testimage</filename></link> |
| 1064 | class, for example, to determine whether or not to run | 1070 | class, for example, to determine whether or not to run |
| 1065 | specific tests. | 1071 | specific tests. |
| @@ -1069,21 +1075,54 @@ | |||
| 1069 | </para> | 1075 | </para> |
| 1070 | 1076 | ||
| 1071 | <para> | 1077 | <para> |
| 1072 | Part of the image generation process includes compressing the | 1078 | Optimizing processes run across the image include |
| 1073 | root filesystem image. | 1079 | <filename>mklibs</filename>, <filename>prelink</filename>, |
| 1074 | Compression is accomplished through several optimization | 1080 | and any other post-processing commands as defined by the |
| 1075 | routines designed to reduce the overall size of the image. | 1081 | <link linkend='var-ROOTFS_POSTPROCESS_COMMAND'><filename>ROOTFS_POSTPROCESS_COMMAND</filename></link> |
| 1082 | variable. | ||
| 1083 | The <filename>mklibs</filename> process optimizes the size | ||
| 1084 | of the libraries, while the | ||
| 1085 | <filename>prelink</filename> process optimizes the dynamic | ||
| 1086 | linking of shared libraries to reduce start up time of | ||
| 1087 | executables. | ||
| 1088 | </para> | ||
| 1089 | |||
| 1090 | <para> | ||
| 1091 | After the root filesystem is built, processing begins on | ||
| 1092 | the image through the <filename>do_image</filename> task. | ||
| 1093 | The build system runs any pre-processing commands as defined | ||
| 1094 | by the | ||
| 1095 | <link linkend='var-IMAGE_PREPROCESS_COMMAND'><filename>IMAGE_PREPROCESS_COMMAND</filename></link> | ||
| 1096 | variable. | ||
| 1097 | This variable specifies a list of functions to call before | ||
| 1098 | the OpenEmbedded build system creates the final image output | ||
| 1099 | files. | ||
| 1076 | </para> | 1100 | </para> |
| 1077 | 1101 | ||
| 1078 | <para> | 1102 | <para> |
| 1079 | After the root filesystem has been constructed, the image | 1103 | The <filename>do_image</filename> task dynamically creates |
| 1080 | generation process turns everything into an image file or | 1104 | other <filename>do_image_*</filename> tasks as needed, which |
| 1081 | a set of image files. | 1105 | include compressing the root filesystem image to reduce the |
| 1106 | overall size of the image. | ||
| 1107 | The process turns everything into an image file or a set of | ||
| 1108 | image files. | ||
| 1082 | The formats used for the root filesystem depend on the | 1109 | The formats used for the root filesystem depend on the |
| 1083 | <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link> | 1110 | <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link> |
| 1084 | variable. | 1111 | variable. |
| 1085 | </para> | 1112 | </para> |
| 1086 | 1113 | ||
| 1114 | <para> | ||
| 1115 | The final task involved in image creation is the | ||
| 1116 | <filename>do_image_complete</filename> task. | ||
| 1117 | This task completes the image by applying any image | ||
| 1118 | post processing as defined through the | ||
| 1119 | <link linkend='var-IMAGE_POSTPROCESS_COMMAND'><filename>IMAGE_POSTPROCESS_COMMAND</filename></link> | ||
| 1120 | variable. | ||
| 1121 | The variable specifies a list of functions to call once the | ||
| 1122 | OpenEmbedded build system has created the final image output | ||
| 1123 | files. | ||
| 1124 | </para> | ||
| 1125 | |||
| 1087 | <note> | 1126 | <note> |
| 1088 | The entire image generation process is run under Pseudo. | 1127 | The entire image generation process is run under Pseudo. |
| 1089 | Running under Pseudo ensures that the files in the root | 1128 | Running under Pseudo ensures that the files in the root |
