From patchwork Thu Oct 30 16:28:30 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antonin Godard X-Patchwork-Id: 73361 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3CC5ACCF9F8 for ; Thu, 30 Oct 2025 16:29:18 +0000 (UTC) Received: from smtpout-04.galae.net (smtpout-04.galae.net [185.171.202.116]) by mx.groups.io with SMTP id smtpd.web10.2032.1761841754063713122 for ; Thu, 30 Oct 2025 09:29:14 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@bootlin.com header.s=dkim header.b=ChDO4PZj; spf=pass (domain: bootlin.com, ip: 185.171.202.116, mailfrom: antonin.godard@bootlin.com) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-04.galae.net (Postfix) with ESMTPS id B2FD5C0DABA for ; Thu, 30 Oct 2025 16:28:51 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 2E2C660331 for ; Thu, 30 Oct 2025 16:29:12 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 9C66E11808C70; Thu, 30 Oct 2025 17:29:11 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1761841751; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=KLkCBseW9aS627RRW7sVZzYAWtryzereAir6l2l/nh4=; b=ChDO4PZjUVC0m4gTdvcjpi0609xglN2q4wLoBDqmoX+Ot9ni/aGEg4fEYvLpHQ7ABTZrXp 1t3KGEWA0M81x3+lcv8OLDxARH3q1Q8nZlcl4FHYmEx8L/WcW0jycwM4l413aXBxG5lgLH uXs8SjCKV1DFgoWGnk2PPHiHYIwt7oUWju21eXcQ8Nbvs9UhyekdamZrjVlMVxGkDu2TNn yM6gjQgXvvI0a5e7oKNW4YbDUS/6veGnVCtPUwMnX+q1CZeGCOZnU4odTd8i3o/N5BxPHT Sm/5Tc99K1VZc4Iw0lgi3MJFZx/fOPkJt8AqR++7vl9EVwY5/ta8j4U2TSXurQ== From: Antonin Godard Date: Thu, 30 Oct 2025 17:28:30 +0100 Subject: [PATCH 1/6] ref-manual/structure.rst: update the description of local.conf and bblayers.conf MIME-Version: 1.0 Message-Id: <20251030-bitbake-setup-v1-1-f44a8a2b7c0b@bootlin.com> References: <20251030-bitbake-setup-v1-0-f44a8a2b7c0b@bootlin.com> In-Reply-To: <20251030-bitbake-setup-v1-0-f44a8a2b7c0b@bootlin.com> To: docs@lists.yoctoproject.org Cc: Antonin Godard X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=3543; i=antonin.godard@bootlin.com; h=from:subject:message-id; bh=AhBjTKnHovf0ExX7b7Tg8YbYXWUKc75dq+6kRLYo2Ro=; b=owEBbQKS/ZANAwAKAdGAQUApo6g2AcsmYgBpA5JVVaUIlQWp97slWvLbJEBD7toGSmrMTerSS V+C9r4W9zmJAjMEAAEKAB0WIQSGSHJRiN1AG7mg0//RgEFAKaOoNgUCaQOSVQAKCRDRgEFAKaOo NnBLD/94syQwLYPnOKQOJUJAXiptSoxe6iRuUZwUxbktWgudgp4Dx9wQRPJzIDKpCf7Q6PdNVKG 081cpImD8/u2Nk+5aFPIlOGR3tNuVXo+zQQbRwVxRAiyb1Ei2dN573o6YhBNQcOlGmz3Fb2RfZT PEjhXWaK0B53NiexqTCuO1oE67qbhL+87cNjoVHqfXdzvBpePYMM7HreZ99rDtvTTy3vXkKeT1o +DwiWkzFFMlOjnn6bS/6i5unORccsWw+3r1rq3m2HbVvYbYxYzNuBQzZvKbQlImu/WYohds5ZZr kQNGJdK82g5cRBJZleGtczlPeejBdyrN5SvSVYj/WZHRAhbvxL5cX++PYYRjdTznJSqaf+0ZjAg O4EBAd4+qgXdCow2gPE0BdnAw+d+8PHjOmRICW9TV9YqlOhwQlxuNoiMvYlzHsblwkBPpHzY6gS 9UVXIhgLzSG5gB7kr+SiY42mLWxLmVAfLvHYAB72+6x5gAKgeEIeH9stjmRI/eBa9613lCfh7Ys gHa6HP3vqxvZbh7bl4pU7MQRby2YnTOPGN+Z0v5Mw3esu8RT8wl0KkcNerzyrTCsG5DLAmomGAV G9wO9dTAhumweEjbaWjDHAxDVdNf4S0RLoHywPLk+idxqgL+eHovF8KPB9hVR2JFkKjd+k/HTsi DkHL2TeCe03dRCg== X-Developer-Key: i=antonin.godard@bootlin.com; a=openpgp; fpr=8648725188DD401BB9A0D3FFD180414029A3A836 X-Last-TLS-Session-Version: TLSv1.3 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 30 Oct 2025 16:29:18 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/docs/message/7926 The local.conf file is now mostly empty with the default way of setting up the environment (with bitbake-setup), and this file is meant to hold local user configurations, rather than an extensive list of variables. Adjust the description to reflect the intended way of using this configuration file. Also, for both local.conf and bblayers.conf, rephrase the current usage of the template files (.sample files) to _not_ imply that it is the default way the OpenEmbedded build system sets things up. Signed-off-by: Antonin Godard --- documentation/ref-manual/structure.rst | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/documentation/ref-manual/structure.rst b/documentation/ref-manual/structure.rst index 2640f461d..f7d7a819d 100644 --- a/documentation/ref-manual/structure.rst +++ b/documentation/ref-manual/structure.rst @@ -269,22 +269,15 @@ This directory should not be shared between builds. ``build/conf/local.conf`` ------------------------- -This configuration file contains all the local user configurations for -your build environment. The ``local.conf`` file contains documentation -on the various configuration options. Any variable set here overrides -any variable set elsewhere within the environment unless that variable -is hard-coded within a file (e.g. by using '=' instead of '?='). Some -variables are hard-coded for various reasons but such variables are -relatively rare. - -At a minimum, you would normally edit this file to select the target -:term:`MACHINE`, which package types you wish to use -(:term:`PACKAGE_CLASSES`), and the location from -which you want to access downloaded files (:term:`DL_DIR`). - -If ``local.conf`` is not present when you start the build, the -OpenEmbedded build system creates it from ``local.conf.sample`` when you -``source`` the top-level build environment setup script +This configuration file contains the local user configurations for the build +environment. + +You could for example edit this file to limit the number of threads used by +:term:`BitBake` (:term:`BB_NUMBER_THREADS`) or set the location from which you +want to access downloaded files (:term:`DL_DIR`). + +The :term:`OpenEmbedded Build System` can create it from a ``local.conf.sample`` +file when you ``source`` the top-level build environment setup script :ref:`structure-core-script`. The source ``local.conf.sample`` file used depends on the @@ -321,12 +314,11 @@ which are directory trees, traversed (or walked) by BitBake. The ``bblayers.conf`` file uses the :term:`BBLAYERS` variable to list the layers BitBake tries to find. -If ``bblayers.conf`` is not present when you start the build, the -OpenEmbedded build system creates it from ``bblayers.conf.sample`` when -you ``source`` the top-level build environment setup script (i.e. +The OpenEmbedded build system can create it from a ``bblayers.conf.sample`` file +when you ``source`` the top-level build environment setup script (i.e. :ref:`structure-core-script`). -As with the ``local.conf`` file, the source ``bblayers.conf.sample`` +As with the :ref:`structure-build-conf-local.conf` file, the source ``bblayers.conf.sample`` file used depends on the :term:`TEMPLATECONF` script variable, which defaults to ``meta-poky/conf/templates/default`` when you are building from the Yocto Project development environment, and to ``meta/conf/templates/default`` when you are From patchwork Thu Oct 30 16:28:31 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Antonin Godard X-Patchwork-Id: 73365 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6FA45CCFA04 for ; Thu, 30 Oct 2025 16:29:18 +0000 (UTC) Received: from smtpout-04.galae.net (smtpout-04.galae.net [185.171.202.116]) by mx.groups.io with SMTP id smtpd.web11.2130.1761841754144895367 for ; Thu, 30 Oct 2025 09:29:14 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@bootlin.com header.s=dkim header.b=u/hG4CEN; spf=pass (domain: bootlin.com, ip: 185.171.202.116, mailfrom: antonin.godard@bootlin.com) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-04.galae.net (Postfix) with ESMTPS id 10D8CC0DABD for ; Thu, 30 Oct 2025 16:28:52 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 8101F60331 for ; Thu, 30 Oct 2025 16:29:12 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 1800E11808BEA; Thu, 30 Oct 2025 17:29:12 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1761841752; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=/0LppcdpQE91Iqf4YNL0gxidf3K2lUH/DSzqQetMDiM=; b=u/hG4CENOiVohtVBpIKNe8j3GZx45DChVBUXpnDxAd09E3gwfLd/nFHeXtJTFl4iEG96Xg KbQm7BBxIT2Hq7fse8+Lth9+Muy1mQyzawM759dWPseyGGt8+CStmUg9dXLq9pmZq2bFA0 tl4BOcHlWHnwPVdkDBB+e2aTQW8tgrVghu8sNAgIZSnNfKhHulZYC1J9jG1VMZBHjSqLsp qyf9BVSajGI+OqZD3Y9GBTUjFN7gdQPjMF9sGGsldfyGc2tVvSUYe6ynJ+z8KJt6qt4DNo HlH8H1bod6dNeeJ2qugzRhNwx71PbsF66HMwVn9RqoKB4GrOxnIJFpVpWCjpvQ== From: Antonin Godard Date: Thu, 30 Oct 2025 17:28:31 +0100 Subject: [PATCH 2/6] ref-manual/structure.rst: document the site.conf file MIME-Version: 1.0 Message-Id: <20251030-bitbake-setup-v1-2-f44a8a2b7c0b@bootlin.com> References: <20251030-bitbake-setup-v1-0-f44a8a2b7c0b@bootlin.com> In-Reply-To: <20251030-bitbake-setup-v1-0-f44a8a2b7c0b@bootlin.com> To: docs@lists.yoctoproject.org Cc: Antonin Godard X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=2177; i=antonin.godard@bootlin.com; h=from:subject:message-id; bh=tfL6lrqjNaiIuaVJE0qNOaQwDckVG5yaJ0Vwp65CXBo=; b=owEBbQKS/ZANAwAKAdGAQUApo6g2AcsmYgBpA5JV4VhlS0aVAOZHpeaUi7yVc25/9iwchfhKL go9bZX5RuOJAjMEAAEKAB0WIQSGSHJRiN1AG7mg0//RgEFAKaOoNgUCaQOSVQAKCRDRgEFAKaOo Nm36EACw4plmVcZ2JXOvEczwV/9dESgc5YTce8BPnW7BOQ0CC0niHPWyDDxjpPfHTIXMzhIzxTX SD1+APFVWXHXqCHHGA6XIHPaBc6vS+X2o3ZljIyYWicsDLGzIfA8oOMKxGgTi28TSnhERO+wNuy 32AAigxLHgRJo+9SOaYaf5tz4YVcd/uAWRYMhk+Tn5+kyrSeaoaRDlgZZVOzYbrL68WCSLEStnZ myyy4CSNxS7i1R0JOs13D2rgjxhbHNRDk+Jyu5d/gIKa91pmYd7HfzJ3srCt99PlmXvpvYnEW0V OVTy+XiBGhIVub+XEJOT4Jt5Id+RW6dGTQkTASq6e/hBz3PmuklHsto3ug6BD83xc/IiLnPsO8n +RHkOeTur4+yH9dnvmM+bhX2jI1e7HnK9xYHQau7SjzthP04aZ3VV3HDQ/ygHVeAhS/8jLkT3XE kzqs/xcesw57tganhxi8HdLsmhzzZBBp4tCex+YZQDKGXVB7OT1QQEUnZxLTnVJ5VtgDDuxiooF bnHtosX7gJ2PoAxW3lYsFERL8nfMtIJRkY5PQF0X5IXpTXCggwoSp1RxufIczIUZyJw0nFUqHNZ 673w7kWCCFoe7miDfiFgioN/a4Z6Rs4mHcQagOHerarf+/NrDZf415OwV9KHVbDLGIVSKqh4d/V GmVBrQmcUtwNSvQ== X-Developer-Key: i=antonin.godard@bootlin.com; a=openpgp; fpr=8648725188DD401BB9A0D3FFD180414029A3A836 X-Last-TLS-Session-Version: TLSv1.3 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 30 Oct 2025 16:29:18 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/docs/message/7927 This was not documented and its usage is going to increase massively once users start using bitbake-setup. Add a description for this file as well as an example on how bitbake-setup shares it for multiple builds, to insist on the "site-wide" usage of this file. Signed-off-by: Antonin Godard --- Note: a link to bitbake-setup documentation comes in the next patch. --- documentation/ref-manual/structure.rst | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/documentation/ref-manual/structure.rst b/documentation/ref-manual/structure.rst index f7d7a819d..d817ee426 100644 --- a/documentation/ref-manual/structure.rst +++ b/documentation/ref-manual/structure.rst @@ -339,6 +339,35 @@ Once the build process gets the sample file, it uses ``sed`` to substitute final version of the ``bblayers.conf.sample`` file in the ``meta-poky/conf/templates/default`` directory. +.. _structure-build-conf-site.conf: + +``build/conf/site.conf`` +======================== + +This configuration file contains the site specific configurations for your build +environment. + +You could for example edit this file to limit the number of threads used by +:term:`BitBake` (:term:`BB_NUMBER_THREADS`) or set the location from which you +want to access downloaded files (:term:`DL_DIR`). + +This file can be shared for multiple build directories. For example, +``bitbake-setup`` makes the :ref:`structure-build-conf-site.conf` file a +symbolic link to a common ``site.conf`` file:: + + ├── poky-master-poky-distro_poky-machine_qemux86-64/ + │   └── build/ + │      └── conf/ + │         └── site.conf -> ../../../site.conf + ├── poky-master-poky-with-sstate-distro_poky-machine_qemux86-64/ + │   └── build/ + │      └── conf/ + │         └── site.conf -> ../../../site.conf + └── site.conf + +This way, site-specific settings can be shared for multiple build +configurations. + .. _structure-build-conf-bblock.conf: ``build/conf/bblock.conf`` From patchwork Thu Oct 30 16:28:32 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antonin Godard X-Patchwork-Id: 73362 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3D848CCF9FE for ; Thu, 30 Oct 2025 16:29:18 +0000 (UTC) Received: from smtpout-04.galae.net (smtpout-04.galae.net [185.171.202.116]) by mx.groups.io with SMTP id smtpd.web11.2132.1761841754290075820 for ; Thu, 30 Oct 2025 09:29:14 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@bootlin.com header.s=dkim header.b=UBh75Rki; spf=pass (domain: bootlin.com, ip: 185.171.202.116, mailfrom: antonin.godard@bootlin.com) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-04.galae.net (Postfix) with ESMTPS id 851ACC0DABE for ; Thu, 30 Oct 2025 16:28:52 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 0124460331 for ; Thu, 30 Oct 2025 16:29:13 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 6C61111808C70; Thu, 30 Oct 2025 17:29:12 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1761841752; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=yvxUVyawsOW1OXfpZeYvh/yT9CzyWNGbllf36LJzVP4=; b=UBh75RkiyKu0LfwV8kfNakMA0yaxfClRVyDdzkzvvHE98XvmN2CL6n67Dw+4rbZ8fsjaQ3 Bg0dhdhT9Wf5xM2i4X7PWnAOe2ivaHoVUf8eFabwMhxJAhkRSIuR1S21zc1yHNGsxai3v/ 4fpTefVC9dX+RSEXYejRmfDwHw58WS1LXBmOFVqfQL/x29tAYeL8yA0ZFgGrUhQAGsSeWa 8C2ov2uq38m7Rc2cTlBELeI84rVvIhvsUXO6JBIyTBToR7d6rbi8Y/3Tp7UskJWZ+1kJdJ i5m/ZHwqEAMGMZx5z0lIdC8M7ovS96/3bTM8KvzUWAwBp+2FyxGokrDPEf848A== From: Antonin Godard Date: Thu, 30 Oct 2025 17:28:32 +0100 Subject: [PATCH 3/6] brief-yoctoprojectqs: delete unused figures MIME-Version: 1.0 Message-Id: <20251030-bitbake-setup-v1-3-f44a8a2b7c0b@bootlin.com> References: <20251030-bitbake-setup-v1-0-f44a8a2b7c0b@bootlin.com> In-Reply-To: <20251030-bitbake-setup-v1-0-f44a8a2b7c0b@bootlin.com> To: docs@lists.yoctoproject.org Cc: Antonin Godard X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=31703; i=antonin.godard@bootlin.com; h=from:subject:message-id; bh=5vw3MzC9vS2xETi4v98m0uhpBhegzW7UZZavRYScrsk=; b=owEBbQKS/ZANAwAKAdGAQUApo6g2AcsmYgBpA5JV989L7i5KBN1q/hQM0z/YyVLLu2y8Mv7U/ l7UNwg6ZaaJAjMEAAEKAB0WIQSGSHJRiN1AG7mg0//RgEFAKaOoNgUCaQOSVQAKCRDRgEFAKaOo Nu0OD/9Z/VACe6KCsWnfQGEHRuHVMHxrvZ47nPiwaIXFlTfeWMTAX85NfO5z7guw1S7TPvfYSDN VApSn4/C8l8DkHmb2EKp77qacU9HxDemZ9MBX4E/0Rw/35RmBYrVL3t8iPY/PDbusOVQVenNu5E aNlcOQ6eee760ARQVEpdCya7M/HDu7Rvg+e1JWB+ctv58t4SWo2veXgzE1iJvtJVaKZ4ScI+Zst yonNay6NjwJziFm2sSbzr6HFXNpUnPNLy7+ROoMuvDgPrKSR2TXl2hE64xOCJyAdeJZtL1b+kg9 huNSXerhHwt3MyFezL4sHs602wK/3mddBIg4njdpzXW+NMVYP0cayB4wFLv38XJYe4kMHquRfPH F+uliRlutO4bKLo1j5aeT1KF1aGHphUtLxwau2GMZ0BfEP+WvsVy79SP3/+hKpMg7UO4JT6nyGh Czd0I4Na6J9Z4ztyuRKG8pEsJW1eVrucf9QhceLHBIR/w5MiDGE7nZMSD+VGGIhJSpDvUmkN2sL prPZ3oW3npJMRVZbrjCQkoXScIMObQ5p/GLXGKjwv+d5TBoaRGxDY6QnnguxppvFd+Dy6bJfkB3 abPzgYzOqPPcyTsekDq3mjhfwp68YJKtYYtWwTFHaEVoM8lpaB34VahM6AvyV9xn+8whN2lgFKO Q4Q8sEAAL4A5Eng== X-Developer-Key: i=antonin.godard@bootlin.com; a=openpgp; fpr=8648725188DD401BB9A0D3FFD180414029A3A836 X-Last-TLS-Session-Version: TLSv1.3 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 30 Oct 2025 16:29:18 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/docs/message/7928 These images are not used anywhere in the docs. Remove them. Signed-off-by: Antonin Godard --- .../brief-yoctoprojectqs/figures/bypqs-title.png | Bin 14312 -> 0 bytes .../figures/yocto-project-transp.png | Bin 8626 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) GIT binary patch literal 0 HcmV?d00001 literal 8626 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 ewF8Z?3x3I`x`vg#Staxp X-Patchwork-Id: 73364 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 66150CCFA03 for ; Thu, 30 Oct 2025 16:29:18 +0000 (UTC) Received: from smtpout-03.galae.net (smtpout-03.galae.net [185.246.85.4]) by mx.groups.io with SMTP id smtpd.web11.2136.1761841756036951307 for ; Thu, 30 Oct 2025 09:29:16 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@bootlin.com header.s=dkim header.b=E3MAVt1l; spf=pass (domain: bootlin.com, ip: 185.246.85.4, mailfrom: antonin.godard@bootlin.com) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-03.galae.net (Postfix) with ESMTPS id D2B3B4E413FD for ; Thu, 30 Oct 2025 16:29:13 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 9F4DF60331; Thu, 30 Oct 2025 16:29:13 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id EE18111808BEA; Thu, 30 Oct 2025 17:29:12 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1761841753; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=ZzGO5FnkyYoWbxT1V3riS9M3gm0GyuC2HsQ2L4ElTfQ=; b=E3MAVt1lI12/efnGlzwdMaMQSqg5ZSVBLFZlZ036prHgEGW2yTDucihjlTdIEFmMF5ARWJ 46aGY9GhwKj4WJpaTakp2SH2c5zmkBT+ZcBZmSUwto3a0yF9unZfdcHIcPTWfPNXbb8x2O WueUO77u+4D3Wxb0+nJ05eBZuiuGx3OAWO+Ikcblsvjrg4xQIi0c0UCW0K25ny5w0A/z1z EJX28jL/7nF7+hzVbzKx6jrfhNltwkI+mlBbc8FpaDGJoa8lNROlJPgAf0YTCsVKv4tNV4 ghZ6RfymeLeecfOn+krR28ex7h1yOH3E/NOZNl5MpHDVcrN4Q5LhoLXAitNiVg== From: Antonin Godard Date: Thu, 30 Oct 2025 17:28:33 +0100 Subject: [PATCH 4/6] brief-yoctoprojectqs: switch to bitbake-setup MIME-Version: 1.0 Message-Id: <20251030-bitbake-setup-v1-4-f44a8a2b7c0b@bootlin.com> References: <20251030-bitbake-setup-v1-0-f44a8a2b7c0b@bootlin.com> In-Reply-To: <20251030-bitbake-setup-v1-0-f44a8a2b7c0b@bootlin.com> To: docs@lists.yoctoproject.org Cc: Antonin Godard , Tim Orling X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=21039; i=antonin.godard@bootlin.com; h=from:subject:message-id; bh=q1Fj0v7sgKkcSMtmkR5RxmswebACMcuU2Aht5wbKUwM=; b=owEBbQKS/ZANAwAKAdGAQUApo6g2AcsmYgBpA5JVTrQ7GdJVM7m+gQa1lFhVPagZ7OwZpYOrg vl+eNH5daqJAjMEAAEKAB0WIQSGSHJRiN1AG7mg0//RgEFAKaOoNgUCaQOSVQAKCRDRgEFAKaOo NqTREADAzfzifiVHjI35EyOtSoeuRPiVoAGj3RRfk3G4LQD7vWeuBOsMrIKNMXMQ7ei22pwFA42 U73/uNbDkmATpBZ1mMG7hDGmHSUbatJX/UfQPo0TVte+0BZuxP6U0s7cvhb41hStMsZmYVqVFu7 718LmtCbANRSblsTlooUl0G57sSZC/LlXg7kEZPug/ndPIaibmf5x2viqrMW1y/UbVX1WeZvg/3 OZk+J7ivZEF57Wxm3sm2mG75besvp9y9XzcVrM/F9Q7Fd4KQlXrrp8bo2oDlyKkE0ltmDKb1ruz JzTTj0FAziBAKRawLBLklF63glHZePaO5xJdrzbLNxo4PjKMva+B1P4u+tz0v2e5NyaJtieRBRf g/vTcwQRjgo4ojV+vsQbpKlwYfFKUg9vqw5rHS4orcNC4eKXOKNjgcyeu7j4yS/tQkv1+XXj/Lb nq2Db25x7zh/hPWDaZgCRvEzNo7kfJ4yUkGSYJD+EEk9pzwV7oDqRFbYHbPif5XH4yUm7Wibbql 2Eo0tCnt0u+t/NqlUrg8JUJOKawA08Ubt/vTCFnA4mkmatJg1XL/RAISSgeacFvBGzQhyD+3U8E 5HceWoRTTRX/LBO4k58XzYh7m+SSZFYj8zIc6TtFRVVaQoEhT7+HiLKNFWnHTZkIRbrpXwDqSDB f10huWJHfa2j0GA== X-Developer-Key: i=antonin.godard@bootlin.com; a=openpgp; fpr=8648725188DD401BB9A0D3FFD180414029A3A836 X-Last-TLS-Session-Version: TLSv1.3 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 30 Oct 2025 16:29:18 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/docs/message/7932 Switch to bitbake-setup as it has been merged in BitBake with commit b96154aeb1fc ("bitbake-setup: add the initial implementation"). This is the default way to setup repositories now, so describe it in brief-yoctoprojectqs.rst. Update the BSP layer addition section to use meta-yocto-bsp as meta-altera seems abandoned (latest compatible version: mickedore). meta-yocto-bsp is probably already part of the bblayers.conf file when we instruct to add it with bitbake-layers, but this does not produce an error and is still nice to have for demo purposes. Co-developed-by: Tim Orling Signed-off-by: Antonin Godard --- documentation/brief-yoctoprojectqs/index.rst | 390 +++++++++++++-------------- documentation/ref-manual/structure.rst | 5 + 2 files changed, 198 insertions(+), 197 deletions(-) diff --git a/documentation/brief-yoctoprojectqs/index.rst b/documentation/brief-yoctoprojectqs/index.rst index 4a6f13d7e..c79b53a8b 100644 --- a/documentation/brief-yoctoprojectqs/index.rst +++ b/documentation/brief-yoctoprojectqs/index.rst @@ -87,80 +87,122 @@ distribution: see the :ref:`ref-manual/system-requirements:required packages for the build host` section in the Yocto Project Reference Manual. -Use Git to Clone Poky -===================== +Use Git to Clone bitbake-setup +============================== Once you complete the setup instructions for your machine, you need to -get a copy of the Poky repository on your build host. Use the following -commands to clone the Poky repository. +get a copy of the ``bitbake-setup`` tool to setup the :term:`Poky` reference +distribution on your build host. Use the following commands to clone +the bitbake repository. .. code-block:: shell - $ git clone git://git.yoctoproject.org/poky - Cloning into 'poky'... - remote: Counting - objects: 432160, done. remote: Compressing objects: 100% - (102056/102056), done. remote: Total 432160 (delta 323116), reused - 432037 (delta 323000) Receiving objects: 100% (432160/432160), 153.81 MiB | 8.54 MiB/s, done. - Resolving deltas: 100% (323116/323116), done. - Checking connectivity... done. + $ git clone git://git.openembedded.org/bitbake bitbake-setup -Go to :yocto_wiki:`Releases wiki page `, and choose a release -codename (such as ``&DISTRO_NAME_NO_CAP;``), corresponding to either the -latest stable release or a Long Term Support release. - -Then move to the ``poky`` directory and take a look at existing branches: +Setup a build environment with the following command: .. code-block:: shell - $ cd poky - $ git branch -a - . - . - . - remotes/origin/HEAD -> origin/master - remotes/origin/dunfell - remotes/origin/dunfell-next - . - . - . - remotes/origin/gatesgarth - remotes/origin/gatesgarth-next - . - . - . - remotes/origin/master - remotes/origin/master-next - . - . - . - - -For this example, check out the ``&DISTRO_NAME_NO_CAP;`` branch based on the -``&DISTRO_NAME;`` release: + $ ./bitbake-setup/bin/bitbake-setup init + +By default, this will setup a top directory in ``$HOME/bitbake-builds``. + +If you prefer to setup your builds in a different top directory, for example the +current directory, you can set it with the ``bitbake-setup settings`` command: .. code-block:: shell - $ git checkout -t origin/&DISTRO_NAME_NO_CAP; -b my-&DISTRO_NAME_NO_CAP; - Branch 'my-&DISTRO_NAME_NO_CAP;' set up to track remote branch '&DISTRO_NAME_NO_CAP;' from 'origin'. - Switched to a new branch 'my-&DISTRO_NAME_NO_CAP;' + $ ./bitbake-setup/bin/bitbake-setup settings set --global default top-dir-prefix $PWD + +.. note:: -The previous Git checkout command creates a local branch named -``my-&DISTRO_NAME_NO_CAP;``. The files available to you in that branch -exactly match the repository's files in the ``&DISTRO_NAME_NO_CAP;`` -release branch. + Use ``bitbake-setup settings list`` to get an overview of the settings. -Note that you can regularly type the following command in the same directory -to keep your local files in sync with the release branch: +``bitbake-setup init`` is an interactive program by default and will ask you to +make some decisions. Depending on your answers, the choices may differ from the +examples below. -.. code-block:: shell +#. Choose a configuration (for example, ``poky-master``): - $ git pull + .. code-block:: shell -For more options and information about accessing Yocto Project related -repositories, see the -:ref:`dev-manual/start:locating yocto project source files` -section in the Yocto Project Development Tasks Manual. + Available configurations: + 0. poky-master Poky - The Yocto Project testing distribution configurations and hardware test platforms + 1. oe-nodistro OpenEmbedded - 'nodistro' basic configuration + + Please select one of the above configurations by its number: + 0 + + Depending on the choice above, new options can be prompted to further specify + which configuration to use. For example: + + .. code-block:: shell + + Available bitbake configurations: + 0. poky Poky - The Yocto Project testing distribution + 1. poky-with-sstate Poky - The Yocto Project testing distribution with internet sstate acceleration. Use with caution as it requires a completely robust local network with sufficient bandwidth. + + Please select one of the above bitbake configurations by its number: + 0 + +#. Choose a target :term:`MACHINE` (for example, ``qemux86-64``): + + .. code-block:: shell + + Target machines: + 0. machine/qemux86-64 + 1. machine/qemuarm64 + 2. machine/qemuriscv64 + 3. machine/genericarm64 + 4. machine/genericx86-64 + + Please select one of the above options by its number: + 0 + +#. Choose a :term:`DISTRO` (for example, ``poky``): + + .. code-block:: shell + + Distribution configuration variants: + 0. distro/poky + 1. distro/poky-altcfg + 2. distro/poky-tiny + + Please select one of the above options by its number: + 0 + +.. note:: + + If you prefer to run non-interactively, you can run a command like the + following: + + .. code-block:: shell + + $ bitbake-setup init --non-interactive poky-master poky-with-sstate distro/poky machine/qemux86-64 + +The ``init`` command creates a new folder in the top directory. Its name is +derived from the selected configuration above. + +For the selected options in the above example, this would be:: + + poky-master-poky-distro_poky-machine_qemux86-64 + +This will be our example configuration in the following sections. + +This directory contains: + +- The :term:`Build Directory`, named ``build``. Later, when the build + completes, the :term:`Build Directory` contains all the files created during + the build. + + This :term:`Build Directory` also contains a ``README``, describing the + currently configuration and minimal instructions. + +- The :term:`layers ` needed to build the Poky reference distribution, + in the ``layers`` directory. + +- A ``config`` directory, representing the current configuration used in this + directory. Building Your Image =================== @@ -182,86 +224,64 @@ an entire Linux distribution, including the toolchain, from source. ":yocto_wiki:`Working Behind a Network Proxy `" page of the Yocto Project Wiki. -#. **Initialize the Build Environment:** From within the ``poky`` - directory, run the :ref:`ref-manual/structure:``oe-init-build-env``` - environment - setup script to define Yocto Project's build environment on your - build host. +#. **Initialize the Build Environment:** Source the ``init-build-env`` + environment setup script within the build directory to setup Yocto Project's + build environment on your :term:`Build Host`: - .. code-block:: shell + .. code-block:: shell + + $ source poky-master-poky-distro_poky-machine_qemux86-64/build/init-build-env + Poky reference distro build + +#. **Examine Your Current Configuration:** When you set up the build + environment, an configuration file named :ref:`toolcfg.conf + ` becomes available in a ``conf`` + sub-directory of the :term:`Build Directory`. This file is automatically + modified by the ``bitbake-config-build`` command-line tool. With this tool, + list the currently enabled :term:`configuration fragments `: + + .. code-block:: shell + + $ bitbake-config-build list-fragments + + For this configuration, the default is to use two :term:`Built-in Fragments + `: + + - ``distro/poky`` sets the :term:`DISTRO` to :term:`Poky` + (:ref:`ref-fragments-builtin-core-distro`). + - ``machine/qemux86-64`` sets the :term:`MACHINE` to ``qemux86-64`` + (:ref:`ref-fragments-builtin-core-machine`). + + These fragments correspond to the choices made when running ``bitbake-setup + init``. + + The current configuration does not allow the ``root`` user to login. As this + can be useful for development, you can enable ``root`` login by opening the + :ref:`structure-build-conf-site.conf` file and adding the following + statement:: - $ cd poky - $ source oe-init-build-env - You had no conf/local.conf file. This configuration file has therefore been - created for you with some default values. You may wish to edit it to, for - example, select a different MACHINE (target hardware). See conf/local.conf - for more information as common configuration options are commented. - - You had no conf/bblayers.conf file. This configuration file has therefore - been created for you with some default values. To add additional metadata - layers into your configuration please add entries to conf/bblayers.conf. - - The Yocto Project has extensive documentation about OE including a reference - manual which can be found at: - https://docs.yoctoproject.org - - For more information about OpenEmbedded see their website: - https://www.openembedded.org/ - - ### Shell environment set up for builds. ### - - You can now run 'bitbake ' - - Common targets are: - core-image-minimal - core-image-full-cmdline - core-image-sato - core-image-weston - meta-toolchain - meta-ide-support - - You can also run generated QEMU images with a command like 'runqemu qemux86-64' - - Other commonly useful commands are: - - 'devtool' and 'recipetool' handle common recipe tasks - - 'bitbake-layers' handles common layer tasks - - 'oe-pkgdata-util' handles common target package tasks - - Among other things, the script creates the :term:`Build Directory`, which is - ``build`` in this case and is located in the :term:`Source Directory`. After - the script runs, your current working directory is set to the - :term:`Build Directory`. Later, when the build completes, the - :term:`Build Directory` contains all the files created during the build. - -#. **Examine Your Local Configuration File:** When you set up the build - environment, a local configuration file named ``local.conf`` becomes - available in a ``conf`` subdirectory of the :term:`Build Directory`. For this - example, the defaults are set to build for a ``qemux86`` target, - which is suitable for emulation. The package manager used is set to - the RPM package manager. - - .. tip:: - - You can significantly speed up your build and guard against fetcher - failures by using :ref:`overview-manual/concepts:shared state cache` - mirrors and enabling :ref:`overview-manual/concepts:hash equivalence`. - This way, you can use pre-built artifacts rather than building them. - This is relevant only when your network and the server that you use - can download these artifacts faster than you would be able to build them. - - To use such mirrors, uncomment the below lines in your ``conf/local.conf`` - file in the :term:`Build Directory`:: - - BB_HASHSERVE_UPSTREAM = "wss://hashserv.yoctoproject.org/ws" - SSTATE_MIRRORS ?= "file://.* http://sstate.yoctoproject.org/all/PATH;downloadfilename=PATH" - BB_HASHSERVE = "auto" - BB_SIGNATURE_HANDLER = "OEEquivHash" - - The hash equivalence server needs the websockets python module version 9.1 - or later. Debian GNU/Linux 12 (Bookworm) and later, Fedora, CentOS Stream - 9 and later, and Ubuntu 22.04 (LTS) and later, all have a recent enough - package. Other supported distributions need to get the module some other - place than their package feed, e.g. via ``pip``. + EXTRA_IMAGE_FEATURES = "allow-empty-password empty-root-password allow-root-login" + + .. note:: + + These set up the environment similar to what was previously in the local + configuration file :ref:`local.conf `, + which is now largely empty. + + .. note:: + + You can significantly speed up your build and guard against fetcher + failures by using :ref:`overview-manual/concepts:shared state cache` + mirrors and enabling :ref:`overview-manual/concepts:hash equivalence`. + This way, you can use pre-built artifacts rather than building them. + This is relevant only when your network and the server that you use + can download these artifacts faster than you would be able to build them. + + To use such mirrors, enable the + :ref:`ref-fragments-core-yocto-sstate-mirror-cdn` fragment:: + + $ bitbake-config-build enable-fragment core/yocto/sstate-mirror-cdn #. **Start the Build:** Continue with the following command to build an OS image for the target, which is ``core-image-sato`` in this example: @@ -310,80 +330,53 @@ modular development and makes it easier to reuse the layer metadata. Follow these steps to add a hardware layer: -#. **Find a Layer:** Many hardware layers are available. The Yocto Project - :yocto_git:`Source Repositories <>` has many hardware layers. - This example adds the - `meta-altera `__ hardware layer. +#. **Find a Layer:** Many hardware layers, or :ref:`BSP layers + ` are available. The + :oe_layerindex:`layer index <>` can be used to find such layers. This example + adds the :yocto_git:`meta-yocto-bsp ` BSP + layer. -#. **Clone the Layer:** Use Git to make a local copy of the layer on your - machine. You can put the copy in the top level of the copy of the - Poky repository created earlier: - - .. code-block:: shell +#. **Add Your Layer to the Layer Configuration File:** Before you can use + a layer during a build, you must add it to your ``bblayers.conf`` + file, which is found in the :term:`Build Directory` ``conf`` directory. - $ cd poky - $ git clone https://github.com/kraj/meta-altera.git - Cloning into 'meta-altera'... - remote: Counting objects: 25170, done. - remote: Compressing objects: 100% (350/350), done. - remote: Total 25170 (delta 645), reused 719 (delta 538), pack-reused 24219 - Receiving objects: 100% (25170/25170), 41.02 MiB | 1.64 MiB/s, done. - Resolving deltas: 100% (13385/13385), done. - Checking connectivity... done. + This layer is already part of ``meta-yocto``, so from the :term:`Build + Directory` use the ``bitbake-layers add-layer`` command to add the layer to + the configuration file: - The hardware layer is now available - next to other layers inside the Poky reference repository on your build - host as ``meta-altera`` and contains all the metadata needed to - support hardware from Altera, which is owned by Intel. + .. code-block:: shell - .. note:: + $ bitbake-layers add-layer ../layers/meta-yocto/meta-yocto-bsp - It is recommended for layers to have a branch per Yocto Project release. - Please make sure to checkout the layer branch supporting the Yocto Project - release you're using. + You can find more information on adding layers in the + :ref:`dev-manual/layers:adding a layer using the \`\`bitbake-layers\`\` + script` section. -#. **Change the Configuration to Build for a Specific Machine:** The - :term:`MACHINE` variable in the - ``local.conf`` file specifies the machine for the build. For this - example, set the :term:`MACHINE` variable to ``cyclone5``. These - configurations are used: - https://github.com/kraj/meta-altera/blob/master/conf/machine/cyclone5.conf. +#. **Change the Configuration to Build for a Specific Machine:** The + :term:`MACHINE` variable defined by the + :ref:`ref-fragments-builtin-core-machine` fragment defines the machine for + the build. For this example. The ``meta-yocto-bsp`` provides the + :yocto_git:`beaglebone-yocto ` + machine, make it the one used for the build with ``bitbake-config-build``: - .. note:: + .. code-block:: shell - See the "Examine Your Local Configuration File" step earlier for more - information on configuring the build. + $ bitbake-config-build enable-fragment machine/beaglebone-yocto -#. **Add Your Layer to the Layer Configuration File:** Before you can use - a layer during a build, you must add it to your ``bblayers.conf`` - file, which is found in the :term:`Build Directory` ``conf`` directory. + .. note:: - Use the ``bitbake-layers add-layer`` command to add the layer to the - configuration file: + See the "Examine Your Current Configuration" step earlier for more + information on configuring the build. - .. code-block:: shell - - $ cd poky/build - $ bitbake-layers add-layer ../meta-altera - NOTE: Starting bitbake server... - Parsing recipes: 100% |##################################################################| Time: 0:00:32 - Parsing of 918 .bb files complete (0 cached, 918 parsed). 1401 targets, - 123 skipped, 0 masked, 0 errors. - - You can find - more information on adding layers in the - :ref:`dev-manual/layers:adding a layer using the \`\`bitbake-layers\`\` script` - section. - -Completing these steps has added the ``meta-altera`` layer to your Yocto +Completing these steps has added the ``meta-yocto-bsp`` layer to your Yocto Project development environment and configured it to build for the -``cyclone5`` machine. +``beaglebone-yocto`` machine. .. note:: The previous steps are for demonstration purposes only. If you were - to attempt to build an image for the ``cyclone5`` machine, you should - read the Altera ``README``. + to attempt to build an image for the ``beaglebone-yocto `` machine, you + should read the ``README`` in ``meta-yocto-bsp``. Creating Your Own General Layer =============================== @@ -396,14 +389,17 @@ configuration file, a ``recipes-example`` subdirectory that contains an ``example.bb`` recipe, a licensing file, and a ``README``. The following commands run the tool to create a layer named -``meta-mylayer`` in the ``poky`` directory: +``meta-mylayer``: .. code-block:: shell - $ cd poky - $ bitbake-layers create-layer meta-mylayer + $ bitbake-layers create-layer ../layers/meta-mylayer NOTE: Starting bitbake server... - Add your new layer with 'bitbake-layers add-layer meta-mylayer' + Add your new layer with 'bitbake-layers add-layer ../layers/meta-mylayer' + +.. note:: + + By convention, layers are placed side-by-side. For more information on layers and how to create them, see the diff --git a/documentation/ref-manual/structure.rst b/documentation/ref-manual/structure.rst index d817ee426..b0e43c89f 100644 --- a/documentation/ref-manual/structure.rst +++ b/documentation/ref-manual/structure.rst @@ -368,6 +368,11 @@ symbolic link to a common ``site.conf`` file:: This way, site-specific settings can be shared for multiple build configurations. +.. note:: + + For more information on how to use ``bitbake-setup``, see the + :doc:`/brief-yoctoprojectqs/index` document. + .. _structure-build-conf-bblock.conf: ``build/conf/bblock.conf`` From patchwork Thu Oct 30 16:28:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antonin Godard X-Patchwork-Id: 73363 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4C273CCFA02 for ; Thu, 30 Oct 2025 16:29:18 +0000 (UTC) Received: from smtpout-03.galae.net (smtpout-03.galae.net [185.246.85.4]) by mx.groups.io with SMTP id smtpd.web11.2135.1761841755820519980 for ; Thu, 30 Oct 2025 09:29:16 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@bootlin.com header.s=dkim header.b=hEgVokMa; spf=pass (domain: bootlin.com, ip: 185.246.85.4, mailfrom: antonin.godard@bootlin.com) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-03.galae.net (Postfix) with ESMTPS id 42E0F4E413FE for ; Thu, 30 Oct 2025 16:29:14 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 1A77D60331 for ; Thu, 30 Oct 2025 16:29:14 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 812B411808C70; Thu, 30 Oct 2025 17:29:13 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1761841753; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=QgMHRldHdjVIVJprme4/vcxu6jebPXKP6qQu1KYYNtY=; b=hEgVokMaXTB72Hy57kGEwb1wwqW9uZDNoXfbslX9ECxrZ8kTLm1Tw1JYkJlMW3aQnmfhr2 ujt5CTaV8EI8ecLkAY67C3TUQgBDfA8o6oZ8QoQNEeki3oq0200RpL4eK8PPpWpXEEt9nf HlgXiRB6REsGsgYi40deh4tnjLyTZeMVCk+2nZ7qiGGnMxDNjxdZ4gCMkCmP75OLr6jJ4z cb/xY+9fLT/o4PH3LuQ0rjJ0bVTGYNvZiORQehGtiu2ZshQQb1m9cnsrE1L6bt77WCed21 Y9NxuZN7xcjISzg/NNUawGzAhzuBA7UJIHhmENVyZmtVJuwGSzzfxUayTgv18g== From: Antonin Godard Date: Thu, 30 Oct 2025 17:28:34 +0100 Subject: [PATCH 5/6] dev-manual: add a document to setup poky manually MIME-Version: 1.0 Message-Id: <20251030-bitbake-setup-v1-5-f44a8a2b7c0b@bootlin.com> References: <20251030-bitbake-setup-v1-0-f44a8a2b7c0b@bootlin.com> In-Reply-To: <20251030-bitbake-setup-v1-0-f44a8a2b7c0b@bootlin.com> To: docs@lists.yoctoproject.org Cc: Antonin Godard X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=8520; i=antonin.godard@bootlin.com; h=from:subject:message-id; bh=qtK6LJRmFMXrNCS0ww5lWujVYN+BieRriuMSXsV4WdE=; b=owEBbQKS/ZANAwAKAdGAQUApo6g2AcsmYgBpA5JVYtxWfGipKG3bLUC3RWudmkcXELO+Ed1d4 BX4sRy0jZKJAjMEAAEKAB0WIQSGSHJRiN1AG7mg0//RgEFAKaOoNgUCaQOSVQAKCRDRgEFAKaOo NgNmEACEqLjyxPvBw5nsGg9ykmIllHxD3AoLiCoFKe4EoGD0/CrTEqn34LRsWi5recWlxtw7J0j qX6QqfRntWF6fPsHjS4fpKAKQaYUQ0rPCibt/1coLl86+KwYy24h6LoZzkebTDM/BVthR2nCPMQ mkpYRRLeI/ztTPVsxzwmKN9ao1heZp54Cw6LAqkYeu7jCuZ5OxV3qIFDT3L6ksNr9FRMYEyl6H1 z+XnkBR8DJy+0crRuvj6tnoRaANOKuB9sGGVcrUsTa1UC+hmIqQDVt1B3Ue5subF2Jq/04Rx47y UaD2iqgw5InTW8YZod6BChS0QLxCnDelUKXxo/DgLBfjzCTVSmnHZbhRroZ3muckH/nPFa9VfK6 LgOTx+H+7niNWcWLHNRjSaw8M/f+b9NRUZOO2ccKQXyhBuL1mgvD6XOFZl9GwyyqpP9ZW1f7r5L lXrj+f9sYaolRNTeJI7CQNtLxQ/+9hzYUvonizHZqwYfeseSPId2NNLEr4tCk4N8WYTqlOg2mUr wlxl3e9tR38n+gm5il/i5kYTY7VeyKSHwgKBD0tXVXO9MKdUEUpgjdPt8mdtcZQIAuWaqqKnuxg i5sWcwwqow768WkRRUY2jVZZBKQLuT+P/5HDRhjWgef+fxF/6RXQZHTegRqkGtP/2VnZVG4ZeMR V2ZyrVwAA6dAxIg== X-Developer-Key: i=antonin.godard@bootlin.com; a=openpgp; fpr=8648725188DD401BB9A0D3FFD180414029A3A836 X-Last-TLS-Session-Version: TLSv1.3 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 30 Oct 2025 16:29:18 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/docs/message/7930 Add a new document describing how to setup the Poky reference distribution manually. This document is referenced in the Quick Guide, so that users that _know_ they want to setup Poky without bitbake-setup have a link to it. This document is also important to reflect the layout of the layers expected by the bblayers.conf.sample file, as explained in [1]. [1]: https://lore.kernel.org/poky/20251028-update-bblayers-sample-v1-1-97ec54cda94e@bootlin.com/ Signed-off-by: Antonin Godard --- documentation/brief-yoctoprojectqs/index.rst | 10 +- documentation/dev-manual/index.rst | 1 + documentation/dev-manual/poky-manual-setup.rst | 125 +++++++++++++++++++++++++ 3 files changed, 135 insertions(+), 1 deletion(-) diff --git a/documentation/brief-yoctoprojectqs/index.rst b/documentation/brief-yoctoprojectqs/index.rst index c79b53a8b..74afe638a 100644 --- a/documentation/brief-yoctoprojectqs/index.rst +++ b/documentation/brief-yoctoprojectqs/index.rst @@ -204,6 +204,12 @@ This directory contains: - A ``config`` directory, representing the current configuration used in this directory. +.. note:: + + It is also possible to setup the :term:`Poky` reference distro manually. For + that refer to the :doc:`/dev-manual/poky-manual-setup` section of the Yocto + Project Development Tasks Manual. + Building Your Image =================== @@ -267,7 +273,9 @@ an entire Linux distribution, including the toolchain, from source. These set up the environment similar to what was previously in the local configuration file :ref:`local.conf `, - which is now largely empty. + which is now largely empty. To setup the build how it was done + previously, see the :doc:`/dev-manual/poky-manual-setup` section of the + Yocto Project Development Tasks Manual. .. note:: diff --git a/documentation/dev-manual/index.rst b/documentation/dev-manual/index.rst index 7a581236a..adf776e00 100644 --- a/documentation/dev-manual/index.rst +++ b/documentation/dev-manual/index.rst @@ -17,6 +17,7 @@ Yocto Project Development Tasks Manual upgrading-recipes temporary-source-code creating-fragments + poky-manual-setup quilt.rst development-shell python-development-shell diff --git a/documentation/dev-manual/poky-manual-setup.rst b/documentation/dev-manual/poky-manual-setup.rst new file mode 100644 index 000000000..c760f2c2c --- /dev/null +++ b/documentation/dev-manual/poky-manual-setup.rst @@ -0,0 +1,125 @@ +.. SPDX-License-Identifier: CC-BY-SA-2.0-UK + +Setting Up the Poky Reference Distro Manually +********************************************* + +While the default way to setup the :term:`Poky` reference distro is to use +``bitbake-setup``, it is also possible to manually setup the environment. This +document guides through this setup step-by-step. + +.. note:: + + This document will produce a setup similar to what is described in + :doc:`/brief-yoctoprojectqs/index`, which shows how to setup :term:`Poky` + with ``bitbake-setup``. + +Use Git to Clone The Layers +=========================== + +Go to :yocto_wiki:`Releases wiki page `, and choose a release +(such as ``&DISTRO_REL_LATEST_TAG;``), corresponding to either the latest stable +release or a Long Term Support release. + +Once you complete the setup instructions for your machine (see the +:doc:`/ref-manual/system-requirements` section of the Yocto Project Reference +Manual), you need to get a copy of the different :term:`layers ` needed +to setup the :term:`Poky` reference distribution on your build host. Use the +following commands: + +.. code-block:: shell + + $ mkdir layers/ + $ git clone -b &DISTRO_REL_LATEST_TAG; https://git.openembedded.org/bitbake ./layers/bitbake + $ git clone -b &DISTRO_REL_LATEST_TAG; https://git.openembedded.org/openembedded-core ./layers/openembedded-core + $ git clone -b &DISTRO_REL_LATEST_TAG; https://git.yoctoproject.org/meta-yocto ./layers/meta-yocto + +Building Your Image +=================== + +Use the following steps to build your image. The build process creates +an entire Linux distribution, including the toolchain, from source. + +.. note:: + + - If you are working behind a firewall and your build host is not + set up for proxies, you could encounter problems with the build + process when fetching source code (e.g. fetcher failures or Git + failures). + + - If you do not know your proxy settings, consult your local network + infrastructure resources and get that information. A good starting + point could also be to check your web browser settings. Finally, + you can find more information on the + ":yocto_wiki:`Working Behind a Network Proxy `" + page of the Yocto Project Wiki. + +#. **Initialize the Build Environment:** From your current working directory, + setup a build environment with the following command: + + .. code-block:: shell + + $ TEMPLATECONF=$PWD/layers/meta-yocto/meta-poky/conf/templates/default source ./layers/openembedded-core/oe-init-build-env + + Among other things, the script creates the :term:`Build Directory`, which is + ``build`` in this case and is located in the :term:`Source Directory`. + After the script runs, your current working directory is set to the + :term:`Build Directory`. Later, when the build completes, the :term:`Build + Directory` contains all the files created during the build. + +#. **Examine Your Local Configuration File:** When you set up the build + environment, a local configuration file named ``local.conf`` becomes + available in a ``conf`` sub-directory of the :term:`Build Directory`. For + this example, the defaults are set to build for a ``qemux86-64`` target, + which is suitable for emulation. The package manager used is set to the RPM + package manager. + + .. tip:: + + You can significantly speed up your build and guard against fetcher + failures by using :ref:`overview-manual/concepts:shared state cache` + mirrors and enabling :ref:`overview-manual/concepts:hash equivalence`. + This way, you can use pre-built artifacts rather than building them. + This is relevant only when your network and the server that you use + can download these artifacts faster than you would be able to build them. + + To use such mirrors, uncomment the below lines in your ``conf/local.conf`` + file in the :term:`Build Directory`:: + + BB_HASHSERVE_UPSTREAM = "wss://hashserv.yoctoproject.org/ws" + SSTATE_MIRRORS ?= "file://.* http://sstate.yoctoproject.org/all/PATH;downloadfilename=PATH" + BB_HASHSERVE = "auto" + BB_SIGNATURE_HANDLER = "OEEquivHash" + + The hash equivalence server needs the websockets python module version 9.1 + or later. Debian GNU/Linux 12 (Bookworm) and later, Fedora, CentOS Stream + 9 and later, and Ubuntu 22.04 (LTS) and later, all have a recent enough + package. Other supported distributions need to get the module some other + place than their package feed, e.g. via ``pip``. + +#. **Start the Build:** Continue with the following command to build an OS + image for the target, which is ``core-image-sato`` in this example: + + .. code-block:: shell + + $ bitbake core-image-sato + + For information on using the ``bitbake`` command, see the + :ref:`overview-manual/concepts:bitbake` section in the Yocto Project Overview and + Concepts Manual, or see + :ref:`bitbake-user-manual/bitbake-user-manual-intro:the bitbake command` + in the BitBake User Manual. + +#. **Simulate Your Image Using QEMU:** Once this particular image is + built, you can start QEMU, which is a Quick EMUlator that ships with + the Yocto Project: + + .. code-block:: shell + + $ runqemu qemux86-64 + + If you want to learn more about running QEMU, see the + :ref:`dev-manual/qemu:using the quick emulator (qemu)` chapter in + the Yocto Project Development Tasks Manual. + +#. **Exit QEMU:** Exit QEMU by either clicking on the shutdown icon or by typing + ``Ctrl-C`` in the QEMU transcript window from which you evoked QEMU. From patchwork Thu Oct 30 16:28:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antonin Godard X-Patchwork-Id: 73360 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3E9E5CCFA00 for ; Thu, 30 Oct 2025 16:29:18 +0000 (UTC) Received: from smtpout-03.galae.net (smtpout-03.galae.net [185.246.85.4]) by mx.groups.io with SMTP id smtpd.web10.2035.1761841755980806432 for ; Thu, 30 Oct 2025 09:29:16 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@bootlin.com header.s=dkim header.b=PsSP79QJ; spf=pass (domain: bootlin.com, ip: 185.246.85.4, mailfrom: antonin.godard@bootlin.com) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-03.galae.net (Postfix) with ESMTPS id 9EE1E4E413FF for ; Thu, 30 Oct 2025 16:29:14 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 764B260331 for ; Thu, 30 Oct 2025 16:29:14 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 04E4111808BEA; Thu, 30 Oct 2025 17:29:13 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1761841754; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=VXeEtP7UQv1EkC9OfkxhS3k1XQimZbs8zCQO2qHuXkg=; b=PsSP79QJ/w25Xg9UcQDKikC1ERB8cWoag51bndM5A5InBYlmxrvAs6sDr93n0o7WLWHfR2 DqvT4xfeEWuJUUl3wOpvJhUvR31woNcBM/148gOJt2BuBgHiUd4aPHLTCO/ZVfSy+B4vww hGJ3sGzE4QI3fkbYHVos/b8SZurIkIyoqmDbQlvygbV0Y0lP9lb6mmH+c2H3pI1Yew+kgm Q5PHlH6Mi1kHN4zlbK/PYvFC/HzqwXynSwRwQd/Yl7NceNzBe9yezDUOjQtthuyyW666Xf yw2DOUT65h/wBHqX6NUv+2OeCSz/n1g6cv31aPBazX6KzkDeeD0F+eejyQq/bg== From: Antonin Godard Date: Thu, 30 Oct 2025 17:28:35 +0100 Subject: [PATCH 6/6] ref-manual/terms.rst: update Poky description MIME-Version: 1.0 Message-Id: <20251030-bitbake-setup-v1-6-f44a8a2b7c0b@bootlin.com> References: <20251030-bitbake-setup-v1-0-f44a8a2b7c0b@bootlin.com> In-Reply-To: <20251030-bitbake-setup-v1-0-f44a8a2b7c0b@bootlin.com> To: docs@lists.yoctoproject.org Cc: Antonin Godard X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=2039; i=antonin.godard@bootlin.com; h=from:subject:message-id; bh=uEHzqAKXqc7JJMqCqzTjRdy94fUsCEFbaZDd6cPSWsI=; b=owEBbQKS/ZANAwAKAdGAQUApo6g2AcsmYgBpA5JWPQuuPT0U0dzOPYSi6GFJyaKwG9UM7wSL9 cSnPxwx/iKJAjMEAAEKAB0WIQSGSHJRiN1AG7mg0//RgEFAKaOoNgUCaQOSVgAKCRDRgEFAKaOo Nj9vD/90PqRTyvXHeEs0+boANmLq487eQwJKwzExscTEkj3W1ld910wY624e5ejobK/ncJjoEqv dnXxiI3ZiZoBaYw3oWGDGQ5cdII/quQNpyWyjUy78djvK9Ryix84dI0/069zwX8TE/Xy40JQK5Y G2Elz+gG3rw7VN9hzaEDyXs7tuN8TUsC0o0dCYlUj6gJQVQnSVZASeSQsmofnayayx3iVOV2pMc r8VafAXGzlXdWV/zqKbsJNkx9ZOdZ2CJBrl8ZZPyYpVn0allktWKyThEEVvaby035Q0+FtnkfLm svraDw/GihKJaw7vgO22F8JtNgLVk8Q+8hK1HPpMx+paN9kn8TLOZobp/UAsOx7X7CDCiJajSO8 gVBgnvGkoGPz4UaIuwtrYbqHblVtv7Hr0CyLAI2Gx+ZOo/ELhFnatzAKHjQ3d5Oalqbv6Su154s IyCdA0Etz8iOp+hMBSe5N2FgTifOluAceHAiNJ3VjhWhSjLWvFug8zc9/jZKde9FuGeZ32ALErY VlEctHz2AjcG/gG6dLG6rtl4EcEmwROwYclhFmn8V3/4XkVucHdxkndbw30q1Mjs6Yn26ZFxWN3 GTAH324X4jUpf0NQmhGSONY/B/XlfmDWzFHpg3fbV+/plA7+iYrg+NeVamysRbl7B5N3LhLdGnI 2xDT2BYLTgcGtXQ== X-Developer-Key: i=antonin.godard@bootlin.com; a=openpgp; fpr=8648725188DD401BB9A0D3FFD180414029A3A836 X-Last-TLS-Session-Version: TLSv1.3 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 30 Oct 2025 16:29:18 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/docs/message/7931 Poky as in the repository will no longer be updated. Update the description of Poky to remove the last bullet point, and add a note to say that Poky was used before. Signed-off-by: Antonin Godard --- documentation/ref-manual/terms.rst | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/documentation/ref-manual/terms.rst b/documentation/ref-manual/terms.rst index e25c714d9..6a9f88061 100644 --- a/documentation/ref-manual/terms.rst +++ b/documentation/ref-manual/terms.rst @@ -461,11 +461,26 @@ universal, the list includes them just in case: - A means by which to test the Yocto Project components (i.e. Poky is used to validate the Yocto Project). - - A vehicle through which you can download the Yocto Project. - Poky is not a product level distro. Rather, it is a good starting point for customization. + .. note:: + + Poky also used to be a repository containing the combination of + :term:`BitBake`, :term:`OpenEmbedded-Core (OE-Core)`, the + :yocto_git:`meta-yocto ` repository and the Yocto Project + documentation -- which were combined with the :yocto_git:`combo-layer + ` tool. + + This repository is still hosted at :yocto_git:`/poky` and is still + updated for maintained releases that are older than Whinlatter (5.3). + Newer releases now use ``bitbake-setup`` to clone and setup the initial + :term:`OpenEmbedded Build System` environment. For more information on + how to use ``bitbake-setup``, see the :doc:`/brief-yoctoprojectqs/index` + document. An alternative can be to setup the above repositories + manually, by following the :doc:`/dev-manual/poky-manual-setup` + section of the Yocto Project Development Tasks Manual. + .. note:: Poky began as an open-source project initially developed by