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