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
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 18.04 (LTS)
4109209eecSAndrew Geissler
42ac69b488SWilliam A. Kennington III-  Ubuntu 20.04 (LTS)
4309209eecSAndrew Geissler
44595f6308SAndrew Geissler-  Fedora 34
4509209eecSAndrew Geissler
46*9aee5003SAndrew Geissler-  Fedora 35
47*9aee5003SAndrew Geissler
4809209eecSAndrew Geissler-  CentOS 7.x
4909209eecSAndrew Geissler
5009209eecSAndrew Geissler-  CentOS 8.x
5109209eecSAndrew Geissler
52*9aee5003SAndrew Geissler-  AlmaLinux 8.5
5309209eecSAndrew Geissler
5409209eecSAndrew Geissler-  Debian GNU/Linux 9.x (Stretch)
5509209eecSAndrew Geissler
5609209eecSAndrew Geissler-  Debian GNU/Linux 10.x (Buster)
5709209eecSAndrew Geissler
58595f6308SAndrew Geissler-  Debian GNU/Linux 11.x (Bullseye)
5909209eecSAndrew Geissler
60*9aee5003SAndrew Geissler-  OpenSUSE Leap 15.3
6109209eecSAndrew Geissler
6209209eecSAndrew Geissler.. note::
6309209eecSAndrew Geissler
6409209eecSAndrew Geissler   -  While the Yocto Project Team attempts to ensure all Yocto Project
6509209eecSAndrew Geissler      releases are one hundred percent compatible with each officially
66ac69b488SWilliam A. Kennington III      supported Linux distribution, you may still encounter problems
67ac69b488SWilliam A. Kennington III      that happen only with a specific distribution.
6809209eecSAndrew Geissler
6909209eecSAndrew Geissler   -  Yocto Project releases are tested against the stable Linux
7009209eecSAndrew Geissler      distributions in the above list. The Yocto Project should work
7109209eecSAndrew Geissler      on other distributions but validation is not performed against
7209209eecSAndrew Geissler      them.
7309209eecSAndrew Geissler
7409209eecSAndrew Geissler   -  In particular, the Yocto Project does not support and currently
7509209eecSAndrew Geissler      has no plans to support rolling-releases or development
7609209eecSAndrew Geissler      distributions due to their constantly changing nature. We welcome
7709209eecSAndrew Geissler      patches and bug reports, but keep in mind that our priority is on
7809209eecSAndrew Geissler      the supported platforms listed below.
7909209eecSAndrew Geissler
8009209eecSAndrew Geissler   -  You may use Windows Subsystem For Linux v2 to set up a build host
8109209eecSAndrew Geissler      using Windows 10, but validation is not performed against build
8209209eecSAndrew Geissler      hosts using WSLv2.
8309209eecSAndrew Geissler
8409209eecSAndrew Geissler   -  The Yocto Project is not compatible with WSLv1, it is
8509209eecSAndrew Geissler      compatible but not officially supported nor validated with
8609209eecSAndrew Geissler      WSLv2, if you still decide to use WSL please upgrade to WSLv2.
8709209eecSAndrew Geissler
8809209eecSAndrew Geissler   -  If you encounter problems, please go to :yocto_bugs:`Yocto Project
8909209eecSAndrew Geissler      Bugzilla <>` and submit a bug. We are
9009209eecSAndrew Geissler      interested in hearing about your experience. For information on
9109209eecSAndrew Geissler      how to submit a bug, see the Yocto Project
9209209eecSAndrew Geissler      :yocto_wiki:`Bugzilla wiki page </Bugzilla_Configuration_and_Bug_Tracking>`
9309209eecSAndrew Geissler      and the ":ref:`dev-manual/common-tasks:submitting a defect against the yocto project`"
9409209eecSAndrew Geissler      section in the Yocto Project Development Tasks Manual.
9509209eecSAndrew Geissler
9609209eecSAndrew Geissler
9709209eecSAndrew GeisslerRequired Packages for the Build Host
9809209eecSAndrew Geissler====================================
9909209eecSAndrew Geissler
10009209eecSAndrew GeisslerThe list of packages you need on the host development system can be
10109209eecSAndrew Geisslerlarge when covering all build scenarios using the Yocto Project. This
10209209eecSAndrew Geisslersection describes required packages according to Linux distribution and
10309209eecSAndrew Geisslerfunction.
10409209eecSAndrew Geissler
10509209eecSAndrew Geissler.. _ubuntu-packages:
10609209eecSAndrew Geissler
10709209eecSAndrew GeisslerUbuntu and Debian
10809209eecSAndrew Geissler-----------------
10909209eecSAndrew Geissler
110ac69b488SWilliam A. Kennington IIIHere are the required packages by function given a
11109209eecSAndrew Geisslersupported Ubuntu or Debian Linux distribution:
11209209eecSAndrew Geissler
11309209eecSAndrew Geissler.. note::
11409209eecSAndrew Geissler
11509209eecSAndrew Geissler   -  If your build system has the ``oss4-dev`` package installed, you
11609209eecSAndrew Geissler      might experience QEMU build failures due to the package installing
11709209eecSAndrew Geissler      its own custom ``/usr/include/linux/soundcard.h`` on the Debian
118ac69b488SWilliam A. Kennington III      system. If you run into this situation, try either of these solutions::
11909209eecSAndrew Geissler
120eff27476SAndrew Geissler         $ sudo apt build-dep qemu
121eff27476SAndrew Geissler         $ sudo apt remove oss4-dev
12209209eecSAndrew Geissler
12309209eecSAndrew Geissler   -  For Debian-8, ``python3-git`` and ``pylint3`` are no longer
124eff27476SAndrew Geissler      available via ``apt``.
12509209eecSAndrew Geissler      ::
12609209eecSAndrew Geissler
12709209eecSAndrew Geissler         $ sudo pip3 install GitPython pylint==1.9.5
12809209eecSAndrew Geissler
129c926e17cSAndrew Geissler-  *Essentials:* Packages needed to build an image on a headless system::
13009209eecSAndrew Geissler
131eff27476SAndrew Geissler      $ sudo apt install &UBUNTU_HOST_PACKAGES_ESSENTIAL;
13209209eecSAndrew Geissler
13309209eecSAndrew Geissler-  *Documentation:* Packages needed if you are going to build out the
134c926e17cSAndrew Geissler   Yocto Project documentation manuals::
13509209eecSAndrew Geissler
136eff27476SAndrew Geissler      $ sudo apt install make python3-pip
13709209eecSAndrew Geissler      &PIP3_HOST_PACKAGES_DOC;
13809209eecSAndrew Geissler
13909209eecSAndrew Geissler   .. note::
14009209eecSAndrew Geissler
14109209eecSAndrew Geissler      It is currently not possible to build out documentation from Debian 8
14209209eecSAndrew Geissler      (Jessie) because of outdated ``pip3`` and ``python3``. ``python3-sphinx``
14309209eecSAndrew Geissler      is too outdated.
14409209eecSAndrew Geissler
14509209eecSAndrew GeisslerFedora Packages
14609209eecSAndrew Geissler---------------
14709209eecSAndrew Geissler
148ac69b488SWilliam A. Kennington IIIHere are the required packages by function given a
14909209eecSAndrew Geisslersupported Fedora Linux distribution:
15009209eecSAndrew Geissler
15109209eecSAndrew Geissler-  *Essentials:* Packages needed to build an image for a headless
152c926e17cSAndrew Geissler   system::
15309209eecSAndrew Geissler
15409209eecSAndrew Geissler      $ sudo dnf install &FEDORA_HOST_PACKAGES_ESSENTIAL;
15509209eecSAndrew Geissler
15609209eecSAndrew Geissler-  *Documentation:* Packages needed if you are going to build out the
157c926e17cSAndrew Geissler   Yocto Project documentation manuals::
15809209eecSAndrew Geissler
15909209eecSAndrew Geissler      $ sudo dnf install make python3-pip which
16009209eecSAndrew Geissler      &PIP3_HOST_PACKAGES_DOC;
16109209eecSAndrew Geissler
16209209eecSAndrew GeissleropenSUSE Packages
16309209eecSAndrew Geissler-----------------
16409209eecSAndrew Geissler
165ac69b488SWilliam A. Kennington IIIHere are the required packages by function given a
16609209eecSAndrew Geisslersupported openSUSE Linux distribution:
16709209eecSAndrew Geissler
16809209eecSAndrew Geissler-  *Essentials:* Packages needed to build an image for a headless
169c926e17cSAndrew Geissler   system::
17009209eecSAndrew Geissler
17109209eecSAndrew Geissler      $ sudo zypper install &OPENSUSE_HOST_PACKAGES_ESSENTIAL;
17209209eecSAndrew Geissler
17309209eecSAndrew Geissler-  *Documentation:* Packages needed if you are going to build out the
174c926e17cSAndrew Geissler   Yocto Project documentation manuals::
17509209eecSAndrew Geissler
17609209eecSAndrew Geissler      $ sudo zypper install make python3-pip which
17709209eecSAndrew Geissler      &PIP3_HOST_PACKAGES_DOC;
17809209eecSAndrew Geissler
17909209eecSAndrew Geissler
18009209eecSAndrew GeisslerCentOS-7 Packages
18109209eecSAndrew Geissler-----------------
18209209eecSAndrew Geissler
183ac69b488SWilliam A. Kennington IIIHere are the required packages by function given a
18409209eecSAndrew Geisslersupported CentOS-7 Linux distribution:
18509209eecSAndrew Geissler
18609209eecSAndrew Geissler-  *Essentials:* Packages needed to build an image for a headless
187c926e17cSAndrew Geissler   system::
18809209eecSAndrew Geissler
18909209eecSAndrew Geissler      $ sudo yum install &CENTOS7_HOST_PACKAGES_ESSENTIAL;
19009209eecSAndrew Geissler
19109209eecSAndrew Geissler   .. note::
19209209eecSAndrew Geissler
19309209eecSAndrew Geissler      -  Extra Packages for Enterprise Linux (i.e. ``epel-release``) is
19409209eecSAndrew Geissler         a collection of packages from Fedora built on RHEL/CentOS for
19509209eecSAndrew Geissler         easy installation of packages not included in enterprise Linux
19609209eecSAndrew Geissler         by default. You need to install these packages separately.
19709209eecSAndrew Geissler
19809209eecSAndrew Geissler      -  The ``makecache`` command consumes additional Metadata from
19909209eecSAndrew Geissler         ``epel-release``.
20009209eecSAndrew Geissler
20109209eecSAndrew Geissler-  *Documentation:* Packages needed if you are going to build out the
202c926e17cSAndrew Geissler   Yocto Project documentation manuals::
20309209eecSAndrew Geissler
20409209eecSAndrew Geissler      $ sudo yum install make python3-pip which
20509209eecSAndrew Geissler      &PIP3_HOST_PACKAGES_DOC;
20609209eecSAndrew Geissler
20709209eecSAndrew GeisslerCentOS-8 Packages
20809209eecSAndrew Geissler-----------------
20909209eecSAndrew Geissler
210ac69b488SWilliam A. Kennington IIIHere are the required packages by function given a
21109209eecSAndrew Geisslersupported CentOS-8 Linux distribution:
21209209eecSAndrew Geissler
21309209eecSAndrew Geissler-  *Essentials:* Packages needed to build an image for a headless
214c926e17cSAndrew Geissler   system::
21509209eecSAndrew Geissler
21609209eecSAndrew Geissler      $ sudo dnf install &CENTOS8_HOST_PACKAGES_ESSENTIAL;
21709209eecSAndrew Geissler
21809209eecSAndrew Geissler   .. note::
21909209eecSAndrew Geissler
22009209eecSAndrew Geissler      -  Extra Packages for Enterprise Linux (i.e. ``epel-release``) is
22109209eecSAndrew Geissler         a collection of packages from Fedora built on RHEL/CentOS for
22209209eecSAndrew Geissler         easy installation of packages not included in enterprise Linux
22309209eecSAndrew Geissler         by default. You need to install these packages separately.
22409209eecSAndrew Geissler
22509209eecSAndrew Geissler      -  The ``PowerTools`` repo provides additional packages such as
22609209eecSAndrew Geissler         ``rpcgen`` and ``texinfo``.
22709209eecSAndrew Geissler
22809209eecSAndrew Geissler      -  The ``makecache`` command consumes additional Metadata from
22909209eecSAndrew Geissler         ``epel-release``.
23009209eecSAndrew Geissler
23109209eecSAndrew Geissler-  *Documentation:* Packages needed if you are going to build out the
232c926e17cSAndrew Geissler   Yocto Project documentation manuals::
23309209eecSAndrew Geissler
23409209eecSAndrew Geissler      $ sudo dnf install make python3-pip which
23509209eecSAndrew Geissler      &PIP3_HOST_PACKAGES_DOC;
23609209eecSAndrew Geissler
23709209eecSAndrew GeisslerRequired Git, tar, Python and gcc Versions
23809209eecSAndrew Geissler==========================================
23909209eecSAndrew Geissler
24009209eecSAndrew GeisslerIn order to use the build system, your host development system must meet
24109209eecSAndrew Geisslerthe following version requirements for Git, tar, and Python:
24209209eecSAndrew Geissler
2433b8a17c1SAndrew Geissler-  Git &MIN_GIT_VERSION; or greater
24409209eecSAndrew Geissler
2453b8a17c1SAndrew Geissler-  tar &MIN_TAR_VERSION; or greater
24609209eecSAndrew Geissler
2473b8a17c1SAndrew Geissler-  Python &MIN_PYTHON_VERSION; or greater
24809209eecSAndrew Geissler
24909209eecSAndrew GeisslerIf your host development system does not meet all these requirements,
25009209eecSAndrew Geissleryou can resolve this by installing a ``buildtools`` tarball that
25109209eecSAndrew Geisslercontains these tools. You can get the tarball one of two ways: download
25209209eecSAndrew Geisslera pre-built tarball or use BitBake to build the tarball.
25309209eecSAndrew Geissler
25409209eecSAndrew GeisslerIn addition, your host development system must meet the following
25509209eecSAndrew Geisslerversion requirement for gcc:
25609209eecSAndrew Geissler
2573b8a17c1SAndrew Geissler-  gcc &MIN_GCC_VERSION; or greater
25809209eecSAndrew Geissler
25909209eecSAndrew GeisslerIf your host development system does not meet this requirement, you can
26009209eecSAndrew Geisslerresolve this by installing a ``buildtools-extended`` tarball that
2613b8a17c1SAndrew Geisslercontains additional tools, the equivalent of the Debian/Ubuntu ``build-essential``
2623b8a17c1SAndrew Geisslerpackage.
2633b8a17c1SAndrew Geissler
2643b8a17c1SAndrew GeisslerIn the sections that follow, three different methods will be described for
2653b8a17c1SAndrew Geisslerinstalling the ``buildtools`` or ``buildtools-extended`` toolset.
26609209eecSAndrew Geissler
26709209eecSAndrew GeisslerInstalling a Pre-Built ``buildtools`` Tarball with ``install-buildtools`` script
26809209eecSAndrew Geissler--------------------------------------------------------------------------------
26909209eecSAndrew Geissler
27009209eecSAndrew GeisslerThe ``install-buildtools`` script is the easiest of the three methods by
27109209eecSAndrew Geisslerwhich you can get these tools. It downloads a pre-built buildtools
27209209eecSAndrew Geisslerinstaller and automatically installs the tools for you:
27309209eecSAndrew Geissler
274c926e17cSAndrew Geissler1. Execute the ``install-buildtools`` script. Here is an example::
27509209eecSAndrew Geissler
27609209eecSAndrew Geissler      $ cd poky
2775199d831SAndrew Geissler      $ scripts/install-buildtools \
2785199d831SAndrew Geissler        --without-extended-buildtools \
27909209eecSAndrew Geissler        --base-url &YOCTO_DL_URL;/releases/yocto \
28009209eecSAndrew Geissler        --release yocto-&DISTRO; \
28109209eecSAndrew Geissler        --installer-version &DISTRO;
28209209eecSAndrew Geissler
28309209eecSAndrew Geissler   During execution, the buildtools tarball will be downloaded, the
28409209eecSAndrew Geissler   checksum of the download will be verified, the installer will be run
2853b8a17c1SAndrew Geissler   for you, and some basic checks will be run to make sure the
28609209eecSAndrew Geissler   installation is functional.
28709209eecSAndrew Geissler
28809209eecSAndrew Geissler   To avoid the need of ``sudo`` privileges, the ``install-buildtools``
289c926e17cSAndrew Geissler   script will by default tell the installer to install in::
29009209eecSAndrew Geissler
29109209eecSAndrew Geissler      /path/to/poky/buildtools
29209209eecSAndrew Geissler
29309209eecSAndrew Geissler   If your host development system needs the additional tools provided
29409209eecSAndrew Geissler   in the ``buildtools-extended`` tarball, you can instead execute the
295c926e17cSAndrew Geissler   ``install-buildtools`` script with the default parameters::
29609209eecSAndrew Geissler
29709209eecSAndrew Geissler      $ cd poky
29809209eecSAndrew Geissler      $ scripts/install-buildtools
29909209eecSAndrew Geissler
30009209eecSAndrew Geissler2. Source the tools environment setup script by using a command like the
301c926e17cSAndrew Geissler   following::
30209209eecSAndrew Geissler
30309209eecSAndrew Geissler      $ source /path/to/poky/buildtools/environment-setup-x86_64-pokysdk-linux
30409209eecSAndrew Geissler
30509209eecSAndrew Geissler   Of course, you need to supply your installation directory and be sure to
30609209eecSAndrew Geissler   use the right file (i.e. i586 or x86_64).
30709209eecSAndrew Geissler
30809209eecSAndrew Geissler   After you have sourced the setup script, the tools are added to
30909209eecSAndrew Geissler   ``PATH`` and any other environment variables required to run the
31009209eecSAndrew Geissler   tools are initialized. The results are working versions versions of
31109209eecSAndrew Geissler   Git, tar, Python and ``chrpath``. And in the case of the
31209209eecSAndrew Geissler   ``buildtools-extended`` tarball, additional working versions of tools
31309209eecSAndrew Geissler   including ``gcc``, ``make`` and the other tools included in
31409209eecSAndrew Geissler   ``packagegroup-core-buildessential``.
31509209eecSAndrew Geissler
31609209eecSAndrew GeisslerDownloading a Pre-Built ``buildtools`` Tarball
31709209eecSAndrew Geissler----------------------------------------------
31809209eecSAndrew Geissler
3193b8a17c1SAndrew GeisslerIf you would prefer not to use the ``install-buildtools`` script, you can instead
3203b8a17c1SAndrew Geisslerdownload and run a pre-built buildtools installer yourself with the following
3213b8a17c1SAndrew Geisslersteps:
32209209eecSAndrew Geissler
3237e0e3c0cSAndrew Geissler1. Locate and download the ``*.sh`` at :yocto_dl:`/releases/yocto/yocto-&DISTRO;/buildtools/`
32409209eecSAndrew Geissler
32509209eecSAndrew Geissler2. Execute the installation script. Here is an example for the
326c926e17cSAndrew Geissler   traditional installer::
32709209eecSAndrew Geissler
328d1e89497SAndrew Geissler      $ sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh
32909209eecSAndrew Geissler
330c926e17cSAndrew Geissler   Here is an example for the extended installer::
33109209eecSAndrew Geissler
332d1e89497SAndrew Geissler      $ sh ~/Downloads/x86_64-buildtools-extended-nativesdk-standalone-&DISTRO;.sh
33309209eecSAndrew Geissler
33409209eecSAndrew Geissler   During execution, a prompt appears that allows you to choose the
33509209eecSAndrew Geissler   installation directory. For example, you could choose the following:
33609209eecSAndrew Geissler   ``/home/your-username/buildtools``
33709209eecSAndrew Geissler
33809209eecSAndrew Geissler3. Source the tools environment setup script by using a command like the
339c926e17cSAndrew Geissler   following::
34009209eecSAndrew Geissler
34109209eecSAndrew Geissler      $ source /home/your_username/buildtools/environment-setup-i586-poky-linux
34209209eecSAndrew Geissler
34309209eecSAndrew Geissler   Of
34409209eecSAndrew Geissler   course, you need to supply your installation directory and be sure to
34509209eecSAndrew Geissler   use the right file (i.e. i585 or x86-64).
34609209eecSAndrew Geissler
34709209eecSAndrew Geissler   After you have sourced the setup script, the tools are added to
34809209eecSAndrew Geissler   ``PATH`` and any other environment variables required to run the
34909209eecSAndrew Geissler   tools are initialized. The results are working versions versions of
35009209eecSAndrew Geissler   Git, tar, Python and ``chrpath``. And in the case of the
35109209eecSAndrew Geissler   ``buildtools-extended`` tarball, additional working versions of tools
35209209eecSAndrew Geissler   including ``gcc``, ``make`` and the other tools included in
35309209eecSAndrew Geissler   ``packagegroup-core-buildessential``.
35409209eecSAndrew Geissler
35509209eecSAndrew GeisslerBuilding Your Own ``buildtools`` Tarball
35609209eecSAndrew Geissler----------------------------------------
35709209eecSAndrew Geissler
35809209eecSAndrew GeisslerBuilding and running your own buildtools installer applies only when you
35909209eecSAndrew Geisslerhave a build host that can already run BitBake. In this case, you use
36009209eecSAndrew Geisslerthat machine to build the ``.sh`` file and then take steps to transfer
36109209eecSAndrew Geisslerand run it on a machine that does not meet the minimal Git, tar, and
36209209eecSAndrew GeisslerPython (or gcc) requirements.
36309209eecSAndrew Geissler
36409209eecSAndrew GeisslerHere are the steps to take to build and run your own buildtools
36509209eecSAndrew Geisslerinstaller:
36609209eecSAndrew Geissler
36709209eecSAndrew Geissler1. On the machine that is able to run BitBake, be sure you have set up
36809209eecSAndrew Geissler   your build environment with the setup script
36909209eecSAndrew Geissler   (:ref:`structure-core-script`).
37009209eecSAndrew Geissler
371c926e17cSAndrew Geissler2. Run the BitBake command to build the tarball::
37209209eecSAndrew Geissler
37309209eecSAndrew Geissler      $ bitbake buildtools-tarball
37409209eecSAndrew Geissler
375c926e17cSAndrew Geissler   or run the BitBake command to build the extended tarball::
37609209eecSAndrew Geissler
37709209eecSAndrew Geissler      $ bitbake buildtools-extended-tarball
37809209eecSAndrew Geissler
37909209eecSAndrew Geissler   .. note::
38009209eecSAndrew Geissler
38109209eecSAndrew Geissler      The :term:`SDKMACHINE` variable in your ``local.conf`` file determines
38209209eecSAndrew Geissler      whether you build tools for a 32-bit or 64-bit system.
38309209eecSAndrew Geissler
38409209eecSAndrew Geissler   Once the build completes, you can find the ``.sh`` file that installs
38509209eecSAndrew Geissler   the tools in the ``tmp/deploy/sdk`` subdirectory of the
38609209eecSAndrew Geissler   :term:`Build Directory`. The installer file has the string
38709209eecSAndrew Geissler   "buildtools" (or "buildtools-extended") in the name.
38809209eecSAndrew Geissler
38909209eecSAndrew Geissler3. Transfer the ``.sh`` file from the build host to the machine that
39009209eecSAndrew Geissler   does not meet the Git, tar, or Python (or gcc) requirements.
39109209eecSAndrew Geissler
39209209eecSAndrew Geissler4. On the machine that does not meet the requirements, run the ``.sh``
39309209eecSAndrew Geissler   file to install the tools. Here is an example for the traditional
394c926e17cSAndrew Geissler   installer::
39509209eecSAndrew Geissler
39609209eecSAndrew Geissler      $ sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh
39709209eecSAndrew Geissler
398c926e17cSAndrew Geissler   Here is an example for the extended installer::
39909209eecSAndrew Geissler
40009209eecSAndrew Geissler      $ sh ~/Downloads/x86_64-buildtools-extended-nativesdk-standalone-&DISTRO;.sh
40109209eecSAndrew Geissler
40209209eecSAndrew Geissler   During execution, a prompt appears that allows you to choose the
40309209eecSAndrew Geissler   installation directory. For example, you could choose the following:
40409209eecSAndrew Geissler   ``/home/your_username/buildtools``
40509209eecSAndrew Geissler
40609209eecSAndrew Geissler5. Source the tools environment setup script by using a command like the
407c926e17cSAndrew Geissler   following::
40809209eecSAndrew Geissler
40909209eecSAndrew Geissler      $ source /home/your_username/buildtools/environment-setup-x86_64-poky-linux
41009209eecSAndrew Geissler
41109209eecSAndrew Geissler   Of course, you need to supply your installation directory and be sure to
41209209eecSAndrew Geissler   use the right file (i.e. i586 or x86_64).
41309209eecSAndrew Geissler
41409209eecSAndrew Geissler   After you have sourced the setup script, the tools are added to
41509209eecSAndrew Geissler   ``PATH`` and any other environment variables required to run the
41609209eecSAndrew Geissler   tools are initialized. The results are working versions versions of
41709209eecSAndrew Geissler   Git, tar, Python and ``chrpath``. And in the case of the
41809209eecSAndrew Geissler   ``buildtools-extended`` tarball, additional working versions of tools
41909209eecSAndrew Geissler   including ``gcc``, ``make`` and the other tools included in
42009209eecSAndrew Geissler   ``packagegroup-core-buildessential``.
421