diff options
Diffstat (limited to 'documentation')
-rw-r--r-- | documentation/kernel-dev/kernel-dev-advanced.xml | 323 |
1 files changed, 219 insertions, 104 deletions
diff --git a/documentation/kernel-dev/kernel-dev-advanced.xml b/documentation/kernel-dev/kernel-dev-advanced.xml index 6618a7c906..380200a633 100644 --- a/documentation/kernel-dev/kernel-dev-advanced.xml +++ b/documentation/kernel-dev/kernel-dev-advanced.xml | |||
@@ -273,11 +273,13 @@ | |||
273 | 273 | ||
274 | <para> | 274 | <para> |
275 | Paths used in kernel Metadata files are relative to | 275 | Paths used in kernel Metadata files are relative to |
276 | <filename><base></filename>, which is either | 276 | <replaceable>base</replaceable>, which is either |
277 | <ulink url='&YOCTO_DOCS_REF_URL;#var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></ulink> | 277 | <ulink url='&YOCTO_DOCS_REF_URL;#var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></ulink> |
278 | if you are creating Metadata in | 278 | if you are creating Metadata in |
279 | <link linkend='recipe-space-metadata'>recipe-space</link>, | 279 | <link linkend='recipe-space-metadata'>recipe-space</link>, |
280 | or <filename>yocto-kernel-cache/cfg</filename> if you are creating | 280 | or the top level of |
281 | <ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi/yocto-kernel-cache/tree/'><filename>yocto-kernel-cache</filename></ulink> | ||
282 | if you are creating | ||
281 | <link linkend='metadata-outside-the-recipe-space'>Metadata outside of the recipe-space</link>. | 283 | <link linkend='metadata-outside-the-recipe-space'>Metadata outside of the recipe-space</link>. |
282 | </para> | 284 | </para> |
283 | 285 | ||
@@ -294,12 +296,18 @@ | |||
294 | </para> | 296 | </para> |
295 | 297 | ||
296 | <para> | 298 | <para> |
297 | The Symmetric Multi-Processing (SMP) fragment included in the | 299 | As an example, consider the Symmetric Multi-Processing (SMP) |
298 | <filename>linux-yocto-3.19</filename> Git repository | 300 | fragment used with the <filename>linux-yocto-4.12</filename> |
299 | consists of the following two files: | 301 | kernel as defined outside of the recipe space (i.e. |
302 | <filename>yocto-kernel-cache</filename>). | ||
303 | This Metadata consists of two files: <filename>smp.scc</filename> | ||
304 | and <filename>smp.cfg</filename>. | ||
305 | You can find these files in the <filename>cfg</filename> directory | ||
306 | of the <filename>yocto-4.12</filename> branch in the | ||
307 | <filename>yocto-kernel-cache</filename> Git repository: | ||
300 | <literallayout class='monospaced'> | 308 | <literallayout class='monospaced'> |
301 | cfg/smp.scc: | 309 | cfg/smp.scc: |
302 | define KFEATURE_DESCRIPTION "Enable SMP" | 310 | define KFEATURE_DESCRIPTION "Enable SMP for 32 bit builds" |
303 | define KFEATURE_COMPATIBILITY all | 311 | define KFEATURE_COMPATIBILITY all |
304 | 312 | ||
305 | kconf hardware smp.cfg | 313 | kconf hardware smp.cfg |
@@ -310,20 +318,27 @@ | |||
310 | # Increase default NR_CPUS from 8 to 64 so that platform with | 318 | # Increase default NR_CPUS from 8 to 64 so that platform with |
311 | # more than 8 processors can be all activated at boot time | 319 | # more than 8 processors can be all activated at boot time |
312 | CONFIG_NR_CPUS=64 | 320 | CONFIG_NR_CPUS=64 |
321 | # The following is nedded when setting NR_CPUS to something | ||
322 | # greater than 8 on x86 architectures, it should be automatically | ||
323 | # disregarded by Kconfig when using a different arch | ||
324 | CONFIG_X86_BIGSMP=y | ||
313 | </literallayout> | 325 | </literallayout> |
314 | You can find information on configuration fragment files in the | 326 | You can find general information on configuration fragment files in |
327 | the | ||
315 | "<link linkend='creating-config-fragments'>Creating Configuration Fragments</link>" | 328 | "<link linkend='creating-config-fragments'>Creating Configuration Fragments</link>" |
316 | section. | 329 | section. |
317 | </para> | 330 | </para> |
318 | 331 | ||
319 | <para> | 332 | <para> |
333 | Within the <filename>smp.scc</filename> file, the | ||
320 | <ulink url='&YOCTO_DOCS_REF_URL;#var-KFEATURE_DESCRIPTION'><filename>KFEATURE_DESCRIPTION</filename></ulink> | 334 | <ulink url='&YOCTO_DOCS_REF_URL;#var-KFEATURE_DESCRIPTION'><filename>KFEATURE_DESCRIPTION</filename></ulink> |
321 | provides a short description of the fragment. | 335 | statement provides a short description of the fragment. |
322 | Higher level kernel tools use this description. | 336 | Higher level kernel tools use this description. |
323 | </para> | 337 | </para> |
324 | 338 | ||
325 | <para> | 339 | <para> |
326 | The <filename>kconf</filename> command is used to include the | 340 | Also within the <filename>smp.scc</filename> file, the |
341 | <filename>kconf</filename> command includes the | ||
327 | actual configuration fragment in an <filename>.scc</filename> | 342 | actual configuration fragment in an <filename>.scc</filename> |
328 | file, and the "hardware" keyword identifies the fragment as | 343 | file, and the "hardware" keyword identifies the fragment as |
329 | being hardware enabling, as opposed to general policy, | 344 | being hardware enabling, as opposed to general policy, |
@@ -355,26 +370,71 @@ | |||
355 | Patch descriptions are very similar to configuration fragment | 370 | Patch descriptions are very similar to configuration fragment |
356 | descriptions, which are described in the previous section. | 371 | descriptions, which are described in the previous section. |
357 | However, instead of a <filename>.cfg</filename> file, these | 372 | However, instead of a <filename>.cfg</filename> file, these |
358 | descriptions work with source patches. | 373 | descriptions work with source patches (i.e. |
374 | <filename>.patch</filename> files). | ||
359 | </para> | 375 | </para> |
360 | 376 | ||
361 | <para> | 377 | <para> |
362 | A typical patch includes a description file and the patch itself: | 378 | A typical patch includes a description file and the patch itself. |
363 | <literallayout class='monospaced'> | 379 | As an example, consider the build patches used with the |
364 | patches/mypatch.scc: | 380 | <filename>linux-yocto-4.12</filename> kernel as defined outside of |
365 | patch mypatch.patch | 381 | the recipe space (i.e. <filename>yocto-kernel-cache</filename>). |
382 | This Metadata consists of several files: | ||
383 | <filename>build.scc</filename> and a set of | ||
384 | <filename>*.patch</filename> files. | ||
385 | You can find these files in the <filename>patches/build</filename> | ||
386 | directory of the <filename>yocto-4.12</filename> branch in the | ||
387 | <filename>yocto-kernel-cache</filename> Git repository. | ||
388 | </para> | ||
366 | 389 | ||
367 | patches/mypatch.patch: | 390 | <para> |
368 | <replaceable>typical-patch</replaceable> | 391 | The following listings show the <filename>build.scc</filename> |
392 | file and part of the | ||
393 | <filename>modpost-mask-trivial-warnings.patch</filename> file: | ||
394 | <literallayout class='monospaced'> | ||
395 | patches/build/build.scc: | ||
396 | patch arm-serialize-build-targets.patch | ||
397 | patch powerpc-serialize-image-targets.patch | ||
398 | patch kbuild-exclude-meta-directory-from-distclean-processi.patch | ||
399 | |||
400 | # applied by kgit | ||
401 | # patch kbuild-add-meta-files-to-the-ignore-li.patch | ||
402 | |||
403 | patch modpost-mask-trivial-warnings.patch | ||
404 | patch menuconfig-check-lxdiaglog.sh-Allow-specification-of.patch | ||
405 | |||
406 | patches/build/modpost-mask-trivial-warnings.patch: | ||
407 | From bd48931bc142bdd104668f3a062a1f22600aae61 Mon Sep 17 00:00:00 2001 | ||
408 | From: Paul Gortmaker <paul.gortmaker@windriver.com> | ||
409 | Date: Sun, 25 Jan 2009 17:58:09 -0500 | ||
410 | Subject: [PATCH] modpost: mask trivial warnings | ||
411 | |||
412 | Newer HOSTCC will complain about various stdio fcns because | ||
413 | . | ||
414 | . | ||
415 | . | ||
416 | char *dump_write = NULL, *files_source = NULL; | ||
417 | int opt; | ||
418 | -- | ||
419 | 2.10.1 | ||
420 | |||
421 | generated by cgit v0.10.2 at 2017-09-28 15:23:23 (GMT) | ||
369 | </literallayout> | 422 | </literallayout> |
370 | You can create the typical <filename>.patch</filename> | 423 | The description file can include multiple patch statements where |
371 | file using <filename>diff -Nurp</filename> or | 424 | each statement handles a single patch. |
372 | <filename>git format-patch</filename>. | 425 | In the example <filename>build.scc</filename> file, five patch |
426 | statements exist for the five patches in the directory. | ||
373 | </para> | 427 | </para> |
374 | 428 | ||
375 | <para> | 429 | <para> |
376 | The description file can include multiple patch statements, | 430 | You can create a typical <filename>.patch</filename> file using |
377 | one per patch. | 431 | <filename>diff -Nurp</filename> or |
432 | <filename>git format-patch</filename> commands. | ||
433 | For information on how to create patches, see the | ||
434 | "<link linkend='using-devtool-to-patch-the-kernel'>Using <filename>devtool</filename> to Patch the Kernel</link>" | ||
435 | and | ||
436 | "<link linkend='using-traditional-kernel-development-to-patch-the-kernel'>Using Traditional Kernel Development to Patch the Kernel</link>" | ||
437 | sections. | ||
378 | </para> | 438 | </para> |
379 | </section> | 439 | </section> |
380 | 440 | ||
@@ -383,26 +443,23 @@ | |||
383 | 443 | ||
384 | <para> | 444 | <para> |
385 | Features are complex kernel Metadata types that consist | 445 | Features are complex kernel Metadata types that consist |
386 | of configuration fragments (<filename>kconf</filename>), patches | 446 | of configuration fragments, patches, and possibly other feature |
387 | (<filename>patch</filename>), and possibly other feature | 447 | description files. |
388 | description files (<filename>include</filename>). | 448 | As an example, consider the following generic listing: |
389 | </para> | ||
390 | |||
391 | <para> | ||
392 | Here is an example that shows a feature description file: | ||
393 | <literallayout class='monospaced'> | 449 | <literallayout class='monospaced'> |
394 | features/myfeature.scc | 450 | features/<replaceable>myfeature</replaceable>.scc |
395 | define KFEATURE_DESCRIPTION "Enable myfeature" | 451 | define KFEATURE_DESCRIPTION "Enable <replaceable>myfeature</replaceable>" |
396 | 452 | ||
397 | patch 0001-myfeature-core.patch | 453 | patch 0001-<replaceable>myfeature</replaceable>-core.patch |
398 | patch 0002-myfeature-interface.patch | 454 | patch 0002-<replaceable>myfeature</replaceable>-interface.patch |
399 | 455 | ||
400 | include cfg/myfeature_dependency.scc | 456 | include cfg/<replaceable>myfeature</replaceable>_dependency.scc |
401 | kconf non-hardware myfeature.cfg | 457 | kconf non-hardware <replaceable>myfeature</replaceable>.cfg |
402 | </literallayout> | 458 | </literallayout> |
403 | This example shows how the <filename>patch</filename> and | 459 | This example shows how the <filename>patch</filename> and |
404 | <filename>kconf</filename> commands are used as well as | 460 | <filename>kconf</filename> commands are used as well as |
405 | how an additional feature description file is included. | 461 | how an additional feature description file is included with |
462 | the <filename>include</filename> command. | ||
406 | </para> | 463 | </para> |
407 | 464 | ||
408 | <para> | 465 | <para> |
@@ -422,21 +479,47 @@ | |||
422 | <para> | 479 | <para> |
423 | A kernel type defines a high-level kernel policy by | 480 | A kernel type defines a high-level kernel policy by |
424 | aggregating non-hardware configuration fragments with | 481 | aggregating non-hardware configuration fragments with |
425 | patches you want to use when building a Linux kernels of a | 482 | patches you want to use when building a Linux kernel of a |
426 | specific type. | 483 | specific type (e.g. a real-time kernel). |
427 | Syntactically, kernel types are no different than features | 484 | Syntactically, kernel types are no different than features |
428 | as described in the "<link linkend='features'>Features</link>" | 485 | as described in the "<link linkend='features'>Features</link>" |
429 | section. | 486 | section. |
430 | The <filename>LINUX_KERNEL_TYPE</filename> variable in the kernel | 487 | The |
431 | recipe selects the kernel type. | 488 | <ulink url='&YOCTO_DOCS_REF_URL;#var-LINUX_KERNEL_TYPE'><filename>LINUX_KERNEL_TYPE</filename></ulink> |
432 | See the "<link linkend='using-kernel-metadata-in-a-recipe'>Using Kernel Metadata in a Recipe</link>" | 489 | variable in the kernel recipe selects the kernel type. |
433 | section for more information. | 490 | For example, in the <filename>linux-yocto_4.12.bb</filename> |
491 | kernel recipe found in | ||
492 | <filename>poky/meta/recipes-kernel/linux</filename>, a | ||
493 | <ulink url='&YOCTO_DOCS_BB_URL;#require-inclusion'><filename>require</filename></ulink> | ||
494 | directive includes the | ||
495 | <filename>poky/meta/recipes-kernel/linux/linux-yocto.inc</filename> | ||
496 | file, which has the following statement that defines the default | ||
497 | kernel type: | ||
498 | <literallayout class='monospaced'> | ||
499 | LINUX_KERNEL_TYPE ??= "standard" | ||
500 | </literallayout> | ||
501 | </para> | ||
502 | |||
503 | <para> | ||
504 | Another example would be the real-time kernel (i.e. | ||
505 | <filename>linux-yocto-rt_4.12.bb</filename>). | ||
506 | This kernel recipe directly sets the kernel type as follows: | ||
507 | <literallayout class='monospaced'> | ||
508 | LINUX_KERNEL_TYPE = "preempt-rt" | ||
509 | </literallayout> | ||
510 | <note> | ||
511 | You can find kernel recipes in the | ||
512 | <filename>meta/recipes-kernel/linux</filename> directory of the | ||
513 | <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink> | ||
514 | (e.g. <filename>poky/meta/recipes-kernel/linux/linux-yocto_4.12.bb</filename>). | ||
515 | See the "<link linkend='using-kernel-metadata-in-a-recipe'>Using Kernel Metadata in a Recipe</link>" | ||
516 | section for more information. | ||
517 | </note> | ||
434 | </para> | 518 | </para> |
435 | 519 | ||
436 | <para> | 520 | <para> |
437 | As an example, the <filename>linux-yocto-3.19</filename> | 521 | Three kernel types ("standard", "tiny", and "preempt-rt") are |
438 | tree defines three kernel types: "standard", | 522 | supported for Linux Yocto kernels: |
439 | "tiny", and "preempt-rt": | ||
440 | <itemizedlist> | 523 | <itemizedlist> |
441 | <listitem><para>"standard": | 524 | <listitem><para>"standard": |
442 | Includes the generic Linux kernel policy of the Yocto | 525 | Includes the generic Linux kernel policy of the Yocto |
@@ -463,29 +546,40 @@ | |||
463 | </para> | 546 | </para> |
464 | 547 | ||
465 | <para> | 548 | <para> |
466 | The "standard" kernel type is defined by | 549 | For any given kernel type, the Metadata is defined by the |
467 | <filename>standard.scc</filename>: | 550 | <filename>.scc</filename> (e.g. <filename>standard.scc</filename>). |
551 | Here is a partial listing for the <filename>standard.scc</filename> | ||
552 | file, which is found in the <filename>ktypes/standard</filename> | ||
553 | directory of the <filename>yocto-kernel-cache</filename> Git | ||
554 | repository: | ||
468 | <literallayout class='monospaced'> | 555 | <literallayout class='monospaced'> |
469 | # Include this kernel type fragment to get the standard features and | 556 | # Include this kernel type fragment to get the standard features and |
470 | # configuration values. | 557 | # configuration values. |
471 | 558 | ||
472 | # Include all standard features | 559 | # Note: if only the features are desired, but not the configuration |
473 | include standard-nocfg.scc | 560 | # then this should be included as: |
561 | # include ktypes/standard/standard.scc nocfg | ||
562 | # if no chained configuration is desired, include it as: | ||
563 | # include ktypes/standard/standard.scc nocfg inherit | ||
564 | |||
565 | |||
566 | |||
567 | include ktypes/base/base.scc | ||
568 | branch standard | ||
474 | 569 | ||
475 | kconf non-hardware standard.cfg | 570 | kconf non-hardware standard.cfg |
476 | 571 | ||
477 | # individual cfg block section | 572 | include features/kgdb/kgdb.scc |
478 | include cfg/fs/devtmpfs.scc | 573 | . |
479 | include cfg/fs/debugfs.scc | 574 | . |
480 | include cfg/fs/btrfs.scc | 575 | . |
481 | include cfg/fs/ext2.scc | ||
482 | include cfg/fs/ext3.scc | ||
483 | include cfg/fs/ext4.scc | ||
484 | 576 | ||
485 | include cfg/net/ipv6.scc | ||
486 | include cfg/net/ip_nf.scc | ||
487 | include cfg/net/ip6_nf.scc | 577 | include cfg/net/ip6_nf.scc |
488 | include cfg/net/bridge.scc | 578 | include cfg/net/bridge.scc |
579 | |||
580 | include cfg/systemd.scc | ||
581 | |||
582 | include features/rfkill/rfkill.scc | ||
489 | </literallayout> | 583 | </literallayout> |
490 | </para> | 584 | </para> |
491 | 585 | ||
@@ -531,9 +625,9 @@ | |||
531 | </para> | 625 | </para> |
532 | 626 | ||
533 | <para> | 627 | <para> |
534 | This section provides a BSP description structural overview along | 628 | This section overviews the BSP description structure, the |
535 | with aggregation concepts as well as a detailed example using | 629 | aggregation concepts, and presents a detailed example using |
536 | a BSP supported by the Yocto Project (i.e. Minnow Board). | 630 | a BSP supported by the Yocto Project (i.e. BeagleBone Board). |
537 | </para> | 631 | </para> |
538 | 632 | ||
539 | <section id='bsp-description-file-overview'> | 633 | <section id='bsp-description-file-overview'> |
@@ -541,7 +635,7 @@ | |||
541 | 635 | ||
542 | <para> | 636 | <para> |
543 | For simplicity, consider the following top-level BSP | 637 | For simplicity, consider the following top-level BSP |
544 | description file. | 638 | description files for the BeagleBone board. |
545 | Top-level BSP descriptions files employ both a structure | 639 | Top-level BSP descriptions files employ both a structure |
546 | and naming convention for consistency. | 640 | and naming convention for consistency. |
547 | The naming convention for the file is as follows: | 641 | The naming convention for the file is as follows: |
@@ -549,31 +643,30 @@ | |||
549 | <replaceable>bsp_name</replaceable>-<replaceable>kernel_type</replaceable>.scc | 643 | <replaceable>bsp_name</replaceable>-<replaceable>kernel_type</replaceable>.scc |
550 | </literallayout> | 644 | </literallayout> |
551 | Here are some example top-level BSP filenames for the | 645 | Here are some example top-level BSP filenames for the |
552 | Minnow Board BSP, which is supported by the Yocto Project: | 646 | BeagleBone Board BSP, which is supported by the Yocto Project: |
553 | <literallayout class='monospaced'> | 647 | <literallayout class='monospaced'> |
554 | minnow-standard.scc | 648 | beaglebone-standard.scc |
555 | minnow-preempt-rt.scc | 649 | beaglebone-preempt-rt.scc |
556 | minnow-tiny.scc | ||
557 | </literallayout> | 650 | </literallayout> |
558 | Each file uses the BSP name followed by the kernel type. | 651 | Each file uses the BSP name followed by the kernel type. |
559 | </para> | 652 | </para> |
560 | 653 | ||
561 | <para> | 654 | <para> |
562 | is simple BSP description file whose name has the | 655 | Examine the <filename>beaglebone-standard.scc</filename> |
563 | form | 656 | file: |
564 | <replaceable>mybsp</replaceable><filename>-standard</filename> | ||
565 | and supports the <replaceable>mybsp</replaceable> machine using | ||
566 | a standard kernel: | ||
567 | <literallayout class='monospaced'> | 657 | <literallayout class='monospaced'> |
568 | define KMACHINE <replaceable>mybsp</replaceable> | 658 | define KMACHINE beaglebone |
569 | define KTYPE standard | 659 | define KTYPE standard |
570 | define KARCH i386 | 660 | define KARCH arm |
571 | 661 | ||
572 | include ktypes/standard | 662 | include ktypes/standard/standard.scc |
663 | branch beaglebone | ||
573 | 664 | ||
574 | include <replaceable>mybsp</replaceable>.scc | 665 | include beaglebone.scc |
575 | 666 | ||
576 | kconf hardware <replaceable>mybsp</replaceable>-<replaceable>extra</replaceable>.cfg | 667 | # default policy for standard kernels |
668 | include features/latencytop/latencytop.scc | ||
669 | include features/profiling/profiling.scc | ||
577 | </literallayout> | 670 | </literallayout> |
578 | Every top-level BSP description file should define the | 671 | Every top-level BSP description file should define the |
579 | <ulink url='&YOCTO_DOCS_REF_URL;#var-KMACHINE'><filename>KMACHINE</filename></ulink>, | 672 | <ulink url='&YOCTO_DOCS_REF_URL;#var-KMACHINE'><filename>KMACHINE</filename></ulink>, |
@@ -583,19 +676,20 @@ | |||
583 | These variables allow the OpenEmbedded build system to identify | 676 | These variables allow the OpenEmbedded build system to identify |
584 | the description as meeting the criteria set by the recipe being | 677 | the description as meeting the criteria set by the recipe being |
585 | built. | 678 | built. |
586 | This simple example supports the "mybsp" machine for the "standard" | 679 | This example supports the "beaglebone" machine for the |
587 | kernel and the "i386" architecture. | 680 | "standard" kernel and the "arm" architecture. |
588 | </para> | 681 | </para> |
589 | 682 | ||
590 | <para> | 683 | <para> |
591 | Be aware that a hard link between the | 684 | Be aware that a hard link between the |
592 | <filename>KTYPE</filename> variable and a kernel type description | 685 | <filename>KTYPE</filename> variable and a kernel type |
593 | file does not exist. | 686 | description file does not exist. |
594 | Thus, if you do not have kernel types defined in your kernel | 687 | Thus, if you do not have the kernel type defined in your kernel |
595 | Metadata, you only need to ensure that the kernel recipe's | 688 | Metadata as it is here, you only need to ensure that the |
596 | <ulink url='&YOCTO_DOCS_REF_URL;#var-LINUX_KERNEL_TYPE'><filename>LINUX_KERNEL_TYPE</filename></ulink> | 689 | <ulink url='&YOCTO_DOCS_REF_URL;#var-LINUX_KERNEL_TYPE'><filename>LINUX_KERNEL_TYPE</filename></ulink> |
597 | variable and the <filename>KTYPE</filename> variable in the | 690 | variable in the kernel recipe and the |
598 | BSP description file match. | 691 | <filename>KTYPE</filename> variable in the BSP descriptionn |
692 | file match. | ||
599 | <note> | 693 | <note> |
600 | Future versions of the tooling make the specification of | 694 | Future versions of the tooling make the specification of |
601 | <filename>KTYPE</filename> in the BSP optional. | 695 | <filename>KTYPE</filename> in the BSP optional. |
@@ -608,13 +702,12 @@ | |||
608 | "standard". | 702 | "standard". |
609 | In the previous example, this is done using the following: | 703 | In the previous example, this is done using the following: |
610 | <literallayout class='monospaced'> | 704 | <literallayout class='monospaced'> |
611 | include ktypes/standard | 705 | include ktypes/standard/standard.scc |
612 | </literallayout> | 706 | </literallayout> |
613 | In the previous example, <filename>ktypes/standard.scc</filename> | 707 | This file aggregates all the configuration fragments, patches, |
614 | aggregates all the configuration fragments, patches, and | 708 | and features that make up your standard kernel policy. |
615 | features that make up your standard kernel policy. | 709 | See the "<link linkend='kernel-types'>Kernel Types</link>" |
616 | See the "<link linkend='kernel-types'>Kernel Types</link>" section | 710 | section for more information. |
617 | for more information. | ||
618 | </para> | 711 | </para> |
619 | 712 | ||
620 | <para> | 713 | <para> |
@@ -623,6 +716,10 @@ | |||
623 | <literallayout class='monospaced'> | 716 | <literallayout class='monospaced'> |
624 | include <replaceable>mybsp</replaceable>.scc | 717 | include <replaceable>mybsp</replaceable>.scc |
625 | </literallayout> | 718 | </literallayout> |
719 | You can see that in the BeagleBone example with the following: | ||
720 | <literallayout class='monospaced'> | ||
721 | include beaglebone.scc | ||
722 | </literallayout> | ||
626 | For information on how to break a complete | 723 | For information on how to break a complete |
627 | <filename>.config</filename> file into the various | 724 | <filename>.config</filename> file into the various |
628 | configuration fragments, see the | 725 | configuration fragments, see the |
@@ -637,6 +734,23 @@ | |||
637 | <literallayout class='monospaced'> | 734 | <literallayout class='monospaced'> |
638 | kconf hardware <replaceable>mybsp</replaceable>-<replaceable>extra</replaceable>.cfg | 735 | kconf hardware <replaceable>mybsp</replaceable>-<replaceable>extra</replaceable>.cfg |
639 | </literallayout> | 736 | </literallayout> |
737 | The BeagleBone example does not include these types of | ||
738 | configurations. | ||
739 | However, the Malta 32-bit board does ("mti-malta32"). | ||
740 | Here is the <filename>mti-malta32-le-standard.scc</filename> | ||
741 | file: | ||
742 | <literallayout class='monospaced'> | ||
743 | define KMACHINE mti-malta32-le | ||
744 | define KMACHINE qemumipsel | ||
745 | define KTYPE standard | ||
746 | define KARCH mips | ||
747 | |||
748 | include ktypes/standard/standard.scc | ||
749 | branch mti-malta32 | ||
750 | |||
751 | include mti-malta32.scc | ||
752 | kconf hardware mti-malta32-le.cfg | ||
753 | </literallayout> | ||
640 | </para> | 754 | </para> |
641 | </section> | 755 | </section> |
642 | 756 | ||
@@ -647,14 +761,15 @@ | |||
647 | Many real-world examples are more complex. | 761 | Many real-world examples are more complex. |
648 | Like any other <filename>.scc</filename> file, BSP | 762 | Like any other <filename>.scc</filename> file, BSP |
649 | descriptions can aggregate features. | 763 | descriptions can aggregate features. |
650 | Consider the Minnow BSP definition from the | 764 | Consider the Minnow BSP definition given the |
651 | <filename>linux-yocto-4.4</filename> in the | 765 | <filename>linux-yocto-4.4</filename> branch of the |
652 | Yocto Project | 766 | <filename>yocto-kernel-cache</filename> (i.e. |
653 | <ulink url='&YOCTO_DOCS_REF_URL;#source-repositories'>Source Repositories</ulink> | 767 | <filename>yocto-kernel-cache/bsp/minnow/minnow.scc</filename>): |
654 | (i.e. | 768 | <note> |
655 | <filename>yocto-kernel-cache/bsp/minnow</filename>): | 769 | Although the Minnow Board BSP is unused, the Metadata |
770 | remains and is being used here just as an example. | ||
771 | </note> | ||
656 | <literallayout class='monospaced'> | 772 | <literallayout class='monospaced'> |
657 | minnow.scc: | ||
658 | include cfg/x86.scc | 773 | include cfg/x86.scc |
659 | include features/eg20t/eg20t.scc | 774 | include features/eg20t/eg20t.scc |
660 | include cfg/dmaengine.scc | 775 | include cfg/dmaengine.scc |
@@ -690,9 +805,8 @@ | |||
690 | "minnow" description files for the supported kernel types | 805 | "minnow" description files for the supported kernel types |
691 | (i.e. "standard", "preempt-rt", and "tiny"). | 806 | (i.e. "standard", "preempt-rt", and "tiny"). |
692 | Consider the "minnow" description for the "standard" kernel | 807 | Consider the "minnow" description for the "standard" kernel |
693 | type: | 808 | type (i.e. <filename>minnow-standard.scc</filename>: |
694 | <literallayout class='monospaced'> | 809 | <literallayout class='monospaced'> |
695 | minnow-standard.scc: | ||
696 | define KMACHINE minnow | 810 | define KMACHINE minnow |
697 | define KTYPE standard | 811 | define KTYPE standard |
698 | define KARCH i386 | 812 | define KARCH i386 |
@@ -727,9 +841,8 @@ | |||
727 | 841 | ||
728 | <para> | 842 | <para> |
729 | Now consider the "minnow" description for the "tiny" kernel | 843 | Now consider the "minnow" description for the "tiny" kernel |
730 | type: | 844 | type (i.e. <filename>minnow-tiny.scc</filename>: |
731 | <literallayout class='monospaced'> | 845 | <literallayout class='monospaced'> |
732 | minnow-tiny.scc: | ||
733 | define KMACHINE minnow | 846 | define KMACHINE minnow |
734 | define KTYPE tiny | 847 | define KTYPE tiny |
735 | define KARCH i386 | 848 | define KARCH i386 |
@@ -749,10 +862,12 @@ | |||
749 | 862 | ||
750 | <para> | 863 | <para> |
751 | Notice again the three critical variables: | 864 | Notice again the three critical variables: |
752 | <filename>KMACHINE</filename>, <filename>KTYPE</filename>, | 865 | <ulink url='&YOCTO_DOCS_REF_URL;#var-KMACHINE'><filename>KMACHINE</filename></ulink>, |
753 | and <filename>KARCH</filename>. | 866 | <ulink url='&YOCTO_DOCS_REF_URL;#var-KTYPE'><filename>KTYPE</filename></ulink>, |
754 | Of these variables, only the <filename>KTYPE</filename> has changed. | 867 | and |
755 | It is now set to "tiny". | 868 | <ulink url='&YOCTO_DOCS_REF_URL;#var-KARCH'><filename>KARCH</filename></ulink>. |
869 | Of these variables, only <filename>KTYPE</filename> | ||
870 | has changed to specify the "tiny" kernel type. | ||
756 | </para> | 871 | </para> |
757 | </section> | 872 | </section> |
758 | </section> | 873 | </section> |