blob: 424e6261701a27e60c32d451edbccc475df85a4b [file] [log] [blame]
Andrew Geisslerf0343792020-11-18 10:42:21 -06001.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Andrew Geisslerc9f78652020-09-18 14:11:35 -05002
3**********************
4Kernel Development FAQ
5**********************
6
Andrew Geisslerc9f78652020-09-18 14:11:35 -05007Common Questions and Solutions
8==============================
9
10The following lists some solutions for common questions.
11
12How do I use my own Linux kernel ``.config`` file?
13--------------------------------------------------
14
15Refer to the
16":ref:`kernel-dev/kernel-dev-common:changing the configuration`"
17section for information.
18
19How do I create configuration fragments?
20----------------------------------------
21
22A: Refer to the
23":ref:`kernel-dev/kernel-dev-common:creating configuration fragments`"
24section for information.
25
26How do I use my own Linux kernel sources?
27-----------------------------------------
28
29Refer to the
30":ref:`kernel-dev/kernel-dev-common:working with your own sources`"
31section for information.
32
33How do I install/not-install the kernel image on the rootfs?
34------------------------------------------------------------
35
36The kernel image (e.g. ``vmlinuz``) is provided by the
37``kernel-image`` package. Image recipes depend on ``kernel-base``. To
38specify whether or not the kernel image is installed in the generated
Andrew Geissler4c19ea12020-10-27 13:52:24 -050039root filesystem, override ``RDEPENDS_${KERNEL_PACKAGE_NAME}-base`` to include or not
Andrew Geisslerc9f78652020-09-18 14:11:35 -050040include "kernel-image". See the
41":ref:`dev-manual/dev-manual-common-tasks:using .bbappend files in your layer`"
42section in the
43Yocto Project Development Tasks Manual for information on how to use an
44append file to override metadata.
45
46How do I install a specific kernel module?
47------------------------------------------
48
49Linux kernel modules are packaged individually. To ensure a
50specific kernel module is included in an image, include it in the
Andrew Geissler4c19ea12020-10-27 13:52:24 -050051appropriate machine :term:`RRECOMMENDS` variable.
Andrew Geisslerc9f78652020-09-18 14:11:35 -050052These other variables are useful for installing specific modules:
Andrew Geissler4c19ea12020-10-27 13:52:24 -050053- :term:`MACHINE_ESSENTIAL_EXTRA_RDEPENDS`
54- :term:`MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS`
55- :term:`MACHINE_EXTRA_RDEPENDS`
56- :term:`MACHINE_EXTRA_RRECOMMENDS`
57
Andrew Geisslerc9f78652020-09-18 14:11:35 -050058For example, set the following in the ``qemux86.conf`` file to include
59the ``ab123`` kernel modules with images built for the ``qemux86``
60machine:
61::
62
63 MACHINE_EXTRA_RRECOMMENDS += "kernel-module-ab123"
64
Andrew Geissler4c19ea12020-10-27 13:52:24 -050065For more information, see the
66":ref:`kernel-dev/kernel-dev-common:incorporating out-of-tree modules`" section.
Andrew Geisslerc9f78652020-09-18 14:11:35 -050067
68How do I change the Linux kernel command line?
69----------------------------------------------
70
71The Linux kernel command line is
72typically specified in the machine config using the ``APPEND`` variable.
73For example, you can add some helpful debug information doing the
74following:
75::
76
77 APPEND += "printk.time=y initcall_debug debug"
78