For simplicity, consider the following root BSP layer description files for the BeagleBone board. These files employ both a structure and naming convention for consistency. The naming convention for the file is as follows:
bsp_root_name
-kernel_type
.scc
Here are some example root layer BSP filenames for the BeagleBone Board BSP, which is supported by the Yocto Project:
beaglebone-standard.scc beaglebone-preempt-rt.scc
Each file uses the root name (i.e "beaglebone") BSP name followed by the kernel type.
Examine the beaglebone-standard.scc
file:
define KMACHINE beaglebone define KTYPE standard define KARCH arm include ktypes/standard/standard.scc branch beaglebone include beaglebone.scc # default policy for standard kernels include features/latencytop/latencytop.scc include features/profiling/profiling.scc
Every top-level BSP description file should define the
KMACHINE
,
KTYPE
,
and KARCH
variables.
These variables allow the OpenEmbedded build system to identify
the description as meeting the criteria set by the recipe being
built.
This example supports the "beaglebone" machine for the
"standard" kernel and the "arm" architecture.
Be aware that a hard link between the
KTYPE
variable and a kernel type
description file does not exist.
Thus, if you do not have the kernel type defined in your kernel
Metadata as it is here, you only need to ensure that the
LINUX_KERNEL_TYPE
variable in the kernel recipe and the
KTYPE
variable in the BSP description
file match.
To separate your kernel policy from your hardware configuration,
you include a kernel type (ktype
), such as
"standard".
In the previous example, this is done using the following:
include ktypes/standard/standard.scc
This file aggregates all the configuration fragments, patches, and features that make up your standard kernel policy. See the "Kernel Types" section for more information.
To aggregate common configurations and features specific to the
kernel for mybsp
, use the following:
include mybsp
.scc
You can see that in the BeagleBone example with the following:
include beaglebone.scc
For information on how to break a complete
.config
file into the various
configuration fragments, see the
"Creating Configuration Fragments"
section.
Finally, if you have any configurations specific to the
hardware that are not in a *.scc
file,
you can include them as follows:
kconf hardwaremybsp
-extra
.cfg
The BeagleBone example does not include these types of
configurations.
However, the Malta 32-bit board does ("mti-malta32").
Here is the mti-malta32-le-standard.scc
file:
define KMACHINE mti-malta32-le define KMACHINE qemumipsel define KTYPE standard define KARCH mips include ktypes/standard/standard.scc branch mti-malta32 include mti-malta32.scc kconf hardware mti-malta32-le.cfg