diff options
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 |