blob: 9e0517d4af964c567ede0006d2d17bde25159d97 [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001<!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
Brad Bishop6e60e8b2018-02-01 10:27:11 -050075 "<ulink url='&YOCTO_DOCS_DEV_URL;#using-bbappend-files'>Using .bbappend Files in Your Layer</ulink>"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050076 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<!--
139vim: expandtab tw=80 ts=4
140-->