109209eecSAndrew Geissler.. SPDX-License-Identifier: CC-BY-SA-2.0-UK 209209eecSAndrew Geissler 309209eecSAndrew Geissler******************* 409209eecSAndrew GeisslerSystem Requirements 509209eecSAndrew Geissler******************* 609209eecSAndrew Geissler 75199d831SAndrew GeisslerWelcome to the Yocto Project Reference Manual. This manual provides 809209eecSAndrew Geisslerreference information for the current release of the Yocto Project, and 909209eecSAndrew Geissleris most effectively used after you have an understanding of the basics 1009209eecSAndrew Geisslerof the Yocto Project. The manual is neither meant to be read as a 1109209eecSAndrew Geisslerstarting point to the Yocto Project, nor read from start to finish. 1209209eecSAndrew GeisslerRather, use this manual to find variable definitions, class 1309209eecSAndrew Geisslerdescriptions, and so forth as needed during the course of using the 1409209eecSAndrew GeisslerYocto Project. 1509209eecSAndrew Geissler 1609209eecSAndrew GeisslerFor introductory information on the Yocto Project, see the 1709209eecSAndrew Geissler:yocto_home:`Yocto Project Website <>` and the 1809209eecSAndrew Geissler":ref:`overview-manual/development-environment:the yocto project development environment`" 1909209eecSAndrew Geisslerchapter in the Yocto Project Overview and Concepts Manual. 2009209eecSAndrew Geissler 2109209eecSAndrew GeisslerIf you want to use the Yocto Project to quickly build an image without 2209209eecSAndrew Geisslerhaving to understand concepts, work through the 2309209eecSAndrew Geissler:doc:`/brief-yoctoprojectqs/index` document. You can find "how-to" 2409209eecSAndrew Geisslerinformation in the :doc:`/dev-manual/index`. You can find Yocto Project overview 2509209eecSAndrew Geisslerand conceptual information in the :doc:`/overview-manual/index`. 2609209eecSAndrew Geissler 2709209eecSAndrew Geissler.. note:: 2809209eecSAndrew Geissler 2909209eecSAndrew Geissler For more information about the Yocto Project Documentation set, see 3009209eecSAndrew Geissler the :ref:`ref-manual/resources:links and related documentation` section. 3109209eecSAndrew Geissler 328e7b46e2SPatrick WilliamsMinimum Free Disk Space 338e7b46e2SPatrick Williams======================= 348e7b46e2SPatrick Williams 358e7b46e2SPatrick WilliamsTo build an image such as ``core-image-sato`` for the ``qemux86-64`` machine, 368e7b46e2SPatrick Williamsyou need a system with at least &MIN_DISK_SPACE; Gbytes of free disk space. 378e7b46e2SPatrick WilliamsHowever, much more disk space will be necessary to build more complex images, 388e7b46e2SPatrick Williamsto run multiple builds and to cache build artifacts, improving build efficiency. 398e7b46e2SPatrick Williams 408e7b46e2SPatrick WilliamsIf you have a shortage of disk space, see the ":doc:`/dev-manual/disk-space`" 418e7b46e2SPatrick Williamssection of the Development Tasks Manual. 428e7b46e2SPatrick Williams 43b542dec1SPatrick Williams.. _system-requirements-minimum-ram: 44b542dec1SPatrick Williams 458e7b46e2SPatrick WilliamsMinimum System RAM 468e7b46e2SPatrick Williams================== 478e7b46e2SPatrick Williams 488e7b46e2SPatrick WilliamsYou will manage to build an image such as ``core-image-sato`` for the 498e7b46e2SPatrick Williams``qemux86-64`` machine with as little as &MIN_RAM; Gbytes of RAM on an old 508e7b46e2SPatrick Williamssystem with 4 CPU cores, but your builds will be much faster on a system with 518e7b46e2SPatrick Williamsas much RAM and as many CPU cores as possible. 528e7b46e2SPatrick Williams 538e7b46e2SPatrick Williams.. _system-requirements-supported-distros: 5409209eecSAndrew Geissler 5509209eecSAndrew GeisslerSupported Linux Distributions 5609209eecSAndrew Geissler============================= 5709209eecSAndrew Geissler 585082cc7fSAndrew GeisslerCurrently, the &DISTRO; release ("&DISTRO_NAME;") of the Yocto Project is 595082cc7fSAndrew Geisslersupported on the following distributions: 6009209eecSAndrew Geissler 61ac69b488SWilliam A. Kennington III- Ubuntu 20.04 (LTS) 6209209eecSAndrew Geissler 632194f503SPatrick Williams- Ubuntu 22.04 (LTS) 642194f503SPatrick Williams 655082cc7fSAndrew Geissler- Fedora 38 6609209eecSAndrew Geissler 675082cc7fSAndrew Geissler- CentOS Stream 8 6809209eecSAndrew Geissler 695082cc7fSAndrew Geissler- Debian GNU/Linux 11 (Bullseye) 705082cc7fSAndrew Geissler 715082cc7fSAndrew Geissler- Debian GNU/Linux 12 (Bookworm) 725082cc7fSAndrew Geissler 735082cc7fSAndrew Geissler- OpenSUSE Leap 15.4 745082cc7fSAndrew Geissler 75705982a5SPatrick Williams- AlmaLinux 8 765082cc7fSAndrew Geissler 77705982a5SPatrick Williams- AlmaLinux 9 785082cc7fSAndrew Geissler 79705982a5SPatrick Williams- Rocky 9 80705982a5SPatrick Williams 81705982a5SPatrick WilliamsThe following distribution versions are still tested, even though the 82705982a5SPatrick Williamsorganizations publishing them no longer make updates publicly available: 835082cc7fSAndrew Geissler 845082cc7fSAndrew Geissler- Ubuntu 18.04 (LTS) 855082cc7fSAndrew Geissler 86705982a5SPatrick Williams- Ubuntu 23.04 8709209eecSAndrew Geissler 885082cc7fSAndrew GeisslerNote that the Yocto Project doesn't have access to private updates 895082cc7fSAndrew Geisslerthat some of these versions may have. Therefore, our testing has 905082cc7fSAndrew Geisslerlimited value if you have access to such updates. 915082cc7fSAndrew Geissler 925082cc7fSAndrew GeisslerFinally, here are the distribution versions which were previously 935082cc7fSAndrew Geisslertested on former revisions of "&DISTRO_NAME;", but no longer are: 945082cc7fSAndrew Geissler 955082cc7fSAndrew Geissler*This list is currently empty* 966aa7eec5SAndrew Geissler 9709209eecSAndrew Geissler.. note:: 9809209eecSAndrew Geissler 9909209eecSAndrew Geissler - While the Yocto Project Team attempts to ensure all Yocto Project 10009209eecSAndrew Geissler releases are one hundred percent compatible with each officially 101ac69b488SWilliam A. Kennington III supported Linux distribution, you may still encounter problems 102ac69b488SWilliam A. Kennington III that happen only with a specific distribution. 10309209eecSAndrew Geissler 10409209eecSAndrew Geissler - Yocto Project releases are tested against the stable Linux 10509209eecSAndrew Geissler distributions in the above list. The Yocto Project should work 10609209eecSAndrew Geissler on other distributions but validation is not performed against 10709209eecSAndrew Geissler them. 10809209eecSAndrew Geissler 10909209eecSAndrew Geissler - In particular, the Yocto Project does not support and currently 11009209eecSAndrew Geissler has no plans to support rolling-releases or development 11109209eecSAndrew Geissler distributions due to their constantly changing nature. We welcome 11209209eecSAndrew Geissler patches and bug reports, but keep in mind that our priority is on 113517393d9SAndrew Geissler the supported platforms listed above. 114517393d9SAndrew Geissler 115517393d9SAndrew Geissler - If your Linux distribution is not in the above list, we recommend to 116517393d9SAndrew Geissler get the :term:`buildtools` or :term:`buildtools-extended` tarballs 117517393d9SAndrew Geissler containing the host tools required by your Yocto Project release, 118517393d9SAndrew Geissler typically by running ``scripts/install-buildtools`` as explained in 119517393d9SAndrew Geissler the ":ref:`system-requirements-buildtools`" section. 12009209eecSAndrew Geissler 12109209eecSAndrew Geissler - You may use Windows Subsystem For Linux v2 to set up a build host 1222390b1b6SPatrick Williams using Windows 10 or later, or Windows Server 2019 or later, but validation 1232390b1b6SPatrick Williams is not performed against build hosts using WSL 2. 12409209eecSAndrew Geissler 1252390b1b6SPatrick Williams See the 1262390b1b6SPatrick Williams :ref:`dev-manual/start:setting up to use windows subsystem for linux (wsl 2)` 1272390b1b6SPatrick Williams section in the Yocto Project Development Tasks Manual for more information. 12809209eecSAndrew Geissler 12909209eecSAndrew Geissler - If you encounter problems, please go to :yocto_bugs:`Yocto Project 13009209eecSAndrew Geissler Bugzilla <>` and submit a bug. We are 13109209eecSAndrew Geissler interested in hearing about your experience. For information on 13209209eecSAndrew Geissler how to submit a bug, see the Yocto Project 13309209eecSAndrew Geissler :yocto_wiki:`Bugzilla wiki page </Bugzilla_Configuration_and_Bug_Tracking>` 1345082cc7fSAndrew Geissler and the ":doc:`../contributor-guide/report-defect`" 1355082cc7fSAndrew Geissler section in the Yocto Project and OpenEmbedded Contributor Guide. 13609209eecSAndrew Geissler 13709209eecSAndrew GeisslerRequired Packages for the Build Host 13809209eecSAndrew Geissler==================================== 13909209eecSAndrew Geissler 14009209eecSAndrew GeisslerThe list of packages you need on the host development system can be 14109209eecSAndrew Geisslerlarge when covering all build scenarios using the Yocto Project. This 14209209eecSAndrew Geisslersection describes required packages according to Linux distribution and 14309209eecSAndrew Geisslerfunction. 14409209eecSAndrew Geissler 14509209eecSAndrew Geissler.. _ubuntu-packages: 14609209eecSAndrew Geissler 14709209eecSAndrew GeisslerUbuntu and Debian 14809209eecSAndrew Geissler----------------- 14909209eecSAndrew Geissler 150fc113eadSAndrew GeisslerHere are the packages needed to build an image on a headless system 151fc113eadSAndrew Geisslerwith a supported Ubuntu or Debian Linux distribution:: 152fc113eadSAndrew Geissler 153fc113eadSAndrew Geissler $ sudo apt install &UBUNTU_HOST_PACKAGES_ESSENTIAL; 15409209eecSAndrew Geissler 15509209eecSAndrew Geissler.. note:: 15609209eecSAndrew Geissler 15709209eecSAndrew Geissler - If your build system has the ``oss4-dev`` package installed, you 15809209eecSAndrew Geissler might experience QEMU build failures due to the package installing 15909209eecSAndrew Geissler its own custom ``/usr/include/linux/soundcard.h`` on the Debian 160ac69b488SWilliam A. Kennington III system. If you run into this situation, try either of these solutions:: 16109209eecSAndrew Geissler 162eff27476SAndrew Geissler $ sudo apt build-dep qemu 163eff27476SAndrew Geissler $ sudo apt remove oss4-dev 16409209eecSAndrew Geissler 165fc113eadSAndrew GeisslerHere are the packages needed to build Project documentation manuals:: 16609209eecSAndrew Geissler 167*39653566SPatrick Williams $ sudo apt install git make inkscape texlive-latex-extra 168*39653566SPatrick Williams $ sudo apt install sphinx python3-saneyaml python3-sphinx-rtd-theme 16909209eecSAndrew Geissler 17009209eecSAndrew GeisslerFedora Packages 17109209eecSAndrew Geissler--------------- 17209209eecSAndrew Geissler 173fc113eadSAndrew GeisslerHere are the packages needed to build an image on a headless system 174fc113eadSAndrew Geisslerwith a supported Fedora Linux distribution:: 17509209eecSAndrew Geissler 17609209eecSAndrew Geissler $ sudo dnf install &FEDORA_HOST_PACKAGES_ESSENTIAL; 17709209eecSAndrew Geissler 178fc113eadSAndrew GeisslerHere are the packages needed to build Project documentation manuals:: 17909209eecSAndrew Geissler 180*39653566SPatrick Williams $ sudo dnf install git make python3-pip which inkscape texlive-fncychap 18109209eecSAndrew Geissler &PIP3_HOST_PACKAGES_DOC; 18209209eecSAndrew Geissler 18309209eecSAndrew GeissleropenSUSE Packages 18409209eecSAndrew Geissler----------------- 18509209eecSAndrew Geissler 186fc113eadSAndrew GeisslerHere are the packages needed to build an image on a headless system 187fc113eadSAndrew Geisslerwith a supported openSUSE distribution:: 18809209eecSAndrew Geissler 18909209eecSAndrew Geissler $ sudo zypper install &OPENSUSE_HOST_PACKAGES_ESSENTIAL; 19009209eecSAndrew Geissler 191fc113eadSAndrew GeisslerHere are the packages needed to build Project documentation manuals:: 19209209eecSAndrew Geissler 193*39653566SPatrick Williams $ sudo zypper install git make python3-pip which inkscape texlive-fncychap 19409209eecSAndrew Geissler &PIP3_HOST_PACKAGES_DOC; 19509209eecSAndrew Geissler 19609209eecSAndrew Geissler 197fc113eadSAndrew GeisslerAlmaLinux Packages 198fc113eadSAndrew Geissler------------------ 19909209eecSAndrew Geissler 200fc113eadSAndrew GeisslerHere are the packages needed to build an image on a headless system 201fc113eadSAndrew Geisslerwith a supported AlmaLinux distribution:: 20209209eecSAndrew Geissler 203028142bdSAndrew Geissler $ sudo dnf install &ALMALINUX_HOST_PACKAGES_ESSENTIAL; 20409209eecSAndrew Geissler 20509209eecSAndrew Geissler.. note:: 20609209eecSAndrew Geissler 20709209eecSAndrew Geissler - Extra Packages for Enterprise Linux (i.e. ``epel-release``) is 20809209eecSAndrew Geissler a collection of packages from Fedora built on RHEL/CentOS for 20909209eecSAndrew Geissler easy installation of packages not included in enterprise Linux 21009209eecSAndrew Geissler by default. You need to install these packages separately. 21109209eecSAndrew Geissler 212fc113eadSAndrew Geissler - The ``PowerTools/CRB`` repo provides additional packages such as 21309209eecSAndrew Geissler ``rpcgen`` and ``texinfo``. 21409209eecSAndrew Geissler 21509209eecSAndrew Geissler - The ``makecache`` command consumes additional Metadata from 21609209eecSAndrew Geissler ``epel-release``. 21709209eecSAndrew Geissler 218fc113eadSAndrew GeisslerHere are the packages needed to build Project documentation manuals:: 21909209eecSAndrew Geissler 220*39653566SPatrick Williams $ sudo dnf install git make python3-pip which inkscape texlive-fncychap 22109209eecSAndrew Geissler &PIP3_HOST_PACKAGES_DOC; 22209209eecSAndrew Geissler 223517393d9SAndrew Geissler.. _system-requirements-buildtools: 224517393d9SAndrew Geissler 225615f2f11SAndrew GeisslerRequired Git, tar, Python, make and gcc Versions 226615f2f11SAndrew Geissler================================================ 22709209eecSAndrew Geissler 22809209eecSAndrew GeisslerIn order to use the build system, your host development system must meet 22909209eecSAndrew Geisslerthe following version requirements for Git, tar, and Python: 23009209eecSAndrew Geissler 2313b8a17c1SAndrew Geissler- Git &MIN_GIT_VERSION; or greater 23209209eecSAndrew Geissler 2333b8a17c1SAndrew Geissler- tar &MIN_TAR_VERSION; or greater 23409209eecSAndrew Geissler 2353b8a17c1SAndrew Geissler- Python &MIN_PYTHON_VERSION; or greater 23609209eecSAndrew Geissler 237615f2f11SAndrew Geissler- GNU make &MIN_MAKE_VERSION; or greater 238615f2f11SAndrew Geissler 23909209eecSAndrew GeisslerIf your host development system does not meet all these requirements, 240517393d9SAndrew Geissleryou can resolve this by installing a :term:`buildtools` tarball that 241517393d9SAndrew Geisslercontains these tools. You can either download a pre-built tarball or 242517393d9SAndrew Geissleruse BitBake to build one. 24309209eecSAndrew Geissler 24409209eecSAndrew GeisslerIn addition, your host development system must meet the following 24509209eecSAndrew Geisslerversion requirement for gcc: 24609209eecSAndrew Geissler 2473b8a17c1SAndrew Geissler- gcc &MIN_GCC_VERSION; or greater 24809209eecSAndrew Geissler 24909209eecSAndrew GeisslerIf your host development system does not meet this requirement, you can 250517393d9SAndrew Geisslerresolve this by installing a :term:`buildtools-extended` tarball that 2513b8a17c1SAndrew Geisslercontains additional tools, the equivalent of the Debian/Ubuntu ``build-essential`` 2523b8a17c1SAndrew Geisslerpackage. 2533b8a17c1SAndrew Geissler 2542390b1b6SPatrick WilliamsFor systems with a broken make version (e.g. make 4.2.1 without patches) but 255517393d9SAndrew Geisslerwhere the rest of the host tools are usable, you can use the :term:`buildtools-make` 2562390b1b6SPatrick Williamstarball instead. 2572390b1b6SPatrick Williams 2583b8a17c1SAndrew GeisslerIn the sections that follow, three different methods will be described for 259517393d9SAndrew Geisslerinstalling the :term:`buildtools`, :term:`buildtools-extended` or :term:`buildtools-make` 2602390b1b6SPatrick Williamstoolset. 26109209eecSAndrew Geissler 26209209eecSAndrew GeisslerInstalling a Pre-Built ``buildtools`` Tarball with ``install-buildtools`` script 26309209eecSAndrew Geissler-------------------------------------------------------------------------------- 26409209eecSAndrew Geissler 26509209eecSAndrew GeisslerThe ``install-buildtools`` script is the easiest of the three methods by 266517393d9SAndrew Geisslerwhich you can get these tools. It downloads a pre-built :term:`buildtools` 26709209eecSAndrew Geisslerinstaller and automatically installs the tools for you: 26809209eecSAndrew Geissler 269517393d9SAndrew Geissler#. Execute the ``install-buildtools`` script. Here is an example:: 27009209eecSAndrew Geissler 27109209eecSAndrew Geissler $ cd poky 2725199d831SAndrew Geissler $ scripts/install-buildtools \ 2735199d831SAndrew Geissler --without-extended-buildtools \ 27409209eecSAndrew Geissler --base-url &YOCTO_DL_URL;/releases/yocto \ 27509209eecSAndrew Geissler --release yocto-&DISTRO; \ 27609209eecSAndrew Geissler --installer-version &DISTRO; 27709209eecSAndrew Geissler 278517393d9SAndrew Geissler During execution, the :term:`buildtools` tarball will be downloaded, the 27909209eecSAndrew Geissler checksum of the download will be verified, the installer will be run 2803b8a17c1SAndrew Geissler for you, and some basic checks will be run to make sure the 28109209eecSAndrew Geissler installation is functional. 28209209eecSAndrew Geissler 28309209eecSAndrew Geissler To avoid the need of ``sudo`` privileges, the ``install-buildtools`` 284c926e17cSAndrew Geissler script will by default tell the installer to install in:: 28509209eecSAndrew Geissler 28609209eecSAndrew Geissler /path/to/poky/buildtools 28709209eecSAndrew Geissler 28809209eecSAndrew Geissler If your host development system needs the additional tools provided 289517393d9SAndrew Geissler in the :term:`buildtools-extended` tarball, you can instead execute the 290c926e17cSAndrew Geissler ``install-buildtools`` script with the default parameters:: 29109209eecSAndrew Geissler 29209209eecSAndrew Geissler $ cd poky 29309209eecSAndrew Geissler $ scripts/install-buildtools 29409209eecSAndrew Geissler 2952390b1b6SPatrick Williams Alternatively if your host development system has a broken ``make`` 2962390b1b6SPatrick Williams version such that you only need a known good version of ``make``, 297517393d9SAndrew Geissler you can use the ``--make-only`` option:: 2982390b1b6SPatrick Williams 2992390b1b6SPatrick Williams $ cd poky 3002390b1b6SPatrick Williams $ scripts/install-buildtools --make-only 3012390b1b6SPatrick Williams 302517393d9SAndrew Geissler#. Source the tools environment setup script by using a command like the 303c926e17cSAndrew Geissler following:: 30409209eecSAndrew Geissler 30509209eecSAndrew Geissler $ source /path/to/poky/buildtools/environment-setup-x86_64-pokysdk-linux 30609209eecSAndrew Geissler 30709209eecSAndrew Geissler After you have sourced the setup script, the tools are added to 30809209eecSAndrew Geissler ``PATH`` and any other environment variables required to run the 30909209eecSAndrew Geissler tools are initialized. The results are working versions versions of 31009209eecSAndrew Geissler Git, tar, Python and ``chrpath``. And in the case of the 311517393d9SAndrew Geissler :term:`buildtools-extended` tarball, additional working versions of tools 31209209eecSAndrew Geissler including ``gcc``, ``make`` and the other tools included in 31309209eecSAndrew Geissler ``packagegroup-core-buildessential``. 31409209eecSAndrew Geissler 31509209eecSAndrew GeisslerDownloading a Pre-Built ``buildtools`` Tarball 31609209eecSAndrew Geissler---------------------------------------------- 31709209eecSAndrew Geissler 3183b8a17c1SAndrew GeisslerIf you would prefer not to use the ``install-buildtools`` script, you can instead 319517393d9SAndrew Geisslerdownload and run a pre-built :term:`buildtools` installer yourself with the following 3203b8a17c1SAndrew Geisslersteps: 32109209eecSAndrew Geissler 322517393d9SAndrew Geissler#. Go to :yocto_dl:`/releases/yocto/yocto-&DISTRO;/buildtools/`, locate and 323517393d9SAndrew Geissler download the ``.sh`` file corresponding to your host architecture 324517393d9SAndrew Geissler and to :term:`buildtools`, :term:`buildtools-extended` or :term:`buildtools-make`. 32509209eecSAndrew Geissler 326517393d9SAndrew Geissler#. Execute the installation script. Here is an example for the 327c926e17cSAndrew Geissler traditional installer:: 32809209eecSAndrew Geissler 329d1e89497SAndrew Geissler $ sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh 33009209eecSAndrew Geissler 331c926e17cSAndrew Geissler Here is an example for the extended installer:: 33209209eecSAndrew Geissler 333d1e89497SAndrew Geissler $ sh ~/Downloads/x86_64-buildtools-extended-nativesdk-standalone-&DISTRO;.sh 33409209eecSAndrew Geissler 3352390b1b6SPatrick Williams An example for the make-only installer:: 3362390b1b6SPatrick Williams 3372390b1b6SPatrick Williams $ sh ~/Downloads/x86_64-buildtools-make-nativesdk-standalone-&DISTRO;.sh 3382390b1b6SPatrick Williams 33909209eecSAndrew Geissler During execution, a prompt appears that allows you to choose the 34009209eecSAndrew Geissler installation directory. For example, you could choose the following: 34109209eecSAndrew Geissler ``/home/your-username/buildtools`` 34209209eecSAndrew Geissler 343517393d9SAndrew Geissler#. As instructed by the installer script, you will have to source the tools 344517393d9SAndrew Geissler environment setup script:: 34509209eecSAndrew Geissler 346517393d9SAndrew Geissler $ source /home/your_username/buildtools/environment-setup-x86_64-pokysdk-linux 34709209eecSAndrew Geissler 34809209eecSAndrew Geissler After you have sourced the setup script, the tools are added to 34909209eecSAndrew Geissler ``PATH`` and any other environment variables required to run the 35009209eecSAndrew Geissler tools are initialized. The results are working versions versions of 35109209eecSAndrew Geissler Git, tar, Python and ``chrpath``. And in the case of the 352517393d9SAndrew Geissler :term:`buildtools-extended` tarball, additional working versions of tools 35309209eecSAndrew Geissler including ``gcc``, ``make`` and the other tools included in 35409209eecSAndrew Geissler ``packagegroup-core-buildessential``. 35509209eecSAndrew Geissler 35609209eecSAndrew GeisslerBuilding Your Own ``buildtools`` Tarball 35709209eecSAndrew Geissler---------------------------------------- 35809209eecSAndrew Geissler 359517393d9SAndrew GeisslerBuilding and running your own :term:`buildtools` installer applies only when you 36009209eecSAndrew Geisslerhave a build host that can already run BitBake. In this case, you use 36109209eecSAndrew Geisslerthat machine to build the ``.sh`` file and then take steps to transfer 36209209eecSAndrew Geisslerand run it on a machine that does not meet the minimal Git, tar, and 36309209eecSAndrew GeisslerPython (or gcc) requirements. 36409209eecSAndrew Geissler 365517393d9SAndrew GeisslerHere are the steps to take to build and run your own :term:`buildtools` 36609209eecSAndrew Geisslerinstaller: 36709209eecSAndrew Geissler 368517393d9SAndrew Geissler#. On the machine that is able to run BitBake, be sure you have set up 36909209eecSAndrew Geissler your build environment with the setup script 37009209eecSAndrew Geissler (:ref:`structure-core-script`). 37109209eecSAndrew Geissler 372517393d9SAndrew Geissler#. Run the BitBake command to build the tarball:: 37309209eecSAndrew Geissler 37409209eecSAndrew Geissler $ bitbake buildtools-tarball 37509209eecSAndrew Geissler 376517393d9SAndrew Geissler or to build the extended tarball:: 37709209eecSAndrew Geissler 37809209eecSAndrew Geissler $ bitbake buildtools-extended-tarball 37909209eecSAndrew Geissler 3802390b1b6SPatrick Williams or to build the make-only tarball:: 3812390b1b6SPatrick Williams 3822390b1b6SPatrick Williams $ bitbake buildtools-make-tarball 3832390b1b6SPatrick Williams 38409209eecSAndrew Geissler .. note:: 38509209eecSAndrew Geissler 38609209eecSAndrew Geissler The :term:`SDKMACHINE` variable in your ``local.conf`` file determines 38709209eecSAndrew Geissler whether you build tools for a 32-bit or 64-bit system. 38809209eecSAndrew Geissler 38909209eecSAndrew Geissler Once the build completes, you can find the ``.sh`` file that installs 39009209eecSAndrew Geissler the tools in the ``tmp/deploy/sdk`` subdirectory of the 39109209eecSAndrew Geissler :term:`Build Directory`. The installer file has the string 392517393d9SAndrew Geissler "buildtools" or "buildtools-extended" in the name. 39309209eecSAndrew Geissler 394517393d9SAndrew Geissler#. Transfer the ``.sh`` file from the build host to the machine that 39509209eecSAndrew Geissler does not meet the Git, tar, or Python (or gcc) requirements. 39609209eecSAndrew Geissler 397517393d9SAndrew Geissler#. On this machine, run the ``.sh`` file to install the tools. Here is an 398517393d9SAndrew Geissler example for the traditional installer:: 39909209eecSAndrew Geissler 40009209eecSAndrew Geissler $ sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh 40109209eecSAndrew Geissler 402517393d9SAndrew Geissler For the extended installer:: 40309209eecSAndrew Geissler 40409209eecSAndrew Geissler $ sh ~/Downloads/x86_64-buildtools-extended-nativesdk-standalone-&DISTRO;.sh 40509209eecSAndrew Geissler 406517393d9SAndrew Geissler And for the make-only installer:: 4072390b1b6SPatrick Williams 4082390b1b6SPatrick Williams $ sh ~/Downloads/x86_64-buildtools-make-nativesdk-standalone-&DISTRO;.sh 4092390b1b6SPatrick Williams 41009209eecSAndrew Geissler During execution, a prompt appears that allows you to choose the 41109209eecSAndrew Geissler installation directory. For example, you could choose the following: 41209209eecSAndrew Geissler ``/home/your_username/buildtools`` 41309209eecSAndrew Geissler 414517393d9SAndrew Geissler#. Source the tools environment setup script by using a command like the 415c926e17cSAndrew Geissler following:: 41609209eecSAndrew Geissler 41709209eecSAndrew Geissler $ source /home/your_username/buildtools/environment-setup-x86_64-poky-linux 41809209eecSAndrew Geissler 41909209eecSAndrew Geissler After you have sourced the setup script, the tools are added to 42009209eecSAndrew Geissler ``PATH`` and any other environment variables required to run the 42109209eecSAndrew Geissler tools are initialized. The results are working versions versions of 42209209eecSAndrew Geissler Git, tar, Python and ``chrpath``. And in the case of the 423517393d9SAndrew Geissler :term:`buildtools-extended` tarball, additional working versions of tools 42409209eecSAndrew Geissler including ``gcc``, ``make`` and the other tools included in 42509209eecSAndrew Geissler ``packagegroup-core-buildessential``. 426