xref: /OK3568_Linux_fs/yocto/poky/documentation/ref-manual/system-requirements.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
2*4882a593Smuzhiyun
3*4882a593Smuzhiyun*******************
4*4882a593SmuzhiyunSystem Requirements
5*4882a593Smuzhiyun*******************
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunWelcome to the Yocto Project Reference Manual. This manual provides
8*4882a593Smuzhiyunreference information for the current release of the Yocto Project, and
9*4882a593Smuzhiyunis most effectively used after you have an understanding of the basics
10*4882a593Smuzhiyunof the Yocto Project. The manual is neither meant to be read as a
11*4882a593Smuzhiyunstarting point to the Yocto Project, nor read from start to finish.
12*4882a593SmuzhiyunRather, use this manual to find variable definitions, class
13*4882a593Smuzhiyundescriptions, and so forth as needed during the course of using the
14*4882a593SmuzhiyunYocto Project.
15*4882a593Smuzhiyun
16*4882a593SmuzhiyunFor introductory information on the Yocto Project, see the
17*4882a593Smuzhiyun:yocto_home:`Yocto Project Website <>` and the
18*4882a593Smuzhiyun":ref:`overview-manual/development-environment:the yocto project development environment`"
19*4882a593Smuzhiyunchapter in the Yocto Project Overview and Concepts Manual.
20*4882a593Smuzhiyun
21*4882a593SmuzhiyunIf you want to use the Yocto Project to quickly build an image without
22*4882a593Smuzhiyunhaving to understand concepts, work through the
23*4882a593Smuzhiyun:doc:`/brief-yoctoprojectqs/index` document. You can find "how-to"
24*4882a593Smuzhiyuninformation in the :doc:`/dev-manual/index`. You can find Yocto Project overview
25*4882a593Smuzhiyunand conceptual information in the :doc:`/overview-manual/index`.
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun.. note::
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun   For more information about the Yocto Project Documentation set, see
30*4882a593Smuzhiyun   the :ref:`ref-manual/resources:links and related documentation` section.
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun.. _detailed-supported-distros:
33*4882a593Smuzhiyun
34*4882a593SmuzhiyunSupported Linux Distributions
35*4882a593Smuzhiyun=============================
36*4882a593Smuzhiyun
37*4882a593SmuzhiyunCurrently, the Yocto Project is supported on the following
38*4882a593Smuzhiyundistributions:
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun-  Ubuntu 18.04 (LTS)
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun-  Ubuntu 20.04 (LTS)
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun-  Ubuntu 22.04 (LTS)
45*4882a593Smuzhiyun
46*4882a593Smuzhiyun-  Fedora 34
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun-  Fedora 35
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun-  Fedora 36
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun-  CentOS 7.x
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun-  CentOS 8.x
55*4882a593Smuzhiyun
56*4882a593Smuzhiyun-  AlmaLinux 8.5
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun-  AlmaLinux 8.7
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun-  Debian GNU/Linux 9.x (Stretch)
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun-  Debian GNU/Linux 10.x (Buster)
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun-  Debian GNU/Linux 11.x (Bullseye)
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun-  OpenSUSE Leap 15.3
67*4882a593Smuzhiyun
68*4882a593Smuzhiyun.. note::
69*4882a593Smuzhiyun
70*4882a593Smuzhiyun   -  While the Yocto Project Team attempts to ensure all Yocto Project
71*4882a593Smuzhiyun      releases are one hundred percent compatible with each officially
72*4882a593Smuzhiyun      supported Linux distribution, you may still encounter problems
73*4882a593Smuzhiyun      that happen only with a specific distribution.
74*4882a593Smuzhiyun
75*4882a593Smuzhiyun   -  Yocto Project releases are tested against the stable Linux
76*4882a593Smuzhiyun      distributions in the above list. The Yocto Project should work
77*4882a593Smuzhiyun      on other distributions but validation is not performed against
78*4882a593Smuzhiyun      them.
79*4882a593Smuzhiyun
80*4882a593Smuzhiyun   -  In particular, the Yocto Project does not support and currently
81*4882a593Smuzhiyun      has no plans to support rolling-releases or development
82*4882a593Smuzhiyun      distributions due to their constantly changing nature. We welcome
83*4882a593Smuzhiyun      patches and bug reports, but keep in mind that our priority is on
84*4882a593Smuzhiyun      the supported platforms listed below.
85*4882a593Smuzhiyun
86*4882a593Smuzhiyun   -  You may use Windows Subsystem For Linux v2 to set up a build host
87*4882a593Smuzhiyun      using Windows 10, but validation is not performed against build
88*4882a593Smuzhiyun      hosts using WSLv2.
89*4882a593Smuzhiyun
90*4882a593Smuzhiyun   -  The Yocto Project is not compatible with WSLv1, it is
91*4882a593Smuzhiyun      compatible but not officially supported nor validated with
92*4882a593Smuzhiyun      WSLv2, if you still decide to use WSL please upgrade to WSLv2.
93*4882a593Smuzhiyun
94*4882a593Smuzhiyun   -  If you encounter problems, please go to :yocto_bugs:`Yocto Project
95*4882a593Smuzhiyun      Bugzilla <>` and submit a bug. We are
96*4882a593Smuzhiyun      interested in hearing about your experience. For information on
97*4882a593Smuzhiyun      how to submit a bug, see the Yocto Project
98*4882a593Smuzhiyun      :yocto_wiki:`Bugzilla wiki page </Bugzilla_Configuration_and_Bug_Tracking>`
99*4882a593Smuzhiyun      and the ":ref:`dev-manual/common-tasks:submitting a defect against the yocto project`"
100*4882a593Smuzhiyun      section in the Yocto Project Development Tasks Manual.
101*4882a593Smuzhiyun
102*4882a593Smuzhiyun
103*4882a593SmuzhiyunRequired Packages for the Build Host
104*4882a593Smuzhiyun====================================
105*4882a593Smuzhiyun
106*4882a593SmuzhiyunThe list of packages you need on the host development system can be
107*4882a593Smuzhiyunlarge when covering all build scenarios using the Yocto Project. This
108*4882a593Smuzhiyunsection describes required packages according to Linux distribution and
109*4882a593Smuzhiyunfunction.
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun.. _ubuntu-packages:
112*4882a593Smuzhiyun
113*4882a593SmuzhiyunUbuntu and Debian
114*4882a593Smuzhiyun-----------------
115*4882a593Smuzhiyun
116*4882a593SmuzhiyunHere are the required packages by function given a
117*4882a593Smuzhiyunsupported Ubuntu or Debian Linux distribution:
118*4882a593Smuzhiyun
119*4882a593Smuzhiyun.. note::
120*4882a593Smuzhiyun
121*4882a593Smuzhiyun   -  If your build system has the ``oss4-dev`` package installed, you
122*4882a593Smuzhiyun      might experience QEMU build failures due to the package installing
123*4882a593Smuzhiyun      its own custom ``/usr/include/linux/soundcard.h`` on the Debian
124*4882a593Smuzhiyun      system. If you run into this situation, try either of these solutions::
125*4882a593Smuzhiyun
126*4882a593Smuzhiyun         $ sudo apt build-dep qemu
127*4882a593Smuzhiyun         $ sudo apt remove oss4-dev
128*4882a593Smuzhiyun
129*4882a593Smuzhiyun   -  For Debian-8, ``python3-git`` and ``pylint3`` are no longer
130*4882a593Smuzhiyun      available via ``apt``.
131*4882a593Smuzhiyun      ::
132*4882a593Smuzhiyun
133*4882a593Smuzhiyun         $ sudo pip3 install GitPython pylint==1.9.5
134*4882a593Smuzhiyun
135*4882a593Smuzhiyun-  *Essentials:* Packages needed to build an image on a headless system::
136*4882a593Smuzhiyun
137*4882a593Smuzhiyun      $ sudo apt install &UBUNTU_HOST_PACKAGES_ESSENTIAL;
138*4882a593Smuzhiyun
139*4882a593Smuzhiyun-  *Documentation:* Packages needed if you are going to build out the
140*4882a593Smuzhiyun   Yocto Project documentation manuals::
141*4882a593Smuzhiyun
142*4882a593Smuzhiyun      $ sudo apt install make python3-pip
143*4882a593Smuzhiyun      &PIP3_HOST_PACKAGES_DOC;
144*4882a593Smuzhiyun
145*4882a593Smuzhiyun   .. note::
146*4882a593Smuzhiyun
147*4882a593Smuzhiyun      It is currently not possible to build out documentation from Debian 8
148*4882a593Smuzhiyun      (Jessie) because of outdated ``pip3`` and ``python3``. ``python3-sphinx``
149*4882a593Smuzhiyun      is too outdated.
150*4882a593Smuzhiyun
151*4882a593SmuzhiyunFedora Packages
152*4882a593Smuzhiyun---------------
153*4882a593Smuzhiyun
154*4882a593SmuzhiyunHere are the required packages by function given a
155*4882a593Smuzhiyunsupported Fedora Linux distribution:
156*4882a593Smuzhiyun
157*4882a593Smuzhiyun-  *Essentials:* Packages needed to build an image for a headless
158*4882a593Smuzhiyun   system::
159*4882a593Smuzhiyun
160*4882a593Smuzhiyun      $ sudo dnf install &FEDORA_HOST_PACKAGES_ESSENTIAL;
161*4882a593Smuzhiyun
162*4882a593Smuzhiyun-  *Documentation:* Packages needed if you are going to build out the
163*4882a593Smuzhiyun   Yocto Project documentation manuals::
164*4882a593Smuzhiyun
165*4882a593Smuzhiyun      $ sudo dnf install make python3-pip which
166*4882a593Smuzhiyun      &PIP3_HOST_PACKAGES_DOC;
167*4882a593Smuzhiyun
168*4882a593SmuzhiyunopenSUSE Packages
169*4882a593Smuzhiyun-----------------
170*4882a593Smuzhiyun
171*4882a593SmuzhiyunHere are the required packages by function given a
172*4882a593Smuzhiyunsupported openSUSE Linux distribution:
173*4882a593Smuzhiyun
174*4882a593Smuzhiyun-  *Essentials:* Packages needed to build an image for a headless
175*4882a593Smuzhiyun   system::
176*4882a593Smuzhiyun
177*4882a593Smuzhiyun      $ sudo zypper install &OPENSUSE_HOST_PACKAGES_ESSENTIAL;
178*4882a593Smuzhiyun
179*4882a593Smuzhiyun-  *Documentation:* Packages needed if you are going to build out the
180*4882a593Smuzhiyun   Yocto Project documentation manuals::
181*4882a593Smuzhiyun
182*4882a593Smuzhiyun      $ sudo zypper install make python3-pip which
183*4882a593Smuzhiyun      &PIP3_HOST_PACKAGES_DOC;
184*4882a593Smuzhiyun
185*4882a593Smuzhiyun
186*4882a593SmuzhiyunCentOS-7 Packages
187*4882a593Smuzhiyun-----------------
188*4882a593Smuzhiyun
189*4882a593SmuzhiyunHere are the required packages by function given a
190*4882a593Smuzhiyunsupported CentOS-7 Linux distribution:
191*4882a593Smuzhiyun
192*4882a593Smuzhiyun-  *Essentials:* Packages needed to build an image for a headless
193*4882a593Smuzhiyun   system::
194*4882a593Smuzhiyun
195*4882a593Smuzhiyun      $ sudo yum install &CENTOS7_HOST_PACKAGES_ESSENTIAL;
196*4882a593Smuzhiyun
197*4882a593Smuzhiyun   .. note::
198*4882a593Smuzhiyun
199*4882a593Smuzhiyun      -  Extra Packages for Enterprise Linux (i.e. ``epel-release``) is
200*4882a593Smuzhiyun         a collection of packages from Fedora built on RHEL/CentOS for
201*4882a593Smuzhiyun         easy installation of packages not included in enterprise Linux
202*4882a593Smuzhiyun         by default. You need to install these packages separately.
203*4882a593Smuzhiyun
204*4882a593Smuzhiyun      -  The ``makecache`` command consumes additional Metadata from
205*4882a593Smuzhiyun         ``epel-release``.
206*4882a593Smuzhiyun
207*4882a593Smuzhiyun-  *Documentation:* Packages needed if you are going to build out the
208*4882a593Smuzhiyun   Yocto Project documentation manuals::
209*4882a593Smuzhiyun
210*4882a593Smuzhiyun      $ sudo yum install make python3-pip which
211*4882a593Smuzhiyun      &PIP3_HOST_PACKAGES_DOC;
212*4882a593Smuzhiyun
213*4882a593SmuzhiyunCentOS-8 Packages
214*4882a593Smuzhiyun-----------------
215*4882a593Smuzhiyun
216*4882a593SmuzhiyunHere are the required packages by function given a
217*4882a593Smuzhiyunsupported CentOS-8 Linux distribution:
218*4882a593Smuzhiyun
219*4882a593Smuzhiyun-  *Essentials:* Packages needed to build an image for a headless
220*4882a593Smuzhiyun   system::
221*4882a593Smuzhiyun
222*4882a593Smuzhiyun      $ sudo dnf install &CENTOS8_HOST_PACKAGES_ESSENTIAL;
223*4882a593Smuzhiyun
224*4882a593Smuzhiyun   .. note::
225*4882a593Smuzhiyun
226*4882a593Smuzhiyun      -  Extra Packages for Enterprise Linux (i.e. ``epel-release``) is
227*4882a593Smuzhiyun         a collection of packages from Fedora built on RHEL/CentOS for
228*4882a593Smuzhiyun         easy installation of packages not included in enterprise Linux
229*4882a593Smuzhiyun         by default. You need to install these packages separately.
230*4882a593Smuzhiyun
231*4882a593Smuzhiyun      -  The ``PowerTools`` repo provides additional packages such as
232*4882a593Smuzhiyun         ``rpcgen`` and ``texinfo``.
233*4882a593Smuzhiyun
234*4882a593Smuzhiyun      -  The ``makecache`` command consumes additional Metadata from
235*4882a593Smuzhiyun         ``epel-release``.
236*4882a593Smuzhiyun
237*4882a593Smuzhiyun-  *Documentation:* Packages needed if you are going to build out the
238*4882a593Smuzhiyun   Yocto Project documentation manuals::
239*4882a593Smuzhiyun
240*4882a593Smuzhiyun      $ sudo dnf install make python3-pip which
241*4882a593Smuzhiyun      &PIP3_HOST_PACKAGES_DOC;
242*4882a593Smuzhiyun
243*4882a593SmuzhiyunRequired Git, tar, Python and gcc Versions
244*4882a593Smuzhiyun==========================================
245*4882a593Smuzhiyun
246*4882a593SmuzhiyunIn order to use the build system, your host development system must meet
247*4882a593Smuzhiyunthe following version requirements for Git, tar, and Python:
248*4882a593Smuzhiyun
249*4882a593Smuzhiyun-  Git &MIN_GIT_VERSION; or greater
250*4882a593Smuzhiyun
251*4882a593Smuzhiyun-  tar &MIN_TAR_VERSION; or greater
252*4882a593Smuzhiyun
253*4882a593Smuzhiyun-  Python &MIN_PYTHON_VERSION; or greater
254*4882a593Smuzhiyun
255*4882a593SmuzhiyunIf your host development system does not meet all these requirements,
256*4882a593Smuzhiyunyou can resolve this by installing a ``buildtools`` tarball that
257*4882a593Smuzhiyuncontains these tools. You can get the tarball one of two ways: download
258*4882a593Smuzhiyuna pre-built tarball or use BitBake to build the tarball.
259*4882a593Smuzhiyun
260*4882a593SmuzhiyunIn addition, your host development system must meet the following
261*4882a593Smuzhiyunversion requirement for gcc:
262*4882a593Smuzhiyun
263*4882a593Smuzhiyun-  gcc &MIN_GCC_VERSION; or greater
264*4882a593Smuzhiyun
265*4882a593SmuzhiyunIf your host development system does not meet this requirement, you can
266*4882a593Smuzhiyunresolve this by installing a ``buildtools-extended`` tarball that
267*4882a593Smuzhiyuncontains additional tools, the equivalent of the Debian/Ubuntu ``build-essential``
268*4882a593Smuzhiyunpackage.
269*4882a593Smuzhiyun
270*4882a593SmuzhiyunIn the sections that follow, three different methods will be described for
271*4882a593Smuzhiyuninstalling the ``buildtools`` or ``buildtools-extended`` toolset.
272*4882a593Smuzhiyun
273*4882a593SmuzhiyunInstalling a Pre-Built ``buildtools`` Tarball with ``install-buildtools`` script
274*4882a593Smuzhiyun--------------------------------------------------------------------------------
275*4882a593Smuzhiyun
276*4882a593SmuzhiyunThe ``install-buildtools`` script is the easiest of the three methods by
277*4882a593Smuzhiyunwhich you can get these tools. It downloads a pre-built buildtools
278*4882a593Smuzhiyuninstaller and automatically installs the tools for you:
279*4882a593Smuzhiyun
280*4882a593Smuzhiyun1. Execute the ``install-buildtools`` script. Here is an example::
281*4882a593Smuzhiyun
282*4882a593Smuzhiyun      $ cd poky
283*4882a593Smuzhiyun      $ scripts/install-buildtools \
284*4882a593Smuzhiyun        --without-extended-buildtools \
285*4882a593Smuzhiyun        --base-url &YOCTO_DL_URL;/releases/yocto \
286*4882a593Smuzhiyun        --release yocto-&DISTRO; \
287*4882a593Smuzhiyun        --installer-version &DISTRO;
288*4882a593Smuzhiyun
289*4882a593Smuzhiyun   During execution, the buildtools tarball will be downloaded, the
290*4882a593Smuzhiyun   checksum of the download will be verified, the installer will be run
291*4882a593Smuzhiyun   for you, and some basic checks will be run to make sure the
292*4882a593Smuzhiyun   installation is functional.
293*4882a593Smuzhiyun
294*4882a593Smuzhiyun   To avoid the need of ``sudo`` privileges, the ``install-buildtools``
295*4882a593Smuzhiyun   script will by default tell the installer to install in::
296*4882a593Smuzhiyun
297*4882a593Smuzhiyun      /path/to/poky/buildtools
298*4882a593Smuzhiyun
299*4882a593Smuzhiyun   If your host development system needs the additional tools provided
300*4882a593Smuzhiyun   in the ``buildtools-extended`` tarball, you can instead execute the
301*4882a593Smuzhiyun   ``install-buildtools`` script with the default parameters::
302*4882a593Smuzhiyun
303*4882a593Smuzhiyun      $ cd poky
304*4882a593Smuzhiyun      $ scripts/install-buildtools
305*4882a593Smuzhiyun
306*4882a593Smuzhiyun2. Source the tools environment setup script by using a command like the
307*4882a593Smuzhiyun   following::
308*4882a593Smuzhiyun
309*4882a593Smuzhiyun      $ source /path/to/poky/buildtools/environment-setup-x86_64-pokysdk-linux
310*4882a593Smuzhiyun
311*4882a593Smuzhiyun   Of course, you need to supply your installation directory and be sure to
312*4882a593Smuzhiyun   use the right file (i.e. i586 or x86_64).
313*4882a593Smuzhiyun
314*4882a593Smuzhiyun   After you have sourced the setup script, the tools are added to
315*4882a593Smuzhiyun   ``PATH`` and any other environment variables required to run the
316*4882a593Smuzhiyun   tools are initialized. The results are working versions versions of
317*4882a593Smuzhiyun   Git, tar, Python and ``chrpath``. And in the case of the
318*4882a593Smuzhiyun   ``buildtools-extended`` tarball, additional working versions of tools
319*4882a593Smuzhiyun   including ``gcc``, ``make`` and the other tools included in
320*4882a593Smuzhiyun   ``packagegroup-core-buildessential``.
321*4882a593Smuzhiyun
322*4882a593SmuzhiyunDownloading a Pre-Built ``buildtools`` Tarball
323*4882a593Smuzhiyun----------------------------------------------
324*4882a593Smuzhiyun
325*4882a593SmuzhiyunIf you would prefer not to use the ``install-buildtools`` script, you can instead
326*4882a593Smuzhiyundownload and run a pre-built buildtools installer yourself with the following
327*4882a593Smuzhiyunsteps:
328*4882a593Smuzhiyun
329*4882a593Smuzhiyun1. Locate and download the ``*.sh`` at :yocto_dl:`/releases/yocto/yocto-&DISTRO;/buildtools/`
330*4882a593Smuzhiyun
331*4882a593Smuzhiyun2. Execute the installation script. Here is an example for the
332*4882a593Smuzhiyun   traditional installer::
333*4882a593Smuzhiyun
334*4882a593Smuzhiyun      $ sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh
335*4882a593Smuzhiyun
336*4882a593Smuzhiyun   Here is an example for the extended installer::
337*4882a593Smuzhiyun
338*4882a593Smuzhiyun      $ sh ~/Downloads/x86_64-buildtools-extended-nativesdk-standalone-&DISTRO;.sh
339*4882a593Smuzhiyun
340*4882a593Smuzhiyun   During execution, a prompt appears that allows you to choose the
341*4882a593Smuzhiyun   installation directory. For example, you could choose the following:
342*4882a593Smuzhiyun   ``/home/your-username/buildtools``
343*4882a593Smuzhiyun
344*4882a593Smuzhiyun3. Source the tools environment setup script by using a command like the
345*4882a593Smuzhiyun   following::
346*4882a593Smuzhiyun
347*4882a593Smuzhiyun      $ source /home/your_username/buildtools/environment-setup-i586-poky-linux
348*4882a593Smuzhiyun
349*4882a593Smuzhiyun   Of
350*4882a593Smuzhiyun   course, you need to supply your installation directory and be sure to
351*4882a593Smuzhiyun   use the right file (i.e. i585 or x86-64).
352*4882a593Smuzhiyun
353*4882a593Smuzhiyun   After you have sourced the setup script, the tools are added to
354*4882a593Smuzhiyun   ``PATH`` and any other environment variables required to run the
355*4882a593Smuzhiyun   tools are initialized. The results are working versions versions of
356*4882a593Smuzhiyun   Git, tar, Python and ``chrpath``. And in the case of the
357*4882a593Smuzhiyun   ``buildtools-extended`` tarball, additional working versions of tools
358*4882a593Smuzhiyun   including ``gcc``, ``make`` and the other tools included in
359*4882a593Smuzhiyun   ``packagegroup-core-buildessential``.
360*4882a593Smuzhiyun
361*4882a593SmuzhiyunBuilding Your Own ``buildtools`` Tarball
362*4882a593Smuzhiyun----------------------------------------
363*4882a593Smuzhiyun
364*4882a593SmuzhiyunBuilding and running your own buildtools installer applies only when you
365*4882a593Smuzhiyunhave a build host that can already run BitBake. In this case, you use
366*4882a593Smuzhiyunthat machine to build the ``.sh`` file and then take steps to transfer
367*4882a593Smuzhiyunand run it on a machine that does not meet the minimal Git, tar, and
368*4882a593SmuzhiyunPython (or gcc) requirements.
369*4882a593Smuzhiyun
370*4882a593SmuzhiyunHere are the steps to take to build and run your own buildtools
371*4882a593Smuzhiyuninstaller:
372*4882a593Smuzhiyun
373*4882a593Smuzhiyun1. On the machine that is able to run BitBake, be sure you have set up
374*4882a593Smuzhiyun   your build environment with the setup script
375*4882a593Smuzhiyun   (:ref:`structure-core-script`).
376*4882a593Smuzhiyun
377*4882a593Smuzhiyun2. Run the BitBake command to build the tarball::
378*4882a593Smuzhiyun
379*4882a593Smuzhiyun      $ bitbake buildtools-tarball
380*4882a593Smuzhiyun
381*4882a593Smuzhiyun   or run the BitBake command to build the extended tarball::
382*4882a593Smuzhiyun
383*4882a593Smuzhiyun      $ bitbake buildtools-extended-tarball
384*4882a593Smuzhiyun
385*4882a593Smuzhiyun   .. note::
386*4882a593Smuzhiyun
387*4882a593Smuzhiyun      The :term:`SDKMACHINE` variable in your ``local.conf`` file determines
388*4882a593Smuzhiyun      whether you build tools for a 32-bit or 64-bit system.
389*4882a593Smuzhiyun
390*4882a593Smuzhiyun   Once the build completes, you can find the ``.sh`` file that installs
391*4882a593Smuzhiyun   the tools in the ``tmp/deploy/sdk`` subdirectory of the
392*4882a593Smuzhiyun   :term:`Build Directory`. The installer file has the string
393*4882a593Smuzhiyun   "buildtools" (or "buildtools-extended") in the name.
394*4882a593Smuzhiyun
395*4882a593Smuzhiyun3. Transfer the ``.sh`` file from the build host to the machine that
396*4882a593Smuzhiyun   does not meet the Git, tar, or Python (or gcc) requirements.
397*4882a593Smuzhiyun
398*4882a593Smuzhiyun4. On the machine that does not meet the requirements, run the ``.sh``
399*4882a593Smuzhiyun   file to install the tools. Here is an example for the traditional
400*4882a593Smuzhiyun   installer::
401*4882a593Smuzhiyun
402*4882a593Smuzhiyun      $ sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh
403*4882a593Smuzhiyun
404*4882a593Smuzhiyun   Here is an example for the extended installer::
405*4882a593Smuzhiyun
406*4882a593Smuzhiyun      $ sh ~/Downloads/x86_64-buildtools-extended-nativesdk-standalone-&DISTRO;.sh
407*4882a593Smuzhiyun
408*4882a593Smuzhiyun   During execution, a prompt appears that allows you to choose the
409*4882a593Smuzhiyun   installation directory. For example, you could choose the following:
410*4882a593Smuzhiyun   ``/home/your_username/buildtools``
411*4882a593Smuzhiyun
412*4882a593Smuzhiyun5. Source the tools environment setup script by using a command like the
413*4882a593Smuzhiyun   following::
414*4882a593Smuzhiyun
415*4882a593Smuzhiyun      $ source /home/your_username/buildtools/environment-setup-x86_64-poky-linux
416*4882a593Smuzhiyun
417*4882a593Smuzhiyun   Of course, you need to supply your installation directory and be sure to
418*4882a593Smuzhiyun   use the right file (i.e. i586 or x86_64).
419*4882a593Smuzhiyun
420*4882a593Smuzhiyun   After you have sourced the setup script, the tools are added to
421*4882a593Smuzhiyun   ``PATH`` and any other environment variables required to run the
422*4882a593Smuzhiyun   tools are initialized. The results are working versions versions of
423*4882a593Smuzhiyun   Git, tar, Python and ``chrpath``. And in the case of the
424*4882a593Smuzhiyun   ``buildtools-extended`` tarball, additional working versions of tools
425*4882a593Smuzhiyun   including ``gcc``, ``make`` and the other tools included in
426*4882a593Smuzhiyun   ``packagegroup-core-buildessential``.
427