5.10.5. Determining Hardware and Non-Hardware Features for the Kernel Configuration Audit Phase

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:

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.