Our layers can provide recipes for different versions of the same package. For example, the meta-freescale layer contains several different types of Linux kernel recipes:
- linux-imx: This corresponds to the NXP's i.MX BSP kernel source fetched from http://git.freescale.com/git/cgit.cgi/imx/linux-imx.git/
- linux-fslc-imx: This is a fork from NXP's i.MX BSP kernel tree with a stability release and community patches applied, fetched from https://github.com/Freescale/linux-fslc
- linux-fslc: This is a mainline Linux kernel fork with community patches, fetched from https://github.com/Freescale/linux-fslc
- linux-qoriq: This is a kernel with NXP's QorIQ PowerPC-based platform support fetched from https://github.com/qoriq-open-source/linux.git
As we mentioned before, all recipes provide the package name (for example, linux-imx or linux-fslc) by default, but all Linux recipes must also provide the virtual/kernel virtual package. The build system will resolve virtual/kernel to the most appropriate Linux recipe name, taking into account the requirements of the build, such as the machine it is building for.
And within those recipes, linux-fslc, for example, has both 4.9 and 4.14 recipe versions.
In this section, we will show you how to tell the Yocto build system which specific package and version to build.