109209eecSAndrew Geissler.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
209209eecSAndrew Geissler
309209eecSAndrew Geissler*******************
409209eecSAndrew GeisslerSystem Requirements
509209eecSAndrew Geissler*******************
609209eecSAndrew Geissler
709209eecSAndrew 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
3209209eecSAndrew Geissler.. _detailed-supported-distros:
3309209eecSAndrew Geissler
3409209eecSAndrew GeisslerSupported Linux Distributions
3509209eecSAndrew Geissler=============================
3609209eecSAndrew Geissler
3709209eecSAndrew GeisslerCurrently, the Yocto Project is supported on the following
3809209eecSAndrew Geisslerdistributions:
3909209eecSAndrew Geissler
4009209eecSAndrew Geissler-  Ubuntu 16.04 (LTS)
4109209eecSAndrew Geissler
4209209eecSAndrew Geissler-  Ubuntu 18.04 (LTS)
4309209eecSAndrew Geissler
4409209eecSAndrew Geissler-  Ubuntu 20.04
4509209eecSAndrew Geissler
4609209eecSAndrew Geissler-  Fedora 30
4709209eecSAndrew Geissler
4809209eecSAndrew Geissler-  Fedora 31
4909209eecSAndrew Geissler
5009209eecSAndrew Geissler-  Fedora 32
5109209eecSAndrew Geissler
5209209eecSAndrew Geissler-  CentOS 7.x
5309209eecSAndrew Geissler
5409209eecSAndrew Geissler-  CentOS 8.x
5509209eecSAndrew Geissler
5609209eecSAndrew Geissler-  Debian GNU/Linux 8.x (Jessie)
5709209eecSAndrew Geissler
5809209eecSAndrew Geissler-  Debian GNU/Linux 9.x (Stretch)
5909209eecSAndrew Geissler
6009209eecSAndrew Geissler-  Debian GNU/Linux 10.x (Buster)
6109209eecSAndrew Geissler
6209209eecSAndrew Geissler-  OpenSUSE Leap 15.1
6309209eecSAndrew Geissler
6409209eecSAndrew Geissler
6509209eecSAndrew Geissler.. note::
6609209eecSAndrew Geissler
6709209eecSAndrew Geissler   -  While the Yocto Project Team attempts to ensure all Yocto Project
6809209eecSAndrew Geissler      releases are one hundred percent compatible with each officially
6909209eecSAndrew Geissler      supported Linux distribution, instances might exist where you
7009209eecSAndrew Geissler      encounter a problem while using the Yocto Project on a specific
7109209eecSAndrew Geissler      distribution.
7209209eecSAndrew Geissler
7309209eecSAndrew Geissler   -  Yocto Project releases are tested against the stable Linux
7409209eecSAndrew Geissler      distributions in the above list. The Yocto Project should work
7509209eecSAndrew Geissler      on other distributions but validation is not performed against
7609209eecSAndrew Geissler      them.
7709209eecSAndrew Geissler
7809209eecSAndrew Geissler   -  In particular, the Yocto Project does not support and currently
7909209eecSAndrew Geissler      has no plans to support rolling-releases or development
8009209eecSAndrew Geissler      distributions due to their constantly changing nature. We welcome
8109209eecSAndrew Geissler      patches and bug reports, but keep in mind that our priority is on
8209209eecSAndrew Geissler      the supported platforms listed below.
8309209eecSAndrew Geissler
8409209eecSAndrew Geissler   -  You may use Windows Subsystem For Linux v2 to set up a build host
8509209eecSAndrew Geissler      using Windows 10, but validation is not performed against build
8609209eecSAndrew Geissler      hosts using WSLv2.
8709209eecSAndrew Geissler
8809209eecSAndrew Geissler   -  The Yocto Project is not compatible with WSLv1, it is
8909209eecSAndrew Geissler      compatible but not officially supported nor validated with
9009209eecSAndrew Geissler      WSLv2, if you still decide to use WSL please upgrade to WSLv2.
9109209eecSAndrew Geissler
9209209eecSAndrew Geissler   -  If you encounter problems, please go to :yocto_bugs:`Yocto Project
9309209eecSAndrew Geissler      Bugzilla <>` and submit a bug. We are
9409209eecSAndrew Geissler      interested in hearing about your experience. For information on
9509209eecSAndrew Geissler      how to submit a bug, see the Yocto Project
9609209eecSAndrew Geissler      :yocto_wiki:`Bugzilla wiki page </Bugzilla_Configuration_and_Bug_Tracking>`
9709209eecSAndrew Geissler      and the ":ref:`dev-manual/common-tasks:submitting a defect against the yocto project`"
9809209eecSAndrew Geissler      section in the Yocto Project Development Tasks Manual.
9909209eecSAndrew Geissler
10009209eecSAndrew Geissler
10109209eecSAndrew GeisslerRequired Packages for the Build Host
10209209eecSAndrew Geissler====================================
10309209eecSAndrew Geissler
10409209eecSAndrew GeisslerThe list of packages you need on the host development system can be
10509209eecSAndrew Geisslerlarge when covering all build scenarios using the Yocto Project. This
10609209eecSAndrew Geisslersection describes required packages according to Linux distribution and
10709209eecSAndrew Geisslerfunction.
10809209eecSAndrew Geissler
10909209eecSAndrew Geissler.. _ubuntu-packages:
11009209eecSAndrew Geissler
11109209eecSAndrew GeisslerUbuntu and Debian
11209209eecSAndrew Geissler-----------------
11309209eecSAndrew Geissler
11409209eecSAndrew GeisslerThe following list shows the required packages by function given a
11509209eecSAndrew Geisslersupported Ubuntu or Debian Linux distribution:
11609209eecSAndrew Geissler
11709209eecSAndrew Geissler.. note::
11809209eecSAndrew Geissler
11909209eecSAndrew Geissler   -  If your build system has the ``oss4-dev`` package installed, you
12009209eecSAndrew Geissler      might experience QEMU build failures due to the package installing
12109209eecSAndrew Geissler      its own custom ``/usr/include/linux/soundcard.h`` on the Debian
12209209eecSAndrew Geissler      system. If you run into this situation, either of the following
12309209eecSAndrew Geissler      solutions exist:
12409209eecSAndrew Geissler      ::
12509209eecSAndrew Geissler
12609209eecSAndrew Geissler         $ sudo apt-get build-dep qemu
12709209eecSAndrew Geissler         $ sudo apt-get remove oss4-dev
12809209eecSAndrew Geissler
12909209eecSAndrew Geissler   -  For Debian-8, ``python3-git`` and ``pylint3`` are no longer
13009209eecSAndrew Geissler      available via ``apt-get``.
13109209eecSAndrew Geissler      ::
13209209eecSAndrew Geissler
13309209eecSAndrew Geissler         $ sudo pip3 install GitPython pylint==1.9.5
13409209eecSAndrew Geissler
13509209eecSAndrew Geissler-  *Essentials:* Packages needed to build an image on a headless system:
13609209eecSAndrew Geissler   ::
13709209eecSAndrew Geissler
13809209eecSAndrew Geissler      $ sudo apt-get install &UBUNTU_HOST_PACKAGES_ESSENTIAL;
13909209eecSAndrew Geissler
14009209eecSAndrew Geissler-  *Documentation:* Packages needed if you are going to build out the
14109209eecSAndrew Geissler   Yocto Project documentation manuals:
14209209eecSAndrew Geissler   ::
14309209eecSAndrew Geissler
14409209eecSAndrew Geissler      $ sudo apt-get install make python3-pip
14509209eecSAndrew Geissler      &PIP3_HOST_PACKAGES_DOC;
14609209eecSAndrew Geissler
14709209eecSAndrew Geissler   .. note::
14809209eecSAndrew Geissler
14909209eecSAndrew Geissler      It is currently not possible to build out documentation from Debian 8
15009209eecSAndrew Geissler      (Jessie) because of outdated ``pip3`` and ``python3``. ``python3-sphinx``
15109209eecSAndrew Geissler      is too outdated.
15209209eecSAndrew Geissler
15309209eecSAndrew GeisslerFedora Packages
15409209eecSAndrew Geissler---------------
15509209eecSAndrew Geissler
15609209eecSAndrew GeisslerThe following list shows the required packages by function given a
15709209eecSAndrew Geisslersupported Fedora Linux distribution:
15809209eecSAndrew Geissler
15909209eecSAndrew Geissler-  *Essentials:* Packages needed to build an image for a headless
16009209eecSAndrew Geissler   system:
16109209eecSAndrew Geissler   ::
16209209eecSAndrew Geissler
16309209eecSAndrew Geissler      $ sudo dnf install &FEDORA_HOST_PACKAGES_ESSENTIAL;
16409209eecSAndrew Geissler
16509209eecSAndrew Geissler-  *Documentation:* Packages needed if you are going to build out the
16609209eecSAndrew Geissler   Yocto Project documentation manuals:
16709209eecSAndrew Geissler   ::
16809209eecSAndrew Geissler
16909209eecSAndrew Geissler      $ sudo dnf install make python3-pip which
17009209eecSAndrew Geissler      &PIP3_HOST_PACKAGES_DOC;
17109209eecSAndrew Geissler
17209209eecSAndrew GeissleropenSUSE Packages
17309209eecSAndrew Geissler-----------------
17409209eecSAndrew Geissler
17509209eecSAndrew GeisslerThe following list shows the required packages by function given a
17609209eecSAndrew Geisslersupported openSUSE Linux distribution:
17709209eecSAndrew Geissler
17809209eecSAndrew Geissler-  *Essentials:* Packages needed to build an image for a headless
17909209eecSAndrew Geissler   system:
18009209eecSAndrew Geissler   ::
18109209eecSAndrew Geissler
18209209eecSAndrew Geissler      $ sudo zypper install &OPENSUSE_HOST_PACKAGES_ESSENTIAL;
18309209eecSAndrew Geissler
18409209eecSAndrew Geissler-  *Documentation:* Packages needed if you are going to build out the
18509209eecSAndrew Geissler   Yocto Project documentation manuals:
18609209eecSAndrew Geissler   ::
18709209eecSAndrew Geissler
18809209eecSAndrew Geissler      $ sudo zypper install make python3-pip which
18909209eecSAndrew Geissler      &PIP3_HOST_PACKAGES_DOC;
19009209eecSAndrew Geissler
19109209eecSAndrew Geissler
19209209eecSAndrew GeisslerCentOS-7 Packages
19309209eecSAndrew Geissler-----------------
19409209eecSAndrew Geissler
19509209eecSAndrew GeisslerThe following list shows the required packages by function given a
19609209eecSAndrew Geisslersupported CentOS-7 Linux distribution:
19709209eecSAndrew Geissler
19809209eecSAndrew Geissler-  *Essentials:* Packages needed to build an image for a headless
19909209eecSAndrew Geissler   system:
20009209eecSAndrew Geissler   ::
20109209eecSAndrew Geissler
20209209eecSAndrew Geissler      $ sudo yum install &CENTOS7_HOST_PACKAGES_ESSENTIAL;
20309209eecSAndrew Geissler
20409209eecSAndrew Geissler   .. note::
20509209eecSAndrew Geissler
20609209eecSAndrew Geissler      -  Extra Packages for Enterprise Linux (i.e. ``epel-release``) is
20709209eecSAndrew Geissler         a collection of packages from Fedora built on RHEL/CentOS for
20809209eecSAndrew Geissler         easy installation of packages not included in enterprise Linux
20909209eecSAndrew Geissler         by default. You need to install these packages separately.
21009209eecSAndrew Geissler
21109209eecSAndrew Geissler      -  The ``makecache`` command consumes additional Metadata from
21209209eecSAndrew Geissler         ``epel-release``.
21309209eecSAndrew Geissler
21409209eecSAndrew Geissler-  *Documentation:* Packages needed if you are going to build out the
21509209eecSAndrew Geissler   Yocto Project documentation manuals:
21609209eecSAndrew Geissler   ::
21709209eecSAndrew Geissler
21809209eecSAndrew Geissler      $ sudo yum install make python3-pip which
21909209eecSAndrew Geissler      &PIP3_HOST_PACKAGES_DOC;
22009209eecSAndrew Geissler
22109209eecSAndrew GeisslerCentOS-8 Packages
22209209eecSAndrew Geissler-----------------
22309209eecSAndrew Geissler
22409209eecSAndrew GeisslerThe following list shows the required packages by function given a
22509209eecSAndrew Geisslersupported CentOS-8 Linux distribution:
22609209eecSAndrew Geissler
22709209eecSAndrew Geissler-  *Essentials:* Packages needed to build an image for a headless
22809209eecSAndrew Geissler   system:
22909209eecSAndrew Geissler   ::
23009209eecSAndrew Geissler
23109209eecSAndrew Geissler      $ sudo dnf install &CENTOS8_HOST_PACKAGES_ESSENTIAL;
23209209eecSAndrew Geissler
23309209eecSAndrew Geissler   .. note::
23409209eecSAndrew Geissler
23509209eecSAndrew Geissler      -  Extra Packages for Enterprise Linux (i.e. ``epel-release``) is
23609209eecSAndrew Geissler         a collection of packages from Fedora built on RHEL/CentOS for
23709209eecSAndrew Geissler         easy installation of packages not included in enterprise Linux
23809209eecSAndrew Geissler         by default. You need to install these packages separately.
23909209eecSAndrew Geissler
24009209eecSAndrew Geissler      -  The ``PowerTools`` repo provides additional packages such as
24109209eecSAndrew Geissler         ``rpcgen`` and ``texinfo``.
24209209eecSAndrew Geissler
24309209eecSAndrew Geissler      -  The ``makecache`` command consumes additional Metadata from
24409209eecSAndrew Geissler         ``epel-release``.
24509209eecSAndrew Geissler
24609209eecSAndrew Geissler-  *Documentation:* Packages needed if you are going to build out the
24709209eecSAndrew Geissler   Yocto Project documentation manuals:
24809209eecSAndrew Geissler   ::
24909209eecSAndrew Geissler
25009209eecSAndrew Geissler      $ sudo dnf install make python3-pip which
25109209eecSAndrew Geissler      &PIP3_HOST_PACKAGES_DOC;
25209209eecSAndrew Geissler
25309209eecSAndrew GeisslerRequired Git, tar, Python and gcc Versions
25409209eecSAndrew Geissler==========================================
25509209eecSAndrew Geissler
25609209eecSAndrew GeisslerIn order to use the build system, your host development system must meet
25709209eecSAndrew Geisslerthe following version requirements for Git, tar, and Python:
25809209eecSAndrew Geissler
25909209eecSAndrew Geissler-  Git 1.8.3.1 or greater
26009209eecSAndrew Geissler
26109209eecSAndrew Geissler-  tar 1.28 or greater
26209209eecSAndrew Geissler
26309209eecSAndrew Geissler-  Python 3.5.0 or greater
26409209eecSAndrew Geissler
26509209eecSAndrew GeisslerIf your host development system does not meet all these requirements,
26609209eecSAndrew Geissleryou can resolve this by installing a ``buildtools`` tarball that
26709209eecSAndrew Geisslercontains these tools. You can get the tarball one of two ways: download
26809209eecSAndrew Geisslera pre-built tarball or use BitBake to build the tarball.
26909209eecSAndrew Geissler
27009209eecSAndrew GeisslerIn addition, your host development system must meet the following
27109209eecSAndrew Geisslerversion requirement for gcc:
27209209eecSAndrew Geissler
27309209eecSAndrew Geissler-  gcc 5.0 or greater
27409209eecSAndrew Geissler
27509209eecSAndrew GeisslerIf your host development system does not meet this requirement, you can
27609209eecSAndrew Geisslerresolve this by installing a ``buildtools-extended`` tarball that
27709209eecSAndrew Geisslercontains additional tools, the equivalent of ``buildtools-essential``.
27809209eecSAndrew Geissler
27909209eecSAndrew GeisslerInstalling a Pre-Built ``buildtools`` Tarball with ``install-buildtools`` script
28009209eecSAndrew Geissler--------------------------------------------------------------------------------
28109209eecSAndrew Geissler
28209209eecSAndrew GeisslerThe ``install-buildtools`` script is the easiest of the three methods by
28309209eecSAndrew Geisslerwhich you can get these tools. It downloads a pre-built buildtools
28409209eecSAndrew Geisslerinstaller and automatically installs the tools for you:
28509209eecSAndrew Geissler
28609209eecSAndrew Geissler1. Execute the ``install-buildtools`` script. Here is an example:
28709209eecSAndrew Geissler   ::
28809209eecSAndrew Geissler
28909209eecSAndrew Geissler      $ cd poky
29009209eecSAndrew Geissler      $ scripts/install-buildtools --without-extended-buildtools \
29109209eecSAndrew Geissler        --base-url &YOCTO_DL_URL;/releases/yocto \
29209209eecSAndrew Geissler        --release yocto-&DISTRO; \
29309209eecSAndrew Geissler        --installer-version &DISTRO;
29409209eecSAndrew Geissler
29509209eecSAndrew Geissler   During execution, the buildtools tarball will be downloaded, the
29609209eecSAndrew Geissler   checksum of the download will be verified, the installer will be run
29709209eecSAndrew Geissler   for you, and some basic checks will be run to to make sure the
29809209eecSAndrew Geissler   installation is functional.
29909209eecSAndrew Geissler
30009209eecSAndrew Geissler   To avoid the need of ``sudo`` privileges, the ``install-buildtools``
30109209eecSAndrew Geissler   script will by default tell the installer to install in:
30209209eecSAndrew Geissler   ::
30309209eecSAndrew Geissler
30409209eecSAndrew Geissler      /path/to/poky/buildtools
30509209eecSAndrew Geissler
30609209eecSAndrew Geissler   If your host development system needs the additional tools provided
30709209eecSAndrew Geissler   in the ``buildtools-extended`` tarball, you can instead execute the
30809209eecSAndrew Geissler   ``install-buildtools`` script with the default parameters:
30909209eecSAndrew Geissler   ::
31009209eecSAndrew Geissler
31109209eecSAndrew Geissler      $ cd poky
31209209eecSAndrew Geissler      $ scripts/install-buildtools
31309209eecSAndrew Geissler
31409209eecSAndrew Geissler2. Source the tools environment setup script by using a command like the
31509209eecSAndrew Geissler   following:
31609209eecSAndrew Geissler   ::
31709209eecSAndrew Geissler
31809209eecSAndrew Geissler      $ source /path/to/poky/buildtools/environment-setup-x86_64-pokysdk-linux
31909209eecSAndrew Geissler
32009209eecSAndrew Geissler   Of course, you need to supply your installation directory and be sure to
32109209eecSAndrew Geissler   use the right file (i.e. i586 or x86_64).
32209209eecSAndrew Geissler
32309209eecSAndrew Geissler   After you have sourced the setup script, the tools are added to
32409209eecSAndrew Geissler   ``PATH`` and any other environment variables required to run the
32509209eecSAndrew Geissler   tools are initialized. The results are working versions versions of
32609209eecSAndrew Geissler   Git, tar, Python and ``chrpath``. And in the case of the
32709209eecSAndrew Geissler   ``buildtools-extended`` tarball, additional working versions of tools
32809209eecSAndrew Geissler   including ``gcc``, ``make`` and the other tools included in
32909209eecSAndrew Geissler   ``packagegroup-core-buildessential``.
33009209eecSAndrew Geissler
33109209eecSAndrew GeisslerDownloading a Pre-Built ``buildtools`` Tarball
33209209eecSAndrew Geissler----------------------------------------------
33309209eecSAndrew Geissler
33409209eecSAndrew GeisslerDownloading and running a pre-built buildtools installer is the easiest
33509209eecSAndrew Geisslerof the two methods by which you can get these tools:
33609209eecSAndrew Geissler
33709209eecSAndrew Geissler1. Locate and download the ``*.sh`` at &YOCTO_RELEASE_DL_URL;/buildtools/
33809209eecSAndrew Geissler
33909209eecSAndrew Geissler2. Execute the installation script. Here is an example for the
34009209eecSAndrew Geissler   traditional installer:
34109209eecSAndrew Geissler   ::
34209209eecSAndrew Geissler
343*d1e89497SAndrew Geissler      $ sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh
34409209eecSAndrew Geissler
34509209eecSAndrew Geissler   Here is an example for the extended installer:
34609209eecSAndrew Geissler   ::
34709209eecSAndrew Geissler
348*d1e89497SAndrew Geissler      $ sh ~/Downloads/x86_64-buildtools-extended-nativesdk-standalone-&DISTRO;.sh
34909209eecSAndrew Geissler
35009209eecSAndrew Geissler   During execution, a prompt appears that allows you to choose the
35109209eecSAndrew Geissler   installation directory. For example, you could choose the following:
35209209eecSAndrew Geissler   ``/home/your-username/buildtools``
35309209eecSAndrew Geissler
35409209eecSAndrew Geissler3. Source the tools environment setup script by using a command like the
35509209eecSAndrew Geissler   following:
35609209eecSAndrew Geissler   ::
35709209eecSAndrew Geissler
35809209eecSAndrew Geissler      $ source /home/your_username/buildtools/environment-setup-i586-poky-linux
35909209eecSAndrew Geissler
36009209eecSAndrew Geissler   Of
36109209eecSAndrew Geissler   course, you need to supply your installation directory and be sure to
36209209eecSAndrew Geissler   use the right file (i.e. i585 or x86-64).
36309209eecSAndrew Geissler
36409209eecSAndrew Geissler   After you have sourced the setup script, the tools are added to
36509209eecSAndrew Geissler   ``PATH`` and any other environment variables required to run the
36609209eecSAndrew Geissler   tools are initialized. The results are working versions versions of
36709209eecSAndrew Geissler   Git, tar, Python and ``chrpath``. And in the case of the
36809209eecSAndrew Geissler   ``buildtools-extended`` tarball, additional working versions of tools
36909209eecSAndrew Geissler   including ``gcc``, ``make`` and the other tools included in
37009209eecSAndrew Geissler   ``packagegroup-core-buildessential``.
37109209eecSAndrew Geissler
37209209eecSAndrew GeisslerBuilding Your Own ``buildtools`` Tarball
37309209eecSAndrew Geissler----------------------------------------
37409209eecSAndrew Geissler
37509209eecSAndrew GeisslerBuilding and running your own buildtools installer applies only when you
37609209eecSAndrew Geisslerhave a build host that can already run BitBake. In this case, you use
37709209eecSAndrew Geisslerthat machine to build the ``.sh`` file and then take steps to transfer
37809209eecSAndrew Geisslerand run it on a machine that does not meet the minimal Git, tar, and
37909209eecSAndrew GeisslerPython (or gcc) requirements.
38009209eecSAndrew Geissler
38109209eecSAndrew GeisslerHere are the steps to take to build and run your own buildtools
38209209eecSAndrew Geisslerinstaller:
38309209eecSAndrew Geissler
38409209eecSAndrew Geissler1. On the machine that is able to run BitBake, be sure you have set up
38509209eecSAndrew Geissler   your build environment with the setup script
38609209eecSAndrew Geissler   (:ref:`structure-core-script`).
38709209eecSAndrew Geissler
38809209eecSAndrew Geissler2. Run the BitBake command to build the tarball:
38909209eecSAndrew Geissler   ::
39009209eecSAndrew Geissler
39109209eecSAndrew Geissler      $ bitbake buildtools-tarball
39209209eecSAndrew Geissler
39309209eecSAndrew Geissler   or run the BitBake command to build the extended tarball:
39409209eecSAndrew Geissler   ::
39509209eecSAndrew Geissler
39609209eecSAndrew Geissler      $ bitbake buildtools-extended-tarball
39709209eecSAndrew Geissler
39809209eecSAndrew Geissler   .. note::
39909209eecSAndrew Geissler
40009209eecSAndrew Geissler      The :term:`SDKMACHINE` variable in your ``local.conf`` file determines
40109209eecSAndrew Geissler      whether you build tools for a 32-bit or 64-bit system.
40209209eecSAndrew Geissler
40309209eecSAndrew Geissler   Once the build completes, you can find the ``.sh`` file that installs
40409209eecSAndrew Geissler   the tools in the ``tmp/deploy/sdk`` subdirectory of the
40509209eecSAndrew Geissler   :term:`Build Directory`. The installer file has the string
40609209eecSAndrew Geissler   "buildtools" (or "buildtools-extended") in the name.
40709209eecSAndrew Geissler
40809209eecSAndrew Geissler3. Transfer the ``.sh`` file from the build host to the machine that
40909209eecSAndrew Geissler   does not meet the Git, tar, or Python (or gcc) requirements.
41009209eecSAndrew Geissler
41109209eecSAndrew Geissler4. On the machine that does not meet the requirements, run the ``.sh``
41209209eecSAndrew Geissler   file to install the tools. Here is an example for the traditional
41309209eecSAndrew Geissler   installer:
41409209eecSAndrew Geissler   ::
41509209eecSAndrew Geissler
41609209eecSAndrew Geissler      $ sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh
41709209eecSAndrew Geissler
41809209eecSAndrew Geissler   Here is an example for the extended installer:
41909209eecSAndrew Geissler   ::
42009209eecSAndrew Geissler
42109209eecSAndrew Geissler      $ sh ~/Downloads/x86_64-buildtools-extended-nativesdk-standalone-&DISTRO;.sh
42209209eecSAndrew Geissler
42309209eecSAndrew Geissler   During execution, a prompt appears that allows you to choose the
42409209eecSAndrew Geissler   installation directory. For example, you could choose the following:
42509209eecSAndrew Geissler   ``/home/your_username/buildtools``
42609209eecSAndrew Geissler
42709209eecSAndrew Geissler5. Source the tools environment setup script by using a command like the
42809209eecSAndrew Geissler   following:
42909209eecSAndrew Geissler   ::
43009209eecSAndrew Geissler
43109209eecSAndrew Geissler      $ source /home/your_username/buildtools/environment-setup-x86_64-poky-linux
43209209eecSAndrew Geissler
43309209eecSAndrew Geissler   Of course, you need to supply your installation directory and be sure to
43409209eecSAndrew Geissler   use the right file (i.e. i586 or x86_64).
43509209eecSAndrew Geissler
43609209eecSAndrew Geissler   After you have sourced the setup script, the tools are added to
43709209eecSAndrew Geissler   ``PATH`` and any other environment variables required to run the
43809209eecSAndrew Geissler   tools are initialized. The results are working versions versions of
43909209eecSAndrew Geissler   Git, tar, Python and ``chrpath``. And in the case of the
44009209eecSAndrew Geissler   ``buildtools-extended`` tarball, additional working versions of tools
44109209eecSAndrew Geissler   including ``gcc``, ``make`` and the other tools included in
44209209eecSAndrew Geissler   ``packagegroup-core-buildessential``.
443