|  | <!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='creating-config-fragments'>Creating Configuration Fragments</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 in Your Layer</ulink>" | 
|  | section in the Yocto Project Development Tasks 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 | 
|  | --> |