diff options
| author | Scott Rifenbark <srifenbark@gmail.com> | 2017-09-26 14:33:56 -0700 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-10-06 12:06:32 +0100 |
| commit | b8dfb037646c4ccbfda61241e654a703a16cf14b (patch) | |
| tree | e9825f4589e1a2acd0d0f413a39b136143d0d2bf /documentation/kernel-dev/kernel-dev-concepts-appx.xml | |
| parent | fcdfe09d9cc4e2977bd602dfd18f729cd9f6d73d (diff) | |
| download | poky-b8dfb037646c4ccbfda61241e654a703a16cf14b.tar.gz | |
kernel-dev: Updated kernel configuration section
A lot of rewriting here in this section to get it up to speed.
Also, moved that final section on determining hardware and
non-hardware features into an appendix where it belonged.
(From yocto-docs rev: 752e80d6ae8f81a0de7743b11b010d0ef36b314b)
Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/kernel-dev/kernel-dev-concepts-appx.xml')
| -rw-r--r-- | documentation/kernel-dev/kernel-dev-concepts-appx.xml | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/documentation/kernel-dev/kernel-dev-concepts-appx.xml b/documentation/kernel-dev/kernel-dev-concepts-appx.xml index 4cacdd13ee..6d236855dd 100644 --- a/documentation/kernel-dev/kernel-dev-concepts-appx.xml +++ b/documentation/kernel-dev/kernel-dev-concepts-appx.xml | |||
| @@ -479,6 +479,123 @@ | |||
| 479 | section for a detailed example that modifies the kernel. | 479 | section for a detailed example that modifies the kernel. |
| 480 | </para> | 480 | </para> |
| 481 | </section> | 481 | </section> |
| 482 | |||
| 483 | <section id='determining-hardware-and-non-hardware-features-for-the-kernel-configuration-audit-phase'> | ||
| 484 | <title>Determining Hardware and Non-Hardware Features for the Kernel Configuration Audit Phase</title> | ||
| 485 | |||
| 486 | <para> | ||
| 487 | This section describes part of the kernel configuration audit | ||
| 488 | phase that most developers can ignore. | ||
| 489 | For general information on kernel configuration including | ||
| 490 | <filename>menuconfig</filename>, <filename>defconfig</filename> | ||
| 491 | files, and configuration fragments, see the | ||
| 492 | "<link linkend='configuring-the-kernel'>Configuring the Kernel</link>" | ||
| 493 | section. | ||
| 494 | </para> | ||
| 495 | |||
| 496 | <para> | ||
| 497 | During this part of the audit phase, the contents of the final | ||
| 498 | <filename>.config</filename> file are compared against the | ||
| 499 | fragments specified by the system. | ||
| 500 | These fragments can be system fragments, distro fragments, | ||
| 501 | or user-specified configuration elements. | ||
| 502 | Regardless of their origin, the OpenEmbedded build system | ||
| 503 | warns the user if a specific option is not included in the | ||
| 504 | final kernel configuration. | ||
| 505 | </para> | ||
| 506 | |||
| 507 | <para> | ||
| 508 | By default, in order to not overwhelm the user with | ||
| 509 | configuration warnings, the system only reports missing | ||
| 510 | "hardware" options as they could result in a boot | ||
| 511 | failure or indicate that important hardware is not available. | ||
| 512 | </para> | ||
| 513 | |||
| 514 | <para> | ||
| 515 | To determine whether or not a given option is "hardware" or | ||
| 516 | "non-hardware", the kernel Metadata contains files that | ||
| 517 | classify individual or groups of options as either hardware | ||
| 518 | or non-hardware. | ||
| 519 | To better show this, consider a situation where the | ||
| 520 | Yocto Project kernel cache contains the following files: | ||
| 521 | <literallayout class='monospaced'> | ||
| 522 | kernel-cache/features/drm-psb/hardware.cfg | ||
| 523 | kernel-cache/features/kgdb/hardware.cfg | ||
| 524 | kernel-cache/ktypes/base/hardware.cfg | ||
| 525 | kernel-cache/bsp/mti-malta32/hardware.cfg | ||
| 526 | kernel-cache/bsp/fsl-mpc8315e-rdb/hardware.cfg | ||
| 527 | kernel-cache/bsp/qemu-ppc32/hardware.cfg | ||
| 528 | kernel-cache/bsp/qemuarma9/hardware.cfg | ||
| 529 | kernel-cache/bsp/mti-malta64/hardware.cfg | ||
| 530 | kernel-cache/bsp/arm-versatile-926ejs/hardware.cfg | ||
| 531 | kernel-cache/bsp/common-pc/hardware.cfg | ||
| 532 | kernel-cache/bsp/common-pc-64/hardware.cfg | ||
| 533 | kernel-cache/features/rfkill/non-hardware.cfg | ||
| 534 | kernel-cache/ktypes/base/non-hardware.cfg | ||
| 535 | kernel-cache/features/aufs/non-hardware.kcf | ||
| 536 | kernel-cache/features/ocf/non-hardware.kcf | ||
| 537 | kernel-cache/ktypes/base/non-hardware.kcf | ||
| 538 | kernel-cache/ktypes/base/hardware.kcf | ||
| 539 | kernel-cache/bsp/qemu-ppc32/hardware.kcf | ||
| 540 | </literallayout> | ||
| 541 | The following list provides explanations for the various | ||
| 542 | files: | ||
| 543 | <itemizedlist> | ||
| 544 | <listitem><para> | ||
| 545 | <filename>hardware.kcf</filename>: | ||
| 546 | Specifies a list of kernel Kconfig files that contain | ||
| 547 | hardware options only. | ||
| 548 | </para></listitem> | ||
| 549 | <listitem><para> | ||
| 550 | <filename>non-hardware.kcf</filename>: | ||
| 551 | Specifies a list of kernel Kconfig files that contain | ||
| 552 | non-hardware options only. | ||
| 553 | </para></listitem> | ||
| 554 | <listitem><para> | ||
| 555 | <filename>hardware.cfg</filename>: | ||
| 556 | Specifies a list of kernel <filename>CONFIG_</filename> | ||
| 557 | options that are hardware, regardless of whether or not | ||
| 558 | they are within a Kconfig file specified by a hardware | ||
| 559 | or non-hardware Kconfig file (i.e. | ||
| 560 | <filename>hardware.kcf</filename> or | ||
| 561 | <filename>non-hardware.kcf</filename>). | ||
| 562 | </para></listitem> | ||
| 563 | <listitem><para> | ||
| 564 | <filename>non-hardware.cfg</filename>: | ||
| 565 | Specifies a list of kernel <filename>CONFIG_</filename> | ||
| 566 | options that are not hardware, regardless of whether or | ||
| 567 | not they are within a Kconfig file specified by a | ||
| 568 | hardware or non-hardware Kconfig file (i.e. | ||
| 569 | <filename>hardware.kcf</filename> or | ||
| 570 | <filename>non-hardware.kcf</filename>). | ||
| 571 | </para></listitem> | ||
| 572 | </itemizedlist> | ||
| 573 | Here is a specific example using the | ||
| 574 | <filename>kernel-cache/bsp/mti-malta32/hardware.cfg</filename>: | ||
| 575 | <literallayout class='monospaced'> | ||
| 576 | CONFIG_SERIAL_8250 | ||
| 577 | CONFIG_SERIAL_8250_CONSOLE | ||
| 578 | CONFIG_SERIAL_8250_NR_UARTS | ||
| 579 | CONFIG_SERIAL_8250_PCI | ||
| 580 | CONFIG_SERIAL_CORE | ||
| 581 | CONFIG_SERIAL_CORE_CONSOLE | ||
| 582 | CONFIG_VGA_ARB | ||
| 583 | </literallayout> | ||
| 584 | The kernel configuration audit automatically detects these | ||
| 585 | files (hence the names must be exactly the ones discussed here), | ||
| 586 | and uses them as inputs when generating warnings about the | ||
| 587 | final <filename>.config</filename> file. | ||
| 588 | </para> | ||
| 589 | |||
| 590 | <para> | ||
| 591 | A user-specified kernel Metadata repository, or recipe space | ||
| 592 | feature, can use these same files to classify options that are | ||
| 593 | found within its <filename>.cfg</filename> files as hardware | ||
| 594 | or non-hardware, to prevent the OpenEmbedded build system from | ||
| 595 | producing an error or warning when an option is not in the | ||
| 596 | final <filename>.config</filename> file. | ||
| 597 | </para> | ||
| 598 | </section> | ||
| 482 | </appendix> | 599 | </appendix> |
| 483 | <!-- | 600 | <!-- |
| 484 | vim: expandtab tw=80 ts=4 | 601 | vim: expandtab tw=80 ts=4 |
