A.4. 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. For general information on kernel configuration including menuconfig, defconfig files, and configuration fragments, see the "Configuring the Kernel" section.

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.

By default, in order to not overwhelm the user with configuration warnings, the system only reports missing "hardware" options as they could result in a boot failure or indicate that important hardware is not available.

To determine whether or not a given option is "hardware" or "non-hardware", the kernel Metadata in yocto-kernel-cache 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-kernel-cache contains the following files:

     yocto-kernel-cache/features/drm-psb/hardware.cfg
     yocto-kernel-cache/features/kgdb/hardware.cfg
     yocto-kernel-cache/ktypes/base/hardware.cfg
     yocto-kernel-cache/bsp/mti-malta32/hardware.cfg
     yocto-kernel-cache/bsp/fsl-mpc8315e-rdb/hardware.cfg
     yocto-kernel-cache/bsp/qemu-ppc32/hardware.cfg
     yocto-kernel-cache/bsp/qemuarma9/hardware.cfg
     yocto-kernel-cache/bsp/mti-malta64/hardware.cfg
     yocto-kernel-cache/bsp/arm-versatile-926ejs/hardware.cfg
     yocto-kernel-cache/bsp/common-pc/hardware.cfg
     yocto-kernel-cache/bsp/common-pc-64/hardware.cfg
     yocto-kernel-cache/features/rfkill/non-hardware.cfg
     yocto-kernel-cache/ktypes/base/non-hardware.cfg
     yocto-kernel-cache/features/aufs/non-hardware.kcf
     yocto-kernel-cache/features/ocf/non-hardware.kcf
     yocto-kernel-cache/ktypes/base/non-hardware.kcf
     yocto-kernel-cache/ktypes/base/hardware.kcf
     yocto-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.