summaryrefslogtreecommitdiffstats
path: root/documentation/dev-manual
diff options
context:
space:
mode:
authorScott Rifenbark <srifenbark@gmail.com>2017-09-22 12:18:18 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-09-26 11:18:59 +0100
commitde671802c8de9311cc292456d69cafb7be128b0b (patch)
tree99272375914e3bf041f044803d0a24d83b6d7624 /documentation/dev-manual
parentc1d3dbb5bdbea42c3f4b4706872bd2444e850c7c (diff)
downloadpoky-de671802c8de9311cc292456d69cafb7be128b0b.tar.gz
dev-manual: Compatibility program and moving kernel configuration
Should have been two commits but I forgot to do them separately. 1. I updated the YP Compatible Program section. 2. I moved the "Configuring the Kernel" section from the dev-manual to the kernel-dev manual. (From yocto-docs rev: cdb5bbc917db55a2ca987ce9b9ed371f9fca6524) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/dev-manual')
-rw-r--r--documentation/dev-manual/dev-manual-common-tasks.xml591
1 files changed, 62 insertions, 529 deletions
diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml
index 0c2e60f006..f82d37e1dc 100644
--- a/documentation/dev-manual/dev-manual-common-tasks.xml
+++ b/documentation/dev-manual/dev-manual-common-tasks.xml
@@ -442,54 +442,65 @@
442 existing Yocto Project layers (i.e. the layer is compatible 442 existing Yocto Project layers (i.e. the layer is compatible
443 with the Yocto Project). 443 with the Yocto Project).
444 Ensuring compatibility makes the layer easy to be consumed 444 Ensuring compatibility makes the layer easy to be consumed
445 by others in the Yocto Project community and allows you 445 by others in the Yocto Project community and could allow you
446 permission to use the Yocto Project Compatibility logo. 446 permission to use the Yocto Project Compatibility Logo.
447 </para> 447 <note>
448 448 Only Yocto Project member organizations are permitted to
449 <para> 449 use the Yocto Project Compatibility Logo.
450 Version 1.0 of the Yocto Project Compatibility Program has 450 The logo is not available for general use.
451 been in existence for a number of releases. 451 For information on how to become a Yocto Project member
452 This version of the program consists of the layer application 452 organization, see the
453 process that requests permission to use the Yocto Project 453 <ulink url='&YOCTO_HOME_URL;/ecosystem/member-organizations'>Member Organizations</ulink>
454 Compatibility logo for your layer and application. 454 page of the Yocto Project website.
455 You can find version 1.0 of the form at 455 </note>
456 <ulink url='https://www.yoctoproject.org/webform/yocto-project-compatible-registration'></ulink>.
457 To be granted permission to use the logo, you need to be able
458 to answer "Yes" to the questions or have an acceptable
459 explanation for any questions answered "No".
460 </para> 456 </para>
461 457
462 <para> 458 <para>
463 A second version (2.0) of the Yocto Project Compatibility 459 The Yocto Project Compatibility Program consists of a layer
464 Program is currently under development. 460 application process that requests permission to use the Yocto
465 Included as part of version 2.0 (and currently available) is 461 Project Compatibility Logo for your layer and application.
466 the <filename>yocto-compat-layer.py</filename> script. 462 The process consists of two parts:
467 When run against a layer, this script tests the layer against 463 <orderedlist>
468 tighter constraints based on experiences of how layers have 464 <listitem><para>
469 worked in the real world and where pitfalls have been found. 465 Successfully passing a script
466 (<filename>yocto-compat-layer.py</filename>) that
467 when run against your layer, tests it against
468 constraints based on experiences of how layers have
469 worked in the real world and where pitfalls have been
470 found.
471 Getting a "PASS" result from the script is required for
472 successful compatibility registration.
473 </para></listitem>
474 <listitem><para>
475 Completion of an application acceptance form, which
476 you can find at
477 <ulink url='https://www.yoctoproject.org/webform/yocto-project-compatible-registration'></ulink>.
478 </para></listitem>
479 </orderedlist>
470 </para> 480 </para>
471 481
472 <para> 482 <para>
473 Part of the 2.0 version of the program that is not currently 483 To be granted permission to use the logo, you need to satisfy
474 available but is in development is an updated compatibility 484 the following:
475 application form. 485 <itemizedlist>
476 This updated form, among other questions, specifically 486 <listitem><para>
477 asks if your layer has passed the test using the 487 Be able to check the box indicating that you
478 <filename>yocto-compat-layer.py</filename> script. 488 got a "PASS" when running the script against your
479 <note><title>Tip</title> 489 layer.
480 Even though the updated application form is currently 490 </para></listitem>
481 unavailable for version 2.0 of the Yocto Project 491 <listitem><para>
482 Compatibility Program, the 492 Answer "Yes" to the questions on the form or have an
483 <filename>yocto-compat-layer.py</filename> script is 493 acceptable explanation for any questions answered "No".
484 available in OE-Core. 494 </para></listitem>
485 You can use the script to assess the status of your 495 <listitem><para>
486 layers in advance of the 2.0 release of the program. 496 You need to be a Yocto Project Member Organization.
487 </note> 497 </para></listitem>
498 </itemizedlist>
488 </para> 499 </para>
489 500
490 <para> 501 <para>
491 The remainder of this section presents information on the 502 The remainder of this section presents information on the
492 version 1.0 registration form and on the 503 registration form and on the
493 <filename>yocto-compat-layer.py</filename> script. 504 <filename>yocto-compat-layer.py</filename> script.
494 </para> 505 </para>
495 506
@@ -497,10 +508,10 @@
497 <title>Yocto Project Compatibility Program Application</title> 508 <title>Yocto Project Compatibility Program Application</title>
498 509
499 <para> 510 <para>
500 Use the 1.0 version of the form to apply for your 511 Use the form to apply for your layer's compatibility
501 layer's compatibility approval. 512 approval.
502 Upon successful application, you can use the Yocto 513 Upon successful application, you can use the Yocto
503 Project Compatibility logo with your layer and the 514 Project Compatibility Logo with your layer and the
504 application that uses your layer. 515 application that uses your layer.
505 </para> 516 </para>
506 517
@@ -542,22 +553,14 @@
542 <title><filename>yocto-compat-layer.py</filename> Script</title> 553 <title><filename>yocto-compat-layer.py</filename> Script</title>
543 554
544 <para> 555 <para>
545 The <filename>yocto-compat-layer.py</filename> script, 556 The <filename>yocto-compat-layer.py</filename> script
546 which is currently available, provides you a way to 557 provides you a way to assess how compatible your layer is
547 assess how compatible your layer is with the Yocto 558 with the Yocto Project.
548 Project.
549 You should run this script prior to using the form to 559 You should run this script prior to using the form to
550 apply for compatibility as described in the previous 560 apply for compatibility as described in the previous
551 section. 561 section.
552 <note> 562 You need to achieve a "PASS" result in order to have
553 Because the script is part of the 2.0 release of the 563 your application form successfully processed.
554 Yocto Project Compatibility Program, you are not
555 required to successfully run your layer against it
556 in order to be granted compatibility status.
557 However, it is a good idea as it promotes
558 well-behaved layers and gives you an idea of where your
559 layer stands regarding compatibility.
560 </note>
561 </para> 564 </para>
562 565
563 <para> 566 <para>
@@ -6142,479 +6145,6 @@ Some notes from Cal:
6142 </para> 6145 </para>
6143 </section> 6146 </section>
6144 6147
6145 <section id='configuring-the-kernel'>
6146 <title>Configuring the Kernel</title>
6147
6148 <para>
6149 Configuring the Yocto Project kernel consists of making sure the
6150 <filename>.config</filename> file has all the right information
6151 in it for the image you are building.
6152 You can use the <filename>menuconfig</filename> tool and
6153 configuration fragments to make sure your
6154 <filename>.config</filename> file is just how you need it.
6155 You can also save known configurations in a
6156 <filename>defconfig</filename> file that the build system can use
6157 for kernel configuration.
6158 </para>
6159
6160 <para>
6161 This section describes how to use <filename>menuconfig</filename>,
6162 create and use configuration fragments, and how to interactively
6163 modify your <filename>.config</filename> file to create the
6164 leanest kernel configuration file possible.
6165 </para>
6166
6167 <para>
6168 For more information on kernel configuration, see the
6169 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#changing-the-configuration'>Changing the Configuration</ulink>"
6170 section in the Yocto Project Linux Kernel Development Manual.
6171 </para>
6172
6173 <section id='using-menuconfig'>
6174 <title>Using&nbsp;&nbsp;<filename>menuconfig</filename></title>
6175
6176 <para>
6177 The easiest way to define kernel configurations is to set them through the
6178 <filename>menuconfig</filename> tool.
6179 This tool provides an interactive method with which
6180 to set kernel configurations.
6181 For general information on <filename>menuconfig</filename>, see
6182 <ulink url='http://en.wikipedia.org/wiki/Menuconfig'></ulink>.
6183 </para>
6184
6185 <para>
6186 To use the <filename>menuconfig</filename> tool in the Yocto Project development
6187 environment, you must launch it using BitBake.
6188 Thus, the environment must be set up using the
6189 <ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>
6190 script found in the
6191 <ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>.
6192 You must also be sure of the state of your build in the
6193 <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>.
6194 The following commands run <filename>menuconfig</filename>
6195 assuming the Source Directory's top-level folder is
6196 <filename>~/poky</filename>:
6197 <literallayout class='monospaced'>
6198 $ cd poky
6199 $ source oe-init-build-env
6200 $ bitbake linux-yocto -c kernel_configme -f
6201 $ bitbake linux-yocto -c menuconfig
6202 </literallayout>
6203 Once <filename>menuconfig</filename> comes up, its standard
6204 interface allows you to interactively examine and configure
6205 all the kernel configuration parameters.
6206 After making your changes, simply exit the tool and save your
6207 changes to create an updated version of the
6208 <filename>.config</filename> configuration file.
6209 </para>
6210
6211 <para>
6212 Consider an example that configures the <filename>linux-yocto-3.14</filename>
6213 kernel.
6214 The OpenEmbedded build system recognizes this kernel as
6215 <filename>linux-yocto</filename>.
6216 Thus, the following commands from the shell in which you previously sourced the
6217 environment initialization script cleans the shared state cache and the
6218 <ulink url='&YOCTO_DOCS_REF_URL;#var-WORKDIR'><filename>WORKDIR</filename></ulink>
6219 directory and then runs <filename>menuconfig</filename>:
6220 <literallayout class='monospaced'>
6221 $ bitbake linux-yocto -c menuconfig
6222 </literallayout>
6223 </para>
6224
6225 <para>
6226 Once <filename>menuconfig</filename> launches, use the interface
6227 to navigate through the selections to find the configuration settings in
6228 which you are interested.
6229 For example, consider the <filename>CONFIG_SMP</filename> configuration setting.
6230 You can find it at <filename>Processor Type and Features</filename> under
6231 the configuration selection <filename>Symmetric Multi-processing Support</filename>.
6232 After highlighting the selection, use the arrow keys to select or deselect
6233 the setting.
6234 When you are finished with all your selections, exit out and save them.
6235 </para>
6236
6237 <para>
6238 Saving the selections updates the <filename>.config</filename> configuration file.
6239 This is the file that the OpenEmbedded build system uses to configure the
6240 kernel during the build.
6241 You can find and examine this file in the Build Directory in
6242 <filename>tmp/work/</filename>.
6243 The actual <filename>.config</filename> is located in the area where the
6244 specific kernel is built.
6245 For example, if you were building a Linux Yocto kernel based on the
6246 Linux 3.14 kernel and you were building a QEMU image targeted for
6247 <filename>x86</filename> architecture, the
6248 <filename>.config</filename> file would be located here:
6249 <literallayout class='monospaced'>
6250 poky/build/tmp/work/qemux86-poky-linux/linux-yocto-3.14.11+git1+84f...
6251 ...656ed30-r1/linux-qemux86-standard-build
6252 </literallayout>
6253 <note>
6254 The previous example directory is artificially split and many of the characters
6255 in the actual filename are omitted in order to make it more readable.
6256 Also, depending on the kernel you are using, the exact pathname
6257 for <filename>linux-yocto-3.14...</filename> might differ.
6258 </note>
6259 </para>
6260
6261 <para>
6262 Within the <filename>.config</filename> file, you can see the kernel settings.
6263 For example, the following entry shows that symmetric multi-processor support
6264 is not set:
6265 <literallayout class='monospaced'>
6266 # CONFIG_SMP is not set
6267 </literallayout>
6268 </para>
6269
6270 <para>
6271 A good method to isolate changed configurations is to use a combination of the
6272 <filename>menuconfig</filename> tool and simple shell commands.
6273 Before changing configurations with <filename>menuconfig</filename>, copy the
6274 existing <filename>.config</filename> and rename it to something else,
6275 use <filename>menuconfig</filename> to make
6276 as many changes as you want and save them, then compare the renamed configuration
6277 file against the newly created file.
6278 You can use the resulting differences as your base to create configuration fragments
6279 to permanently save in your kernel layer.
6280 <note>
6281 Be sure to make a copy of the <filename>.config</filename> and don't just
6282 rename it.
6283 The build system needs an existing <filename>.config</filename>
6284 from which to work.
6285 </note>
6286 </para>
6287 </section>
6288
6289 <section id='creating-a-defconfig-file'>
6290 <title>Creating a&nbsp;&nbsp;<filename>defconfig</filename> File</title>
6291
6292 <para>
6293 A <filename>defconfig</filename> file is simply a
6294 <filename>.config</filename> renamed to "defconfig".
6295 You can use a <filename>defconfig</filename> file
6296 to retain a known set of kernel configurations from which the
6297 OpenEmbedded build system can draw to create the final
6298 <filename>.config</filename> file.
6299 <note>
6300 Out-of-the-box, the Yocto Project never ships a
6301 <filename>defconfig</filename> or
6302 <filename>.config</filename> file.
6303 The OpenEmbedded build system creates the final
6304 <filename>.config</filename> file used to configure the
6305 kernel.
6306 </note>
6307 </para>
6308
6309 <para>
6310 To create a <filename>defconfig</filename>, start with a
6311 complete, working Linux kernel <filename>.config</filename>
6312 file.
6313 Copy that file to the appropriate
6314 <filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PN'><filename>PN</filename></ulink><filename>}</filename>
6315 directory in your layer's
6316 <filename>recipes-kernel/linux</filename> directory, and rename
6317 the copied file to "defconfig".
6318 Then, add the following lines to the linux-yocto
6319 <filename>.bbappend</filename> file in your layer:
6320 <literallayout class='monospaced'>
6321 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
6322 SRC_URI += "file://defconfig"
6323 </literallayout>
6324 The
6325 <ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink>
6326 tells the build system how to search for the file, while the
6327 <ulink url='&YOCTO_DOCS_REF_URL;#var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></ulink>
6328 extends the
6329 <ulink url='&YOCTO_DOCS_REF_URL;#var-FILESPATH'><filename>FILESPATH</filename></ulink>
6330 variable (search directories) to include the
6331 <filename>${PN}</filename> directory you created to hold the
6332 configuration changes.
6333 <note>
6334 The build system applies the configurations from the
6335 <filename>defconfig</filename> file before applying any
6336 subsequent configuration fragments.
6337 The final kernel configuration is a combination of the
6338 configurations in the <filename>defconfig</filename>
6339 file and any configuration fragments you provide.
6340 You need to realize that if you have any configuration
6341 fragments, the build system applies these on top of and
6342 after applying the existing defconfig file configurations.
6343 </note>
6344 For more information on configuring the kernel, see the
6345 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#changing-the-configuration'>Changing the Configuration</ulink>"
6346 and
6347 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#generating-configuration-files'>Generating Configuration Files</ulink>"
6348 sections, both in the Yocto Project Linux Kernel Development
6349 Manual.
6350 </para>
6351 </section>
6352
6353 <section id='creating-config-fragments'>
6354 <title>Creating Configuration Fragments</title>
6355
6356 <para>
6357 Configuration fragments are simply kernel options that appear in a file
6358 placed where the OpenEmbedded build system can find and apply them.
6359 Syntactically, the configuration statement is identical to what would appear
6360 in the <filename>.config</filename> file, which is in the
6361 <ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>:
6362 <literallayout class='monospaced'>
6363 tmp/work/<replaceable>arch</replaceable>-poky-linux/linux-yocto-<replaceable>release_specific_string</replaceable>/linux-<replaceable>arch</replaceable>-<replaceable>build_type</replaceable>
6364 </literallayout>
6365 </para>
6366
6367 <para>
6368 It is simple to create a configuration fragment.
6369 For example, issuing the following from the shell creates a configuration fragment
6370 file named <filename>my_smp.cfg</filename> that enables multi-processor support
6371 within the kernel:
6372 <literallayout class='monospaced'>
6373 $ echo "CONFIG_SMP=y" >> my_smp.cfg
6374 </literallayout>
6375 <note>
6376 All configuration fragment files must use the
6377 <filename>.cfg</filename> extension in order for the
6378 OpenEmbedded build system to recognize them as a
6379 configuration fragment.
6380 </note>
6381 </para>
6382
6383 <para>
6384 Where do you put your configuration fragment files?
6385 You can place these files in the same area pointed to by
6386 <ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink>.
6387 The OpenEmbedded build system picks up the configuration and
6388 adds it to the kernel's configuration.
6389 For example, suppose you had a set of configuration options
6390 in a file called <filename>myconfig.cfg</filename>.
6391 If you put that file inside a directory named
6392 <filename>linux-yocto</filename> that resides in the same
6393 directory as the kernel's append file and then add a
6394 <filename>SRC_URI</filename> statement such as the following
6395 to the kernel's append file, those configuration options
6396 will be picked up and applied when the kernel is built.
6397 <literallayout class='monospaced'>
6398 SRC_URI += "file://myconfig.cfg"
6399 </literallayout>
6400 </para>
6401
6402 <para>
6403 As mentioned earlier, you can group related configurations into multiple files and
6404 name them all in the <filename>SRC_URI</filename> statement as well.
6405 For example, you could group separate configurations specifically for Ethernet and graphics
6406 into their own files and add those by using a <filename>SRC_URI</filename> statement like the
6407 following in your append file:
6408 <literallayout class='monospaced'>
6409 SRC_URI += "file://myconfig.cfg \
6410 file://eth.cfg \
6411 file://gfx.cfg"
6412 </literallayout>
6413 </para>
6414 </section>
6415
6416 <section id='fine-tuning-the-kernel-configuration-file'>
6417 <title>Fine-Tuning the Kernel Configuration File</title>
6418
6419 <para>
6420 You can make sure the <filename>.config</filename> file is as lean or efficient as
6421 possible by reading the output of the kernel configuration fragment audit,
6422 noting any issues, making changes to correct the issues, and then repeating.
6423 </para>
6424
6425 <para>
6426 As part of the kernel build process, the
6427 <filename>do_kernel_configcheck</filename> task runs.
6428 This task validates the kernel configuration by checking the final
6429 <filename>.config</filename> file against the input files.
6430 During the check, the task produces warning messages for the following
6431 issues:
6432 <itemizedlist>
6433 <listitem><para>Requested options that did not make the final
6434 <filename>.config</filename> file.</para></listitem>
6435 <listitem><para>Configuration items that appear twice in the same
6436 configuration fragment.</para></listitem>
6437 <listitem><para>Configuration items tagged as "required" that were overridden.
6438 </para></listitem>
6439 <listitem><para>A board overrides a non-board specific option.</para></listitem>
6440 <listitem><para>Listed options not valid for the kernel being processed.
6441 In other words, the option does not appear anywhere.</para></listitem>
6442 </itemizedlist>
6443 <note>
6444 The <filename>do_kernel_configcheck</filename> task can
6445 also optionally report if an option is overridden during
6446 processing.
6447 </note>
6448 </para>
6449
6450 <para>
6451 For each output warning, a message points to the file
6452 that contains a list of the options and a pointer to the
6453 configuration fragment that defines them.
6454 Collectively, the files are the key to streamlining the
6455 configuration.
6456 </para>
6457
6458 <para>
6459 To streamline the configuration, do the following:
6460 <orderedlist>
6461 <listitem><para>Start with a full configuration that you
6462 know works - it builds and boots successfully.
6463 This configuration file will be your baseline.
6464 </para></listitem>
6465 <listitem><para>Separately run the
6466 <filename>do_kernel_configme</filename> and
6467 <filename>do_kernel_configcheck</filename> tasks.
6468 </para></listitem>
6469 <listitem><para>Take the resulting list of files from the
6470 <filename>do_kernel_configcheck</filename> task
6471 warnings and do the following:
6472 <itemizedlist>
6473 <listitem><para>
6474 Drop values that are redefined in the fragment
6475 but do not change the final
6476 <filename>.config</filename> file.
6477 </para></listitem>
6478 <listitem><para>
6479 Analyze and potentially drop values from the
6480 <filename>.config</filename> file that override
6481 required configurations.
6482 </para></listitem>
6483 <listitem><para>
6484 Analyze and potentially remove non-board
6485 specific options.
6486 </para></listitem>
6487 <listitem><para>
6488 Remove repeated and invalid options.
6489 </para></listitem>
6490 </itemizedlist></para></listitem>
6491 <listitem><para>
6492 After you have worked through the output of the kernel
6493 configuration audit, you can re-run the
6494 <filename>do_kernel_configme</filename> and
6495 <filename>do_kernel_configcheck</filename> tasks to
6496 see the results of your changes.
6497 If you have more issues, you can deal with them as
6498 described in the previous step.
6499 </para></listitem>
6500 </orderedlist>
6501 </para>
6502
6503 <para>
6504 Iteratively working through steps two through four eventually yields
6505 a minimal, streamlined configuration file.
6506 Once you have the best <filename>.config</filename>, you can build the Linux
6507 Yocto kernel.
6508 </para>
6509 </section>
6510
6511 <section id='determining-hardware-and-non-hardware-features-for-the-kernel-configuration-audit-phase'>
6512 <title>Determining Hardware and Non-Hardware Features for the Kernel Configuration Audit Phase</title>
6513
6514 <para>
6515 This section describes part of the kernel configuration audit
6516 phase that most developers can ignore.
6517 During this part of the audit phase, the contents of the final
6518 <filename>.config</filename> file are compared against the
6519 fragments specified by the system.
6520 These fragments can be system fragments, distro fragments,
6521 or user specified configuration elements.
6522 Regardless of their origin, the OpenEmbedded build system
6523 warns the user if a specific option is not included in the
6524 final kernel configuration.
6525 </para>
6526
6527 <para>
6528 In order to not overwhelm the user with configuration warnings,
6529 by default the system only reports on missing "hardware"
6530 options because a missing hardware option could mean a boot
6531 failure or that important hardware is not available.
6532 </para>
6533
6534 <para>
6535 To determine whether or not a given option is "hardware" or
6536 "non-hardware", the kernel Metadata contains files that
6537 classify individual or groups of options as either hardware
6538 or non-hardware.
6539 To better show this, consider a situation where the
6540 Yocto Project kernel cache contains the following files:
6541 <literallayout class='monospaced'>
6542 kernel-cache/features/drm-psb/hardware.cfg
6543 kernel-cache/features/kgdb/hardware.cfg
6544 kernel-cache/ktypes/base/hardware.cfg
6545 kernel-cache/bsp/mti-malta32/hardware.cfg
6546 kernel-cache/bsp/fsl-mpc8315e-rdb/hardware.cfg
6547 kernel-cache/bsp/qemu-ppc32/hardware.cfg
6548 kernel-cache/bsp/qemuarma9/hardware.cfg
6549 kernel-cache/bsp/mti-malta64/hardware.cfg
6550 kernel-cache/bsp/arm-versatile-926ejs/hardware.cfg
6551 kernel-cache/bsp/common-pc/hardware.cfg
6552 kernel-cache/bsp/common-pc-64/hardware.cfg
6553 kernel-cache/features/rfkill/non-hardware.cfg
6554 kernel-cache/ktypes/base/non-hardware.cfg
6555 kernel-cache/features/aufs/non-hardware.kcf
6556 kernel-cache/features/ocf/non-hardware.kcf
6557 kernel-cache/ktypes/base/non-hardware.kcf
6558 kernel-cache/ktypes/base/hardware.kcf
6559 kernel-cache/bsp/qemu-ppc32/hardware.kcf
6560 </literallayout>
6561 The following list provides explanations for the various
6562 files:
6563 <itemizedlist>
6564 <listitem><para><filename>hardware.kcf</filename>:
6565 Specifies a list of kernel Kconfig files that contain
6566 hardware options only.
6567 </para></listitem>
6568 <listitem><para><filename>non-hardware.kcf</filename>:
6569 Specifies a list of kernel Kconfig files that contain
6570 non-hardware options only.
6571 </para></listitem>
6572 <listitem><para><filename>hardware.cfg</filename>:
6573 Specifies a list of kernel
6574 <filename>CONFIG_</filename> options that are hardware,
6575 regardless of whether or not they are within a Kconfig
6576 file specified by a hardware or non-hardware
6577 Kconfig file (i.e. <filename>hardware.kcf</filename> or
6578 <filename>non-hardware.kcf</filename>).
6579 </para></listitem>
6580 <listitem><para><filename>non-hardware.cfg</filename>:
6581 Specifies a list of kernel
6582 <filename>CONFIG_</filename> options that are
6583 not hardware, regardless of whether or not they are
6584 within a Kconfig file specified by a hardware or
6585 non-hardware Kconfig file (i.e.
6586 <filename>hardware.kcf</filename> or
6587 <filename>non-hardware.kcf</filename>).
6588 </para></listitem>
6589 </itemizedlist>
6590 Here is a specific example using the
6591 <filename>kernel-cache/bsp/mti-malta32/hardware.cfg</filename>:
6592 <literallayout class='monospaced'>
6593 CONFIG_SERIAL_8250
6594 CONFIG_SERIAL_8250_CONSOLE
6595 CONFIG_SERIAL_8250_NR_UARTS
6596 CONFIG_SERIAL_8250_PCI
6597 CONFIG_SERIAL_CORE
6598 CONFIG_SERIAL_CORE_CONSOLE
6599 CONFIG_VGA_ARB
6600 </literallayout>
6601 The kernel configuration audit automatically detects these
6602 files (hence the names must be exactly the ones discussed here),
6603 and uses them as inputs when generating warnings about the
6604 final <filename>.config</filename> file.
6605 </para>
6606
6607 <para>
6608 A user-specified kernel Metadata repository, or recipe space
6609 feature, can use these same files to classify options that are
6610 found within its <filename>.cfg</filename> files as hardware
6611 or non-hardware, to prevent the OpenEmbedded build system from
6612 producing an error or warning when an option is not in the
6613 final <filename>.config</filename> file.
6614 </para>
6615 </section>
6616 </section>
6617
6618 <section id='making-images-more-secure'> 6148 <section id='making-images-more-secure'>
6619 <title>Making Images More Secure</title> 6149 <title>Making Images More Secure</title>
6620 6150
@@ -7243,8 +6773,11 @@ Some notes from Cal:
7243 see the 6773 see the
7244 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#generating-configuration-files'>Generating Configuration Files</ulink>" 6774 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#generating-configuration-files'>Generating Configuration Files</ulink>"
7245 section of the Yocto Project Linux Kernel Development 6775 section of the Yocto Project Linux Kernel Development
7246 Manual and the "<link linkend='creating-config-fragments'>Creating Configuration Fragments</link>" 6776 Manual and the
7247 section, which is in this manual.</para></listitem> 6777 "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#creating-config-fragments'>Creating Configuration Fragments</ulink>"
6778 section in the Yocto Project Linux Kernel Development
6779 Manual.
6780 </para></listitem>
7248 <listitem><para><filename>bitbake -u taskexp -g <replaceable>bitbake_target</replaceable></filename>: 6781 <listitem><para><filename>bitbake -u taskexp -g <replaceable>bitbake_target</replaceable></filename>:
7249 Using the BitBake command with these options brings up 6782 Using the BitBake command with these options brings up
7250 a Dependency Explorer from which you can view file 6783 a Dependency Explorer from which you can view file