diff options
-rw-r--r-- | documentation/bsp-guide/bsp.xml | 102 |
1 files changed, 54 insertions, 48 deletions
diff --git a/documentation/bsp-guide/bsp.xml b/documentation/bsp-guide/bsp.xml index 8223954f04..0159f48848 100644 --- a/documentation/bsp-guide/bsp.xml +++ b/documentation/bsp-guide/bsp.xml | |||
@@ -505,10 +505,10 @@ | |||
505 | </para> | 505 | </para> |
506 | 506 | ||
507 | <para> | 507 | <para> |
508 | These files append your specific changes to the kernel you are using. | 508 | These files append your specific changes to the main kernel recipe you are using. |
509 | </para> | 509 | </para> |
510 | <para> | 510 | <para> |
511 | For your BSP, you typically want to use an existing Yocto Project kernel found in the | 511 | For your BSP, you typically want to use an existing Yocto Project kernel recipe found in the |
512 | <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink> | 512 | <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink> |
513 | at <filename>meta/recipes-kernel/linux</filename>. | 513 | at <filename>meta/recipes-kernel/linux</filename>. |
514 | You can append your specific changes to the kernel recipe by using a | 514 | You can append your specific changes to the kernel recipe by using a |
@@ -516,22 +516,22 @@ | |||
516 | the <filename>meta-<bsp_name>/recipes-kernel/linux</filename> directory). | 516 | the <filename>meta-<bsp_name>/recipes-kernel/linux</filename> directory). |
517 | </para> | 517 | </para> |
518 | <para> | 518 | <para> |
519 | Suppose you are using the <filename>linux-yocto_3.2.bb</filename> recipe to build | 519 | Suppose you are using the <filename>linux-yocto_3.4.bb</filename> recipe to build |
520 | the kernel. | 520 | the kernel. |
521 | In other words, you have selected the kernel in your | 521 | In other words, you have selected the kernel in your |
522 | <filename><bsp_name>.conf</filename> file by adding the following statements: | 522 | <filename><bsp_name>.conf</filename> file by adding the following statements: |
523 | <literallayout class='monospaced'> | 523 | <literallayout class='monospaced'> |
524 | PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" | 524 | PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" |
525 | PREFERRED_VERSION_linux-yocto = "3.2%" | 525 | PREFERRED_VERSION_linux-yocto = "3.4%" |
526 | </literallayout> | 526 | </literallayout> |
527 | You would use the <filename>linux-yocto_3.2.bbappend</filename> file to append | 527 | You would use the <filename>linux-yocto_3.4.bbappend</filename> file to append |
528 | specific BSP settings to the kernel, thus configuring the kernel for your particular BSP. | 528 | specific BSP settings to the kernel, thus configuring the kernel for your particular BSP. |
529 | </para> | 529 | </para> |
530 | <para> | 530 | <para> |
531 | As an example, look at the existing Crown Bay BSP. | 531 | As an example, look at the existing Crown Bay BSP. |
532 | The append file used is: | 532 | The append file used is: |
533 | <literallayout class='monospaced'> | 533 | <literallayout class='monospaced'> |
534 | meta-crownbay/recipes-kernel/linux/linux-yocto_3.2.bbappend | 534 | meta-crownbay/recipes-kernel/linux/linux-yocto_3.4.bbappend |
535 | </literallayout> | 535 | </literallayout> |
536 | The following listing shows the file. | 536 | The following listing shows the file. |
537 | Be aware that the actual commit ID strings in this example listing might be different | 537 | Be aware that the actual commit ID strings in this example listing might be different |
@@ -558,7 +558,7 @@ | |||
558 | <trademark class='registered'>Intel</trademark> EMGD and the VESA graphics. | 558 | <trademark class='registered'>Intel</trademark> EMGD and the VESA graphics. |
559 | The build process, in this case, recognizes and uses only the statements that | 559 | The build process, in this case, recognizes and uses only the statements that |
560 | apply to the defined machine name - <filename>crownbay</filename> in this case. | 560 | apply to the defined machine name - <filename>crownbay</filename> in this case. |
561 | So, the applicable statements in the <filename>linux-yocto_3.2.bbappend</filename> | 561 | So, the applicable statements in the <filename>linux-yocto_3.4.bbappend</filename> |
562 | file are follows: | 562 | file are follows: |
563 | <literallayout class='monospaced'> | 563 | <literallayout class='monospaced'> |
564 | FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" | 564 | FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" |
@@ -570,41 +570,42 @@ | |||
570 | SRCREV_machine_pn-linux-yocto_crownbay ?= "48101e609711fcfe8d5e737a37a5a69f4bd57d9a" | 570 | SRCREV_machine_pn-linux-yocto_crownbay ?= "48101e609711fcfe8d5e737a37a5a69f4bd57d9a" |
571 | SRCREV_meta_pn-linux-yocto_crownbay ?= "5b4c9dc78b5ae607173cc3ddab9bce1b5f78129b" | 571 | SRCREV_meta_pn-linux-yocto_crownbay ?= "5b4c9dc78b5ae607173cc3ddab9bce1b5f78129b" |
572 | </literallayout> | 572 | </literallayout> |
573 | The append file defines <filename>crownbay</filename> as the compatible machine and | 573 | The append file defines <filename>crownbay</filename> as the |
574 | defines the <filename>KMACHINE</filename>. | 574 | <ulink url='&YOCTO_DOCS_REF_URL;#var-COMPATIBLE_MACHINE'><filename>COMPATIBLE_MACHINE</filename></ulink> |
575 | The file also points to some configuration fragments to use by setting the | 575 | and defines the <filename>KMACHINE</filename>. |
576 | <filename>KERNEL_FEATURES</filename> variable. | 576 | The file also uses the optional |
577 | The location for the configuration fragments is the kernel tree itself in the | 577 | <ulink url='&YOCTO_DOCS_REF_URL;#var-KBRANCH'><filename>KBRANCH</filename></ulink> variable |
578 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>build directory</ulink> | 578 | to ensure the build process uses the <filename>standard/default/crownbay</filename> |
579 | under <filename>linux/meta</filename>. | 579 | kernel branch. |
580 | Finally, the append file points to the specific commits in the | 580 | Finally, the append file points to the specific top commits in the |
581 | <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink> Git | 581 | <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink> Git |
582 | repository and the <filename>meta</filename> Git repository branches to identify the | 582 | repository and the <filename>meta</filename> Git repository branches to identify the |
583 | exact kernel needed to build the Crown Bay BSP. | 583 | exact kernel needed to build the Crown Bay BSP. |
584 | </para> | 584 | </para> |
585 | |||
585 | <para> | 586 | <para> |
586 | One thing missing in this particular BSP, which you will typically need when | 587 | One thing missing in this particular BSP, which you will typically need when |
587 | developing a BSP, is the kernel configuration file (<filename>.config</filename>) for your BSP. | 588 | developing a BSP, is the kernel configuration file (<filename>.config</filename>) for your BSP. |
588 | When developing a BSP, you probably have a kernel configuration file or a set of kernel | 589 | When developing a BSP, you probably have a kernel configuration file or a set of kernel |
589 | configuration files that, when taken together, define the kernel configuration for your BSP. | 590 | configuration files that, when taken together, define the kernel configuration for your BSP. |
590 | You can accomplish this definition by putting the configurations in a file or a set of files | 591 | You can accomplish this definition by putting the configurations in a file or a set of files |
591 | inside a directory located at the same level as your append file and having the same name | 592 | inside a directory located at the same level as your kernel's append file and having the same |
592 | as the kernel. | 593 | name as the kernel's main recipe file. |
593 | With all these conditions met simply reference those files in a | 594 | With all these conditions met, simply reference those files in a |
594 | <filename>SRC_URI</filename> statement in the append file. | 595 | <filename>SRC_URI</filename> statement in the append file. |
595 | </para> | 596 | </para> |
597 | |||
596 | <para> | 598 | <para> |
597 | For example, suppose you had a set of configuration options in a file called | 599 | For example, suppose you had a set of configuration options in a file called |
598 | <filename>myconfig</filename>. | 600 | <filename>myconfig.cfg</filename>. |
599 | If you put that file inside a directory named | 601 | If you put that file inside a directory named <filename>/linux-yocto</filename> and then added |
600 | <filename>/linux-yocto</filename> and then added | ||
601 | a <filename>SRC_URI</filename> statement such as the following to the append file, | 602 | a <filename>SRC_URI</filename> statement such as the following to the append file, |
602 | those configuration | 603 | those configuration options will be picked up and applied when the kernel is built. |
603 | options will be picked up and applied when the kernel is built. | ||
604 | <literallayout class='monospaced'> | 604 | <literallayout class='monospaced'> |
605 | SRC_URI += "file://myconfig" | 605 | SRC_URI += "file://myconfig.cfg" |
606 | </literallayout> | 606 | </literallayout> |
607 | </para> | 607 | </para> |
608 | |||
608 | <para> | 609 | <para> |
609 | As mentioned earlier, you can group related configurations into multiple files and | 610 | As mentioned earlier, you can group related configurations into multiple files and |
610 | name them all in the <filename>SRC_URI</filename> statement as well. | 611 | name them all in the <filename>SRC_URI</filename> statement as well. |
@@ -612,11 +613,12 @@ | |||
612 | into their own files and add those by using a <filename>SRC_URI</filename> statement like the | 613 | into their own files and add those by using a <filename>SRC_URI</filename> statement like the |
613 | following in your append file: | 614 | following in your append file: |
614 | <literallayout class='monospaced'> | 615 | <literallayout class='monospaced'> |
615 | SRC_URI += "file://myconfig \ | 616 | SRC_URI += "file://myconfig.cfg \ |
616 | file://eth.cfg \ | 617 | file://eth.cfg \ |
617 | file://gfx.cfg" | 618 | file://gfx.cfg" |
618 | </literallayout> | 619 | </literallayout> |
619 | </para> | 620 | </para> |
621 | |||
620 | <para> | 622 | <para> |
621 | The <filename>FILESEXTRAPATHS</filename> variable is in boilerplate form in the | 623 | The <filename>FILESEXTRAPATHS</filename> variable is in boilerplate form in the |
622 | previous example in order to make it easy to do that. | 624 | previous example in order to make it easy to do that. |
@@ -625,32 +627,36 @@ | |||
625 | The <filename>FILESEXTRAPATHS</filename> variable enables the build process to | 627 | The <filename>FILESEXTRAPATHS</filename> variable enables the build process to |
626 | find those configuration files. | 628 | find those configuration files. |
627 | </para> | 629 | </para> |
630 | |||
628 | <note> | 631 | <note> |
629 | <para> | 632 | <para> |
630 | Other methods exist to accomplish grouping and defining configuration options. | 633 | Other methods exist to accomplish grouping and defining configuration options. |
631 | For example, if you are working with a local clone of the kernel repository, | 634 | For example, if you are working with a local clone of the kernel repository, |
632 | you could checkout the kernel's <filename>meta</filename> branch, make your changes, | 635 | you could checkout the kernel's <filename>meta</filename> branch, make your changes, |
633 | and then push the changes to the local bare clone of the kernel. | 636 | and then push the changes to the local bare clone of the kernel. |
634 | The result is that you directly add configuration options to the | 637 | The result is that you directly add configuration options to the |
635 | <filename>meta</filename> branch for your BSP. | 638 | <filename>meta</filename> branch for your BSP. |
636 | The configuration options will likely end up in that location anyway if the BSP gets | 639 | The configuration options will likely end up in that location anyway if the BSP gets |
637 | added to the Yocto Project. | 640 | added to the Yocto Project. |
638 | For an example showing how to change the BSP configuration, see the | 641 | For an example showing how to change the BSP configuration, see the |
639 | "<ulink url='&YOCTO_DOCS_DEV_URL;#changing-the-bsp-configuration'>Changing the BSP Configuration</ulink>" | 642 | "<ulink url='&YOCTO_DOCS_DEV_URL;#changing-the-bsp-configuration'>Changing the BSP Configuration</ulink>" |
640 | section in the Yocto Project Development Manual. | 643 | section in the Yocto Project Development Manual. |
641 | For a better understanding of working with a local clone of the kernel repository | 644 | For a better understanding of working with a local clone of the kernel repository |
642 | and a local bare clone of the kernel, see the | 645 | and a local bare clone of the kernel, see the |
643 | "<ulink url='&YOCTO_DOCS_DEV_URL;#modifying-the-kernel-source-code'>Modifying the Kernel | 646 | "<ulink url='&YOCTO_DOCS_DEV_URL;#modifying-the-kernel-source-code'>Modifying the Kernel |
644 | Source Code</ulink>" section also in the Yocto Project Development Manual.</para> | 647 | Source Code</ulink>" section also in the Yocto Project Development Manual. |
648 | </para> | ||
649 | |||
645 | <para> | 650 | <para> |
646 | In general, however, the Yocto Project maintainers take care of moving the | 651 | In general, however, the Yocto Project maintainers take care of moving the |
647 | <filename>SRC_URI</filename>-specified | 652 | <filename>SRC_URI</filename>-specified |
648 | configuration options to the kernel's <filename>meta</filename> branch. | 653 | configuration options to the kernel's <filename>meta</filename> branch. |
649 | Not only is it easier for BSP developers to not have to worry about putting those | 654 | Not only is it easier for BSP developers to not have to worry about putting those |
650 | configurations in the branch, but having the maintainers do it allows them to apply | 655 | configurations in the branch, but having the maintainers do it allows them to apply |
651 | 'global' knowledge about the kinds of common configuration options multiple BSPs in | 656 | 'global' knowledge about the kinds of common configuration options multiple BSPs in |
652 | the tree are typically using. | 657 | the tree are typically using. |
653 | This allows for promotion of common configurations into common features.</para> | 658 | This allows for promotion of common configurations into common features. |
659 | </para> | ||
654 | </note> | 660 | </note> |
655 | </section> | 661 | </section> |
656 | </section> | 662 | </section> |