summaryrefslogtreecommitdiffstats
path: root/documentation/kernel-dev/faq.rst
blob: ceb5dda3f52484c19cade44f04c86a7ab7d053d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK

**********************
Kernel Development FAQ
**********************

Common Questions and Solutions
==============================

Here are some solutions for common questions.

How do I use my own Linux kernel ``.config`` file?
--------------------------------------------------

Refer to the
":ref:`kernel-dev/common:changing the configuration`"
section for information.

How do I create configuration fragments?
----------------------------------------

A: Refer to the
":ref:`kernel-dev/common:creating configuration fragments`"
section for information.

How do I use my own Linux kernel sources?
-----------------------------------------

Refer to the
":ref:`kernel-dev/common:working with your own sources`"
section for information.

How do I install/not-install the kernel image on the root filesystem?
---------------------------------------------------------------------

The kernel image (e.g. ``vmlinuz``) is provided by the
``kernel-image`` package. Image recipes depend on ``kernel-base``. To
specify whether or not the kernel image is installed in the generated
root filesystem, override ``RDEPENDS:${KERNEL_PACKAGE_NAME}-base`` to include or not
include "kernel-image". See the
":ref:`dev-manual/layers:appending other layers metadata with your layer`"
section in the
Yocto Project Development Tasks Manual for information on how to use an
append file to override metadata.

How do I install a specific kernel module?
------------------------------------------

Linux kernel modules are packaged individually. To ensure a
specific kernel module is included in an image, include it in the
appropriate machine :term:`RRECOMMENDS` variable.
These other variables are useful for installing specific modules:
- :term:`MACHINE_ESSENTIAL_EXTRA_RDEPENDS`
- :term:`MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS`
- :term:`MACHINE_EXTRA_RDEPENDS`
- :term:`MACHINE_EXTRA_RRECOMMENDS`

For example, set the following in the ``qemux86.conf`` file to include
the ``ab123`` kernel modules with images built for the ``qemux86``
machine::

   MACHINE_EXTRA_RRECOMMENDS += "kernel-module-ab123"

For more information, see the
":ref:`kernel-dev/common:incorporating out-of-tree modules`" section.

How do I change the Linux kernel command line?
----------------------------------------------

The Linux kernel command line is
typically specified in the machine config using the :term:`APPEND` variable.
For example, you can add some helpful debug information doing the
following::

   APPEND += "printk.time=y initcall_debug debug"