<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >

<appendix id='kernel-dev-faq'>
<title>Kernel Development FAQ</title>

<section id='kernel-dev-faq-section'>
    <title>Common Questions and Solutions</title>

    <para>
        The following lists some solutions for common questions.


        <qandaset>
            <qandaentry>
                <question>
                    <para>
                        How do I use my own Linux kernel <filename>.config</filename>
                        file?
                    </para>
                </question>
                <answer>
            <para>
                        Refer to the "<link linkend='changing-the-configuration'>Changing the Configuration</link>"
                        section for information.
                    </para>
                </answer>
            </qandaentry>

            <qandaentry>
                <question>
                    <para>
                        How do I create configuration fragments?
                    </para>
                </question>
                <answer>
                    <para>
                        Refer to the "<link linkend='generating-configuration-files'>Generating Configuration Files</link>"
                        section for information.
                    </para>
                </answer>
            </qandaentry>

            <qandaentry>
                <question>
                    <para>
                        How do I use my own Linux kernel sources?
                    </para>
                </question>
                <answer>
                    <para>
                        Refer to the "<link linkend='working-with-your-own-sources'>Working With Your Own Sources</link>"
                        section for information.
                    </para>
                </answer>
            </qandaentry>

            <qandaentry>
                <question>
                    <para>
                        How do I install/not-install the kernel image on the rootfs?
                    </para>
                </question>
                <answer>
                    <para>
                        The kernel image (e.g. <filename>vmlinuz</filename>) is provided
                        by the <filename>kernel-image</filename> package.
                        Image recipes depend on <filename>kernel-base</filename>.
                        To specify whether or not the kernel
                        image is installed in the generated root filesystem, override
                        <filename>RDEPENDS_kernel-base</filename> to include or not
                        include "kernel-image".</para>
                        <para>See the
                        "<ulink url='&YOCTO_DOCS_DEV_URL;#using-bbappend-files'>Using .bbappend Files</ulink>"
                        section in the Yocto Project Development Manual for information on
                        how to use an append file to override metadata.
                    </para>
                </answer>
            </qandaentry>

            <qandaentry>
                <question>
                    <para>
                        How do I install a specific kernel module?
                    </para>
                </question>
                <answer>
                    <para>
                        Linux kernel modules are packaged individually.
                        To ensure a specific kernel module is included in an image,
                        include it in the appropriate machine
                        <ulink url='&YOCTO_DOCS_REF_URL;#var-RRECOMMENDS'><filename>RRECOMMENDS</filename></ulink>
                        variable.</para>
                        <para>These other variables are useful for installing specific
                        modules:
                        <literallayout class='monospaced'>
     <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE_ESSENTIAL_EXTRA_RDEPENDS'><filename>MACHINE_ESSENTIAL_EXTRA_RDEPENDS</filename></ulink>
     <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS'><filename>MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS</filename></ulink>
     <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE_EXTRA_RDEPENDS'><filename>MACHINE_EXTRA_RDEPENDS</filename></ulink>
     <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE_EXTRA_RRECOMMENDS'><filename>MACHINE_EXTRA_RRECOMMENDS</filename></ulink>
                        </literallayout>
                        For example, set the following in the <filename>qemux86.conf</filename>
                        file to include the <filename>ab123</filename> kernel modules
                        with images built for the <filename>qemux86</filename> machine:
                        <literallayout class='monospaced'>
     MACHINE_EXTRA_RRECOMMENDS += "kernel-module-ab123"
                        </literallayout>
                        For more information, see the
                        "<link linkend='incorporating-out-of-tree-modules'>Incorporating Out-of-Tree Modules</link>"
                        section.
                    </para>
                </answer>
            </qandaentry>

            <qandaentry>
                <question>
                    <para>
                        How do I change the Linux kernel command line?
                   </para>
                </question>
                <answer>
                    <para>
                        The Linux kernel command line is typically specified in
                        the machine config using the <filename>APPEND</filename> variable.
                For example, you can add some helpful debug information doing
                        the following:
                        <literallayout class='monospaced'>
     APPEND += "printk.time=y initcall_debug debug"
                        </literallayout>
                    </para>
                </answer>
            </qandaentry>
        </qandaset>
    </para>
</section>
</appendix>
<!--
vim: expandtab tw=80 ts=4
-->
