blob: c2106f81e1437823c5f180545f794891cdb408c0 [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
Andrew Geissler09209ee2020-12-13 08:44:15 -060016":ref:`kernel-dev/common:changing the configuration`"
Andrew Geisslerc9f78652020-09-18 14:11:35 -050017section for information.
18
19How do I create configuration fragments?
20----------------------------------------
21
22A: Refer to the
Andrew Geissler09209ee2020-12-13 08:44:15 -060023":ref:`kernel-dev/common:creating configuration fragments`"
Andrew Geisslerc9f78652020-09-18 14:11:35 -050024section for information.
25
26How do I use my own Linux kernel sources?
27-----------------------------------------
28
29Refer to the
Andrew Geissler09209ee2020-12-13 08:44:15 -060030":ref:`kernel-dev/common:working with your own sources`"
Andrew Geisslerc9f78652020-09-18 14:11:35 -050031section 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
Andrew Geissler09209ee2020-12-13 08:44:15 -060041":ref:`dev-manual/common-tasks:using .bbappend files in your layer`"
Andrew Geisslerc9f78652020-09-18 14:11:35 -050042section 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
Andrew Geissler09209ee2020-12-13 08:44:15 -060066":ref:`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