summaryrefslogtreecommitdiffstats
path: root/documentation/kernel-dev/kernel-dev-concepts-appx.xml
diff options
context:
space:
mode:
authorScott Rifenbark <srifenbark@gmail.com>2017-09-26 14:33:56 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-10-06 12:06:32 +0100
commitb8dfb037646c4ccbfda61241e654a703a16cf14b (patch)
treee9825f4589e1a2acd0d0f413a39b136143d0d2bf /documentation/kernel-dev/kernel-dev-concepts-appx.xml
parentfcdfe09d9cc4e2977bd602dfd18f729cd9f6d73d (diff)
downloadpoky-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.xml117
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<!--
484vim: expandtab tw=80 ts=4 601vim: expandtab tw=80 ts=4