diff options
| author | Scott Rifenbark <srifenbark@gmail.com> | 2016-04-04 13:10:27 -0700 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-04-06 23:11:58 +0100 |
| commit | 53bade89482d46ca30ab29330abd7490b46e532c (patch) | |
| tree | 18c82cbff15b52d40fbb0488e29db1b2841e3fac /documentation | |
| parent | 763ae4e191e09c60dd35faf569f56781515273ba (diff) | |
| download | poky-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')
| -rw-r--r-- | documentation/dev-manual/dev-manual-common-tasks.xml | 106 |
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"> |
