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.
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
Post a Comment