summaryrefslogtreecommitdiffstats
path: root/documentation/ref-manual/features.rst
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/ref-manual/features.rst')
-rw-r--r--documentation/ref-manual/features.rst277
1 files changed, 196 insertions, 81 deletions
diff --git a/documentation/ref-manual/features.rst b/documentation/ref-manual/features.rst
index 89c06eb65f..2c074ab9c7 100644
--- a/documentation/ref-manual/features.rst
+++ b/documentation/ref-manual/features.rst
@@ -6,14 +6,14 @@ Features
6 6
7This chapter provides a reference of shipped machine and distro features 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 8you can include as part of your image, a reference on image features you
9can select, and a reference on feature backfilling. 9can select, and a reference on :ref:`ref-features-backfill`.
10 10
11Features provide a mechanism for working out which packages should be 11Features provide a mechanism for working out which packages should be
12included in the generated images. Distributions can select which 12included in the generated images. Distributions can select which
13features they want to support through the ``DISTRO_FEATURES`` variable, 13features they want to support through the :term:`DISTRO_FEATURES` variable,
14which is set or appended to in a distribution's configuration file such 14which is set or appended to in a distribution's configuration file such
15as ``poky.conf``, ``poky-tiny.conf``, ``poky-lsb.conf`` and so forth. 15as ``poky.conf``, ``poky-tiny.conf``, ``poky-altcfg.conf`` and so forth.
16Machine features are set in the ``MACHINE_FEATURES`` variable, which is 16Machine features are set in the :term:`MACHINE_FEATURES` variable, which is
17set in the machine configuration file and specifies the hardware 17set in the machine configuration file and specifies the hardware
18features for a given machine. 18features for a given machine.
19 19
@@ -26,8 +26,7 @@ One 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 26a particular feature is contained or not is to ``grep`` through the
27:term:`Metadata` for the feature. Here is an example that 27:term:`Metadata` for the feature. Here is an example that
28discovers the recipes whose build is potentially changed based on a 28discovers the recipes whose build is potentially changed based on a
29given feature: 29given feature::
30::
31 30
32 $ cd poky 31 $ cd poky
33 $ git grep 'contains.*MACHINE_FEATURES.*feature' 32 $ git grep 'contains.*MACHINE_FEATURES.*feature'
@@ -53,8 +52,6 @@ Project metadata:
53 52
54- *alsa:* Hardware has ALSA audio drivers 53- *alsa:* Hardware has ALSA audio drivers
55 54
56- *apm:* Hardware uses APM (or APM emulation)
57
58- *bluetooth:* Hardware has integrated BT 55- *bluetooth:* Hardware has integrated BT
59 56
60- *efi:* Support for booting through EFI 57- *efi:* Support for booting through EFI
@@ -63,6 +60,8 @@ Project metadata:
63 60
64- *keyboard:* Hardware has a keyboard 61- *keyboard:* Hardware has a keyboard
65 62
63- *numa:* Hardware has non-uniform memory access
64
66- *pcbios:* Support for booting through BIOS 65- *pcbios:* Support for booting through BIOS
67 66
68- *pci:* Hardware has a PCI bus 67- *pci:* Hardware has a PCI bus
@@ -71,6 +70,8 @@ Project metadata:
71 70
72- *phone:* Mobile phone (voice) support 71- *phone:* Mobile phone (voice) support
73 72
73- *qemu-usermode:* QEMU can support user-mode emulation for this machine
74
74- *qvga:* Machine has a QVGA (320x240) display 75- *qvga:* Machine has a QVGA (320x240) display
75 76
76- *rtc:* Machine has a Real-Time Clock 77- *rtc:* Machine has a Real-Time Clock
@@ -101,7 +102,9 @@ packages, and they can go beyond simply controlling the installation of
101a package or packages. In most cases, the presence or absence of a 102a package or packages. In most cases, the presence or absence of a
102feature translates to the appropriate option supplied to the configure 103feature translates to the appropriate option supplied to the configure
103script during the :ref:`ref-tasks-configure` task for 104script during the :ref:`ref-tasks-configure` task for
104the recipes that optionally support the feature. 105the recipes that optionally support the feature. Appropriate options
106must be supplied, and enabling/disabling :term:`PACKAGECONFIG` for the
107concerned packages is one way of supplying such options.
105 108
106Some distro features are also machine features. These select features 109Some distro features are also machine features. These select features
107make sense to be controlled both at the machine and distribution 110make sense to be controlled both at the machine and distribution
@@ -109,11 +112,22 @@ configuration level. See the
109:term:`COMBINED_FEATURES` variable for more 112:term:`COMBINED_FEATURES` variable for more
110information. 113information.
111 114
115.. note::
116
117 :term:`DISTRO_FEATURES` is normally independent of kernel configuration,
118 so if a feature specified in :term:`DISTRO_FEATURES` also relies on
119 support in the kernel, you will also need to ensure that support is
120 enabled in the kernel configuration.
121
112This list only represents features as shipped with the Yocto Project 122This list only represents features as shipped with the Yocto Project
113metadata: 123metadata, as extra layers can define their own:
124
125- *3g:* Include support for cellular data.
114 126
115- *alsa:* Include ALSA support (OSS compatibility kernel modules 127- *acl:* Include :wikipedia:`Access Control List <Access-control_list>` support.
116 installed if available). 128
129- *alsa:* Include :wikipedia:`Advanced Linux Sound Architecture <Advanced_Linux_Sound_Architecture>`
130 support (OSS compatibility kernel modules installed if available).
117 131
118- *api-documentation:* Enables generation of API documentation during 132- *api-documentation:* Enables generation of API documentation during
119 recipe builds. The resulting documentation is added to SDK tarballs 133 recipe builds. The resulting documentation is added to SDK tarballs
@@ -126,39 +140,85 @@ metadata:
126 140
127- *cramfs:* Include CramFS support. 141- *cramfs:* Include CramFS support.
128 142
143- *debuginfod:* Include support for getting ELF debugging information through
144 a :ref:`debuginfod <dev-manual/debugging:using the debuginfod server method>`
145 server.
146
129- *directfb:* Include DirectFB support. 147- *directfb:* Include DirectFB support.
130 148
131- *ext2:* Include tools for supporting for devices with internal 149- *ext2:* Include tools for supporting devices with internal
132 HDD/Microdrive for storing files (instead of Flash only devices). 150 HDD/Microdrive for storing files (instead of Flash only devices).
133 151
152- *gobject-introspection-data:* Include data to support
153 `GObject Introspection <https://gi.readthedocs.io/en/latest/>`__.
154
134- *ipsec:* Include IPSec support. 155- *ipsec:* Include IPSec support.
135 156
157- *ipv4:* Include IPv4 support.
158
136- *ipv6:* Include IPv6 support. 159- *ipv6:* Include IPv6 support.
137 160
138- *keyboard:* Include keyboard support (e.g. keymaps will be loaded 161- *keyboard:* Include keyboard support (e.g. keymaps will be loaded
139 during boot). 162 during boot).
140 163
164- *minidebuginfo:* Add minimal debug symbols :ref:`(minidebuginfo)<dev-manual/debugging:enabling minidebuginfo>`
165 to binary files containing, allowing ``coredumpctl`` and ``gdb`` to show symbolicated stack traces.
166
167- *multiarch:* Enable building applications with multiple architecture
168 support.
169
141- *ldconfig:* Include support for ldconfig and ``ld.so.conf`` on the 170- *ldconfig:* Include support for ldconfig and ``ld.so.conf`` on the
142 target. 171 target.
143 172
173- *lto:* Enable `Link-Time Optimisation <https://gcc.gnu.org/wiki/LinkTimeOptimization>`__.
174
175- *nfc:* Include support for
176 `Near Field Communication <https://en.wikipedia.org/wiki/Near-field_communication>`__.
177
144- *nfs:* Include NFS client support (for mounting NFS exports on 178- *nfs:* Include NFS client support (for mounting NFS exports on
145 device). 179 device).
146 180
181- *nls:* Include National Language Support (NLS).
182
147- *opengl:* Include the Open Graphics Library, which is a 183- *opengl:* Include the Open Graphics Library, which is a
148 cross-language, multi-platform application programming interface used 184 cross-language, multi-platform application programming interface used
149 for rendering two and three-dimensional graphics. 185 for rendering two and three-dimensional graphics.
150 186
187- *overlayfs:* Include `OverlayFS <https://docs.kernel.org/filesystems/overlayfs.html>`__
188 support.
189
190- *pam:* Include :wikipedia:`Pluggable Authentication Module (PAM) <Pluggable_authentication_module>`
191 support.
192
151- *pci:* Include PCI bus support. 193- *pci:* Include PCI bus support.
152 194
153- *pcmcia:* Include PCMCIA/CompactFlash support. 195- *pcmcia:* Include PCMCIA/CompactFlash support.
154 196
197- *pni-names:* Enable generation of persistent network interface names, i.e.
198 the system tries hard to have the same but unique names for the network
199 interfaces even after a reinstall.
200
201- *polkit:* Include :wikipedia:`Polkit <Polkit>` support.
202
155- *ppp:* Include PPP dialup support. 203- *ppp:* Include PPP dialup support.
156 204
157- *ptest:* Enables building the package tests where supported by 205- *ptest:* Enables building the package tests where supported by
158 individual recipes. For more information on package tests, see the 206 individual recipes. For more information on package tests, see the
159 ":ref:`dev-manual/common-tasks:testing packages with ptest`" section 207 ":ref:`test-manual/ptest:testing packages with ptest`" section
160 in the Yocto Project Development Tasks Manual. 208 in the Yocto Project Development Tasks Manual.
161 209
210- *pulseaudio:* Include support for
211 `PulseAudio <https://www.freedesktop.org/wiki/Software/PulseAudio/>`__.
212
213- *selinux:* Include support for
214 :wikipedia:`Security-Enhanced Linux (SELinux) <Security-Enhanced_Linux>`
215 (requires `meta-selinux <https://layers.openembedded.org/layerindex/layer/meta-selinux/>`__).
216
217- *seccomp:* Enables building applications with
218 :wikipedia:`seccomp <Seccomp>` support, to
219 allow them to strictly restrict the system calls that they are allowed
220 to invoke.
221
162- *smbfs:* Include SMB networks client support (for mounting 222- *smbfs:* Include SMB networks client support (for mounting
163 Samba/Microsoft Windows shares on device). 223 Samba/Microsoft Windows shares on device).
164 224
@@ -167,6 +227,10 @@ metadata:
167 reduced shell overhead, and other features. This ``init`` manager is 227 reduced shell overhead, and other features. This ``init`` manager is
168 used by many distributions. 228 used by many distributions.
169 229
230- *systemd-resolved:* Include support and use ``systemd-resolved`` as the
231 main DNS name resolver in ``glibc`` Name Service Switch. This is a DNS
232 resolver daemon from ``systemd``.
233
170- *usbgadget:* Include USB Gadget Device support (for USB 234- *usbgadget:* Include USB Gadget Device support (for USB
171 networking/serial/storage). 235 networking/serial/storage).
172 236
@@ -177,6 +241,11 @@ metadata:
177 directories into their respective counterparts in the ``/usr`` 241 directories into their respective counterparts in the ``/usr``
178 directory to provide better package and application compatibility. 242 directory to provide better package and application compatibility.
179 243
244- *vfat:* Include :wikipedia:`FAT filesystem <File_Allocation_Table>`
245 support.
246
247- *vulkan:* Include support for the :wikipedia:`Vulkan API <Vulkan>`.
248
180- *wayland:* Include the Wayland display server protocol and the 249- *wayland:* Include the Wayland display server protocol and the
181 library that supports it. 250 library that supports it.
182 251
@@ -184,6 +253,12 @@ metadata:
184 253
185- *x11:* Include the X server and libraries. 254- *x11:* Include the X server and libraries.
186 255
256- *xattr:* Include support for
257 :wikipedia:`extended file attributes <Extended_file_attributes>`.
258
259- *zeroconf:* Include support for
260 `zero configuration networking <https://en.wikipedia.org/wiki/Zero-configuration_networking>`__.
261
187.. _ref-features-image: 262.. _ref-features-image:
188 263
189Image Features 264Image Features
@@ -197,28 +272,41 @@ you can add several different predefined packages such as development
197utilities or packages with debug information needed to investigate 272utilities or packages with debug information needed to investigate
198application problems or profile applications. 273application problems or profile applications.
199 274
200The following image features are available for all images: 275The image features available for all images are:
276
277- *allow-empty-password:* Allows Dropbear and OpenSSH to accept
278 logins from accounts having an empty password string.
201 279
202- *allow-empty-password:* Allows Dropbear and OpenSSH to accept root 280- *allow-root-login:* Allows Dropbear and OpenSSH to accept root logins.
203 logins and logins from accounts having an empty password string.
204 281
205- *dbg-pkgs:* Installs debug symbol packages for all packages installed 282- *dbg-pkgs:* Installs debug symbol packages for all packages installed
206 in a given image. 283 in a given image.
207 284
208- *debug-tweaks:* Makes an image suitable for development (e.g. allows
209 root logins without passwords and enables post-installation logging).
210 See the 'allow-empty-password', 'empty-root-password', and
211 'post-install-logging' features in this list for additional
212 information.
213
214- *dev-pkgs:* Installs development packages (headers and extra library 285- *dev-pkgs:* Installs development packages (headers and extra library
215 links) for all packages installed in a given image. 286 links) for all packages installed in a given image.
216 287
217- *doc-pkgs:* Installs documentation packages for all packages 288- *doc-pkgs:* Installs documentation packages for all packages
218 installed in a given image. 289 installed in a given image.
219 290
220- *empty-root-password:* Sets the root password to an empty string, 291- *empty-root-password:* This feature can be used if you want to allow root
221 which allows logins with a blank password. 292 login with an empty password. If this feature is not present in
293 :term:`IMAGE_FEATURES`, a non-empty password is forced in ``/etc/passwd`` and
294 ``/etc/shadow`` if such files exist.
295
296 .. note::
297 ``empty-root-password`` doesn't set an empty root password by itself.
298 You get an initial empty root password thanks to the
299 :oe_git:`base-passwd </openembedded-core/tree/meta/recipes-core/base-passwd/>`
300 and :oe_git:`shadow </openembedded-core/tree/meta/recipes-extended/shadow/>`
301 recipes, and the presence of ``empty-root-password`` just disables the
302 mechanism which forces an non-empty password for the root user.
303
304- *lic-pkgs:* Installs license packages for all packages installed in a
305 given image.
306
307- *overlayfs-etc:* Configures the ``/etc`` directory to be in ``overlayfs``.
308 This allows to store device specific information elsewhere, especially
309 if the root filesystem is configured to be read-only.
222 310
223- *package-management:* Installs package management tools and preserves 311- *package-management:* Installs package management tools and preserves
224 the package manager database. 312 the package manager database.
@@ -229,30 +317,48 @@ The following image features are available for all images:
229 317
230 .. note:: 318 .. note::
231 319
232 To make the ``/var/log`` directory on the target persistent, use the 320 To make the ``/var/log`` directory on the target persistent, remove the
233 :term:`VOLATILE_LOG_DIR` variable by setting it to "no". 321 ``files/fs-perms-volatile-log.txt`` value from
322 :term:`FILESYSTEM_PERMS_TABLES`.
234 323
235- *ptest-pkgs:* Installs ptest packages for all ptest-enabled recipes. 324- *ptest-pkgs:* Installs ptest packages for all ptest-enabled recipes.
236 325
237- *read-only-rootfs:* Creates an image whose root filesystem is 326- *read-only-rootfs:* Creates an image whose root filesystem is
238 read-only. See the 327 read-only. See the
239 ":ref:`dev-manual/common-tasks:creating a read-only root filesystem`" 328 ":ref:`dev-manual/read-only-rootfs:creating a read-only root filesystem`"
240 section in the Yocto Project Development Tasks Manual for more 329 section in the Yocto Project Development Tasks Manual for more
241 information. 330 information.
242 331
332- *read-only-rootfs-delayed-postinsts:* when specified in conjunction
333 with ``read-only-rootfs``, specifies that post-install scripts are
334 still permitted (this assumes that the root filesystem will be made
335 writeable for the first boot; this feature does not do anything to
336 ensure that - it just disables the check for post-install scripts.)
337
338- *serial-autologin-root:* when specified in conjunction with
339 ``empty-root-password`` will automatically login as root on the
340 serial console. This of course opens up a security hole if the
341 serial console is potentially accessible to an attacker, so use
342 with caution.
343
243- *splash:* Enables showing a splash screen during boot. By default, 344- *splash:* Enables showing a splash screen during boot. By default,
244 this screen is provided by ``psplash``, which does allow 345 this screen is provided by ``psplash``, which does allow
245 customization. If you prefer to use an alternative splash screen 346 customization. If you prefer to use an alternative splash screen
246 package, you can do so by setting the ``SPLASH`` variable to a 347 package, you can do so by setting the :term:`SPLASH` variable to a
247 different package name (or names) within the image recipe or at the 348 different package name (or names) within the image recipe or at the
248 distro configuration level. 349 distro configuration level.
249 350
351- *stateless-rootfs:*: specifies that the image should be created as
352 stateless - when using ``systemd``, ``systemctl-native`` will not
353 be run on the image, leaving the image for population at runtime by
354 systemd.
355
250- *staticdev-pkgs:* Installs static development packages, which are 356- *staticdev-pkgs:* Installs static development packages, which are
251 static libraries (i.e. ``*.a`` files), for all packages installed in 357 static libraries (i.e. ``*.a`` files), for all packages installed in
252 a given image. 358 a given image.
253 359
254Some image features are available only when you inherit the 360Some image features are available only when you inherit the
255:ref:`core-image <ref-classes-core-image>` class. The current list of 361:ref:`ref-classes-core-image` class. The current list of
256these valid features is as follows: 362these valid features is as follows:
257 363
258- *hwcodecs:* Installs hardware acceleration codecs. 364- *hwcodecs:* Installs hardware acceleration codecs.
@@ -265,15 +371,30 @@ these valid features is as follows:
265 371
266- *ssh-server-dropbear:* Installs the Dropbear minimal SSH server. 372- *ssh-server-dropbear:* Installs the Dropbear minimal SSH server.
267 373
374 .. note::
375
376 As of the 4.1 release, the ``ssh-server-dropbear`` feature also
377 recommends the ``openssh-sftp-server`` package, which by default
378 will be pulled into the image. This is because recent versions of
379 the OpenSSH ``scp`` client now use the SFTP protocol, and thus
380 require an SFTP server to be present to connect to. However, if
381 you wish to use the Dropbear ssh server `without` the SFTP server
382 installed, you can either remove ``ssh-server-dropbear`` from
383 ``IMAGE_FEATURES`` and add ``dropbear`` to :term:`IMAGE_INSTALL`
384 instead, or alternatively still use the feature but set
385 :term:`BAD_RECOMMENDATIONS` as follows::
386
387 BAD_RECOMMENDATIONS += "openssh-sftp-server"
388
268- *ssh-server-openssh:* Installs the OpenSSH SSH server, which is more 389- *ssh-server-openssh:* Installs the OpenSSH SSH server, which is more
269 full-featured than Dropbear. Note that if both the OpenSSH SSH server 390 full-featured than Dropbear. Note that if both the OpenSSH SSH server
270 and the Dropbear minimal SSH server are present in 391 and the Dropbear minimal SSH server are present in
271 ``IMAGE_FEATURES``, then OpenSSH will take precedence and Dropbear 392 :term:`IMAGE_FEATURES`, then OpenSSH will take precedence and Dropbear
272 will not be installed. 393 will not be installed.
273 394
274- *tools-debug:* Installs debugging tools such as ``strace`` and 395- *tools-debug:* Installs debugging tools such as ``strace`` and
275 ``gdb``. For information on GDB, see the 396 ``gdb``. For information on GDB, see the
276 ":ref:`dev-manual/common-tasks:debugging with the gnu project debugger (gdb) remotely`" section 397 ":ref:`dev-manual/debugging:debugging with the gnu project debugger (gdb) remotely`" section
277 in the Yocto Project Development Tasks Manual. For information on 398 in the Yocto Project Development Tasks Manual. For information on
278 tracing and profiling, see the :doc:`/profile-manual/index`. 399 tracing and profiling, see the :doc:`/profile-manual/index`.
279 400
@@ -282,6 +403,8 @@ these valid features is as follows:
282- *tools-testapps:* Installs device testing tools (e.g. touchscreen 403- *tools-testapps:* Installs device testing tools (e.g. touchscreen
283 debugging). 404 debugging).
284 405
406- *weston:* Installs Weston (reference Wayland environment).
407
285- *x11:* Installs the X server. 408- *x11:* Installs the X server.
286 409
287- *x11-base:* Installs the X server with a minimal environment. 410- *x11-base:* Installs the X server with a minimal environment.
@@ -293,58 +416,50 @@ these valid features is as follows:
293Feature Backfilling 416Feature Backfilling
294=================== 417===================
295 418
296Sometimes it is necessary in the OpenEmbedded build system to extend 419Sometimes it is necessary in the OpenEmbedded build system to
297:term:`MACHINE_FEATURES` or 420add new functionality to :term:`MACHINE_FEATURES` or
298:term:`DISTRO_FEATURES` to control functionality 421:term:`DISTRO_FEATURES`, but at the same time, allow existing
299that was previously enabled and not able to be disabled. For these 422distributions or machine definitions to opt out of such new
300cases, we need to add an additional feature item to appear in one of 423features, to retain the same overall level of functionality.
301these variables, but we do not want to force developers who have 424
302existing values of the variables in their configuration to add the new 425To make this possible, the OpenEmbedded build system has a mechanism to
303feature in order to retain the same overall level of functionality. 426automatically "backfill" features into existing distro or machine
304Thus, the OpenEmbedded build system has a mechanism to automatically
305"backfill" these added features into existing distro or machine
306configurations. You can see the list of features for which this is done 427configurations. You can see the list of features for which this is done
307by finding the 428by checking the :term:`DISTRO_FEATURES_BACKFILL` and
308:term:`DISTRO_FEATURES_BACKFILL` and 429:term:`MACHINE_FEATURES_BACKFILL` variables in the
309:term:`MACHINE_FEATURES_BACKFILL` 430``meta/conf/bitbake.conf`` file.
310variables in the ``meta/conf/bitbake.conf`` file. 431
311 432These two variables are paired with the
312Because such features are backfilled by default into all configurations
313as described in the previous paragraph, developers who wish to disable
314the new features need to be able to selectively prevent the backfilling
315from occurring. They can do this by adding the undesired feature or
316features to the
317:term:`DISTRO_FEATURES_BACKFILL_CONSIDERED` 433:term:`DISTRO_FEATURES_BACKFILL_CONSIDERED`
318or 434and :term:`MACHINE_FEATURES_BACKFILL_CONSIDERED` variables
319:term:`MACHINE_FEATURES_BACKFILL_CONSIDERED` 435which allow distro or machine configuration maintainers to `consider` any
320variables for distro features and machine features respectively. 436added feature, and decide when they wish to keep or exclude such feature,
321 437thus preventing the backfilling from happening.
322Here are two examples to help illustrate feature backfilling: 438
323 439Here are two examples to illustrate feature backfilling:
324- *The "pulseaudio" distro feature option*: Previously, PulseAudio 440
325 support was enabled within the Qt and GStreamer frameworks. Because 441- *The "pulseaudio" distro feature option*: Previously, PulseAudio support was
326 of this, the feature is backfilled and thus enabled for all distros 442 enabled within the Qt and GStreamer frameworks. Because of this, the feature
327 through the ``DISTRO_FEATURES_BACKFILL`` variable in the 443 is now backfilled and thus enabled for all distros through the
328 ``meta/conf/bitbake.conf`` file. However, your distro needs to 444 :term:`DISTRO_FEATURES_BACKFILL` variable in the ``meta/conf/bitbake.conf``
329 disable the feature. You can disable the feature without affecting 445 file. However, if your distro needs to disable the feature, you can do so
330 other existing distro configurations that need PulseAudio support by 446 without affecting other existing distro configurations that need PulseAudio
331 adding "pulseaudio" to ``DISTRO_FEATURES_BACKFILL_CONSIDERED`` in 447 support. You do this by adding "pulseaudio" to
332 your distro's ``.conf`` file. Adding the feature to this variable 448 :term:`DISTRO_FEATURES_BACKFILL_CONSIDERED` in your distro's ``.conf``
333 when it also exists in the ``DISTRO_FEATURES_BACKFILL`` variable 449 file. So, adding the feature to this variable when it also exists in the
334 prevents the build system from adding the feature to your 450 :term:`DISTRO_FEATURES_BACKFILL` variable prevents the build system from
335 configuration's ``DISTRO_FEATURES``, effectively disabling the 451 adding the feature to your configuration's :term:`DISTRO_FEATURES`,
336 feature for that particular distro. 452 effectively disabling the feature for that particular distro.
337 453
338- *The "rtc" machine feature option*: Previously, real time clock (RTC) 454- *The "rtc" machine feature option*: Previously, real time clock (RTC)
339 support was enabled for all target devices. Because of this, the 455 support was enabled for all target devices. Because of this, the
340 feature is backfilled and thus enabled for all machines through the 456 feature is backfilled and thus enabled for all machines through the
341 ``MACHINE_FEATURES_BACKFILL`` variable in the 457 :term:`MACHINE_FEATURES_BACKFILL` variable in the ``meta/conf/bitbake.conf``
342 ``meta/conf/bitbake.conf`` file. However, your target device does not 458 file. However, if your target device does not have this capability, you can
343 have this capability. You can disable RTC support for your device 459 disable RTC support for your device without affecting other machines
344 without affecting other machines that need RTC support by adding the 460 that need RTC support. You do this by adding the "rtc" feature to the
345 feature to your machine's ``MACHINE_FEATURES_BACKFILL_CONSIDERED`` 461 :term:`MACHINE_FEATURES_BACKFILL_CONSIDERED` list in your machine's ``.conf``
346 list in the machine's ``.conf`` file. Adding the feature to this 462 file. So, adding the feature to this variable when it also exists in the
347 variable when it also exists in the ``MACHINE_FEATURES_BACKFILL`` 463 :term:`MACHINE_FEATURES_BACKFILL` variable prevents the build system from
348 variable prevents the build system from adding the feature to your 464 adding the feature to your configuration's :term:`MACHINE_FEATURES`,
349 configuration's ``MACHINE_FEATURES``, effectively disabling RTC 465 effectively disabling RTC support for that particular machine.
350 support for that particular machine.