Andrew Geissler | f034379 | 2020-11-18 10:42:21 -0600 | [diff] [blame] | 1 | .. SPDX-License-Identifier: CC-BY-SA-2.0-UK |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 2 | |
| 3 | ******************* |
| 4 | System Requirements |
| 5 | ******************* |
| 6 | |
Andrew Geissler | 5199d83 | 2021-09-24 16:47:35 -0500 | [diff] [blame] | 7 | Welcome to the Yocto Project Reference Manual. This manual provides |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 8 | reference information for the current release of the Yocto Project, and |
| 9 | is most effectively used after you have an understanding of the basics |
| 10 | of the Yocto Project. The manual is neither meant to be read as a |
| 11 | starting point to the Yocto Project, nor read from start to finish. |
| 12 | Rather, use this manual to find variable definitions, class |
| 13 | descriptions, and so forth as needed during the course of using the |
| 14 | Yocto Project. |
| 15 | |
| 16 | For introductory information on the Yocto Project, see the |
| 17 | :yocto_home:`Yocto Project Website <>` and the |
Andrew Geissler | 09209ee | 2020-12-13 08:44:15 -0600 | [diff] [blame] | 18 | ":ref:`overview-manual/development-environment:the yocto project development environment`" |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 19 | chapter in the Yocto Project Overview and Concepts Manual. |
| 20 | |
| 21 | If you want to use the Yocto Project to quickly build an image without |
| 22 | having to understand concepts, work through the |
Andrew Geissler | 09209ee | 2020-12-13 08:44:15 -0600 | [diff] [blame] | 23 | :doc:`/brief-yoctoprojectqs/index` document. You can find "how-to" |
| 24 | information in the :doc:`/dev-manual/index`. You can find Yocto Project overview |
| 25 | and conceptual information in the :doc:`/overview-manual/index`. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 26 | |
| 27 | .. note:: |
| 28 | |
| 29 | For more information about the Yocto Project Documentation set, see |
Andrew Geissler | 4c19ea1 | 2020-10-27 13:52:24 -0500 | [diff] [blame] | 30 | the :ref:`ref-manual/resources:links and related documentation` section. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 31 | |
Patrick Williams | 8e7b46e | 2023-05-01 14:19:06 -0500 | [diff] [blame] | 32 | Minimum Free Disk Space |
| 33 | ======================= |
| 34 | |
| 35 | To build an image such as ``core-image-sato`` for the ``qemux86-64`` machine, |
| 36 | you need a system with at least &MIN_DISK_SPACE; Gbytes of free disk space. |
| 37 | However, much more disk space will be necessary to build more complex images, |
| 38 | to run multiple builds and to cache build artifacts, improving build efficiency. |
| 39 | |
| 40 | If you have a shortage of disk space, see the ":doc:`/dev-manual/disk-space`" |
| 41 | section of the Development Tasks Manual. |
| 42 | |
Patrick Williams | b542dec | 2023-06-09 01:26:37 -0500 | [diff] [blame] | 43 | .. _system-requirements-minimum-ram: |
| 44 | |
Patrick Williams | 8e7b46e | 2023-05-01 14:19:06 -0500 | [diff] [blame] | 45 | Minimum System RAM |
| 46 | ================== |
| 47 | |
| 48 | You will manage to build an image such as ``core-image-sato`` for the |
| 49 | ``qemux86-64`` machine with as little as &MIN_RAM; Gbytes of RAM on an old |
| 50 | system with 4 CPU cores, but your builds will be much faster on a system with |
| 51 | as much RAM and as many CPU cores as possible. |
| 52 | |
| 53 | .. _system-requirements-supported-distros: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 54 | |
| 55 | Supported Linux Distributions |
| 56 | ============================= |
| 57 | |
Andrew Geissler | 5082cc7 | 2023-09-11 08:41:39 -0400 | [diff] [blame] | 58 | Currently, the &DISTRO; release ("&DISTRO_NAME;") of the Yocto Project is |
| 59 | supported on the following distributions: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 60 | |
William A. Kennington III | ac69b48 | 2021-06-02 12:28:27 -0700 | [diff] [blame] | 61 | - Ubuntu 20.04 (LTS) |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 62 | |
Patrick Williams | 2194f50 | 2022-10-16 14:26:09 -0500 | [diff] [blame] | 63 | - Ubuntu 22.04 (LTS) |
| 64 | |
Andrew Geissler | 5082cc7 | 2023-09-11 08:41:39 -0400 | [diff] [blame] | 65 | - Fedora 38 |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 66 | |
Andrew Geissler | 5082cc7 | 2023-09-11 08:41:39 -0400 | [diff] [blame] | 67 | - CentOS Stream 8 |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 68 | |
Andrew Geissler | 5082cc7 | 2023-09-11 08:41:39 -0400 | [diff] [blame] | 69 | - Debian GNU/Linux 11 (Bullseye) |
| 70 | |
| 71 | - Debian GNU/Linux 12 (Bookworm) |
| 72 | |
| 73 | - OpenSUSE Leap 15.4 |
| 74 | |
Patrick Williams | 705982a | 2024-01-12 09:51:57 -0600 | [diff] [blame] | 75 | - AlmaLinux 8 |
Andrew Geissler | 5082cc7 | 2023-09-11 08:41:39 -0400 | [diff] [blame] | 76 | |
Patrick Williams | 705982a | 2024-01-12 09:51:57 -0600 | [diff] [blame] | 77 | - AlmaLinux 9 |
Andrew Geissler | 5082cc7 | 2023-09-11 08:41:39 -0400 | [diff] [blame] | 78 | |
Patrick Williams | 705982a | 2024-01-12 09:51:57 -0600 | [diff] [blame] | 79 | - Rocky 9 |
| 80 | |
| 81 | The following distribution versions are still tested, even though the |
| 82 | organizations publishing them no longer make updates publicly available: |
Andrew Geissler | 5082cc7 | 2023-09-11 08:41:39 -0400 | [diff] [blame] | 83 | |
| 84 | - Ubuntu 18.04 (LTS) |
| 85 | |
Patrick Williams | 705982a | 2024-01-12 09:51:57 -0600 | [diff] [blame] | 86 | - Ubuntu 23.04 |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 87 | |
Andrew Geissler | 5082cc7 | 2023-09-11 08:41:39 -0400 | [diff] [blame] | 88 | Note that the Yocto Project doesn't have access to private updates |
| 89 | that some of these versions may have. Therefore, our testing has |
| 90 | limited value if you have access to such updates. |
| 91 | |
| 92 | Finally, here are the distribution versions which were previously |
| 93 | tested on former revisions of "&DISTRO_NAME;", but no longer are: |
| 94 | |
| 95 | *This list is currently empty* |
Andrew Geissler | 6aa7eec | 2023-03-03 12:41:14 -0600 | [diff] [blame] | 96 | |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 97 | .. note:: |
| 98 | |
| 99 | - While the Yocto Project Team attempts to ensure all Yocto Project |
| 100 | releases are one hundred percent compatible with each officially |
William A. Kennington III | ac69b48 | 2021-06-02 12:28:27 -0700 | [diff] [blame] | 101 | supported Linux distribution, you may still encounter problems |
| 102 | that happen only with a specific distribution. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 103 | |
| 104 | - Yocto Project releases are tested against the stable Linux |
| 105 | distributions in the above list. The Yocto Project should work |
| 106 | on other distributions but validation is not performed against |
| 107 | them. |
| 108 | |
| 109 | - In particular, the Yocto Project does not support and currently |
| 110 | has no plans to support rolling-releases or development |
| 111 | distributions due to their constantly changing nature. We welcome |
| 112 | patches and bug reports, but keep in mind that our priority is on |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 113 | the supported platforms listed above. |
| 114 | |
| 115 | - If your Linux distribution is not in the above list, we recommend to |
| 116 | get the :term:`buildtools` or :term:`buildtools-extended` tarballs |
| 117 | containing the host tools required by your Yocto Project release, |
| 118 | typically by running ``scripts/install-buildtools`` as explained in |
| 119 | the ":ref:`system-requirements-buildtools`" section. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 120 | |
| 121 | - You may use Windows Subsystem For Linux v2 to set up a build host |
Patrick Williams | 2390b1b | 2022-11-03 13:47:49 -0500 | [diff] [blame] | 122 | using Windows 10 or later, or Windows Server 2019 or later, but validation |
| 123 | is not performed against build hosts using WSL 2. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 124 | |
Patrick Williams | 2390b1b | 2022-11-03 13:47:49 -0500 | [diff] [blame] | 125 | See the |
| 126 | :ref:`dev-manual/start:setting up to use windows subsystem for linux (wsl 2)` |
| 127 | section in the Yocto Project Development Tasks Manual for more information. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 128 | |
Andrew Geissler | 4c19ea1 | 2020-10-27 13:52:24 -0500 | [diff] [blame] | 129 | - If you encounter problems, please go to :yocto_bugs:`Yocto Project |
| 130 | Bugzilla <>` and submit a bug. We are |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 131 | interested in hearing about your experience. For information on |
| 132 | how to submit a bug, see the Yocto Project |
Andrew Geissler | 09209ee | 2020-12-13 08:44:15 -0600 | [diff] [blame] | 133 | :yocto_wiki:`Bugzilla wiki page </Bugzilla_Configuration_and_Bug_Tracking>` |
Andrew Geissler | 5082cc7 | 2023-09-11 08:41:39 -0400 | [diff] [blame] | 134 | and the ":doc:`../contributor-guide/report-defect`" |
| 135 | section in the Yocto Project and OpenEmbedded Contributor Guide. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 136 | |
| 137 | Required Packages for the Build Host |
| 138 | ==================================== |
| 139 | |
| 140 | The list of packages you need on the host development system can be |
| 141 | large when covering all build scenarios using the Yocto Project. This |
| 142 | section describes required packages according to Linux distribution and |
| 143 | function. |
| 144 | |
| 145 | .. _ubuntu-packages: |
| 146 | |
| 147 | Ubuntu and Debian |
| 148 | ----------------- |
| 149 | |
Andrew Geissler | fc113ea | 2023-03-31 09:59:46 -0500 | [diff] [blame] | 150 | Here are the packages needed to build an image on a headless system |
| 151 | with a supported Ubuntu or Debian Linux distribution:: |
| 152 | |
| 153 | $ sudo apt install &UBUNTU_HOST_PACKAGES_ESSENTIAL; |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 154 | |
| 155 | .. note:: |
| 156 | |
| 157 | - If your build system has the ``oss4-dev`` package installed, you |
| 158 | might experience QEMU build failures due to the package installing |
| 159 | its own custom ``/usr/include/linux/soundcard.h`` on the Debian |
William A. Kennington III | ac69b48 | 2021-06-02 12:28:27 -0700 | [diff] [blame] | 160 | system. If you run into this situation, try either of these solutions:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 161 | |
Andrew Geissler | eff2747 | 2021-10-29 15:35:00 -0500 | [diff] [blame] | 162 | $ sudo apt build-dep qemu |
| 163 | $ sudo apt remove oss4-dev |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 164 | |
Andrew Geissler | fc113ea | 2023-03-31 09:59:46 -0500 | [diff] [blame] | 165 | Here are the packages needed to build Project documentation manuals:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 166 | |
Patrick Williams | 3965356 | 2024-03-01 08:54:02 -0600 | [diff] [blame] | 167 | $ sudo apt install git make inkscape texlive-latex-extra |
| 168 | $ sudo apt install sphinx python3-saneyaml python3-sphinx-rtd-theme |
Andrew Geissler | 4c19ea1 | 2020-10-27 13:52:24 -0500 | [diff] [blame] | 169 | |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 170 | Fedora Packages |
| 171 | --------------- |
| 172 | |
Andrew Geissler | fc113ea | 2023-03-31 09:59:46 -0500 | [diff] [blame] | 173 | Here are the packages needed to build an image on a headless system |
| 174 | with a supported Fedora Linux distribution:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 175 | |
Andrew Geissler | fc113ea | 2023-03-31 09:59:46 -0500 | [diff] [blame] | 176 | $ sudo dnf install &FEDORA_HOST_PACKAGES_ESSENTIAL; |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 177 | |
Andrew Geissler | fc113ea | 2023-03-31 09:59:46 -0500 | [diff] [blame] | 178 | Here are the packages needed to build Project documentation manuals:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 179 | |
Patrick Williams | 3965356 | 2024-03-01 08:54:02 -0600 | [diff] [blame] | 180 | $ sudo dnf install git make python3-pip which inkscape texlive-fncychap |
Andrew Geissler | fc113ea | 2023-03-31 09:59:46 -0500 | [diff] [blame] | 181 | &PIP3_HOST_PACKAGES_DOC; |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 182 | |
| 183 | openSUSE Packages |
| 184 | ----------------- |
| 185 | |
Andrew Geissler | fc113ea | 2023-03-31 09:59:46 -0500 | [diff] [blame] | 186 | Here are the packages needed to build an image on a headless system |
| 187 | with a supported openSUSE distribution:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 188 | |
Andrew Geissler | fc113ea | 2023-03-31 09:59:46 -0500 | [diff] [blame] | 189 | $ sudo zypper install &OPENSUSE_HOST_PACKAGES_ESSENTIAL; |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 190 | |
Andrew Geissler | fc113ea | 2023-03-31 09:59:46 -0500 | [diff] [blame] | 191 | Here are the packages needed to build Project documentation manuals:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 192 | |
Patrick Williams | 3965356 | 2024-03-01 08:54:02 -0600 | [diff] [blame] | 193 | $ sudo zypper install git make python3-pip which inkscape texlive-fncychap |
Andrew Geissler | fc113ea | 2023-03-31 09:59:46 -0500 | [diff] [blame] | 194 | &PIP3_HOST_PACKAGES_DOC; |
Andrew Geissler | 4c19ea1 | 2020-10-27 13:52:24 -0500 | [diff] [blame] | 195 | |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 196 | |
Andrew Geissler | fc113ea | 2023-03-31 09:59:46 -0500 | [diff] [blame] | 197 | AlmaLinux Packages |
| 198 | ------------------ |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 199 | |
Andrew Geissler | fc113ea | 2023-03-31 09:59:46 -0500 | [diff] [blame] | 200 | Here are the packages needed to build an image on a headless system |
| 201 | with a supported AlmaLinux distribution:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 202 | |
Andrew Geissler | 028142b | 2023-05-05 11:29:21 -0500 | [diff] [blame] | 203 | $ sudo dnf install &ALMALINUX_HOST_PACKAGES_ESSENTIAL; |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 204 | |
Andrew Geissler | fc113ea | 2023-03-31 09:59:46 -0500 | [diff] [blame] | 205 | .. note:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 206 | |
Andrew Geissler | fc113ea | 2023-03-31 09:59:46 -0500 | [diff] [blame] | 207 | - Extra Packages for Enterprise Linux (i.e. ``epel-release``) is |
| 208 | a collection of packages from Fedora built on RHEL/CentOS for |
| 209 | easy installation of packages not included in enterprise Linux |
| 210 | by default. You need to install these packages separately. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 211 | |
Andrew Geissler | fc113ea | 2023-03-31 09:59:46 -0500 | [diff] [blame] | 212 | - The ``PowerTools/CRB`` repo provides additional packages such as |
| 213 | ``rpcgen`` and ``texinfo``. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 214 | |
Andrew Geissler | fc113ea | 2023-03-31 09:59:46 -0500 | [diff] [blame] | 215 | - The ``makecache`` command consumes additional Metadata from |
| 216 | ``epel-release``. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 217 | |
Andrew Geissler | fc113ea | 2023-03-31 09:59:46 -0500 | [diff] [blame] | 218 | Here are the packages needed to build Project documentation manuals:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 219 | |
Patrick Williams | 3965356 | 2024-03-01 08:54:02 -0600 | [diff] [blame] | 220 | $ sudo dnf install git make python3-pip which inkscape texlive-fncychap |
Andrew Geissler | fc113ea | 2023-03-31 09:59:46 -0500 | [diff] [blame] | 221 | &PIP3_HOST_PACKAGES_DOC; |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 222 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 223 | .. _system-requirements-buildtools: |
| 224 | |
Andrew Geissler | 615f2f1 | 2022-07-15 14:00:58 -0500 | [diff] [blame] | 225 | Required Git, tar, Python, make and gcc Versions |
| 226 | ================================================ |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 227 | |
| 228 | In order to use the build system, your host development system must meet |
| 229 | the following version requirements for Git, tar, and Python: |
| 230 | |
Andrew Geissler | 3b8a17c | 2021-04-15 15:55:55 -0500 | [diff] [blame] | 231 | - Git &MIN_GIT_VERSION; or greater |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 232 | |
Andrew Geissler | 3b8a17c | 2021-04-15 15:55:55 -0500 | [diff] [blame] | 233 | - tar &MIN_TAR_VERSION; or greater |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 234 | |
Andrew Geissler | 3b8a17c | 2021-04-15 15:55:55 -0500 | [diff] [blame] | 235 | - Python &MIN_PYTHON_VERSION; or greater |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 236 | |
Andrew Geissler | 615f2f1 | 2022-07-15 14:00:58 -0500 | [diff] [blame] | 237 | - GNU make &MIN_MAKE_VERSION; or greater |
| 238 | |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 239 | If your host development system does not meet all these requirements, |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 240 | you can resolve this by installing a :term:`buildtools` tarball that |
| 241 | contains these tools. You can either download a pre-built tarball or |
| 242 | use BitBake to build one. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 243 | |
| 244 | In addition, your host development system must meet the following |
| 245 | version requirement for gcc: |
| 246 | |
Andrew Geissler | 3b8a17c | 2021-04-15 15:55:55 -0500 | [diff] [blame] | 247 | - gcc &MIN_GCC_VERSION; or greater |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 248 | |
| 249 | If your host development system does not meet this requirement, you can |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 250 | resolve this by installing a :term:`buildtools-extended` tarball that |
Andrew Geissler | 3b8a17c | 2021-04-15 15:55:55 -0500 | [diff] [blame] | 251 | contains additional tools, the equivalent of the Debian/Ubuntu ``build-essential`` |
| 252 | package. |
| 253 | |
Patrick Williams | 2390b1b | 2022-11-03 13:47:49 -0500 | [diff] [blame] | 254 | For systems with a broken make version (e.g. make 4.2.1 without patches) but |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 255 | where the rest of the host tools are usable, you can use the :term:`buildtools-make` |
Patrick Williams | 2390b1b | 2022-11-03 13:47:49 -0500 | [diff] [blame] | 256 | tarball instead. |
| 257 | |
Andrew Geissler | 3b8a17c | 2021-04-15 15:55:55 -0500 | [diff] [blame] | 258 | In the sections that follow, three different methods will be described for |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 259 | installing the :term:`buildtools`, :term:`buildtools-extended` or :term:`buildtools-make` |
Patrick Williams | 2390b1b | 2022-11-03 13:47:49 -0500 | [diff] [blame] | 260 | toolset. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 261 | |
| 262 | Installing a Pre-Built ``buildtools`` Tarball with ``install-buildtools`` script |
| 263 | -------------------------------------------------------------------------------- |
| 264 | |
| 265 | The ``install-buildtools`` script is the easiest of the three methods by |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 266 | which you can get these tools. It downloads a pre-built :term:`buildtools` |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 267 | installer and automatically installs the tools for you: |
| 268 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 269 | #. Execute the ``install-buildtools`` script. Here is an example:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 270 | |
| 271 | $ cd poky |
Andrew Geissler | 5199d83 | 2021-09-24 16:47:35 -0500 | [diff] [blame] | 272 | $ scripts/install-buildtools \ |
| 273 | --without-extended-buildtools \ |
Andrew Geissler | 4c19ea1 | 2020-10-27 13:52:24 -0500 | [diff] [blame] | 274 | --base-url &YOCTO_DL_URL;/releases/yocto \ |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 275 | --release yocto-&DISTRO; \ |
| 276 | --installer-version &DISTRO; |
| 277 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 278 | During execution, the :term:`buildtools` tarball will be downloaded, the |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 279 | checksum of the download will be verified, the installer will be run |
Andrew Geissler | 3b8a17c | 2021-04-15 15:55:55 -0500 | [diff] [blame] | 280 | for you, and some basic checks will be run to make sure the |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 281 | installation is functional. |
| 282 | |
| 283 | To avoid the need of ``sudo`` privileges, the ``install-buildtools`` |
Andrew Geissler | c926e17 | 2021-05-07 16:11:35 -0500 | [diff] [blame] | 284 | script will by default tell the installer to install in:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 285 | |
| 286 | /path/to/poky/buildtools |
| 287 | |
| 288 | If your host development system needs the additional tools provided |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 289 | in the :term:`buildtools-extended` tarball, you can instead execute the |
Andrew Geissler | c926e17 | 2021-05-07 16:11:35 -0500 | [diff] [blame] | 290 | ``install-buildtools`` script with the default parameters:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 291 | |
| 292 | $ cd poky |
| 293 | $ scripts/install-buildtools |
| 294 | |
Patrick Williams | 2390b1b | 2022-11-03 13:47:49 -0500 | [diff] [blame] | 295 | Alternatively if your host development system has a broken ``make`` |
| 296 | version such that you only need a known good version of ``make``, |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 297 | you can use the ``--make-only`` option:: |
Patrick Williams | 2390b1b | 2022-11-03 13:47:49 -0500 | [diff] [blame] | 298 | |
| 299 | $ cd poky |
| 300 | $ scripts/install-buildtools --make-only |
| 301 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 302 | #. Source the tools environment setup script by using a command like the |
Andrew Geissler | c926e17 | 2021-05-07 16:11:35 -0500 | [diff] [blame] | 303 | following:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 304 | |
| 305 | $ source /path/to/poky/buildtools/environment-setup-x86_64-pokysdk-linux |
| 306 | |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 307 | After you have sourced the setup script, the tools are added to |
| 308 | ``PATH`` and any other environment variables required to run the |
| 309 | tools are initialized. The results are working versions versions of |
| 310 | Git, tar, Python and ``chrpath``. And in the case of the |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 311 | :term:`buildtools-extended` tarball, additional working versions of tools |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 312 | including ``gcc``, ``make`` and the other tools included in |
| 313 | ``packagegroup-core-buildessential``. |
| 314 | |
| 315 | Downloading a Pre-Built ``buildtools`` Tarball |
| 316 | ---------------------------------------------- |
| 317 | |
Andrew Geissler | 3b8a17c | 2021-04-15 15:55:55 -0500 | [diff] [blame] | 318 | If you would prefer not to use the ``install-buildtools`` script, you can instead |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 319 | download and run a pre-built :term:`buildtools` installer yourself with the following |
Andrew Geissler | 3b8a17c | 2021-04-15 15:55:55 -0500 | [diff] [blame] | 320 | steps: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 321 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 322 | #. Go to :yocto_dl:`/releases/yocto/yocto-&DISTRO;/buildtools/`, locate and |
| 323 | download the ``.sh`` file corresponding to your host architecture |
| 324 | and to :term:`buildtools`, :term:`buildtools-extended` or :term:`buildtools-make`. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 325 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 326 | #. Execute the installation script. Here is an example for the |
Andrew Geissler | c926e17 | 2021-05-07 16:11:35 -0500 | [diff] [blame] | 327 | traditional installer:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 328 | |
Andrew Geissler | d1e8949 | 2021-02-12 15:35:20 -0600 | [diff] [blame] | 329 | $ sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 330 | |
Andrew Geissler | c926e17 | 2021-05-07 16:11:35 -0500 | [diff] [blame] | 331 | Here is an example for the extended installer:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 332 | |
Andrew Geissler | d1e8949 | 2021-02-12 15:35:20 -0600 | [diff] [blame] | 333 | $ sh ~/Downloads/x86_64-buildtools-extended-nativesdk-standalone-&DISTRO;.sh |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 334 | |
Patrick Williams | 2390b1b | 2022-11-03 13:47:49 -0500 | [diff] [blame] | 335 | An example for the make-only installer:: |
| 336 | |
| 337 | $ sh ~/Downloads/x86_64-buildtools-make-nativesdk-standalone-&DISTRO;.sh |
| 338 | |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 339 | During execution, a prompt appears that allows you to choose the |
| 340 | installation directory. For example, you could choose the following: |
Andrew Geissler | 4c19ea1 | 2020-10-27 13:52:24 -0500 | [diff] [blame] | 341 | ``/home/your-username/buildtools`` |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 342 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 343 | #. As instructed by the installer script, you will have to source the tools |
| 344 | environment setup script:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 345 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 346 | $ source /home/your_username/buildtools/environment-setup-x86_64-pokysdk-linux |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 347 | |
| 348 | After you have sourced the setup script, the tools are added to |
| 349 | ``PATH`` and any other environment variables required to run the |
| 350 | tools are initialized. The results are working versions versions of |
| 351 | Git, tar, Python and ``chrpath``. And in the case of the |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 352 | :term:`buildtools-extended` tarball, additional working versions of tools |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 353 | including ``gcc``, ``make`` and the other tools included in |
| 354 | ``packagegroup-core-buildessential``. |
| 355 | |
| 356 | Building Your Own ``buildtools`` Tarball |
| 357 | ---------------------------------------- |
| 358 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 359 | Building and running your own :term:`buildtools` installer applies only when you |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 360 | have a build host that can already run BitBake. In this case, you use |
| 361 | that machine to build the ``.sh`` file and then take steps to transfer |
| 362 | and run it on a machine that does not meet the minimal Git, tar, and |
| 363 | Python (or gcc) requirements. |
| 364 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 365 | Here are the steps to take to build and run your own :term:`buildtools` |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 366 | installer: |
| 367 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 368 | #. On the machine that is able to run BitBake, be sure you have set up |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 369 | your build environment with the setup script |
| 370 | (:ref:`structure-core-script`). |
| 371 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 372 | #. Run the BitBake command to build the tarball:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 373 | |
| 374 | $ bitbake buildtools-tarball |
| 375 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 376 | or to build the extended tarball:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 377 | |
| 378 | $ bitbake buildtools-extended-tarball |
| 379 | |
Patrick Williams | 2390b1b | 2022-11-03 13:47:49 -0500 | [diff] [blame] | 380 | or to build the make-only tarball:: |
| 381 | |
| 382 | $ bitbake buildtools-make-tarball |
| 383 | |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 384 | .. note:: |
| 385 | |
Andrew Geissler | 4c19ea1 | 2020-10-27 13:52:24 -0500 | [diff] [blame] | 386 | The :term:`SDKMACHINE` variable in your ``local.conf`` file determines |
| 387 | whether you build tools for a 32-bit or 64-bit system. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 388 | |
| 389 | Once the build completes, you can find the ``.sh`` file that installs |
| 390 | the tools in the ``tmp/deploy/sdk`` subdirectory of the |
| 391 | :term:`Build Directory`. The installer file has the string |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 392 | "buildtools" or "buildtools-extended" in the name. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 393 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 394 | #. Transfer the ``.sh`` file from the build host to the machine that |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 395 | does not meet the Git, tar, or Python (or gcc) requirements. |
| 396 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 397 | #. On this machine, run the ``.sh`` file to install the tools. Here is an |
| 398 | example for the traditional installer:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 399 | |
| 400 | $ sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh |
| 401 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 402 | For the extended installer:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 403 | |
| 404 | $ sh ~/Downloads/x86_64-buildtools-extended-nativesdk-standalone-&DISTRO;.sh |
| 405 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 406 | And for the make-only installer:: |
Patrick Williams | 2390b1b | 2022-11-03 13:47:49 -0500 | [diff] [blame] | 407 | |
| 408 | $ sh ~/Downloads/x86_64-buildtools-make-nativesdk-standalone-&DISTRO;.sh |
| 409 | |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 410 | During execution, a prompt appears that allows you to choose the |
| 411 | installation directory. For example, you could choose the following: |
Andrew Geissler | 4c19ea1 | 2020-10-27 13:52:24 -0500 | [diff] [blame] | 412 | ``/home/your_username/buildtools`` |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 413 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 414 | #. Source the tools environment setup script by using a command like the |
Andrew Geissler | c926e17 | 2021-05-07 16:11:35 -0500 | [diff] [blame] | 415 | following:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 416 | |
| 417 | $ source /home/your_username/buildtools/environment-setup-x86_64-poky-linux |
| 418 | |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 419 | After you have sourced the setup script, the tools are added to |
| 420 | ``PATH`` and any other environment variables required to run the |
| 421 | tools are initialized. The results are working versions versions of |
| 422 | Git, tar, Python and ``chrpath``. And in the case of the |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 423 | :term:`buildtools-extended` tarball, additional working versions of tools |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 424 | including ``gcc``, ``make`` and the other tools included in |
| 425 | ``packagegroup-core-buildessential``. |