| <!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 |
| --> |