blob: a5b01e8df778b111a6a6ee5b6466a634850e95df [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********
4Features
5********
6
7This chapter provides a reference of shipped machine and distro features
8you can include as part of your image, a reference on image features you
9can select, and a reference on feature backfilling.
10
11Features provide a mechanism for working out which packages should be
12included in the generated images. Distributions can select which
Andrew Geissler09036742021-06-25 14:25:14 -050013features they want to support through the :term:`DISTRO_FEATURES` variable,
Andrew Geisslerc9f78652020-09-18 14:11:35 -050014which is set or appended to in a distribution's configuration file such
15as ``poky.conf``, ``poky-tiny.conf``, ``poky-lsb.conf`` and so forth.
Andrew Geissler09036742021-06-25 14:25:14 -050016Machine features are set in the :term:`MACHINE_FEATURES` variable, which is
Andrew Geisslerc9f78652020-09-18 14:11:35 -050017set in the machine configuration file and specifies the hardware
18features for a given machine.
19
20These two variables combine to work out which kernel modules, utilities,
21and other packages to include. A given distribution can support a
22selected subset of features so some machine features might not be
23included if the distribution itself does not support them.
24
25One method you can use to determine which recipes are checking to see if
26a particular feature is contained or not is to ``grep`` through the
27:term:`Metadata` for the feature. Here is an example that
28discovers the recipes whose build is potentially changed based on a
Andrew Geisslerc926e172021-05-07 16:11:35 -050029given feature::
Andrew Geisslerc9f78652020-09-18 14:11:35 -050030
31 $ cd poky
32 $ git grep 'contains.*MACHINE_FEATURES.*feature'
33
34.. _ref-features-machine:
35
36Machine Features
37================
38
39The items below are features you can use with
40:term:`MACHINE_FEATURES`. Features do not have a
41one-to-one correspondence to packages, and they can go beyond simply
42controlling the installation of a package or packages. Sometimes a
43feature can influence how certain recipes are built. For example, a
44feature might determine whether a particular configure option is
45specified within the :ref:`ref-tasks-configure` task
46for a particular recipe.
47
48This feature list only represents features as shipped with the Yocto
49Project metadata:
50
51- *acpi:* Hardware has ACPI (x86/x86_64 only)
52
53- *alsa:* Hardware has ALSA audio drivers
54
55- *apm:* Hardware uses APM (or APM emulation)
56
57- *bluetooth:* Hardware has integrated BT
58
59- *efi:* Support for booting through EFI
60
61- *ext2:* Hardware HDD or Microdrive
62
63- *keyboard:* Hardware has a keyboard
64
Patrick Williams92b42cb2022-09-03 06:53:57 -050065- *numa:* Hardware has non-uniform memory access
66
Andrew Geisslerc9f78652020-09-18 14:11:35 -050067- *pcbios:* Support for booting through BIOS
68
69- *pci:* Hardware has a PCI bus
70
71- *pcmcia:* Hardware has PCMCIA or CompactFlash sockets
72
73- *phone:* Mobile phone (voice) support
74
Patrick Williams975a06f2022-10-21 14:42:47 -050075- *qemu-usermode:* QEMU can support user-mode emulation for this machine
76
Andrew Geisslerc9f78652020-09-18 14:11:35 -050077- *qvga:* Machine has a QVGA (320x240) display
78
79- *rtc:* Machine has a Real-Time Clock
80
81- *screen:* Hardware has a screen
82
83- *serial:* Hardware has serial support (usually RS232)
84
85- *touchscreen:* Hardware has a touchscreen
86
87- *usbgadget:* Hardware is USB gadget device capable
88
89- *usbhost:* Hardware is USB Host capable
90
91- *vfat:* FAT file system support
92
93- *wifi:* Hardware has integrated WiFi
94
95.. _ref-features-distro:
96
97Distro Features
98===============
99
100The items below are features you can use with
101:term:`DISTRO_FEATURES` to enable features across
102your distribution. Features do not have a one-to-one correspondence to
103packages, and they can go beyond simply controlling the installation of
104a package or packages. In most cases, the presence or absence of a
105feature translates to the appropriate option supplied to the configure
106script during the :ref:`ref-tasks-configure` task for
Andrew Geissler615f2f12022-07-15 14:00:58 -0500107the recipes that optionally support the feature. Appropriate options
108must be supplied, and enabling/disabling :term:`PACKAGECONFIG` for the
109concerned packages is one way of supplying such options.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500110
111Some distro features are also machine features. These select features
112make sense to be controlled both at the machine and distribution
113configuration level. See the
114:term:`COMBINED_FEATURES` variable for more
115information.
116
Patrick Williams975a06f2022-10-21 14:42:47 -0500117.. note::
118
119 :term:`DISTRO_FEATURES` is normally independent of kernel configuration,
120 so if a feature specified in :term:`DISTRO_FEATURES` also relies on
121 support in the kernel, you will also need to ensure that support is
122 enabled in the kernel configuration.
123
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500124This list only represents features as shipped with the Yocto Project
Andrew Geissler87f5cff2022-09-30 13:13:31 -0500125metadata, as extra layers can define their own:
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500126
Andrew Geissler87f5cff2022-09-30 13:13:31 -0500127- *3g:* Include support for cellular data.
128
129- *acl:* Include
130 `Access Control List <https://en.wikipedia.org/wiki/Access-control_list>`__ support.
131
132- *alsa:* Include `Advanced Linux Sound Architecture <https://en.wikipedia.org/wiki/Advanced_Linux_Sound_Architecture>`__
133 support (OSS compatibility kernel modules installed if available).
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500134
135- *api-documentation:* Enables generation of API documentation during
136 recipe builds. The resulting documentation is added to SDK tarballs
137 when the ``bitbake -c populate_sdk`` command is used. See the
Andrew Geissler09209ee2020-12-13 08:44:15 -0600138 ":ref:`sdk-manual/appendix-customizing-standard:adding api documentation to the standard sdk`"
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500139 section in the Yocto Project Application Development and the
140 Extensible Software Development Kit (eSDK) manual.
141
142- *bluetooth:* Include bluetooth support (integrated BT only).
143
144- *cramfs:* Include CramFS support.
145
Andrew Geissler87f5cff2022-09-30 13:13:31 -0500146- *debuginfod:* Include support for getting ELF debugging information through
147 a :ref:`debuginfod <dev-manual/common-tasks:using the debuginfod server method>`
148 server.
149
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500150- *directfb:* Include DirectFB support.
151
152- *ext2:* Include tools for supporting for devices with internal
153 HDD/Microdrive for storing files (instead of Flash only devices).
154
Patrick Williams975a06f2022-10-21 14:42:47 -0500155- *gobject-introspection-data:* Include data to support
156 `GObject Introspection <https://gi.readthedocs.io/en/latest/>`__.
157
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500158- *ipsec:* Include IPSec support.
159
Andrew Geissler87f5cff2022-09-30 13:13:31 -0500160- *ipv4:* Include IPv4 support.
161
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500162- *ipv6:* Include IPv6 support.
163
164- *keyboard:* Include keyboard support (e.g. keymaps will be loaded
165 during boot).
166
Andrew Geissler87f5cff2022-09-30 13:13:31 -0500167- *multiarch:* Enable building applications with multiple architecture
168 support.
169
Patrick Williams975a06f2022-10-21 14:42:47 -0500170- *ld-is-gold:* Use the `gold <https://en.wikipedia.org/wiki/Gold_(linker)>`__
171 linker instead of the standard GCC linker (bfd).
172
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500173- *ldconfig:* Include support for ldconfig and ``ld.so.conf`` on the
174 target.
175
Patrick Williams975a06f2022-10-21 14:42:47 -0500176- *lto:* Enable `Link-Time Optimisation <https://gcc.gnu.org/wiki/LinkTimeOptimization>`__.
177
Andrew Geissler87f5cff2022-09-30 13:13:31 -0500178- *nfc:* Include support for
179 `Near Field Communication <https://en.wikipedia.org/wiki/Near-field_communication>`__.
180
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500181- *nfs:* Include NFS client support (for mounting NFS exports on
182 device).
183
Patrick Williams975a06f2022-10-21 14:42:47 -0500184- *nls:* Include National Language Support (NLS).
185
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500186- *opengl:* Include the Open Graphics Library, which is a
187 cross-language, multi-platform application programming interface used
188 for rendering two and three-dimensional graphics.
189
Patrick Williams975a06f2022-10-21 14:42:47 -0500190- *overlayfs:* Include `OverlayFS <https://docs.kernel.org/filesystems/overlayfs.html>`__
191 support.
192
193- *pam:* Include `Pluggable Authentication Module (PAM) <https://en.wikipedia.org/wiki/Pluggable_authentication_module>`__
194 support.
195
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500196- *pci:* Include PCI bus support.
197
198- *pcmcia:* Include PCMCIA/CompactFlash support.
199
Patrick Williams975a06f2022-10-21 14:42:47 -0500200- *polkit:* Include `Polkit <https://en.wikipedia.org/wiki/Polkit>`__ support.
201
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500202- *ppp:* Include PPP dialup support.
203
204- *ptest:* Enables building the package tests where supported by
205 individual recipes. For more information on package tests, see the
Andrew Geissler09209ee2020-12-13 08:44:15 -0600206 ":ref:`dev-manual/common-tasks:testing packages with ptest`" section
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500207 in the Yocto Project Development Tasks Manual.
208
Patrick Williams975a06f2022-10-21 14:42:47 -0500209- *pulseaudio:* Include support for
210 `PulseAudio <https://www.freedesktop.org/wiki/Software/PulseAudio/>`__.
211
212- *selinux:* Include support for
213 `Security-Enhanced Linux (SELinux) <https://en.wikipedia.org/wiki/Security-Enhanced_Linux>`__
214 (requires `meta-selinux <https://layers.openembedded.org/layerindex/layer/meta-selinux/>`__).
215
Andrew Geissler87f5cff2022-09-30 13:13:31 -0500216- *seccomp:* Enables building applications with
217 `seccomp <https://en.wikipedia.org/wiki/Seccomp>`__ support, to
218 allow them to strictly restrict the system calls that they are allowed
219 to invoke.
220
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500221- *smbfs:* Include SMB networks client support (for mounting
222 Samba/Microsoft Windows shares on device).
223
224- *systemd:* Include support for this ``init`` manager, which is a full
225 replacement of for ``init`` with parallel starting of services,
226 reduced shell overhead, and other features. This ``init`` manager is
227 used by many distributions.
228
229- *usbgadget:* Include USB Gadget Device support (for USB
230 networking/serial/storage).
231
232- *usbhost:* Include USB Host support (allows to connect external
233 keyboard, mouse, storage, network etc).
234
235- *usrmerge:* Merges the ``/bin``, ``/sbin``, ``/lib``, and ``/lib64``
236 directories into their respective counterparts in the ``/usr``
237 directory to provide better package and application compatibility.
238
Andrew Geissler87f5cff2022-09-30 13:13:31 -0500239- *vfat:* Include `FAT filesystem <https://en.wikipedia.org/wiki/File_Allocation_Table>`__
240 support.
241
242- *vulkan:* Include support for the
243 `Vulkan API <https://en.wikipedia.org/wiki/Vulkan>`__.
244
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500245- *wayland:* Include the Wayland display server protocol and the
246 library that supports it.
247
248- *wifi:* Include WiFi support (integrated only).
249
250- *x11:* Include the X server and libraries.
251
Andrew Geissler87f5cff2022-09-30 13:13:31 -0500252- *xattr:* Include support for
253 `extended file attributes <https://en.wikipedia.org/wiki/Extended_file_attributes>`__.
254
255- *zeroconf:* Include support for
256 `zero configuration networking <https://en.wikipedia.org/wiki/Zero-configuration_networking>`__.
257
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500258.. _ref-features-image:
259
260Image Features
261==============
262
263The contents of images generated by the OpenEmbedded build system can be
264controlled by the :term:`IMAGE_FEATURES` and
265:term:`EXTRA_IMAGE_FEATURES` variables that
266you typically configure in your image recipes. Through these variables,
267you can add several different predefined packages such as development
268utilities or packages with debug information needed to investigate
269application problems or profile applications.
270
William A. Kennington IIIac69b482021-06-02 12:28:27 -0700271Here are the image features available for all images:
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500272
Andrew Geissler615f2f12022-07-15 14:00:58 -0500273- *allow-empty-password:* Allows Dropbear and OpenSSH to accept
274 logins from accounts having an empty password string.
275
276- *allow-root-login:* Allows Dropbear and OpenSSH to accept root logins.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500277
278- *dbg-pkgs:* Installs debug symbol packages for all packages installed
279 in a given image.
280
281- *debug-tweaks:* Makes an image suitable for development (e.g. allows
Andrew Geissler615f2f12022-07-15 14:00:58 -0500282 root logins, logins without passwords ---including root ones, and enables
283 post-installation logging). See the ``allow-empty-password``,
284 ``allow-root-login``, ``empty-root-password``, and ``post-install-logging``
285 features in this list for additional information.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500286
287- *dev-pkgs:* Installs development packages (headers and extra library
288 links) for all packages installed in a given image.
289
290- *doc-pkgs:* Installs documentation packages for all packages
291 installed in a given image.
292
Andrew Geissler615f2f12022-07-15 14:00:58 -0500293- *empty-root-password:* This feature or ``debug-tweaks`` is required if
294 you want to allow root login with an empty password. If these features
295 are not present in :term:`IMAGE_FEATURES`, a non-empty password is
296 forced in ``/etc/passwd`` and ``/etc/shadow`` if such files exist.
297
298 .. note::
299 ``empty-root-passwd`` doesn't set an empty root password by itself.
300 You get an initial empty root password thanks to the
301 :oe_git:`base-passwd </openembedded-core/tree/meta/recipes-core/base-passwd/>`
302 and :oe_git:`shadow </openembedded-core/tree/meta/recipes-extended/shadow/>`
303 recipes, and the presence of ``empty-root-passwd`` or ``debug-tweaks``
304 just disables the mechanism which forces an non-empty password for the
305 root user.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500306
Patrick Williams975a06f2022-10-21 14:42:47 -0500307- *lic-pkgs:* Installs license packages for all packages installed in a
308 given image.
309
Andrew Geissler595f6302022-01-24 19:11:47 +0000310- *overlayfs-etc:* Configures the ``/etc`` directory to be in ``overlayfs``.
311 This allows to store device specific information elsewhere, especially
312 if the root filesystem is configured to be read-only.
313
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500314- *package-management:* Installs package management tools and preserves
315 the package manager database.
316
317- *post-install-logging:* Enables logging postinstall script runs to
318 the ``/var/log/postinstall.log`` file on first boot of the image on
319 the target system.
320
321 .. note::
322
Andrew Geissler4c19ea12020-10-27 13:52:24 -0500323 To make the ``/var/log`` directory on the target persistent, use the
324 :term:`VOLATILE_LOG_DIR` variable by setting it to "no".
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500325
326- *ptest-pkgs:* Installs ptest packages for all ptest-enabled recipes.
327
328- *read-only-rootfs:* Creates an image whose root filesystem is
329 read-only. See the
Andrew Geissler09209ee2020-12-13 08:44:15 -0600330 ":ref:`dev-manual/common-tasks:creating a read-only root filesystem`"
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500331 section in the Yocto Project Development Tasks Manual for more
332 information.
333
Patrick Williams975a06f2022-10-21 14:42:47 -0500334- *read-only-rootfs-delayed-postinsts:* when specified in conjunction
335 with ``read-only-rootfs``, specifies that post-install scripts are
336 still permitted (this assumes that the root filesystem will be made
337 writeable for the first boot; this feature does not do anything to
338 ensure that - it just disables the check for post-install scripts.)
339
340- *serial-autologin-root:* when specified in conjunction with
341 ``empty-root-password`` will automatically login as root on the
342 serial console. This of course opens up a security hole if the
343 serial console is potentially accessible to an attacker, so use
344 with caution.
345
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500346- *splash:* Enables showing a splash screen during boot. By default,
347 this screen is provided by ``psplash``, which does allow
348 customization. If you prefer to use an alternative splash screen
349 package, you can do so by setting the ``SPLASH`` variable to a
350 different package name (or names) within the image recipe or at the
351 distro configuration level.
352
Patrick Williams975a06f2022-10-21 14:42:47 -0500353- *stateless-rootfs:*: specifies that the image should be created as
354 stateless - when using ``systemd``, ``systemctl-native`` will not
355 be run on the image, leaving the image for population at runtime by
356 systemd.
357
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500358- *staticdev-pkgs:* Installs static development packages, which are
359 static libraries (i.e. ``*.a`` files), for all packages installed in
360 a given image.
361
362Some image features are available only when you inherit the
363:ref:`core-image <ref-classes-core-image>` class. The current list of
364these valid features is as follows:
365
366- *hwcodecs:* Installs hardware acceleration codecs.
367
368- *nfs-server:* Installs an NFS server.
369
370- *perf:* Installs profiling tools such as ``perf``, ``systemtap``, and
371 ``LTTng``. For general information on user-space tools, see the
Andrew Geissler09209ee2020-12-13 08:44:15 -0600372 :doc:`/sdk-manual/index` manual.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500373
374- *ssh-server-dropbear:* Installs the Dropbear minimal SSH server.
375
Patrick Williams975a06f2022-10-21 14:42:47 -0500376 .. note::
377
378 As of the 4.1 release, the ``ssh-server-dropbear`` feature also
379 recommends the ``openssh-sftp-server`` package, which by default
380 will be pulled into the image. This is because recent versions of
381 the OpenSSH ``scp`` client now use the SFTP protocol, and thus
382 require an SFTP server to be present to connect to. However, if
383 you wish to use the Dropbear ssh server `without` the SFTP server
384 installed, you can either remove ``ssh-server-dropbear`` from
385 ``IMAGE_FEATURES`` and add ``dropbear`` to :term:`IMAGE_INSTALL`
386 instead, or alternatively still use the feature but set
387 :term:`BAD_RECOMMENDATIONS` as follows::
388
389 BAD_RECOMMENDATIONS += "openssh-sftp-server"
390
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500391- *ssh-server-openssh:* Installs the OpenSSH SSH server, which is more
392 full-featured than Dropbear. Note that if both the OpenSSH SSH server
393 and the Dropbear minimal SSH server are present in
Andrew Geissler09036742021-06-25 14:25:14 -0500394 :term:`IMAGE_FEATURES`, then OpenSSH will take precedence and Dropbear
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500395 will not be installed.
396
397- *tools-debug:* Installs debugging tools such as ``strace`` and
398 ``gdb``. For information on GDB, see the
Andrew Geissler09209ee2020-12-13 08:44:15 -0600399 ":ref:`dev-manual/common-tasks:debugging with the gnu project debugger (gdb) remotely`" section
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500400 in the Yocto Project Development Tasks Manual. For information on
Andrew Geissler09209ee2020-12-13 08:44:15 -0600401 tracing and profiling, see the :doc:`/profile-manual/index`.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500402
403- *tools-sdk:* Installs a full SDK that runs on the device.
404
405- *tools-testapps:* Installs device testing tools (e.g. touchscreen
406 debugging).
407
Patrick Williams975a06f2022-10-21 14:42:47 -0500408- *weston:* Installs Weston (reference Wayland environment).
409
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500410- *x11:* Installs the X server.
411
412- *x11-base:* Installs the X server with a minimal environment.
413
414- *x11-sato:* Installs the OpenedHand Sato environment.
415
416.. _ref-features-backfill:
417
418Feature Backfilling
419===================
420
421Sometimes it is necessary in the OpenEmbedded build system to extend
422:term:`MACHINE_FEATURES` or
423:term:`DISTRO_FEATURES` to control functionality
424that was previously enabled and not able to be disabled. For these
425cases, we need to add an additional feature item to appear in one of
426these variables, but we do not want to force developers who have
427existing values of the variables in their configuration to add the new
428feature in order to retain the same overall level of functionality.
429Thus, the OpenEmbedded build system has a mechanism to automatically
430"backfill" these added features into existing distro or machine
431configurations. You can see the list of features for which this is done
432by finding the
433:term:`DISTRO_FEATURES_BACKFILL` and
434:term:`MACHINE_FEATURES_BACKFILL`
435variables in the ``meta/conf/bitbake.conf`` file.
436
437Because such features are backfilled by default into all configurations
438as described in the previous paragraph, developers who wish to disable
439the new features need to be able to selectively prevent the backfilling
440from occurring. They can do this by adding the undesired feature or
441features to the
442:term:`DISTRO_FEATURES_BACKFILL_CONSIDERED`
443or
444:term:`MACHINE_FEATURES_BACKFILL_CONSIDERED`
445variables for distro features and machine features respectively.
446
447Here are two examples to help illustrate feature backfilling:
448
449- *The "pulseaudio" distro feature option*: Previously, PulseAudio
450 support was enabled within the Qt and GStreamer frameworks. Because
451 of this, the feature is backfilled and thus enabled for all distros
Andrew Geissler09036742021-06-25 14:25:14 -0500452 through the :term:`DISTRO_FEATURES_BACKFILL` variable in the
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500453 ``meta/conf/bitbake.conf`` file. However, your distro needs to
454 disable the feature. You can disable the feature without affecting
455 other existing distro configurations that need PulseAudio support by
Andrew Geissler09036742021-06-25 14:25:14 -0500456 adding "pulseaudio" to :term:`DISTRO_FEATURES_BACKFILL_CONSIDERED` in
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500457 your distro's ``.conf`` file. Adding the feature to this variable
Andrew Geissler09036742021-06-25 14:25:14 -0500458 when it also exists in the :term:`DISTRO_FEATURES_BACKFILL` variable
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500459 prevents the build system from adding the feature to your
Andrew Geissler09036742021-06-25 14:25:14 -0500460 configuration's :term:`DISTRO_FEATURES`, effectively disabling the
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500461 feature for that particular distro.
462
463- *The "rtc" machine feature option*: Previously, real time clock (RTC)
464 support was enabled for all target devices. Because of this, the
465 feature is backfilled and thus enabled for all machines through the
Andrew Geissler09036742021-06-25 14:25:14 -0500466 :term:`MACHINE_FEATURES_BACKFILL` variable in the
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500467 ``meta/conf/bitbake.conf`` file. However, your target device does not
468 have this capability. You can disable RTC support for your device
469 without affecting other machines that need RTC support by adding the
Andrew Geissler09036742021-06-25 14:25:14 -0500470 feature to your machine's :term:`MACHINE_FEATURES_BACKFILL_CONSIDERED`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500471 list in the machine's ``.conf`` file. Adding the feature to this
Andrew Geissler09036742021-06-25 14:25:14 -0500472 variable when it also exists in the :term:`MACHINE_FEATURES_BACKFILL`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500473 variable prevents the build system from adding the feature to your
Andrew Geissler09036742021-06-25 14:25:14 -0500474 configuration's :term:`MACHINE_FEATURES`, effectively disabling RTC
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500475 support for that particular machine.