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