The kernel recipe used to build the kernel image for the BeagleBone device was established in the machine configuration:
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" PREFERRED_VERSION_linux-yocto ?= "4.12%"
The meta-yocto-bsp/recipes-kernel/linux
directory in the layer contains metadata used
to build the kernel.
In this case, a kernel append file is used to
override an established kernel recipe, which is
located in
http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/recipes-kernel/linux
and named
linux-yocto_4.12.bb
.
Following is the contents of the append file:
KBRANCH_genericx86 = "standard/base" KBRANCH_genericx86-64 = "standard/base" KMACHINE_genericx86 ?= "common-pc" KMACHINE_genericx86-64 ?= "common-pc-64" KBRANCH_edgerouter = "standard/edgerouter" KBRANCH_beaglebone-yocto = "standard/beaglebone" KMACHINE_beaglebone-yocto = "beaglebone" KBRANCH_mpc8315e-rdb = "standard/fsl-mpc8315e-rdb" SRCREV_machine_genericx86 ?= "1c4ad569af3e23a77994235435040e322908687f" SRCREV_machine_genericx86-64 ?= "1c4ad569af3e23a77994235435040e322908687f" SRCREV_machine_edgerouter ?= "257f843ea367744620f1d92910afd2f454e31483" SRCREV_machine_beaglebone-yocto ?= "257f843ea367744620f1d92910afd2f454e31483" SRCREV_machine_mpc8315e-rdb ?= "014560874f9eb2a86138c9cc35046ff1720485e1" COMPATIBLE_MACHINE_genericx86 = "genericx86" COMPATIBLE_MACHINE_genericx86-64 = "genericx86-64" COMPATIBLE_MACHINE_edgerouter = "edgerouter" COMPATIBLE_MACHINE_beaglebone-yocto = "beaglebone-yocto" COMPATIBLE_MACHINE_mpc8315e-rdb = "mpc8315e-rdb" LINUX_VERSION_genericx86 = "4.12.20" LINUX_VERSION_genericx86-64 = "4.12.20" LINUX_VERSION_edgerouter = "4.12.19" LINUX_VERSION_beaglebone-yocto = "4.12.19" LINUX_VERSION_mpc8315e-rdb = "4.12.19"
This particular append file works for all the
machines that are part of the
meta-yocto-bsp
container
layer.
The relevant statements are appended with
the "beaglebone-yocto" string.
The OpenEmbedded build system uses these
statements to override similar statements
in the kernel recipe:
KBRANCH
:
Identifies the kernel branch that is validated,
patched, and configured during the build.
KMACHINE
:
Identifies the machine name as known by the
kernel, which is sometimes a different name
than what is known by the OpenEmbedded build
system.
SRCREV
:
Identifies the revision of the source code used
to build the image.
COMPATIBLE_MACHINE
:
A regular expression that resolves to one or
more target machines with which the recipe
is compatible.
LINUX_VERSION
:
The Linux version from kernel.org used by
the OpenEmbedded build system to build the
kernel image.