summaryrefslogtreecommitdiffstats
path: root/documentation/dev-manual/common-tasks.rst
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/dev-manual/common-tasks.rst')
-rw-r--r--documentation/dev-manual/common-tasks.rst42
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
3922Bundling an Initramfs Image From a Separate Multiconfig
3923~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3924
3925There may be a case where we want to build an initramfs image which does not
3926inherit the same distro policy as our main image, for example, we may want
3927our main image to use ``TCLIBC="glibc"``, but to use ``TCLIBC="musl"`` in our initramfs
3928image to keep a smaller footprint. However, by performing the steps mentioned
3929above the initramfs image will inherit ``TCLIBC="glibc"`` without allowing us
3930to override it.
3931
3932To achieve this, you need to perform some additional steps:
3933
39341. *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
39422. *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
3922Building a Tiny System 3964Building a Tiny System
3923---------------------- 3965----------------------
3924 3966