summaryrefslogtreecommitdiffstats
path: root/documentation/kernel-dev
diff options
context:
space:
mode:
authorScott Rifenbark <srifenbark@gmail.com>2017-09-22 12:18:18 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-09-26 11:18:59 +0100
commitde671802c8de9311cc292456d69cafb7be128b0b (patch)
tree99272375914e3bf041f044803d0a24d83b6d7624 /documentation/kernel-dev
parentc1d3dbb5bdbea42c3f4b4706872bd2444e850c7c (diff)
downloadpoky-de671802c8de9311cc292456d69cafb7be128b0b.tar.gz
dev-manual: Compatibility program and moving kernel configuration
Should have been two commits but I forgot to do them separately. 1. I updated the YP Compatible Program section. 2. I moved the "Configuring the Kernel" section from the dev-manual to the kernel-dev manual. (From yocto-docs rev: cdb5bbc917db55a2ca987ce9b9ed371f9fca6524) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/kernel-dev')
-rw-r--r--documentation/kernel-dev/kernel-dev-advanced.xml6
-rw-r--r--documentation/kernel-dev/kernel-dev-common.xml528
-rw-r--r--documentation/kernel-dev/kernel-dev-intro.xml2
3 files changed, 526 insertions, 10 deletions
diff --git a/documentation/kernel-dev/kernel-dev-advanced.xml b/documentation/kernel-dev/kernel-dev-advanced.xml
index 0394e08444..a6f01a8e2a 100644
--- a/documentation/kernel-dev/kernel-dev-advanced.xml
+++ b/documentation/kernel-dev/kernel-dev-advanced.xml
@@ -318,10 +318,10 @@
318 CONFIG_NR_CPUS=64 318 CONFIG_NR_CPUS=64
319 </literallayout> 319 </literallayout>
320 You can find information on configuration fragment files in the 320 You can find information on configuration fragment files in the
321 "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-config-fragments'>Creating Configuration Fragments</ulink>" 321 "<link linkend='creating-config-fragments'>Creating Configuration Fragments</link>"
322 section of the Yocto Project Development Manual and in 322 section and in
323 the "<link linkend='generating-configuration-files'>Generating Configuration Files</link>" 323 the "<link linkend='generating-configuration-files'>Generating Configuration Files</link>"
324 section earlier in this manual. 324 section.
325 </para> 325 </para>
326 326
327 <para> 327 <para>
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&nbsp;&nbsp;<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&nbsp;&nbsp;<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
diff --git a/documentation/kernel-dev/kernel-dev-intro.xml b/documentation/kernel-dev/kernel-dev-intro.xml
index b2fe19c175..174ab93ab0 100644
--- a/documentation/kernel-dev/kernel-dev-intro.xml
+++ b/documentation/kernel-dev/kernel-dev-intro.xml
@@ -231,7 +231,7 @@
231 and you have saved them, you can directly compare the 231 and you have saved them, you can directly compare the
232 resulting <filename>.config</filename> file against an 232 resulting <filename>.config</filename> file against an
233 existing original and gather those changes into a 233 existing original and gather those changes into a
234 <ulink url='&YOCTO_DOCS_DEV_URL;#creating-config-fragments'>configuration fragment file</ulink> 234 <link linkend='creating-config-fragments'>configuration fragment file</link>
235 to be referenced from within the kernel's 235 to be referenced from within the kernel's
236 <filename>.bbappend</filename> file.</para> 236 <filename>.bbappend</filename> file.</para>
237 237