MACHINE_FEATURES vs DISTRO_FEATURES in Yocto

MACHINE_FEATURES: Specifies a list of hardware features the MACHINE is capable of supporting.

Yocto ships with a list of machine features:
keyboard: Hardware has a keyboard
screen: Hardware has a screen
serial: Hardware has serial support (usually RS232)
touchscreen: Hardware has a touchscreen
bluetooth: Hardware has integrated BT
wifi: Hardware has integrated WiFi

For all the features supported by Yocto, you can visit: https://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html#ref-features-machine

So, if your machine has no wifi chip, you can remove 'wifi' from MACHINE_FEATURES
MACHINE_FEATURES_remove = "wifi"

DISTRO_FEATURES: Specifies the software support you want in your distribution for various features. DISTRO_FEATURES may influence how the recipes are configured and the packages are installed in images.

List of Distro Features: https://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html#ref-features-distro

For example, if a recipe has optional GUI Support, it checks for 'X11' in DISTRO_FEATURES in configure task and build accordingly

MACHINE_FEATURES vs DISTRO_FEATURES:

Both MACHINE_FEATURES and DISTRO_FEATURES are required to provide feasible support on the final system

For example, you have seen that 'bluetooth' is present in both MACHINE_FEATURES and DISTRO_FEATURES

If you have added 'bluetooth' in MACHINE_FEATURES but not in 'DISTRO_FEATURES', applications used by the OS will be built without WiFi Support.

If you have added 'bluetooth' in DISTRO_FEATURES but not in 'MACHINE_FEATURES', modules and applications needed for the 'bluetooth' will not be installed, though the operating system has support for bluetooth.

Comments

Popular posts from this blog

bb.utils.contains yocto

Difference between RDEPENDS and DEPENDS in Yocto

make config vs oldconfig vs defconfig vs menuconfig vs savedefconfig