3.4.2. Metadata Outside the Recipe-Space

When stored outside of the recipe-space, the kernel Metadata files reside in a separate repository. The OpenEmbedded build system adds the Metadata to the build as a "ktype=meta" repository through the SRC_URI variable. As an example, consider the following SRC_URI statement from the linux-yocto_4.4.bb kernel recipe:

     SRC_URI = "git://git.yoctoproject.org/linux-yocto-4.4.git;name=machine;branch=${KBRANCH}; \
                git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.4;destsuffix=${KMETA}"
            

${KMETA}, in this context, is simply used to name the directory into which the Git fetcher places the Metadata. This behavior is no different than any multi-repository SRC_URI statement used in a recipe (e.g. see the previous section).

You can keep kernel Metadata in a "kernel-cache", which is a directory containing configuration fragments. As with any Metadata kept outside the recipe-space, you simply need to use the SRC_URI statement with the "type=kmeta" attribute. Doing so makes the kernel Metadata available during the configuration phase.

If you modify the Metadata, you must not forget to update the SRCREV statements in the kernel's recipe. In particular, you need to update the SRCREV_meta variable to match the commit in the KMETA branch you wish to use. Changing the data in these branches and not updating the SRCREV statements to match will cause the build to fetch an older commit.