| Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 1 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | 
|  | 2 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" | 
|  | 3 | [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > | 
|  | 4 |  | 
|  | 5 | <appendix id='kernel-dev-faq'> | 
|  | 6 | <title>Kernel Development FAQ</title> | 
|  | 7 |  | 
|  | 8 | <section id='kernel-dev-faq-section'> | 
|  | 9 | <title>Common Questions and Solutions</title> | 
|  | 10 |  | 
|  | 11 | <para> | 
|  | 12 | The following lists some solutions for common questions. | 
|  | 13 |  | 
|  | 14 |  | 
|  | 15 | <qandaset> | 
|  | 16 | <qandaentry> | 
|  | 17 | <question> | 
|  | 18 | <para> | 
|  | 19 | How do I use my own Linux kernel <filename>.config</filename> | 
|  | 20 | file? | 
|  | 21 | </para> | 
|  | 22 | </question> | 
|  | 23 | <answer> | 
|  | 24 | <para> | 
|  | 25 | Refer to the "<link linkend='changing-the-configuration'>Changing the Configuration</link>" | 
|  | 26 | section for information. | 
|  | 27 | </para> | 
|  | 28 | </answer> | 
|  | 29 | </qandaentry> | 
|  | 30 |  | 
|  | 31 | <qandaentry> | 
|  | 32 | <question> | 
|  | 33 | <para> | 
|  | 34 | How do I create configuration fragments? | 
|  | 35 | </para> | 
|  | 36 | </question> | 
|  | 37 | <answer> | 
|  | 38 | <para> | 
|  | 39 | Refer to the "<link linkend='generating-configuration-files'>Generating Configuration Files</link>" | 
|  | 40 | section for information. | 
|  | 41 | </para> | 
|  | 42 | </answer> | 
|  | 43 | </qandaentry> | 
|  | 44 |  | 
|  | 45 | <qandaentry> | 
|  | 46 | <question> | 
|  | 47 | <para> | 
|  | 48 | How do I use my own Linux kernel sources? | 
|  | 49 | </para> | 
|  | 50 | </question> | 
|  | 51 | <answer> | 
|  | 52 | <para> | 
|  | 53 | Refer to the "<link linkend='working-with-your-own-sources'>Working With Your Own Sources</link>" | 
|  | 54 | section for information. | 
|  | 55 | </para> | 
|  | 56 | </answer> | 
|  | 57 | </qandaentry> | 
|  | 58 |  | 
|  | 59 | <qandaentry> | 
|  | 60 | <question> | 
|  | 61 | <para> | 
|  | 62 | How do I install/not-install the kernel image on the rootfs? | 
|  | 63 | </para> | 
|  | 64 | </question> | 
|  | 65 | <answer> | 
|  | 66 | <para> | 
|  | 67 | The kernel image (e.g. <filename>vmlinuz</filename>) is provided | 
|  | 68 | by the <filename>kernel-image</filename> package. | 
|  | 69 | Image recipes depend on <filename>kernel-base</filename>. | 
|  | 70 | To specify whether or not the kernel | 
|  | 71 | image is installed in the generated root filesystem, override | 
|  | 72 | <filename>RDEPENDS_kernel-base</filename> to include or not | 
|  | 73 | include "kernel-image".</para> | 
|  | 74 | <para>See the | 
|  | 75 | "<ulink url='&YOCTO_DOCS_DEV_URL;#using-bbappend-files'>Using .bbappend Files</ulink>" | 
|  | 76 | section in the Yocto Project Development Manual for information on | 
|  | 77 | how to use an append file to override metadata. | 
|  | 78 | </para> | 
|  | 79 | </answer> | 
|  | 80 | </qandaentry> | 
|  | 81 |  | 
|  | 82 | <qandaentry> | 
|  | 83 | <question> | 
|  | 84 | <para> | 
|  | 85 | How do I install a specific kernel module? | 
|  | 86 | </para> | 
|  | 87 | </question> | 
|  | 88 | <answer> | 
|  | 89 | <para> | 
|  | 90 | Linux kernel modules are packaged individually. | 
|  | 91 | To ensure a specific kernel module is included in an image, | 
|  | 92 | include it in the appropriate machine | 
|  | 93 | <ulink url='&YOCTO_DOCS_REF_URL;#var-RRECOMMENDS'><filename>RRECOMMENDS</filename></ulink> | 
|  | 94 | variable.</para> | 
|  | 95 | <para>These other variables are useful for installing specific | 
|  | 96 | modules: | 
|  | 97 | <literallayout class='monospaced'> | 
|  | 98 | <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE_ESSENTIAL_EXTRA_RDEPENDS'><filename>MACHINE_ESSENTIAL_EXTRA_RDEPENDS</filename></ulink> | 
|  | 99 | <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS'><filename>MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS</filename></ulink> | 
|  | 100 | <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE_EXTRA_RDEPENDS'><filename>MACHINE_EXTRA_RDEPENDS</filename></ulink> | 
|  | 101 | <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE_EXTRA_RRECOMMENDS'><filename>MACHINE_EXTRA_RRECOMMENDS</filename></ulink> | 
|  | 102 | </literallayout> | 
|  | 103 | For example, set the following in the <filename>qemux86.conf</filename> | 
|  | 104 | file to include the <filename>ab123</filename> kernel modules | 
|  | 105 | with images built for the <filename>qemux86</filename> machine: | 
|  | 106 | <literallayout class='monospaced'> | 
|  | 107 | MACHINE_EXTRA_RRECOMMENDS += "kernel-module-ab123" | 
|  | 108 | </literallayout> | 
|  | 109 | For more information, see the | 
|  | 110 | "<link linkend='incorporating-out-of-tree-modules'>Incorporating Out-of-Tree Modules</link>" | 
|  | 111 | section. | 
|  | 112 | </para> | 
|  | 113 | </answer> | 
|  | 114 | </qandaentry> | 
|  | 115 |  | 
|  | 116 | <qandaentry> | 
|  | 117 | <question> | 
|  | 118 | <para> | 
|  | 119 | How do I change the Linux kernel command line? | 
|  | 120 | </para> | 
|  | 121 | </question> | 
|  | 122 | <answer> | 
|  | 123 | <para> | 
|  | 124 | The Linux kernel command line is typically specified in | 
|  | 125 | the machine config using the <filename>APPEND</filename> variable. | 
|  | 126 | For example, you can add some helpful debug information doing | 
|  | 127 | the following: | 
|  | 128 | <literallayout class='monospaced'> | 
|  | 129 | APPEND += "printk.time=y initcall_debug debug" | 
|  | 130 | </literallayout> | 
|  | 131 | </para> | 
|  | 132 | </answer> | 
|  | 133 | </qandaentry> | 
|  | 134 | </qandaset> | 
|  | 135 | </para> | 
|  | 136 | </section> | 
|  | 137 | </appendix> | 
|  | 138 | <!-- | 
|  | 139 | vim: expandtab tw=80 ts=4 | 
|  | 140 | --> |