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