diff options
Diffstat (limited to 'documentation/kernel-dev/kernel-dev-common.xml')
-rw-r--r-- | documentation/kernel-dev/kernel-dev-common.xml | 528 |
1 files changed, 522 insertions, 6 deletions
diff --git a/documentation/kernel-dev/kernel-dev-common.xml b/documentation/kernel-dev/kernel-dev-common.xml index 28bedd1785..7f61b434cd 100644 --- a/documentation/kernel-dev/kernel-dev-common.xml +++ b/documentation/kernel-dev/kernel-dev-common.xml | |||
@@ -900,8 +900,8 @@ | |||
900 | <para> | 900 | <para> |
901 | For a detailed example showing how to configure the kernel, | 901 | For a detailed example showing how to configure the kernel, |
902 | see the | 902 | see the |
903 | "<ulink url='&YOCTO_DOCS_DEV_URL;#configuring-the-kernel'>Configuring the Kernel</ulink>" | 903 | "<link linkend='configuring-the-kernel'>Configuring the Kernel</link>" |
904 | section in the Yocto Project Development Manual. | 904 | section. |
905 | </para> | 905 | </para> |
906 | </section> | 906 | </section> |
907 | 907 | ||
@@ -1445,6 +1445,522 @@ | |||
1445 | </para> | 1445 | </para> |
1446 | </section> | 1446 | </section> |
1447 | 1447 | ||
1448 | |||
1449 | |||
1450 | |||
1451 | |||
1452 | |||
1453 | |||
1454 | |||
1455 | |||
1456 | |||
1457 | |||
1458 | |||
1459 | |||
1460 | |||
1461 | |||
1462 | |||
1463 | |||
1464 | |||
1465 | |||
1466 | |||
1467 | |||
1468 | |||
1469 | |||
1470 | |||
1471 | |||
1472 | |||
1473 | |||
1474 | |||
1475 | |||
1476 | <section id='configuring-the-kernel'> | ||
1477 | <title>Configuring the Kernel</title> | ||
1478 | |||
1479 | <para> | ||
1480 | Configuring the Yocto Project kernel consists of making sure the | ||
1481 | <filename>.config</filename> file has all the right information | ||
1482 | in it for the image you are building. | ||
1483 | You can use the <filename>menuconfig</filename> tool and | ||
1484 | configuration fragments to make sure your | ||
1485 | <filename>.config</filename> file is just how you need it. | ||
1486 | You can also save known configurations in a | ||
1487 | <filename>defconfig</filename> file that the build system can use | ||
1488 | for kernel configuration. | ||
1489 | </para> | ||
1490 | |||
1491 | <para> | ||
1492 | This section describes how to use <filename>menuconfig</filename>, | ||
1493 | create and use configuration fragments, and how to interactively | ||
1494 | modify your <filename>.config</filename> file to create the | ||
1495 | leanest kernel configuration file possible. | ||
1496 | </para> | ||
1497 | |||
1498 | <para> | ||
1499 | For more information on kernel configuration, see the | ||
1500 | "<link linkend='changing-the-configuration'>Changing the Configuration</link>" | ||
1501 | section. | ||
1502 | </para> | ||
1503 | |||
1504 | <section id='using-menuconfig'> | ||
1505 | <title>Using <filename>menuconfig</filename></title> | ||
1506 | |||
1507 | <para> | ||
1508 | The easiest way to define kernel configurations is to set them through the | ||
1509 | <filename>menuconfig</filename> tool. | ||
1510 | This tool provides an interactive method with which | ||
1511 | to set kernel configurations. | ||
1512 | For general information on <filename>menuconfig</filename>, see | ||
1513 | <ulink url='http://en.wikipedia.org/wiki/Menuconfig'></ulink>. | ||
1514 | </para> | ||
1515 | |||
1516 | <para> | ||
1517 | To use the <filename>menuconfig</filename> tool in the Yocto Project development | ||
1518 | environment, you must launch it using BitBake. | ||
1519 | Thus, the environment must be set up using the | ||
1520 | <ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink> | ||
1521 | script found in the | ||
1522 | <ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>. | ||
1523 | You must also be sure of the state of your build in the | ||
1524 | <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>. | ||
1525 | The following commands run <filename>menuconfig</filename> | ||
1526 | assuming the Source Directory's top-level folder is | ||
1527 | <filename>~/poky</filename>: | ||
1528 | <literallayout class='monospaced'> | ||
1529 | $ cd poky | ||
1530 | $ source oe-init-build-env | ||
1531 | $ bitbake linux-yocto -c kernel_configme -f | ||
1532 | $ bitbake linux-yocto -c menuconfig | ||
1533 | </literallayout> | ||
1534 | Once <filename>menuconfig</filename> comes up, its standard | ||
1535 | interface allows you to interactively examine and configure | ||
1536 | all the kernel configuration parameters. | ||
1537 | After making your changes, simply exit the tool and save your | ||
1538 | changes to create an updated version of the | ||
1539 | <filename>.config</filename> configuration file. | ||
1540 | </para> | ||
1541 | |||
1542 | <para> | ||
1543 | Consider an example that configures the <filename>linux-yocto-3.14</filename> | ||
1544 | kernel. | ||
1545 | The OpenEmbedded build system recognizes this kernel as | ||
1546 | <filename>linux-yocto</filename>. | ||
1547 | Thus, the following commands from the shell in which you previously sourced the | ||
1548 | environment initialization script cleans the shared state cache and the | ||
1549 | <ulink url='&YOCTO_DOCS_REF_URL;#var-WORKDIR'><filename>WORKDIR</filename></ulink> | ||
1550 | directory and then runs <filename>menuconfig</filename>: | ||
1551 | <literallayout class='monospaced'> | ||
1552 | $ bitbake linux-yocto -c menuconfig | ||
1553 | </literallayout> | ||
1554 | </para> | ||
1555 | |||
1556 | <para> | ||
1557 | Once <filename>menuconfig</filename> launches, use the interface | ||
1558 | to navigate through the selections to find the configuration settings in | ||
1559 | which you are interested. | ||
1560 | For example, consider the <filename>CONFIG_SMP</filename> configuration setting. | ||
1561 | You can find it at <filename>Processor Type and Features</filename> under | ||
1562 | the configuration selection <filename>Symmetric Multi-processing Support</filename>. | ||
1563 | After highlighting the selection, use the arrow keys to select or deselect | ||
1564 | the setting. | ||
1565 | When you are finished with all your selections, exit out and save them. | ||
1566 | </para> | ||
1567 | |||
1568 | <para> | ||
1569 | Saving the selections updates the <filename>.config</filename> configuration file. | ||
1570 | This is the file that the OpenEmbedded build system uses to configure the | ||
1571 | kernel during the build. | ||
1572 | You can find and examine this file in the Build Directory in | ||
1573 | <filename>tmp/work/</filename>. | ||
1574 | The actual <filename>.config</filename> is located in the area where the | ||
1575 | specific kernel is built. | ||
1576 | For example, if you were building a Linux Yocto kernel based on the | ||
1577 | Linux 3.14 kernel and you were building a QEMU image targeted for | ||
1578 | <filename>x86</filename> architecture, the | ||
1579 | <filename>.config</filename> file would be located here: | ||
1580 | <literallayout class='monospaced'> | ||
1581 | poky/build/tmp/work/qemux86-poky-linux/linux-yocto-3.14.11+git1+84f... | ||
1582 | ...656ed30-r1/linux-qemux86-standard-build | ||
1583 | </literallayout> | ||
1584 | <note> | ||
1585 | The previous example directory is artificially split and many of the characters | ||
1586 | in the actual filename are omitted in order to make it more readable. | ||
1587 | Also, depending on the kernel you are using, the exact pathname | ||
1588 | for <filename>linux-yocto-3.14...</filename> might differ. | ||
1589 | </note> | ||
1590 | </para> | ||
1591 | |||
1592 | <para> | ||
1593 | Within the <filename>.config</filename> file, you can see the kernel settings. | ||
1594 | For example, the following entry shows that symmetric multi-processor support | ||
1595 | is not set: | ||
1596 | <literallayout class='monospaced'> | ||
1597 | # CONFIG_SMP is not set | ||
1598 | </literallayout> | ||
1599 | </para> | ||
1600 | |||
1601 | <para> | ||
1602 | A good method to isolate changed configurations is to use a combination of the | ||
1603 | <filename>menuconfig</filename> tool and simple shell commands. | ||
1604 | Before changing configurations with <filename>menuconfig</filename>, copy the | ||
1605 | existing <filename>.config</filename> and rename it to something else, | ||
1606 | use <filename>menuconfig</filename> to make | ||
1607 | as many changes as you want and save them, then compare the renamed configuration | ||
1608 | file against the newly created file. | ||
1609 | You can use the resulting differences as your base to create configuration fragments | ||
1610 | to permanently save in your kernel layer. | ||
1611 | <note> | ||
1612 | Be sure to make a copy of the <filename>.config</filename> and don't just | ||
1613 | rename it. | ||
1614 | The build system needs an existing <filename>.config</filename> | ||
1615 | from which to work. | ||
1616 | </note> | ||
1617 | </para> | ||
1618 | </section> | ||
1619 | |||
1620 | <section id='creating-a-defconfig-file'> | ||
1621 | <title>Creating a <filename>defconfig</filename> File</title> | ||
1622 | |||
1623 | <para> | ||
1624 | A <filename>defconfig</filename> file is simply a | ||
1625 | <filename>.config</filename> renamed to "defconfig". | ||
1626 | You can use a <filename>defconfig</filename> file | ||
1627 | to retain a known set of kernel configurations from which the | ||
1628 | OpenEmbedded build system can draw to create the final | ||
1629 | <filename>.config</filename> file. | ||
1630 | <note> | ||
1631 | Out-of-the-box, the Yocto Project never ships a | ||
1632 | <filename>defconfig</filename> or | ||
1633 | <filename>.config</filename> file. | ||
1634 | The OpenEmbedded build system creates the final | ||
1635 | <filename>.config</filename> file used to configure the | ||
1636 | kernel. | ||
1637 | </note> | ||
1638 | </para> | ||
1639 | |||
1640 | <para> | ||
1641 | To create a <filename>defconfig</filename>, start with a | ||
1642 | complete, working Linux kernel <filename>.config</filename> | ||
1643 | file. | ||
1644 | Copy that file to the appropriate | ||
1645 | <filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PN'><filename>PN</filename></ulink><filename>}</filename> | ||
1646 | directory in your layer's | ||
1647 | <filename>recipes-kernel/linux</filename> directory, and rename | ||
1648 | the copied file to "defconfig". | ||
1649 | Then, add the following lines to the linux-yocto | ||
1650 | <filename>.bbappend</filename> file in your layer: | ||
1651 | <literallayout class='monospaced'> | ||
1652 | FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" | ||
1653 | SRC_URI += "file://defconfig" | ||
1654 | </literallayout> | ||
1655 | The | ||
1656 | <ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink> | ||
1657 | tells the build system how to search for the file, while the | ||
1658 | <ulink url='&YOCTO_DOCS_REF_URL;#var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></ulink> | ||
1659 | extends the | ||
1660 | <ulink url='&YOCTO_DOCS_REF_URL;#var-FILESPATH'><filename>FILESPATH</filename></ulink> | ||
1661 | variable (search directories) to include the | ||
1662 | <filename>${PN}</filename> directory you created to hold the | ||
1663 | configuration changes. | ||
1664 | <note> | ||
1665 | The build system applies the configurations from the | ||
1666 | <filename>defconfig</filename> file before applying any | ||
1667 | subsequent configuration fragments. | ||
1668 | The final kernel configuration is a combination of the | ||
1669 | configurations in the <filename>defconfig</filename> | ||
1670 | file and any configuration fragments you provide. | ||
1671 | You need to realize that if you have any configuration | ||
1672 | fragments, the build system applies these on top of and | ||
1673 | after applying the existing defconfig file configurations. | ||
1674 | </note> | ||
1675 | For more information on configuring the kernel, see the | ||
1676 | "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#changing-the-configuration'>Changing the Configuration</ulink>" | ||
1677 | and | ||
1678 | "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#generating-configuration-files'>Generating Configuration Files</ulink>" | ||
1679 | sections, both in the Yocto Project Linux Kernel Development | ||
1680 | Manual. | ||
1681 | </para> | ||
1682 | </section> | ||
1683 | |||
1684 | <section id='creating-config-fragments'> | ||
1685 | <title>Creating Configuration Fragments</title> | ||
1686 | |||
1687 | <para> | ||
1688 | Configuration fragments are simply kernel options that appear in a file | ||
1689 | placed where the OpenEmbedded build system can find and apply them. | ||
1690 | Syntactically, the configuration statement is identical to what would appear | ||
1691 | in the <filename>.config</filename> file, which is in the | ||
1692 | <ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>: | ||
1693 | <literallayout class='monospaced'> | ||
1694 | tmp/work/<replaceable>arch</replaceable>-poky-linux/linux-yocto-<replaceable>release_specific_string</replaceable>/linux-<replaceable>arch</replaceable>-<replaceable>build_type</replaceable> | ||
1695 | </literallayout> | ||
1696 | </para> | ||
1697 | |||
1698 | <para> | ||
1699 | It is simple to create a configuration fragment. | ||
1700 | For example, issuing the following from the shell creates a configuration fragment | ||
1701 | file named <filename>my_smp.cfg</filename> that enables multi-processor support | ||
1702 | within the kernel: | ||
1703 | <literallayout class='monospaced'> | ||
1704 | $ echo "CONFIG_SMP=y" >> my_smp.cfg | ||
1705 | </literallayout> | ||
1706 | <note> | ||
1707 | All configuration fragment files must use the | ||
1708 | <filename>.cfg</filename> extension in order for the | ||
1709 | OpenEmbedded build system to recognize them as a | ||
1710 | configuration fragment. | ||
1711 | </note> | ||
1712 | </para> | ||
1713 | |||
1714 | <para> | ||
1715 | Where do you put your configuration fragment files? | ||
1716 | You can place these files in the same area pointed to by | ||
1717 | <ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink>. | ||
1718 | The OpenEmbedded build system picks up the configuration and | ||
1719 | adds it to the kernel's configuration. | ||
1720 | For example, suppose you had a set of configuration options | ||
1721 | in a file called <filename>myconfig.cfg</filename>. | ||
1722 | If you put that file inside a directory named | ||
1723 | <filename>linux-yocto</filename> that resides in the same | ||
1724 | directory as the kernel's append file and then add a | ||
1725 | <filename>SRC_URI</filename> statement such as the following | ||
1726 | to the kernel's append file, those configuration options | ||
1727 | will be picked up and applied when the kernel is built. | ||
1728 | <literallayout class='monospaced'> | ||
1729 | SRC_URI += "file://myconfig.cfg" | ||
1730 | </literallayout> | ||
1731 | </para> | ||
1732 | |||
1733 | <para> | ||
1734 | As mentioned earlier, you can group related configurations into multiple files and | ||
1735 | name them all in the <filename>SRC_URI</filename> statement as well. | ||
1736 | For example, you could group separate configurations specifically for Ethernet and graphics | ||
1737 | into their own files and add those by using a <filename>SRC_URI</filename> statement like the | ||
1738 | following in your append file: | ||
1739 | <literallayout class='monospaced'> | ||
1740 | SRC_URI += "file://myconfig.cfg \ | ||
1741 | file://eth.cfg \ | ||
1742 | file://gfx.cfg" | ||
1743 | </literallayout> | ||
1744 | </para> | ||
1745 | </section> | ||
1746 | |||
1747 | <section id='fine-tuning-the-kernel-configuration-file'> | ||
1748 | <title>Fine-Tuning the Kernel Configuration File</title> | ||
1749 | |||
1750 | <para> | ||
1751 | You can make sure the <filename>.config</filename> file is as lean or efficient as | ||
1752 | possible by reading the output of the kernel configuration fragment audit, | ||
1753 | noting any issues, making changes to correct the issues, and then repeating. | ||
1754 | </para> | ||
1755 | |||
1756 | <para> | ||
1757 | As part of the kernel build process, the | ||
1758 | <filename>do_kernel_configcheck</filename> task runs. | ||
1759 | This task validates the kernel configuration by checking the final | ||
1760 | <filename>.config</filename> file against the input files. | ||
1761 | During the check, the task produces warning messages for the following | ||
1762 | issues: | ||
1763 | <itemizedlist> | ||
1764 | <listitem><para>Requested options that did not make the final | ||
1765 | <filename>.config</filename> file.</para></listitem> | ||
1766 | <listitem><para>Configuration items that appear twice in the same | ||
1767 | configuration fragment.</para></listitem> | ||
1768 | <listitem><para>Configuration items tagged as "required" that were overridden. | ||
1769 | </para></listitem> | ||
1770 | <listitem><para>A board overrides a non-board specific option.</para></listitem> | ||
1771 | <listitem><para>Listed options not valid for the kernel being processed. | ||
1772 | In other words, the option does not appear anywhere.</para></listitem> | ||
1773 | </itemizedlist> | ||
1774 | <note> | ||
1775 | The <filename>do_kernel_configcheck</filename> task can | ||
1776 | also optionally report if an option is overridden during | ||
1777 | processing. | ||
1778 | </note> | ||
1779 | </para> | ||
1780 | |||
1781 | <para> | ||
1782 | For each output warning, a message points to the file | ||
1783 | that contains a list of the options and a pointer to the | ||
1784 | configuration fragment that defines them. | ||
1785 | Collectively, the files are the key to streamlining the | ||
1786 | configuration. | ||
1787 | </para> | ||
1788 | |||
1789 | <para> | ||
1790 | To streamline the configuration, do the following: | ||
1791 | <orderedlist> | ||
1792 | <listitem><para>Start with a full configuration that you | ||
1793 | know works - it builds and boots successfully. | ||
1794 | This configuration file will be your baseline. | ||
1795 | </para></listitem> | ||
1796 | <listitem><para>Separately run the | ||
1797 | <filename>do_kernel_configme</filename> and | ||
1798 | <filename>do_kernel_configcheck</filename> tasks. | ||
1799 | </para></listitem> | ||
1800 | <listitem><para>Take the resulting list of files from the | ||
1801 | <filename>do_kernel_configcheck</filename> task | ||
1802 | warnings and do the following: | ||
1803 | <itemizedlist> | ||
1804 | <listitem><para> | ||
1805 | Drop values that are redefined in the fragment | ||
1806 | but do not change the final | ||
1807 | <filename>.config</filename> file. | ||
1808 | </para></listitem> | ||
1809 | <listitem><para> | ||
1810 | Analyze and potentially drop values from the | ||
1811 | <filename>.config</filename> file that override | ||
1812 | required configurations. | ||
1813 | </para></listitem> | ||
1814 | <listitem><para> | ||
1815 | Analyze and potentially remove non-board | ||
1816 | specific options. | ||
1817 | </para></listitem> | ||
1818 | <listitem><para> | ||
1819 | Remove repeated and invalid options. | ||
1820 | </para></listitem> | ||
1821 | </itemizedlist></para></listitem> | ||
1822 | <listitem><para> | ||
1823 | After you have worked through the output of the kernel | ||
1824 | configuration audit, you can re-run the | ||
1825 | <filename>do_kernel_configme</filename> and | ||
1826 | <filename>do_kernel_configcheck</filename> tasks to | ||
1827 | see the results of your changes. | ||
1828 | If you have more issues, you can deal with them as | ||
1829 | described in the previous step. | ||
1830 | </para></listitem> | ||
1831 | </orderedlist> | ||
1832 | </para> | ||
1833 | |||
1834 | <para> | ||
1835 | Iteratively working through steps two through four eventually yields | ||
1836 | a minimal, streamlined configuration file. | ||
1837 | Once you have the best <filename>.config</filename>, you can build the Linux | ||
1838 | Yocto kernel. | ||
1839 | </para> | ||
1840 | </section> | ||
1841 | |||
1842 | <section id='determining-hardware-and-non-hardware-features-for-the-kernel-configuration-audit-phase'> | ||
1843 | <title>Determining Hardware and Non-Hardware Features for the Kernel Configuration Audit Phase</title> | ||
1844 | |||
1845 | <para> | ||
1846 | This section describes part of the kernel configuration audit | ||
1847 | phase that most developers can ignore. | ||
1848 | During this part of the audit phase, the contents of the final | ||
1849 | <filename>.config</filename> file are compared against the | ||
1850 | fragments specified by the system. | ||
1851 | These fragments can be system fragments, distro fragments, | ||
1852 | or user specified configuration elements. | ||
1853 | Regardless of their origin, the OpenEmbedded build system | ||
1854 | warns the user if a specific option is not included in the | ||
1855 | final kernel configuration. | ||
1856 | </para> | ||
1857 | |||
1858 | <para> | ||
1859 | In order to not overwhelm the user with configuration warnings, | ||
1860 | by default the system only reports on missing "hardware" | ||
1861 | options because a missing hardware option could mean a boot | ||
1862 | failure or that important hardware is not available. | ||
1863 | </para> | ||
1864 | |||
1865 | <para> | ||
1866 | To determine whether or not a given option is "hardware" or | ||
1867 | "non-hardware", the kernel Metadata contains files that | ||
1868 | classify individual or groups of options as either hardware | ||
1869 | or non-hardware. | ||
1870 | To better show this, consider a situation where the | ||
1871 | Yocto Project kernel cache contains the following files: | ||
1872 | <literallayout class='monospaced'> | ||
1873 | kernel-cache/features/drm-psb/hardware.cfg | ||
1874 | kernel-cache/features/kgdb/hardware.cfg | ||
1875 | kernel-cache/ktypes/base/hardware.cfg | ||
1876 | kernel-cache/bsp/mti-malta32/hardware.cfg | ||
1877 | kernel-cache/bsp/fsl-mpc8315e-rdb/hardware.cfg | ||
1878 | kernel-cache/bsp/qemu-ppc32/hardware.cfg | ||
1879 | kernel-cache/bsp/qemuarma9/hardware.cfg | ||
1880 | kernel-cache/bsp/mti-malta64/hardware.cfg | ||
1881 | kernel-cache/bsp/arm-versatile-926ejs/hardware.cfg | ||
1882 | kernel-cache/bsp/common-pc/hardware.cfg | ||
1883 | kernel-cache/bsp/common-pc-64/hardware.cfg | ||
1884 | kernel-cache/features/rfkill/non-hardware.cfg | ||
1885 | kernel-cache/ktypes/base/non-hardware.cfg | ||
1886 | kernel-cache/features/aufs/non-hardware.kcf | ||
1887 | kernel-cache/features/ocf/non-hardware.kcf | ||
1888 | kernel-cache/ktypes/base/non-hardware.kcf | ||
1889 | kernel-cache/ktypes/base/hardware.kcf | ||
1890 | kernel-cache/bsp/qemu-ppc32/hardware.kcf | ||
1891 | </literallayout> | ||
1892 | The following list provides explanations for the various | ||
1893 | files: | ||
1894 | <itemizedlist> | ||
1895 | <listitem><para><filename>hardware.kcf</filename>: | ||
1896 | Specifies a list of kernel Kconfig files that contain | ||
1897 | hardware options only. | ||
1898 | </para></listitem> | ||
1899 | <listitem><para><filename>non-hardware.kcf</filename>: | ||
1900 | Specifies a list of kernel Kconfig files that contain | ||
1901 | non-hardware options only. | ||
1902 | </para></listitem> | ||
1903 | <listitem><para><filename>hardware.cfg</filename>: | ||
1904 | Specifies a list of kernel | ||
1905 | <filename>CONFIG_</filename> options that are hardware, | ||
1906 | regardless of whether or not they are within a Kconfig | ||
1907 | file specified by a hardware or non-hardware | ||
1908 | Kconfig file (i.e. <filename>hardware.kcf</filename> or | ||
1909 | <filename>non-hardware.kcf</filename>). | ||
1910 | </para></listitem> | ||
1911 | <listitem><para><filename>non-hardware.cfg</filename>: | ||
1912 | Specifies a list of kernel | ||
1913 | <filename>CONFIG_</filename> options that are | ||
1914 | not hardware, regardless of whether or not they are | ||
1915 | within a Kconfig file specified by a hardware or | ||
1916 | non-hardware Kconfig file (i.e. | ||
1917 | <filename>hardware.kcf</filename> or | ||
1918 | <filename>non-hardware.kcf</filename>). | ||
1919 | </para></listitem> | ||
1920 | </itemizedlist> | ||
1921 | Here is a specific example using the | ||
1922 | <filename>kernel-cache/bsp/mti-malta32/hardware.cfg</filename>: | ||
1923 | <literallayout class='monospaced'> | ||
1924 | CONFIG_SERIAL_8250 | ||
1925 | CONFIG_SERIAL_8250_CONSOLE | ||
1926 | CONFIG_SERIAL_8250_NR_UARTS | ||
1927 | CONFIG_SERIAL_8250_PCI | ||
1928 | CONFIG_SERIAL_CORE | ||
1929 | CONFIG_SERIAL_CORE_CONSOLE | ||
1930 | CONFIG_VGA_ARB | ||
1931 | </literallayout> | ||
1932 | The kernel configuration audit automatically detects these | ||
1933 | files (hence the names must be exactly the ones discussed here), | ||
1934 | and uses them as inputs when generating warnings about the | ||
1935 | final <filename>.config</filename> file. | ||
1936 | </para> | ||
1937 | |||
1938 | <para> | ||
1939 | A user-specified kernel Metadata repository, or recipe space | ||
1940 | feature, can use these same files to classify options that are | ||
1941 | found within its <filename>.cfg</filename> files as hardware | ||
1942 | or non-hardware, to prevent the OpenEmbedded build system from | ||
1943 | producing an error or warning when an option is not in the | ||
1944 | final <filename>.config</filename> file. | ||
1945 | </para> | ||
1946 | </section> | ||
1947 | </section> | ||
1948 | |||
1949 | |||
1950 | |||
1951 | |||
1952 | |||
1953 | |||
1954 | |||
1955 | |||
1956 | |||
1957 | |||
1958 | |||
1959 | |||
1960 | |||
1961 | |||
1962 | |||
1963 | |||
1448 | <section id='using-an-iterative-development-process'> | 1964 | <section id='using-an-iterative-development-process'> |
1449 | <title>Using an Iterative Development Process</title> | 1965 | <title>Using an Iterative Development Process</title> |
1450 | 1966 | ||
@@ -1538,8 +2054,8 @@ | |||
1538 | "<link linkend='changing-the-configuration'>Changing the Configuration</link>" section. | 2054 | "<link linkend='changing-the-configuration'>Changing the Configuration</link>" section. |
1539 | For more information on the <filename>.config</filename> file, | 2055 | For more information on the <filename>.config</filename> file, |
1540 | see the | 2056 | see the |
1541 | "<ulink url='&YOCTO_DOCS_DEV_URL;#using-menuconfig'>Using <filename>menuconfig</filename></ulink>" | 2057 | "<link linkend='using-menuconfig'>Using <filename>menuconfig</filename></link>" |
1542 | section in the Yocto Project Development Manual. | 2058 | section. |
1543 | <note> | 2059 | <note> |
1544 | You can determine what a variable expands to by looking | 2060 | You can determine what a variable expands to by looking |
1545 | at the output of the <filename>bitbake -e</filename> | 2061 | at the output of the <filename>bitbake -e</filename> |
@@ -1650,8 +2166,8 @@ | |||
1650 | <para> | 2166 | <para> |
1651 | For more information on how to use the | 2167 | For more information on how to use the |
1652 | <filename>menuconfig</filename> tool, see the | 2168 | <filename>menuconfig</filename> tool, see the |
1653 | "<ulink url='&YOCTO_DOCS_DEV_URL;#using-menuconfig'>Using <filename>menuconfig</filename></ulink>" | 2169 | "<link linkend='using-menuconfig'>Using <filename>menuconfig</filename></link>" |
1654 | section in the Yocto Project Development Manual. | 2170 | section. |
1655 | </para> | 2171 | </para> |
1656 | </section> | 2172 | </section> |
1657 | 2173 | ||