
{"id":10966,"date":"2024-04-15T04:33:01","date_gmt":"2024-04-15T04:33:01","guid":{"rendered":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/yocto_build_systems-2\/"},"modified":"2025-03-25T05:18:34","modified_gmt":"2025-03-25T05:18:34","slug":"yocto_build_systems-2","status":"publish","type":"page","link":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/yocto_build_systems-2\/","title":{"rendered":"Yocto Build Systems"},"content":{"rendered":"<p><br \/>\n <\/p>\n<div class=\"contentLayout2\">\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<p class=\"with-breadcrumbs\"><span><span>The primary function of the Yocto Project within RDK development is the building and packaging of multiple components. RDK leverages the capabilities of the Yocto Project to create customized Linux-based software distributions that power the devices like <span>set-top boxes, smart TVs,<\/span> <span>cable modems, routers<\/span> etc.&nbsp;<\/span><span>To fully understand the concepts presented in this document, it is recommended to read<span>&nbsp;<\/span><a href=\"https:\/\/developer.rdkcentral.com\/support\/support\/articles\/rdk_yocto_build_system_overview\/\" rel=\"nofollow\">RDK Yocto Build System Overview<\/a>&nbsp;as an introduction to the concepts explored in this document.<\/span><\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<hr><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 class=\"wp-sub-header\"><span>Introduction<\/span><\/h3>\n<p><span>Folder overview in Yocto for RDK-B:<\/span><\/p>\n<div id=\"expander-1971233222\" class=\"expand-container conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"expand\">\n<div role=\"region\" id=\"expander-content-1971233222\" class=\"expand-content expand-hidden\" aria-labelledby=\"expand-button-1971233222\">\n<ol>\n<li>\n<p><code>meta-virtualization\/recipes-networking<\/code>: <span>This folder consists of recipes related to networking components in RDK-B. It includes recipes for network protocols, connectivity options, and network management utilities.<\/span><\/p>\n<\/li>\n<li>\n<p><code>meta-virtualization\/recipes-graphics<\/code>: <span>This folder contains recipes for graphics-related components in RDK-B. It includes recipes for graphical user interfaces (GUIs), graphics libraries, and rendering engines.<\/span><\/p>\n<\/li>\n<li>\n<p><code>meta-virtualization\/recipes-containers<\/code>: This folder includes <span>recipes that provide containerization support<\/span> in RDK-B. <span>They allow you to build and include container images as part of your embedded system.<\/span><\/p>\n<\/li>\n<li>\n<p><code>meta-virtualization\/recipes-core<\/code><span>: Core recipes and configurations specific to RDK-B.<\/span><\/p>\n<\/li>\n<li>\n<p><code>meta-virtualization\/recipes-extended<\/code>: This folder includes additional recipes that extend the functionality of RDK-B. It covers recipes for various extended components, tools, and services.<\/p>\n<\/li>\n<li>\n<p><code>meta-virtualization\/recipes-devtools<\/code>: This folder contains recipes that <span>provide development tools and utilities<\/span> in RDK-B. <span>These tools assist in the development and debugging processes, making it easier to build, test, and analyze the software.<\/span><\/p>\n<\/li>\n<li>\n<p><span><code>meta-virtualization\/conf:<\/code> conf files <span>define various settings and variables that control the build process and customize the resulting embedded Linux system.&nbsp;It consists of distro and layer.conf file.<\/span><\/span><\/p>\n<\/li>\n<\/ol>\n<p><span><span>&nbsp;other OE layers are-<\/span><\/span><\/p>\n<ol>\n<li>\n<p><code>meta-gnome<\/code>:&nbsp;<span>This layer provides recipes and configurations for the GNOME desktop environment. It includes packages and components related to the GNOME project, such as the GNOME Shell, GNOME applications, and various GNOME libraries.<\/span><\/p>\n<\/li>\n<li>\n<p><span><code>meta-<span>filesystems<\/span><\/code><\/span><span>:&nbsp;<\/span><span>This layer focuses on filesystem-related recipes and configurations. It includes packages for various filesystem types, utilities for managing and formatting filesystems, and other related tools.<\/span><\/p>\n<\/li>\n<li>\n<p><code>meta-initramfs<\/code>:&nbsp;<span>This layer is dedicated to initramfs (initial RAM filesystem) support. It provides recipes for creating and managing initramfs images, which are used during the boot process to load essential components and prepare the system for further booting.<\/span><\/p>\n<\/li>\n<li>\n<p><code>meta-multimedia<\/code>:&nbsp;<span>This layer is focused on multimedia-related recipes and configurations. It includes packages for multimedia frameworks, codecs, players, and related tools. It enables multimedia capabilities in the embedded system.<\/span><\/p>\n<\/li>\n<li>\n<p><code>meta-networking:&nbsp;<\/code><span>This layer provides recipes and configurations for networking-related components. It includes packages for network protocols, utilities for network configuration, network services, and related tools.<\/span><\/p>\n<\/li>\n<li>\n<p><code>meta-oe:&nbsp;<\/code><span>This is a fundamental layer that provides a collection of additional recipes and components from the wider OpenEmbedded community. It includes a wide range of packages and configurations contributed by the community, covering various domains such as development tools, libraries, utilities, and applications.<\/span><\/p>\n<\/li>\n<li>\n<p><code>meta-perl<\/code>:&nbsp;<span>This layer focuses on Perl language support. It includes recipes for Perl modules, extensions, and related tools. It enables Perl development and runtime support in the embedded system.<\/span><\/p>\n<\/li>\n<li>\n<p><code>meta-python<\/code>:&nbsp;<span>This layer provides recipes and configurations for Python language support. It includes packages for Python modules, libraries, and tools. It enables Python development and runtime support in the embedded system.<\/span><\/p>\n<\/li>\n<li>\n<p><code>meta-webserver<\/code>:&nbsp;<span>This layer focuses on web server-related recipes and configurations. It includes packages for popular web servers such as Apache, Nginx, or lighttpd, as well as related tools and configurations for web application development and deployment.<\/span><\/p>\n<\/li>\n<li>\n<p><code>meta-xfce<\/code>:&nbsp;<span>This layer provides recipes and configurations for the Xfce desktop environment. It includes packages and components related to the Xfce project, such as the Xfce desktop environment, applications, and various Xfce libraries.<\/span><\/p>\n<\/li>\n<\/ol>\n<\/div>\n<\/div>\n<p><span>For more details on how to add new component to yocto build system refer:<\/span>&nbsp;<a href=\"https:\/\/wiki.rdkcentral.com\/display\/RDK\/Integration+Guide+for+third-party+applications+into+RDK-B+stack\" rel=\"nofollow\">Integration Guide for third-party applications into RDK-B stack<\/a><\/p>\n<p><span class=\"ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak\"><span>This document focuses on the example of the RDKB openvswitch module<\/span>. O<\/span><span>penvswitch is utilized for software-defined networking and virtual switching functionalities. It plays a crucial role in enabling network virtualization and providing advanced networking capabilities within the RDKB platform.<\/span><\/p>\n<p><span class=\"ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak\"><span>openvswitch<\/span><\/span> <span>comes under these layers:<\/span> <a class=\"external-link\" href=\"https:\/\/code.rdkcentral.com\/r\/plugins\/gitiles\/rdk\/components\/generic\/rdk-oe\/meta-cmf-broadband\/+\/refs\/heads\/rdk-next\" rel=\"nofollow\">meta-cmf-broadband<\/a><span>, <\/span><a class=\"external-link\" href=\"https:\/\/code.rdkcentral.com\/r\/plugins\/gitiles\/rdk\/components\/generic\/rdk-oe\/meta-cmf-raspberrypi\/+\/refs\/heads\/rdk-next\" rel=\"nofollow\">meta-cmf-raspberrypi<\/a><span>, <\/span><a class=\"external-link\" href=\"https:\/\/code.rdkcentral.com\/r\/plugins\/gitiles\/rdk\/components\/opensource\/oe\/meta-virtualization\/+\/refs\/heads\/master\" rel=\"nofollow\">meta-virtualization<\/a><span>&nbsp;<\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 class=\"wp-sub-header\"><span>Module Structure<\/span><\/h3>\n<p><span><span class=\"ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak\">openvswitch<\/span> module is structured as:<\/span><\/p>\n<p><span>meta-virtualization<\/span><br \/><span>|&nbsp; &nbsp; &nbsp; &nbsp;&#9492;&#9472;&#9472; recipes-networking<\/span><br \/><span>|&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#9492;&#9472;&#9472; openvswitch&nbsp; &nbsp;<\/span><br \/>|&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#9500;&#9472;&#9472; <a class=\"external-link\" href=\"https:\/\/code.rdkcentral.com\/r\/plugins\/gitiles\/rdk\/components\/opensource\/oe\/meta-virtualization\/+\/refs\/heads\/master\/recipes-networking\/openvswitch\/openvswitch_git.bb\" rel=\"nofollow\">openvswitch_git.bb<\/a><br \/>|&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#9492;&#9472;&#9472; <a class=\"external-link\" href=\"https:\/\/code.rdkcentral.com\/r\/plugins\/gitiles\/rdk\/components\/opensource\/oe\/meta-virtualization\/+\/refs\/heads\/master\/recipes-networking\/openvswitch\/openvswitch.inc\" rel=\"nofollow\">openvswitch.inc<\/a><br \/><span>meta-cmf-raspberrypi<\/span><br \/><span>&nbsp; &nbsp; &nbsp; &nbsp;&#9492;&#9472;&#9472; recipes-networking<\/span><br \/><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#9492;&#9472;&#9472; openvswitch<\/span><br \/><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#9492;&#9472;&#9472;<\/span>&nbsp;<a class=\"external-link\" href=\"https:\/\/code.rdkcentral.com\/r\/plugins\/gitiles\/rdk\/components\/generic\/rdk-oe\/meta-cmf-raspberrypi\/+\/refs\/heads\/rdk-next\/recipes-networking\/openvswitch\/openvswitch_git.bbappend\" rel=\"nofollow\">openvswitch_git.bbappend<\/a><\/p>\n<p>&nbsp; &nbsp; &nbsp;<br \/><span><span>The main recipe for building the openvswitch package is represented by<\/span> <span>&#8220;<\/span><\/span><span>openvswitch_git.bb<\/span><span><span>&#8220;<\/span>. <span>This recipe contains the necessary instructions, dependencies, and configurations to compile and construct the Open vSwitch package from the corresponding source code within the RDKB environment.<\/span><\/span><\/p>\n<p><span>Additionally, there is an &#8220;openvswitch.inc&#8221; file, which is an include file that provides common build settings and variables used in the openvswitch module. It helps streamline the build process and ensures consistency across different recipes and components related to openvswitch<\/span>.<\/p>\n<p><span><span>For openvswitch,<\/span>&nbsp;<span>certain overrides exist in other meta layers, which can be device specific, here we are focusing on raspberrypi device, there are dedicated append files specific to the &#8216;raspberrypi&#8217;.<\/span><\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<p>&nbsp;<span>Recipe Parameters<\/span><\/p>\n<p><span>Below are some of the important parameters present in the recipes:<\/span><\/p>\n<div class=\"table-wrap\">\n\n\n<table class=\"wrapped confluenceTable\"><colgroup><col><col><\/colgroup><tbody><tr><th scope=\"col\" class=\"confluenceTh\">Parameters<\/th><th scope=\"col\" class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\"><span>SRC_URI\/<span>SRCREV<\/span><\/span><\/td><td class=\"confluenceTd\"><span>URI of source code, patches and extra files to be used to build packages. Uses different fetchers based on the URI\/ <span>specify the revision or commit ID of the source code or repository to be used for building a software package.<\/span><\/span><\/td><\/tr><tr><td class=\"confluenceTd\"><span><span>DEPENDS\/<\/span>RDEPENDS<\/span><\/td><td class=\"confluenceTd\"><span>Build time and run time package dependencies, where&nbsp;<\/span><span>${PN} represents the package name defined in the recipe.<\/span><\/td><\/tr><tr><td class=\"confluenceTd\"><span>PACKAGECONFIG<\/span><\/td><td class=\"confluenceTd\">used <span>to enable or disable specific features or configurations during the build process.<\/span><\/td><\/tr><tr><td class=\"confluenceTd\"><span>EXTRA_OEMAKE<\/span><\/td><td class=\"confluenceTd\"><span>It is used to add extra options or arguments to the build command (typically make) during the build process.&nbsp;<\/span><\/td><\/tr><tr><td class=\"confluenceTd\"><span class=\"pln\">do_install<\/span><span class=\"pun\">()<\/span><\/td><td class=\"confluenceTd\"><span>Responsible for installing the built software into the target filesystem. It is automatically called during the build process after the compilation stage.<\/span><\/td><\/tr><\/tbody><\/table>\n\n\n<\/div>\n<p><span>Parameters in append file-<\/span><\/p>\n<p><span>This<span>&nbsp;<\/span><\/span><code>.bbappend<\/code><span><span>&nbsp;<\/span>file modifies the original openvswitch recipe by removing and adding dependencies, enabling SSL support, disabling the autostart of a particular service, and configuring the package to exclude SSL support. These modifications tailor the build and behavior of the openvswitch package to the specific requirements.<br \/>Parameters present in the .bbappend file are mentioned below:<br \/><\/span><\/p>\n<div class=\"table-wrap\">\n\n\n<table class=\"wrapped confluenceTable\"><colgroup><col><col><\/colgroup><tbody><tr><th scope=\"col\" class=\"confluenceTh\">Parameters<\/th><th scope=\"col\" class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\"><span>DEPENDS_remove\/<span class=\"pln\">DEPENDS_append_class<\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">target<\/span><\/span><\/td><td class=\"confluenceTd\"><span>are used in recipe files (e.g., .bb or .bbappend files) to modify the dependency information, either to remove or to add additional dependencies to the existing list of dependencies for a specific class-target combination.<\/span><\/td><\/tr><tr><td class=\"confluenceTd\"><span>EXTRA_OECONF<\/span><\/td><td class=\"confluenceTd\"><span>allows you to add extra command-line arguments or configuration options to the configuration command that is executed during the build of a recipe.<\/span><\/td><\/tr><tr><td class=\"confluenceTd\"><span>SYSTEMD_SERVICE<\/span><\/td><td class=\"confluenceTd\"><span>SYSTEMD_SERVICE refers to a service unit configuration file that is used by systemd to define and manage a specific system service.<\/span><\/td><\/tr><\/tbody><\/table>\n\n\n<\/div>\n<p><span>In this example, we are referring to the above mentioned append file. Similarly, if we need to include any additional modifications to the recipe, we can do so by adding them in the append file within the SOC and OEM layers.<\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<hr><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 class=\"wp-sub-header\"><span>Building the Module<\/span><\/h3>\n<p><span>To build the openvswitch module, execute the following command with Bitbake:&#8221;<strong>bitbake openvswitch<\/strong>&#8220;<\/span><\/p>\n<p><span>We can add the Install task bitbake command, which can be helpful if modifications have been made to the openvswitch source code and there is a need to copy the resulting binaries and libraries from the openvswitch build directory to the target system. The following command can be used:<\/span><\/p>\n<p><span>Install&nbsp; bitbake -c install -f openvswitch<\/span><\/p>\n<p><span>If someone needs to execute a task-wise module, the following commands can be used:<\/span><\/p>\n<div class=\"table-wrap\">\n\n\n<table class=\"wrapped relative-table confluenceTable\"><colgroup class=\"\"><col class=\"\" style=\"width: 24.0467%\"><col class=\"\" style=\"width: 75.8698%\"><\/colgroup><tbody class=\"\"><tr class=\"\"><th class=\"confluenceTh\"><span>Actions<\/span><\/th><th class=\"confluenceTh\"><span>Bitbake command<\/span><\/th><\/tr><tr class=\"\"><td class=\"confluenceTd\"><span>Configure<\/span><\/td><td class=\"confluenceTd\"><span>bitbake -c configure -f lib32-openvswitch<\/span><\/td><\/tr><tr class=\"\"><td class=\"confluenceTd\"><span>Compilation<\/span><\/td><td class=\"confluenceTd\"><span>bitbake -c compile -f lib32-openvswitch<\/span><\/td><\/tr><tr class=\"\"><td class=\"confluenceTd\"><span>cleanall<\/span><\/td><td class=\"confluenceTd\"><span>bitbake -c cleanall lib32-openvswitch<\/span><\/td><\/tr><tr class=\"\"><td class=\"confluenceTd\"><span>cleansstate<\/span><\/td><td class=\"confluenceTd\"><span>bitbake -c cleansstate lib32-openvswitch<\/span><\/td><\/tr><\/tbody><\/table>\n\n\n<\/div>\n<h3 id=\"YoctoBuildSystems-YoctoBuildImages\">Yocto Build Images<\/h3>\n<ul>\n<li><span>All the components are built using individual recipes. There shall be a main image recipe (example , rdk-generic-image) which includes all other required recipe and create the final RFS<\/span><\/li>\n<li><span>Package groups recipe is one support a image recipe to select the set of packages<\/span><\/li>\n<li><span>The recipes will be called in sequence- opensource components, Kernel, SDK, RDKB, MSO, Packaging and create final image.<\/span><\/li>\n<li><span>The final linux and RFS &nbsp;image will be created under build_folder\/tmp\/deploy\/images<\/span><\/li>\n<\/ul>\n<p><span>Target image name:-<\/span><\/p>\n<div class=\"table-wrap\">\n\n\n<table class=\"wrapped relative-table confluenceTable\"><colgroup class=\"\"><col class=\"\" style=\"width: 19.4923%\"><col class=\"\" style=\"width: 80.4798%\"><\/colgroup><tbody class=\"\"><tr class=\"\"><th class=\"confluenceTh\">Image name<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr class=\"\"><td class=\"confluenceTd\"><span>rdk-oss-image<\/span><\/td><td class=\"confluenceTd\"><span>An RDK image based on open-source software components, providing flexibility and customization options.<\/span><\/td><\/tr><tr><td class=\"confluenceTd\"><span>&nbsp;<span>rdk-generic-broadband-image<\/span><\/span><\/td><td class=\"confluenceTd\"><span>A generic RDK build for broadband gateways, providing standardized software components and configurations for internet connectivity.<\/span><\/td><\/tr><\/tbody><\/table>\n\n\n<p>Yocto build Image target names are of format-\u00a0<strong>&lt;RDK vendor&gt;-&lt;profile&gt;-&lt;build-type&gt;-&lt;developer&gt;-image<br \/><\/strong>Example-<br \/><span class=\"ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak\">rdkb-generic-broadband-image_rdkb-2023q4-dunfell_20240102103224.rootfs.wic<br \/>rdkb-generic-broadband-image_rdkb-2023q4-dunfell_20240102103224<\/span>.rootfs.wic.bz2<br \/><span class=\"ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak\">rdkb-generic-broadband-image_rdkb-2023q4-dunfell_20240102103224<\/span>.rootfs.tar.gz<\/p>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 class=\"wp-sub-header\">Debugging<\/h3>\n<p>When facing errors or failures while executing a bitbake action, such as compilation or configuration errors, the specific log files can be found in the following directory structure:<br \/>Path: build-raspberrypi4-64-rdk-broadband\/tmp\/work\/raspberrypi4_64_rdk_broadband-rdk-linux\/openvswitch\/2.13+AUTOINC+71d553b995-r0\/temp\/<br \/>Example<\/p>\n<ul>\n<li>\n<p>log.do_compile: This file contains the error logs related to the compilation process. It provides information about any issues encountered during the translation of source code into executable or object files.<\/p>\n<\/li>\n<li>\n<p>log.do_configure: This file contains the error logs associated with the configuration step. It helps identify any problems encountered while setting up the build configuration, such as missing dependencies or incorrect settings.<\/p>\n<\/li>\n<\/ul>\n<div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\">\n<div class=\"codeHeader panelHeader pdl\"><b>Example<\/b><\/div>\n<div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">ERROR: openvswitch-1.0-r0 do_compile: oe_runmake failed\nERROR: Logfile of failure stored in: ~\/rpi3\/build-raspberrypi-rdk-broadband\/tmp\/work\/raspberrypi_rdk_broadband-rdk-linux-gnueabi\/openvswitch\/1.0-r0\/temp\/log.do_compile.1540323<\/pre>\n<\/div>\n<\/div>\n<p>The provided example demonstrates a compilation error in the &#8220;openvswitch&#8221; package. The details of the error can be found in the specified log file, which can be analyzed by searching for the keyword &#8220;error&#8221;.<\/p>\n<div class=\"confluence-information-macro confluence-information-macro-note conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"note\">\n<div class=\"confluence-information-macro-body\">\n<p>The path provided in the example is specific to the mentioned build environment. In your actual working environment, the paths may differ depending on the build system or project structure you are using.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<hr \/><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>The primary function of the Yocto Project within RDK development is the building and packaging [&hellip;]<\/p>\n","protected":false},"author":1018,"featured_media":0,"parent":9556,"menu_order":3,"comment_status":"open","ping_status":"closed","template":"","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"class_list":["post-10966","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Yocto Build Systems - RDK Documentation Portal | Documentation<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/yocto_build_systems-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Yocto Build Systems - RDK Documentation Portal | Documentation\" \/>\n<meta property=\"og:description\" content=\"The primary function of the Yocto Project within RDK development is the building and packaging [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/yocto_build_systems-2\/\" \/>\n<meta property=\"og:site_name\" content=\"RDK Documentation Portal | Documentation\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-25T05:18:34+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/yocto_build_systems-2\/\",\"url\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/yocto_build_systems-2\/\",\"name\":\"Yocto Build Systems - RDK Documentation Portal | Documentation\",\"isPartOf\":{\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/#website\"},\"datePublished\":\"2024-04-15T04:33:01+00:00\",\"dateModified\":\"2025-03-25T05:18:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/yocto_build_systems-2\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/yocto_build_systems-2\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/yocto_build_systems-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Documentation\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"RDK Broadband\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Yocto Build Systems\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/#website\",\"url\":\"https:\/\/developer.rdkcentral.com\/documentation\/\",\"name\":\"RDK Documentation Portal | Documentation\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/developer.rdkcentral.com\/documentation\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Yocto Build Systems - RDK Documentation Portal | Documentation","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/yocto_build_systems-2\/","og_locale":"en_US","og_type":"article","og_title":"Yocto Build Systems - RDK Documentation Portal | Documentation","og_description":"The primary function of the Yocto Project within RDK development is the building and packaging [&hellip;]","og_url":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/yocto_build_systems-2\/","og_site_name":"RDK Documentation Portal | Documentation","article_modified_time":"2025-03-25T05:18:34+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/yocto_build_systems-2\/","url":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/yocto_build_systems-2\/","name":"Yocto Build Systems - RDK Documentation Portal | Documentation","isPartOf":{"@id":"https:\/\/developer.rdkcentral.com\/documentation\/#website"},"datePublished":"2024-04-15T04:33:01+00:00","dateModified":"2025-03-25T05:18:34+00:00","breadcrumb":{"@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/yocto_build_systems-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/yocto_build_systems-2\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/yocto_build_systems-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/developer.rdkcentral.com\/documentation\/"},{"@type":"ListItem","position":2,"name":"Documentation","item":"https:\/\/developer.rdkcentral.com\/documentation\/"},{"@type":"ListItem","position":3,"name":"RDK Broadband","item":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/"},{"@type":"ListItem","position":4,"name":"Yocto Build Systems"}]},{"@type":"WebSite","@id":"https:\/\/developer.rdkcentral.com\/documentation\/#website","url":"https:\/\/developer.rdkcentral.com\/documentation\/","name":"RDK Documentation Portal | Documentation","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/developer.rdkcentral.com\/documentation\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/10966","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/users\/1018"}],"replies":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/comments?post=10966"}],"version-history":[{"count":7,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/10966\/revisions"}],"predecessor-version":[{"id":11612,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/10966\/revisions\/11612"}],"up":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/9556"}],"wp:attachment":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/media?parent=10966"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}