This section describes part of the kernel configuration audit
phase that most developers can ignore.
During this part of the audit phase, the contents of the final
.config
file are compared against the
fragments specified by the system.
These fragments can be system fragments, distro fragments,
or user specified configuration elements.
Regardless of their origin, the OpenEmbedded build system
warns the user if a specific option is not included in the
final kernel configuration.
In order to not overwhelm the user with configuration warnings, by default the system only reports on missing "hardware" options because a missing hardware option could mean a boot failure or that important hardware is not available.
To determine whether or not a given option is "hardware" or "non-hardware", the kernel Metadata contains files that classify individual or groups of options as either hardware or non-hardware. To better show this, consider a situation where the Yocto Project kernel cache contains the following files:
kernel-cache/features/drm-psb/hardware.cfg kernel-cache/features/kgdb/hardware.cfg kernel-cache/ktypes/base/hardware.cfg kernel-cache/bsp/mti-malta32/hardware.cfg kernel-cache/bsp/fsl-mpc8315e-rdb/hardware.cfg kernel-cache/bsp/qemu-ppc32/hardware.cfg kernel-cache/bsp/qemuarma9/hardware.cfg kernel-cache/bsp/mti-malta64/hardware.cfg kernel-cache/bsp/arm-versatile-926ejs/hardware.cfg kernel-cache/bsp/common-pc/hardware.cfg kernel-cache/bsp/common-pc-64/hardware.cfg kernel-cache/features/rfkill/non-hardware.cfg kernel-cache/ktypes/base/non-hardware.cfg kernel-cache/features/aufs/non-hardware.kcf kernel-cache/features/ocf/non-hardware.kcf kernel-cache/ktypes/base/non-hardware.kcf kernel-cache/ktypes/base/hardware.kcf kernel-cache/bsp/qemu-ppc32/hardware.kcf
The following list provides explanations for the various files:
hardware.kcf
:
Specifies a list of kernel Kconfig files that contain
hardware options only.
non-hardware.kcf
:
Specifies a list of kernel Kconfig files that contain
non-hardware options only.
hardware.cfg
:
Specifies a list of kernel
CONFIG_
options that are hardware,
regardless of whether or not they are within a Kconfig
file specified by a hardware or non-hardware
Kconfig file (i.e. hardware.kcf
or
non-hardware.kcf
).
non-hardware.cfg
:
Specifies a list of kernel
CONFIG_
options that are
not hardware, regardless of whether or not they are
within a Kconfig file specified by a hardware or
non-hardware Kconfig file (i.e.
hardware.kcf
or
non-hardware.kcf
).
Here is a specific example using the
kernel-cache/bsp/mti-malta32/hardware.cfg
:
CONFIG_SERIAL_8250 CONFIG_SERIAL_8250_CONSOLE CONFIG_SERIAL_8250_NR_UARTS CONFIG_SERIAL_8250_PCI CONFIG_SERIAL_CORE CONFIG_SERIAL_CORE_CONSOLE CONFIG_VGA_ARB
The kernel configuration audit automatically detects these
files (hence the names must be exactly the ones discussed here),
and uses them as inputs when generating warnings about the
final .config
file.
A user-specified kernel Metadata repository, or recipe space
feature, can use these same files to classify options that are
found within its .cfg
files as hardware
or non-hardware, to prevent the OpenEmbedded build system from
producing an error or warning when an option is not in the
final .config
file.