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