From patchwork Mon Nov 3 16:33:05 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antonin Godard X-Patchwork-Id: 73549 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 A3B50CCFA0D for ; Mon, 3 Nov 2025 16:33:44 +0000 (UTC) Received: from smtpout-02.galae.net (smtpout-02.galae.net [185.246.84.56]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.1842.1762187618411348278 for ; Mon, 03 Nov 2025 08:33:38 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@bootlin.com header.s=dkim header.b=hMZsC4Pd; spf=pass (domain: bootlin.com, ip: 185.246.84.56, mailfrom: antonin.godard@bootlin.com) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-02.galae.net (Postfix) with ESMTPS id 177381A185F for ; Mon, 3 Nov 2025 16:33:37 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id E0CC860628 for ; Mon, 3 Nov 2025 16:33:36 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 7A76510B5009C for ; Mon, 3 Nov 2025 17:33:36 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1762187616; h=from:subject:date:message-id:to:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=vTvqDLemjD1D0IF7YWy+qpL4NnCshl2wbhDyYZKQR24=; b=hMZsC4PdOphdJwgHFyZiO33K4VkmXC9xhMICfiF058wYFufAaZT+NNZwp3OMnEB570t6t+ QvcTpFKLUearCFmZ0ZjeyAk89w3Sz+rvTbU4A9c9EOH4qgyQC6PC8VwzZ0yhPxsOTGPRdD kLRwLf3DasOvYlulyeF6SBJHfecg8Zvj+Ry+LKKRJOmOQmt5wmG9nFfP/AHP02T5RzfPX5 u8sJptE7fFHEiREi6DeOGUvZHnQ9BimGcneBtWb/Adb9pThbddLDaohrCuwbAW4T8vcoBZ 8Grnrrla+EyQYeJNdHnhlg7bbszkC+4esUI431XtLo+yoxGl12bzlsJSDvSIvg== From: Antonin Godard Date: Mon, 03 Nov 2025 17:33:05 +0100 Subject: [PATCH v2 1/6] ref-manual/structure.rst: update the description of local.conf and bblayers.conf MIME-Version: 1.0 Message-Id: <20251103-bitbake-setup-v2-1-89fbb14cfbbd@bootlin.com> References: <20251103-bitbake-setup-v2-0-89fbb14cfbbd@bootlin.com> In-Reply-To: <20251103-bitbake-setup-v2-0-89fbb14cfbbd@bootlin.com> To: docs@lists.yoctoproject.org X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=3807; i=antonin.godard@bootlin.com; h=from:subject:message-id; bh=gdbMIaT8ylYo2ppsiz5Rgx8BSjVnTSzjztmlAsSKNhY=; b=owEBbQKS/ZANAwAKAdGAQUApo6g2AcsmYgBpCNle3RJxT2tX1vaO8m6r3tXg9NH0+KvrUk46H vjdlXPeWRqJAjMEAAEKAB0WIQSGSHJRiN1AG7mg0//RgEFAKaOoNgUCaQjZXgAKCRDRgEFAKaOo NkcdD/0SmRcHd9hIqyztUOi/dJzNOzzDTbi8JsypTRCJ+xZHmpHZzLAuzuGkVmUoPvdL9Ny308t e5+qiw83s+mQCToFWWnni7mjezJaxvflHeJipm65Z5DV023PBRzCNIvhhdedAygfnyiGejGFy4Q wVYDUI34OD6ZrlDdkyVjP+FDcMVMoEGPOyh+wmpOXuNczp4e83Nkayqd9q616sP3shQrJU20nue IbOQhxmloJgYYLTvy19THBiB/k2/GrU6Ar8DKNvHvRt+IAaaxAEzNGp0Jh4iNeHl+mmQ120aCPY NBvnPR/TUe/R1F3k8mbFdbfF+S7ng7+t2kQjsXrWHj4tjwURC/t59qesvfSTngA6eLFDncRboJ3 +5EpbJxEQDE2F05dpteHH5mP0JCtrbW/x9eTpJY3reoB2YoQOUNpKZROLM4vdfr90Jh2eGSmE+Y drXm7oriHt9htKnTJSqP4JX5hz0BhAyRp0dtR+K0Rm/IFSorZQRCv+tv2ndlGbqPHjyV6S/Z5fX ZjLwVEgr2NaVPE9Z5LIji6EJiWO3VcBeT+ba/2PjUqaSKG75MIZUkVQEmBwo031R6tx+sQ3ys7o pf3GIjdRs+Z9sYjlz52rVrvuRn9KC9ZNZJtEhZfU9hywvEzzIhdk7QW9tIs2KeuMlF/G0iHUH3s fDlWT5rQOgi5y5w== 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 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 03 Nov 2025 16:33:44 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/docs/message/7976 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 | 36 +++++++++++++++------------------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/documentation/ref-manual/structure.rst b/documentation/ref-manual/structure.rst index 2640f461d..a2f2fd450 100644 --- a/documentation/ref-manual/structure.rst +++ b/documentation/ref-manual/structure.rst @@ -269,22 +269,19 @@ 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 experiment with setting (or adding to) +:term:`DISTRO_FEATURES` or :term:`IMAGE_FEATURES`, or adjust build +configurations for specific recipes by setting the :term:`PACKAGECONFIG` +variables for them. If you would like to publish and share changes made to this +file, it is recommended to put them into a distro :term:`configuration file`, or +to create layer :term:`configuration fragments ` from +changes made here. + +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 +318,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 Mon Nov 3 16:33:06 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Antonin Godard X-Patchwork-Id: 73547 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 9D58DCCFA09 for ; Mon, 3 Nov 2025 16:33:44 +0000 (UTC) Received: from smtpout-02.galae.net (smtpout-02.galae.net [185.246.84.56]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.1764.1762187618730649129 for ; Mon, 03 Nov 2025 08:33:39 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@bootlin.com header.s=dkim header.b=cOQraep5; spf=pass (domain: bootlin.com, ip: 185.246.84.56, mailfrom: antonin.godard@bootlin.com) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-02.galae.net (Postfix) with ESMTPS id 71D9D1A1860 for ; Mon, 3 Nov 2025 16:33:37 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 476B660628 for ; Mon, 3 Nov 2025 16:33:37 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id DF98610B50169 for ; Mon, 3 Nov 2025 17:33:36 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1762187617; h=from:subject:date:message-id:to:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=kGpj9YbIu1JYl0xvHnkrfSczCaeMOrearn4lKS63t6s=; b=cOQraep5BfLVH7F6+ACVDnm/WLyueub1ZjG3hzR+4tgcwKUHDl9tRDw6qmPA65+bjm0iZ5 ebKwnTjZTLRqNNA+yN3LCNlSkhwUJCGvdRR99wqsHyMoCmKZaAI95+Wne81LHR3TcyBJ2V RhxpBrDRSy8mAEg4tdPnHeaB3IeksoRYYJfQD63i6po5CB/OOXHtdECbIzweFG1QuVE8Iq cQAEhp+NhZWnvEQVwXEw4t7f5Qut1LsFM9Z6Bv6aWJAVpdcSMrHsJc+XrL1fkU/hqRJxGS aYUwbo6EVwhVOzU7q+GQ2dNpJvzjlKkY54vUj1iPe6HaooNk3eKkE9k9Kx6UWA== From: Antonin Godard Date: Mon, 03 Nov 2025 17:33:06 +0100 Subject: [PATCH v2 2/6] ref-manual/structure.rst: document the site.conf file MIME-Version: 1.0 Message-Id: <20251103-bitbake-setup-v2-2-89fbb14cfbbd@bootlin.com> References: <20251103-bitbake-setup-v2-0-89fbb14cfbbd@bootlin.com> In-Reply-To: <20251103-bitbake-setup-v2-0-89fbb14cfbbd@bootlin.com> To: docs@lists.yoctoproject.org 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=RlLGG7QqyIDv673TmVZfXqhu2AUmWa9mOWK+wBaLUYE=; b=owEBbQKS/ZANAwAKAdGAQUApo6g2AcsmYgBpCNlefw8sWtYVQPQg8M8/4nwt0cxCqOa4dlsYy N84zppVX0GJAjMEAAEKAB0WIQSGSHJRiN1AG7mg0//RgEFAKaOoNgUCaQjZXgAKCRDRgEFAKaOo NuBBD/9efcbQDKN4OFXDMUVi31kHY1TNoc+jp6dVlqpwFZgTR+45F3VOtizNy4jabkE0ATnpabE 2sYAyqjdGWE1JcsMUGgwmdjs6ki3iOX5QskhNiDxFdhUdbxZMoqqKU2/C2+Hzgld+FytxjK/T+h ZP0aKfLguOnp9ZZftHuT10NzQ+670UJRDoQUqtP/cYtVgzD+ZRbWL+oUeo4GTvBKuQ7LcOEwnEE iAYw9x0PtT657nYD78GdxBhbUljeKSanV5D6KIf7m77diOhVZY1WJVBq668Nih+6Gnzi3kiMlZh rPNzqDr0zilyTZM4wEqGJUQgP13ZKVTyvf/O3+sj78UYN/1HiiLRVHXM78wtz1xapvCy3/4VLqf w+3TPEyO9AAzs5RtUZP+q0aNb/s+m9oLBUwmhA0fUEEC2xhyFkYcdTEAtEvnJRKXxvDkHEpMbaj hNOJ+MEupGC8ZAaIMSfYotLBywbIfAVV7gA9HM6U++sgy/F/fd41RHHh8P6QofNGVy2FzqyYabT 74cD16HaPVaKFDj26PK1jU487u0W7oii0BVhWlY2YTSt6FPXnng/OskTtXUWC5+/0dZSysefwXW 6DLqemuyuuHAgTmB0LCFCNbobxo8uMbKi+ldigeX+vvk1n6c8ktkBcF3kmg4a02lSSwz5jgA2/m TBfsAPYZQej7NPw== 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 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 03 Nov 2025 16:33:44 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/docs/message/7977 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 a2f2fd450..f0205f0e5 100644 --- a/documentation/ref-manual/structure.rst +++ b/documentation/ref-manual/structure.rst @@ -343,6 +343,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 Mon Nov 3 16:33:07 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antonin Godard X-Patchwork-Id: 73550 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 8ED08CCFA08 for ; Mon, 3 Nov 2025 16:33:44 +0000 (UTC) Received: from smtpout-02.galae.net (smtpout-02.galae.net [185.246.84.56]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.1844.1762187619514965877 for ; Mon, 03 Nov 2025 08:33:39 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@bootlin.com header.s=dkim header.b=ZNmbUYvv; spf=pass (domain: bootlin.com, ip: 185.246.84.56, mailfrom: antonin.godard@bootlin.com) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-02.galae.net (Postfix) with ESMTPS id 32D851A1861 for ; Mon, 3 Nov 2025 16:33:38 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 0703E60628 for ; Mon, 3 Nov 2025 16:33:38 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 44B0B10B5009C for ; Mon, 3 Nov 2025 17:33:37 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1762187617; h=from:subject:date:message-id:to:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=yvxUVyawsOW1OXfpZeYvh/yT9CzyWNGbllf36LJzVP4=; b=ZNmbUYvvYU4PxQLEsbUV0zKI5fMFPpiQDT9KlEXze29dibOYeOK4uF3PTgFlian3xRnu5Y bDiLudiZcuiMMDhBk/Qu8nrOu0rjaB9OSbhgFmvGXeR+jBDMxbFrH8/SpXkE6/T3i2NdbT 29S77yJ2MFezXgKvSmY81RFewWJvsCAX56cAZG9MoosapzVomrIeoRfiL7VMR5wysSVvh0 RL1wlp73aJ8pATsOKojssFzhJlWw/RdtjA88eHfhzv7mzMmBPpN9rEkI3WvZcZDtI0XlfG DXV+d1SjjVxRtsbSPk37N8+eFidoyi4bMNlKRIFADv9GWZxxIAsZlUgoibcN6w== From: Antonin Godard Date: Mon, 03 Nov 2025 17:33:07 +0100 Subject: [PATCH v2 3/6] brief-yoctoprojectqs: delete unused figures MIME-Version: 1.0 Message-Id: <20251103-bitbake-setup-v2-3-89fbb14cfbbd@bootlin.com> References: <20251103-bitbake-setup-v2-0-89fbb14cfbbd@bootlin.com> In-Reply-To: <20251103-bitbake-setup-v2-0-89fbb14cfbbd@bootlin.com> To: docs@lists.yoctoproject.org 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=kA0DAAoB0YBBQCmjqDYByyZiAGkI2V6hJPsHZkxZz+Kicw+icKPjdLMlukiR4zXTu0hiImFTI YkCMwQAAQoAHRYhBIZIclGI3UAbuaDT/9GAQUApo6g2BQJpCNleAAoJENGAQUApo6g2PicQAM3+ cT0N5DbMMRh5bhAMvpBUbuxAer9AISQq8Ram4F+cNleEXG0XMs2vGAOYoLx09z1eG8epBjbk8NH SafSA/D5pHdPViqORcYGvCull6vJGRExEAqgGjalnvP0qcKOUGmLdiG7MlwlolJObTpbGiHVrBc 1vIdASkmyluKPFdWwDW3qmRBk+0oPhybQLPQHZ689ed5RZ/d0Tt7M+RiUedOXayZ6ikR/ai4jV8 mFvAjapMUegR2iZfhfOcWqCtjD6PRKqd5vfwXbrUEgeG7BfWtgAsYQOLeqQYOhurg9LHlbJAAee w0FdHo4/DvVCrhYS+sVP10XBnkb2TLVkGUQc4F+yFXSIrCjZal+qUXojk4fQiz0IepYnVsTl9HO L6GnHHnZ2o1Fc9yAX2gramTfJzZ2nKmjGaaJvoIEDDCDb12lDRfiZhKObRbp1FWSwjide6EqWAh gNZpup4wBqfga7CiBGsA+r+6qN98dyKPnvjGGL800TcIBQ2mxuVTmViW06wM+dbOWikHcbrM6GC mwHLR2x6HxFC/nF1dYi73gNHeAlclQ8vtzkyEPMQ4MfWhGaEHq45MdpMfz3mVnO7q4Q2u5aDjHA defWB6knY5vMDq8Oc348f2vcw/yOAuVKlNogkyh+7p/4FcPi9kzG2z9pHCcL6udVqXQWxt2ONyQ hjmsF 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 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 03 Nov 2025 16:33:44 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/docs/message/7978 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: 73548 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 90D2ECCFA06 for ; Mon, 3 Nov 2025 16:33:44 +0000 (UTC) Received: from smtpout-02.galae.net (smtpout-02.galae.net [185.246.84.56]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.1765.1762187620102421932 for ; Mon, 03 Nov 2025 08:33:40 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@bootlin.com header.s=dkim header.b=l0q7+P7u; spf=pass (domain: bootlin.com, ip: 185.246.84.56, mailfrom: antonin.godard@bootlin.com) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-02.galae.net (Postfix) with ESMTPS id C0CDD1A1862 for ; Mon, 3 Nov 2025 16:33:38 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 9690460628 for ; Mon, 3 Nov 2025 16:33:38 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 0454310B501AA for ; Mon, 3 Nov 2025 17:33:37 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1762187618; h=from:subject:date:message-id:to:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=SLTbYgoZ1vKrPgktrlrnVaUxy1surPT7h5eUxYvq+VY=; b=l0q7+P7u1zibVxx/ccr7Uob/JWTS13uSuliOKg3iooD27GYwMCGp+rDgLhLdlNL+4XqbFh sxll4qOrpHhQNIfYHehgOxs7okF7ee4QFfM25jFr1w7ockXTdiH2z6Urh9oXQ404B7FVx8 W7VUpEcwtvLBgrZZfqobaPG2O9K44//j8Vt7S525g5EePAoJaULAftknmSLwcQ0HP4IlXw Y9AgbwWYh34zobcH8ZgdrX96zxVTK9gzGLP53SC3Y+P9mSnIm3l7kGOh2Dp+yBYQMvb46B 5WZcwlbCfnnh9+CLVr+Vds8pnzD9ggB/mzb//dWx1+f7yF5TZZNucg1B1+LjQA== From: Antonin Godard Date: Mon, 03 Nov 2025 17:33:08 +0100 Subject: [PATCH v2 4/6] brief-yoctoprojectqs: switch to bitbake-setup MIME-Version: 1.0 Message-Id: <20251103-bitbake-setup-v2-4-89fbb14cfbbd@bootlin.com> References: <20251103-bitbake-setup-v2-0-89fbb14cfbbd@bootlin.com> In-Reply-To: <20251103-bitbake-setup-v2-0-89fbb14cfbbd@bootlin.com> To: docs@lists.yoctoproject.org X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=21215; i=antonin.godard@bootlin.com; h=from:subject:message-id; bh=0S8xne+TFlo9wA6XkVMKwr+IhoMRme3wTF6b6leTgcQ=; b=owEBbQKS/ZANAwAKAdGAQUApo6g2AcsmYgBpCNlfmqwmcUl0QsfwURf40vJCvDTxVBiDE1O1y hxDNZjV+L+JAjMEAAEKAB0WIQSGSHJRiN1AG7mg0//RgEFAKaOoNgUCaQjZXwAKCRDRgEFAKaOo NhFpD/0bvN/+NhYz29AO6xGc2Gje45Aiz8epzoKwabvAq1u/6QpLiLnhZi0NCt+7l1YnsGJLKv7 WApdSZmDPY3gpaE0l/GdY0L3i8j+iu0gokqYLVR0yiH1WxCTdQHdEfWVC2noR27IGz/N1JTEjML rYNg63YEAohz9iCC4m7kZC8ANVck4h8fz3suVEDS7X3yh5bxK/S6f4/fj+b114oJRI4C8CluF2M HN3R2/wo/R9zSnYHBUIXtlnMFQvMPXLx1jtwWepHLXO2k3jjOtnz4r8MwSdo4SmPJqC0VrQU/kj xtSk3k/Bt7/Cs0s/vKQbbANQTqFfJF9QhQxt6qovy3p8sxdTU2/Ijzk7ZeIXWqstlFwT98hfLms jFvdYjW2qd0b8/DkvKNbuknOVxsA2FKKZVJLYZhffvv6wB+ClGX5GMOqyIxEoSTrfcSkPXwC11L wpzsg73tmh31krjxochemU+7rJ1XIXSTpJ9KJToBs5ceVCpZOds4SF/mNNCMpuNvXC500sRzOCQ EYqIdDmtLLIzDV4IF9O3h3m0lGVKy3H1z93EvuN6t+FZOgRxnsJ6qvuCnnD4DEBCxYhfFzonrkP kenZwj6by3TuR4XDGBmhihwnTu8z+xHDLlGK3xJNQ8vdNys7v6gepunO2lvWrr/uPrhBrjXgPGX x8CFptHJgW+Yjqw== 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 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 03 Nov 2025 16:33:44 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/docs/message/7979 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 | 391 +++++++++++++-------------- documentation/ref-manual/structure.rst | 5 + 2 files changed, 199 insertions(+), 197 deletions(-) diff --git a/documentation/brief-yoctoprojectqs/index.rst b/documentation/brief-yoctoprojectqs/index.rst index 4a6f13d7e..f8d09bb53 100644 --- a/documentation/brief-yoctoprojectqs/index.rst +++ b/documentation/brief-yoctoprojectqs/index.rst @@ -87,80 +87,123 @@ 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 :ref:`bitbake:ref-bbsetup-command-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 :ref:`bitbake:ref-bbsetup-command-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: +:ref:`bitbake:ref-bbsetup-command-init` is an interactive program by default and +will ask you to make some decisions. Depending on your answers, the output 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 :term:`bitbake:Setup` in the +:term:`bitbake: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:`bitbake:BitBake Build` directory, named ``build``. Later, when the + build completes, this directory contains all the files created during the + build. + + This directory also contains a ``README``, describing the current + configuration and showing some instructions. + +- The :term:`layers ` needed to build the Poky reference distribution, + in the ``layers`` directory. + +- A ``config`` directory, representing the current configuration used for this + :term:`bitbake:setup`. Building Your Image =================== @@ -182,86 +225,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 :term:`bitbake:BitBake build` directory + to setup the :term:`BitBake` build environment on your 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:`bitbake:BitBake 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` fragment). + - ``machine/qemux86-64`` sets the :term:`MACHINE` to ``qemux86-64`` + (:ref:`ref-fragments-builtin-core-machine` fragment). + + These fragment values correspond to the choices made when running + :ref:`bitbake:ref-bbsetup-command-init`. + + .. note:: - $ 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``. + These set up the environment similar to what was previously in the local + configuration file :ref:`local.conf `, + which is now largely empty. + + 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:`local.conf ` file in ``conf/`` and + adding the following statement:: + + EXTRA_IMAGE_FEATURES = "allow-empty-password empty-root-password allow-root-login" + + .. 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 +331,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 +390,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 f0205f0e5..c0eae9b7b 100644 --- a/documentation/ref-manual/structure.rst +++ b/documentation/ref-manual/structure.rst @@ -372,6 +372,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 Mon Nov 3 16:33:09 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antonin Godard X-Patchwork-Id: 73546 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 8201FCCF9F8 for ; Mon, 3 Nov 2025 16:33:44 +0000 (UTC) Received: from smtpout-02.galae.net (smtpout-02.galae.net [185.246.84.56]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.1766.1762187620637668034 for ; Mon, 03 Nov 2025 08:33:40 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@bootlin.com header.s=dkim header.b=fQ/hAtTL; spf=pass (domain: bootlin.com, ip: 185.246.84.56, mailfrom: antonin.godard@bootlin.com) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-02.galae.net (Postfix) with ESMTPS id 53BD61A184F for ; Mon, 3 Nov 2025 16:33:39 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 2A2B660628 for ; Mon, 3 Nov 2025 16:33:39 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 8AA3F10B5009C for ; Mon, 3 Nov 2025 17:33:38 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1762187618; h=from:subject:date:message-id:to:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=V69Tlp92Ezj4iicJV4EPfrymBxe1pKGX7wEao2pR9tk=; b=fQ/hAtTL2I49tFvsAUMoW6z1hDhlMwsmQHhHzCv8O2GIy5Liow2ei7VteD/uE3Lir/wueu L1hD3vNf0zu24ai0MzU+BCLIox47O93nrmUMEAW1F0wuCobm/aKPjaIujxy8RaJZlfoqpG Qzz1jhp575lPcSZlGvtXB+DzPToEd3rKIpX/oP6xIz5tJ+4MRd6Y9ws+fuzd5CoaA4zKkp fxsIwmi6Hnx2O9gKf4vdeO6jFLwuPS4M62QHpTAX74OHNN7CTFEEI8aAehMdNFX3O60kwR NXNoNeuYjuedMSbDL+9Guqx8DZi4cFWx5dNwnYaqvFKZjuvQODvL4++Xuz++tw== From: Antonin Godard Date: Mon, 03 Nov 2025 17:33:09 +0100 Subject: [PATCH v2 5/6] dev-manual: add a document to setup poky manually MIME-Version: 1.0 Message-Id: <20251103-bitbake-setup-v2-5-89fbb14cfbbd@bootlin.com> References: <20251103-bitbake-setup-v2-0-89fbb14cfbbd@bootlin.com> In-Reply-To: <20251103-bitbake-setup-v2-0-89fbb14cfbbd@bootlin.com> To: docs@lists.yoctoproject.org X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=8679; i=antonin.godard@bootlin.com; h=from:subject:message-id; bh=Z5gU/CkotIzlC0/PPNe+2fbpeufc/Z03YlSZ4BNkOn0=; b=owEBbQKS/ZANAwAKAdGAQUApo6g2AcsmYgBpCNlf++GMVPSJJnMKVLVl6KTYN22R0SQ2v/4JK Jmb+qxzFr2JAjMEAAEKAB0WIQSGSHJRiN1AG7mg0//RgEFAKaOoNgUCaQjZXwAKCRDRgEFAKaOo NuwwEAC0N5h37Rb9c2tYkj0TCp5DwQ2t6KdxA+zSS9cy71b608tZ/YDTFZMz+Im1nQTT+f7p0QA P/BtKRRk/MsjI/6miZgT5+H2KcXidEjYYl5hfWQ1KpwZqE/UCPlvMMEedgoFORaYJMJn4j4GP2V tzCB5Zv7cZjka6PMY9fSUezQz2EWCdm+hDNA3mM3CN9VFGLdlu1wKqDglUGetPHcT7MEbiDJgB6 xjh1f4VrM91eRPqgK7Lar0LKQUXIidcljDxiVA4CtpxX5eC3+VSH6xwQMoawpI8fxlXPAZYwD62 6Hp0zuuYTxZFkahXulbzDG9JaHdAFoTw49MB/QiRCz5cWdyo9fv3LJbFjzRCd2Kat124CZ4ak0x 9LGxInJA8kVti4BQzlWUwXpKeofB2XDbaxp+EbpEYmLuaupyOE6OMS1lHIRaJWK5/Fs1vk0jGd8 N1v9KG0/GXhXHkseWetcpVXSIA7WhKxBbC0o6oy9ebE87w6SBxVs4gwVHb4BoUkdfFnN/4hwq8v gEB68R5PZjtzKkjz+oUNJ7HTO2xRpXy5jg2hX+wzxPrePXWbi3xAzRnyWoi/u7b8rl5Vi0Fhy/M 0LPbt7rVKhh6DrvpnY/zTqvJP3o6uh9ugi0tzoGL4ZAKAUsP7i+pPnefFgElxF16g5jNqdSfdew A0JR8vamER7pOjQ== 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 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 03 Nov 2025 16:33:44 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/docs/message/7980 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 f8d09bb53..1d03e8c09 100644 --- a/documentation/brief-yoctoprojectqs/index.rst +++ b/documentation/brief-yoctoprojectqs/index.rst @@ -205,6 +205,12 @@ This directory contains: - A ``config`` directory, representing the current configuration used for this :term:`bitbake:setup`. +.. 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 =================== @@ -261,7 +267,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. 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 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 Mon Nov 3 16:33:10 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antonin Godard X-Patchwork-Id: 73545 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 78849CCFA03 for ; Mon, 3 Nov 2025 16:33:44 +0000 (UTC) Received: from smtpout-02.galae.net (smtpout-02.galae.net [185.246.84.56]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.1767.1762187621061366878 for ; Mon, 03 Nov 2025 08:33:41 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@bootlin.com header.s=dkim header.b=e2dbMwXG; spf=pass (domain: bootlin.com, ip: 185.246.84.56, mailfrom: antonin.godard@bootlin.com) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-02.galae.net (Postfix) with ESMTPS id C01801A185F for ; Mon, 3 Nov 2025 16:33:39 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 90ACC60628 for ; Mon, 3 Nov 2025 16:33:39 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 272E110B501AA for ; Mon, 3 Nov 2025 17:33:39 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1762187619; h=from:subject:date:message-id:to:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=VXeEtP7UQv1EkC9OfkxhS3k1XQimZbs8zCQO2qHuXkg=; b=e2dbMwXGaOGj5ecJjUR19Tg2ci10mCGrhrFmRh/jZnXJ20eLVccBgNimpd+lu29EAcp0iN 7gDdC+52QnNMhFDRkAvba3o20A6cUtcG2PBRzwaoc5PkWo/rc2z34pUEI3+z7/8edk95vi fhryeRrVGemFJj9N7XcWIqet59XLUA4c0+Moskp7hcwQrOlgsNXvzyS9HlBhH0e3dUjOHz OXl3ppYQO42kv2aCZI24KYO/6uhHFG54Vw1UEkjHZRrMnDg7/IruiCXSTHf07UTZ1d7w+G w7NNXhcD71X26RfHbieoQx3h8kEy4ZheAOCQ6mpAG56Si7NxtQfPrip5hiqZ/g== From: Antonin Godard Date: Mon, 03 Nov 2025 17:33:10 +0100 Subject: [PATCH v2 6/6] ref-manual/terms.rst: update Poky description MIME-Version: 1.0 Message-Id: <20251103-bitbake-setup-v2-6-89fbb14cfbbd@bootlin.com> References: <20251103-bitbake-setup-v2-0-89fbb14cfbbd@bootlin.com> In-Reply-To: <20251103-bitbake-setup-v2-0-89fbb14cfbbd@bootlin.com> To: docs@lists.yoctoproject.org 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/ZANAwAKAdGAQUApo6g2AcsmYgBpCNlfq3CEZrsza8qg2YsQaonspwubUK3ZNqK6p /alAq4qykeJAjMEAAEKAB0WIQSGSHJRiN1AG7mg0//RgEFAKaOoNgUCaQjZXwAKCRDRgEFAKaOo NnG4D/92ZVod6vxzFZuS20pmXFhrGCmIx9vouPzoSci2ePAezyji4DWlL18Zg2i87PrcuFlWMaj WJIZkvq8J/odSk05kLBs5RhpvDOxd2c6OREM0Ydy8KTJXG0OepOlgi42z+1iU3FnY5Bhaxu4taB BbiQFtxk0WxuNgVuesQ4dE0Rv7JNJWsZm7G3VNgzqophGSb1xjzW+8zvhHMvoepUtNoGfC/vy8N FydCVT7YFeQuotZtFyGWgNegifEODEZKI6ZaJ+B36KoaTPkft6yXQkc3O3rFCvSIQRpqXLzJN5f qRDYKv6fmjQ8RuaTAhGoVXzvTenF8qMoxSZSVEaOVXEsq5pUAHHXosPXQnEa+bO/DEqv1p8IW8C KcRvx/Zjdj40CCP+f30RSYZoaPOdgSIwvMHT/E9EqROSMseUaFI6+EF+K/WAUoeaIIFMZf5Cbns 8Sb8ZbMBetuSr84xGuv7avGGipT0t0I6WusVoXbY60eU0rX4bptLeid4VXCp8K42BBCSY8Y1k9j s5l9hQOm2hvbHr4Xvm+21IyE3lbTsDU2SZNpfL8icfSB2Ip3fKDY/UCquxVJmf2axLYgePyFxcK 7HnMEQhtV/icfWT79YZDswI+Ro5t4TxcjhqLkLr7zpprosWTFPdXH1NVTe0RGXrJ4lpZ7R0plra eDR/Bz6iRypJXdg== 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 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 03 Nov 2025 16:33:44 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/docs/message/7981 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