summaryrefslogtreecommitdiffstats
path: root/documentation/dev-manual/dev-manual-common-tasks.xml
diff options
context:
space:
mode:
authorScott Rifenbark <srifenbark@gmail.com>2016-04-04 13:10:27 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-04-06 23:11:58 +0100
commit53bade89482d46ca30ab29330abd7490b46e532c (patch)
tree18c82cbff15b52d40fbb0488e29db1b2841e3fac /documentation/dev-manual/dev-manual-common-tasks.xml
parent763ae4e191e09c60dd35faf569f56781515273ba (diff)
downloadpoky-53bade89482d46ca30ab29330abd7490b46e532c.tar.gz
dev-manual: Added new section describing hardware and non-hardware config
Fixes [YOCTO #5092] Added a new subsection to the "Configuring the Kernel" section to describe the part of the configuration audit phase that deals with non-hardware and hardware options. (From yocto-docs rev: 2545c3f2cf45ffcc9bf9f388d929c8242b74b011) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/dev-manual/dev-manual-common-tasks.xml')
-rw-r--r--documentation/dev-manual/dev-manual-common-tasks.xml106
1 files changed, 106 insertions, 0 deletions
diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml
index 204ef0ef0f..5e6dafd5b6 100644
--- a/documentation/dev-manual/dev-manual-common-tasks.xml
+++ b/documentation/dev-manual/dev-manual-common-tasks.xml
@@ -5133,6 +5133,112 @@
5133 Yocto kernel. 5133 Yocto kernel.
5134 </para> 5134 </para>
5135 </section> 5135 </section>
5136
5137 <section id='determining-hardware-and-non-hardware-features-for-the-kernel-configuration-audit-phase'>
5138 <title>Determining Hardware and Non-Hardware Features for the Kernel Configuration Audit Phase</title>
5139
5140 <para>
5141 This section describes part of the kernel configuration audit
5142 phase that most developers can ignore.
5143 During this part of the audit phase, the contents of the final
5144 <filename>.config</filename> file are compared against the
5145 fragments specified by the system.
5146 These fragments can be system fragments, distro fragments,
5147 or user specified configuration elements.
5148 Regardless of their origin, the OpenEmbedded build system
5149 warns the user if a specific option is not included in the
5150 final kernel configuration.
5151 </para>
5152
5153 <para>
5154 In order to not overwhelm the user with configuration warnings,
5155 by default the system only reports on missing "hardware"
5156 options because a missing hardware option could mean a boot
5157 failure or that important hardware is not available.
5158 </para>
5159
5160 <para>
5161 To determine whether or not a given option is "hardware" or
5162 "non-hardware", the kernel Metadata contains files that
5163 classify individual or groups of options as either hardware
5164 or non-hardware.
5165 To better show this, consider a situation where the
5166 Yocto Project kernel cache contains the following files:
5167 <literallayout class='monospaced'>
5168 kernel-cache/features/drm-psb/hardware.cfg
5169 kernel-cache/features/kgdb/hardware.cfg
5170 kernel-cache/ktypes/base/hardware.cfg
5171 kernel-cache/bsp/mti-malta32/hardware.cfg
5172 kernel-cache/bsp/fsl-mpc8315e-rdb/hardware.cfg
5173 kernel-cache/bsp/qemu-ppc32/hardware.cfg
5174 kernel-cache/bsp/qemuarma9/hardware.cfg
5175 kernel-cache/bsp/mti-malta64/hardware.cfg
5176 kernel-cache/bsp/arm-versatile-926ejs/hardware.cfg
5177 kernel-cache/bsp/common-pc/hardware.cfg
5178 kernel-cache/bsp/common-pc-64/hardware.cfg
5179 kernel-cache/features/rfkill/non-hardware.cfg
5180 kernel-cache/ktypes/base/non-hardware.cfg
5181 kernel-cache/features/aufs/non-hardware.kcf
5182 kernel-cache/features/ocf/non-hardware.kcf
5183 kernel-cache/ktypes/base/non-hardware.kcf
5184 kernel-cache/ktypes/base/hardware.kcf
5185 kernel-cache/bsp/qemu-ppc32/hardware.kcf
5186 </literallayout>
5187 The following list provides explanations for the various
5188 files:
5189 <itemizedlist>
5190 <listitem><para><filename>hardware.kcf</filename>:
5191 Specifies a list of kernel Kconfig files that contain
5192 hardware options only.
5193 </para></listitem>
5194 <listitem><para><filename>non-hardware.kcf</filename>:
5195 Specifies a list of kernel Kconfig files that contain
5196 non-hardware options only.
5197 </para></listitem>
5198 <listitem><para><filename>hardware.cfg</filename>:
5199 Specifies a list of kernel
5200 <filename>CONFIG_</filename> options that are hardware,
5201 regardless of whether or not they are within a Kconfig
5202 file specified by a hardware or non-hardware
5203 Kconfig file (i.e. <filename>hardware.kcf</filename> or
5204 <filename>non-hardware.kcf</filename>).
5205 </para></listitem>
5206 <listitem><para><filename>non-hardware.cfg</filename>:
5207 Specifies a list of kernel
5208 <filename>CONFIG_</filename> options that are
5209 not hardware, regardless of whether or not they are
5210 within a Kconfig file specified by a hardware or
5211 non-hardware Kconfig file (i.e.
5212 <filename>hardware.kcf</filename> or
5213 <filename>non-hardware.kcf</filename>).
5214 </para></listitem>
5215 </itemizedlist>
5216 Here is a specific example using the
5217 <filename>kernel-cache/bsp/mti-malta32/hardware.cfg</filename>:
5218 <literallayout class='monospaced'>
5219 CONFIG_SERIAL_8250
5220 CONFIG_SERIAL_8250_CONSOLE
5221 CONFIG_SERIAL_8250_NR_UARTS
5222 CONFIG_SERIAL_8250_PCI
5223 CONFIG_SERIAL_CORE
5224 CONFIG_SERIAL_CORE_CONSOLE
5225 CONFIG_VGA_ARB
5226 </literallayout>
5227 The kernel configuration audit automatically detects these
5228 files (hence the names must be exactly the ones discussed here),
5229 and uses them as inputs when generating warnings about the
5230 final <filename>.config</filename> file.
5231 </para>
5232
5233 <para>
5234 A user-specified kernel Metadata repository, or recipe space
5235 feature, can use these same files to classify options that are
5236 found within its <filename>.cfg</filename> files as hardware
5237 or non-hardware, to prevent the OpenEmbedded build system from
5238 producing an error or warning when an option is not in the
5239 final <filename>.config</filename> file.
5240 </para>
5241 </section>
5136 </section> 5242 </section>
5137 5243
5138 <section id="patching-the-kernel"> 5244 <section id="patching-the-kernel">