diff options
author | Alejandro Hernandez Samaniego <alhe@linux.microsoft.com> | 2022-02-16 13:17:31 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-02-18 17:58:02 +0000 |
commit | 552ff6e3d5f96834e6b3a8881154636dab54a62e (patch) | |
tree | d8c34216f3d89a2169ea3d2b9c7d38104169e585 /documentation/dev-manual | |
parent | b6c132950188ad41bd6454bbc708a42999c369be (diff) | |
download | poky-552ff6e3d5f96834e6b3a8881154636dab54a62e.tar.gz |
documentation: Add multiconfig initramfs configuration:
dev-manual/common-tasks.rst: Add section to create an initramfs
image from a separate multiconfig.
ref-manual/variables.rst: Add new variable definitions for
INITRAMFS_DEPLOY_DIR_IMAGE and INITRAMFS_MULTICONFIG
(From yocto-docs rev: 7853ab3df82c27ba309879a66a084b2e597dc1e5)
Signed-off-by: Alejandro Enedino Hernandez Samaniego <alhe@linux.microsoft.com>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/dev-manual')
-rw-r--r-- | documentation/dev-manual/common-tasks.rst | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/documentation/dev-manual/common-tasks.rst b/documentation/dev-manual/common-tasks.rst index 1856d4c3ad..fd394c3ae2 100644 --- a/documentation/dev-manual/common-tasks.rst +++ b/documentation/dev-manual/common-tasks.rst | |||
@@ -3919,6 +3919,48 @@ Follow these steps to create an initramfs image: | |||
3919 | :term:`INITRAMFS_IMAGE_BUNDLE` | 3919 | :term:`INITRAMFS_IMAGE_BUNDLE` |
3920 | variable described earlier. | 3920 | variable described earlier. |
3921 | 3921 | ||
3922 | Bundling an Initramfs Image From a Separate Multiconfig | ||
3923 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
3924 | |||
3925 | There may be a case where we want to build an initramfs image which does not | ||
3926 | inherit the same distro policy as our main image, for example, we may want | ||
3927 | our main image to use ``TCLIBC="glibc"``, but to use ``TCLIBC="musl"`` in our initramfs | ||
3928 | image to keep a smaller footprint. However, by performing the steps mentioned | ||
3929 | above the initramfs image will inherit ``TCLIBC="glibc"`` without allowing us | ||
3930 | to override it. | ||
3931 | |||
3932 | To achieve this, you need to perform some additional steps: | ||
3933 | |||
3934 | 1. *Create a multiconfig for your initramfs image:* You can perform the steps | ||
3935 | on ":ref:`dev-manual/common-tasks:building images for multiple targets using multiple configurations`" to create a separate multiconfig. | ||
3936 | For the sake of simplicity let's assume such multiconfig is called: ``initramfscfg.conf`` and | ||
3937 | contains the variables:: | ||
3938 | |||
3939 | TMPDIR="${TOPDIR}/tmp-initramfscfg" | ||
3940 | TCLIBC="musl" | ||
3941 | |||
3942 | 2. *Set additional initramfs variables on your main configuration:* | ||
3943 | Additionally, on your main configuration (``local.conf``) you need to set the | ||
3944 | variables:: | ||
3945 | |||
3946 | INITRAMFS_MULTICONFIG = "initramfscfg" | ||
3947 | INITRAMFS_DEPLOY_DIR_IMAGE = "${TOPDIR}/tmp-initramfscfg/deploy/images/${MACHINE}" | ||
3948 | |||
3949 | The variables :term:`INITRAMFS_MULTICONFIG` and :term:`INITRAMFS_DEPLOY_DIR_IMAGE` | ||
3950 | are used to create a multiconfig dependency from the kernel to the :term:`INITRAMFS_IMAGE` | ||
3951 | to be built coming from the ``initramfscfg`` multiconfig, and to let the | ||
3952 | buildsystem know where the :term:`INITRAMFS_IMAGE` will be located. | ||
3953 | |||
3954 | Building a system with such configuration will build the kernel using the | ||
3955 | main configuration but the ``do_bundle_initramfs`` task will grab the | ||
3956 | selected :term:`INITRAMFS_IMAGE` from :term:`INITRAMFS_DEPLOY_DIR_IMAGE` | ||
3957 | instead, resulting in a musl based initramfs image bundled in the kernel | ||
3958 | but a glibc based main image. | ||
3959 | |||
3960 | The same is applicable to avoid inheriting :term:`DISTRO_FEATURES` on :term:`INITRAMFS_IMAGE` | ||
3961 | or to build a different :term:`DISTRO` for it such as ``poky-tiny``. | ||
3962 | |||
3963 | |||
3922 | Building a Tiny System | 3964 | Building a Tiny System |
3923 | ---------------------- | 3965 | ---------------------- |
3924 | 3966 | ||