1*09209eecSAndrew Geissler.. SPDX-License-Identifier: CC-BY-SA-2.0-UK 2*09209eecSAndrew Geissler 3*09209eecSAndrew Geissler========================= 4*09209eecSAndrew GeisslerYocto Project Quick Build 5*09209eecSAndrew Geissler========================= 6*09209eecSAndrew Geissler 7*09209eecSAndrew GeisslerWelcome! 8*09209eecSAndrew Geissler======== 9*09209eecSAndrew Geissler 10*09209eecSAndrew GeisslerThis short document steps you through the process for a typical 11*09209eecSAndrew Geisslerimage build using the Yocto Project. The document also introduces how to 12*09209eecSAndrew Geisslerconfigure a build for specific hardware. You will use Yocto Project to 13*09209eecSAndrew Geisslerbuild a reference embedded OS called Poky. 14*09209eecSAndrew Geissler 15*09209eecSAndrew Geissler.. note:: 16*09209eecSAndrew Geissler 17*09209eecSAndrew Geissler - The examples in this paper assume you are using a native Linux 18*09209eecSAndrew Geissler system running a recent Ubuntu Linux distribution. If the machine 19*09209eecSAndrew Geissler you want to use Yocto Project on to build an image 20*09209eecSAndrew Geissler (:term:`Build Host`) is not 21*09209eecSAndrew Geissler a native Linux system, you can still perform these steps by using 22*09209eecSAndrew Geissler CROss PlatformS (CROPS) and setting up a Poky container. See the 23*09209eecSAndrew Geissler :ref:`dev-manual/start:setting up to use cross platforms (crops)` 24*09209eecSAndrew Geissler section 25*09209eecSAndrew Geissler in the Yocto Project Development Tasks Manual for more 26*09209eecSAndrew Geissler information. 27*09209eecSAndrew Geissler 28*09209eecSAndrew Geissler - You may use Windows Subsystem For Linux v2 to set up a build host 29*09209eecSAndrew Geissler using Windows 10. 30*09209eecSAndrew Geissler 31*09209eecSAndrew Geissler .. note:: 32*09209eecSAndrew Geissler 33*09209eecSAndrew Geissler The Yocto Project is not compatible with WSLv1, it is 34*09209eecSAndrew Geissler compatible but not officially supported nor validated with 35*09209eecSAndrew Geissler WSLv2, if you still decide to use WSL please upgrade to WSLv2. 36*09209eecSAndrew Geissler 37*09209eecSAndrew Geissler See the :ref:`dev-manual/start:setting up to use windows 38*09209eecSAndrew Geissler subsystem for linux (wslv2)` section in the Yocto Project Development 39*09209eecSAndrew Geissler Tasks Manual for more information. 40*09209eecSAndrew Geissler 41*09209eecSAndrew GeisslerIf you want more conceptual or background information on the Yocto 42*09209eecSAndrew GeisslerProject, see the :doc:`/overview-manual/index`. 43*09209eecSAndrew Geissler 44*09209eecSAndrew GeisslerCompatible Linux Distribution 45*09209eecSAndrew Geissler============================= 46*09209eecSAndrew Geissler 47*09209eecSAndrew GeisslerMake sure your :term:`Build Host` meets the 48*09209eecSAndrew Geisslerfollowing requirements: 49*09209eecSAndrew Geissler 50*09209eecSAndrew Geissler- 50 Gbytes of free disk space 51*09209eecSAndrew Geissler 52*09209eecSAndrew Geissler- Runs a supported Linux distribution (i.e. recent releases of Fedora, 53*09209eecSAndrew Geissler openSUSE, CentOS, Debian, or Ubuntu). For a list of Linux 54*09209eecSAndrew Geissler distributions that support the Yocto Project, see the 55*09209eecSAndrew Geissler :ref:`ref-manual/system-requirements:supported linux distributions` 56*09209eecSAndrew Geissler section in the Yocto Project Reference Manual. For detailed 57*09209eecSAndrew Geissler information on preparing your build host, see the 58*09209eecSAndrew Geissler :ref:`dev-manual/start:preparing the build host` 59*09209eecSAndrew Geissler section in the Yocto Project Development Tasks Manual. 60*09209eecSAndrew Geissler 61*09209eecSAndrew Geissler- 62*09209eecSAndrew Geissler 63*09209eecSAndrew Geissler - Git 1.8.3.1 or greater 64*09209eecSAndrew Geissler - tar 1.28 or greater 65*09209eecSAndrew Geissler - Python 3.5.0 or greater. 66*09209eecSAndrew Geissler - gcc 5.0 or greater. 67*09209eecSAndrew Geissler 68*09209eecSAndrew GeisslerIf your build host does not meet any of these three listed version 69*09209eecSAndrew Geisslerrequirements, you can take steps to prepare the system so that you 70*09209eecSAndrew Geisslercan still use the Yocto Project. See the 71*09209eecSAndrew Geissler:ref:`ref-manual/system-requirements:required git, tar, python and gcc versions` 72*09209eecSAndrew Geisslersection in the Yocto Project Reference Manual for information. 73*09209eecSAndrew Geissler 74*09209eecSAndrew GeisslerBuild Host Packages 75*09209eecSAndrew Geissler=================== 76*09209eecSAndrew Geissler 77*09209eecSAndrew GeisslerYou must install essential host packages on your build host. The 78*09209eecSAndrew Geisslerfollowing command installs the host packages based on an Ubuntu 79*09209eecSAndrew Geisslerdistribution: 80*09209eecSAndrew Geissler 81*09209eecSAndrew Geissler.. code-block:: shell 82*09209eecSAndrew Geissler 83*09209eecSAndrew Geissler $ sudo apt-get install &UBUNTU_HOST_PACKAGES_ESSENTIAL; 84*09209eecSAndrew Geissler 85*09209eecSAndrew Geissler.. note:: 86*09209eecSAndrew Geissler 87*09209eecSAndrew Geissler For host package requirements on all supported Linux distributions, 88*09209eecSAndrew Geissler see the :ref:`ref-manual/system-requirements:required packages for the build host` 89*09209eecSAndrew Geissler section in the Yocto Project Reference Manual. 90*09209eecSAndrew Geissler 91*09209eecSAndrew GeisslerUse Git to Clone Poky 92*09209eecSAndrew Geissler===================== 93*09209eecSAndrew Geissler 94*09209eecSAndrew GeisslerOnce you complete the setup instructions for your machine, you need to 95*09209eecSAndrew Geisslerget a copy of the Poky repository on your build host. Use the following 96*09209eecSAndrew Geisslercommands to clone the Poky repository. 97*09209eecSAndrew Geissler 98*09209eecSAndrew Geissler.. code-block:: shell 99*09209eecSAndrew Geissler 100*09209eecSAndrew Geissler $ git clone git://git.yoctoproject.org/poky 101*09209eecSAndrew Geissler Cloning into 'poky'... 102*09209eecSAndrew Geissler remote: Counting 103*09209eecSAndrew Geissler objects: 432160, done. remote: Compressing objects: 100% 104*09209eecSAndrew Geissler (102056/102056), done. remote: Total 432160 (delta 323116), reused 105*09209eecSAndrew Geissler 432037 (delta 323000) Receiving objects: 100% (432160/432160), 153.81 MiB | 8.54 MiB/s, done. 106*09209eecSAndrew Geissler Resolving deltas: 100% (323116/323116), done. 107*09209eecSAndrew Geissler Checking connectivity... done. 108*09209eecSAndrew Geissler 109*09209eecSAndrew GeisslerMove to the ``poky`` directory and take a look at the tags: 110*09209eecSAndrew Geissler 111*09209eecSAndrew Geissler.. code-block:: shell 112*09209eecSAndrew Geissler 113*09209eecSAndrew Geissler $ cd poky 114*09209eecSAndrew Geissler $ git fetch --tags 115*09209eecSAndrew Geissler $ git tag 116*09209eecSAndrew Geissler 1.1_M1.final 117*09209eecSAndrew Geissler 1.1_M1.rc1 118*09209eecSAndrew Geissler 1.1_M1.rc2 119*09209eecSAndrew Geissler 1.1_M2.final 120*09209eecSAndrew Geissler 1.1_M2.rc1 121*09209eecSAndrew Geissler . 122*09209eecSAndrew Geissler . 123*09209eecSAndrew Geissler . 124*09209eecSAndrew Geissler yocto-2.5 125*09209eecSAndrew Geissler yocto-2.5.1 126*09209eecSAndrew Geissler yocto-2.5.2 127*09209eecSAndrew Geissler yocto-2.6 128*09209eecSAndrew Geissler yocto-2.6.1 129*09209eecSAndrew Geissler yocto-2.6.2 130*09209eecSAndrew Geissler yocto-2.7 131*09209eecSAndrew Geissler yocto_1.5_M5.rc8 132*09209eecSAndrew Geissler 133*09209eecSAndrew GeisslerFor this example, check out the branch based on the 134*09209eecSAndrew Geissler``&DISTRO_REL_TAG;`` release: 135*09209eecSAndrew Geissler 136*09209eecSAndrew Geissler.. code-block:: shell 137*09209eecSAndrew Geissler 138*09209eecSAndrew Geissler $ git checkout tags/&DISTRO_REL_TAG; -b my-&DISTRO_REL_TAG; 139*09209eecSAndrew Geissler Switched to a new branch 'my-&DISTRO_REL_TAG;' 140*09209eecSAndrew Geissler 141*09209eecSAndrew GeisslerThe previous Git checkout command creates a local branch named 142*09209eecSAndrew Geissler``my-&DISTRO_REL_TAG;``. The files available to you in that branch exactly 143*09209eecSAndrew Geisslermatch the repository's files in the ``&DISTRO_NAME_NO_CAP;`` development 144*09209eecSAndrew Geisslerbranch at the time of the Yocto Project &DISTRO_REL_TAG; release. 145*09209eecSAndrew Geissler 146*09209eecSAndrew GeisslerFor more options and information about accessing Yocto Project related 147*09209eecSAndrew Geisslerrepositories, see the 148*09209eecSAndrew Geissler:ref:`dev-manual/start:locating yocto project source files` 149*09209eecSAndrew Geisslersection in the Yocto Project Development Tasks Manual. 150*09209eecSAndrew Geissler 151*09209eecSAndrew GeisslerBuilding Your Image 152*09209eecSAndrew Geissler=================== 153*09209eecSAndrew Geissler 154*09209eecSAndrew GeisslerUse the following steps to build your image. The build process creates 155*09209eecSAndrew Geissleran entire Linux distribution, including the toolchain, from source. 156*09209eecSAndrew Geissler 157*09209eecSAndrew Geissler.. note:: 158*09209eecSAndrew Geissler 159*09209eecSAndrew Geissler - If you are working behind a firewall and your build host is not 160*09209eecSAndrew Geissler set up for proxies, you could encounter problems with the build 161*09209eecSAndrew Geissler process when fetching source code (e.g. fetcher failures or Git 162*09209eecSAndrew Geissler failures). 163*09209eecSAndrew Geissler 164*09209eecSAndrew Geissler - If you do not know your proxy settings, consult your local network 165*09209eecSAndrew Geissler infrastructure resources and get that information. A good starting 166*09209eecSAndrew Geissler point could also be to check your web browser settings. Finally, 167*09209eecSAndrew Geissler you can find more information on the 168*09209eecSAndrew Geissler ":yocto_wiki:`Working Behind a Network Proxy </Working_Behind_a_Network_Proxy>`" 169*09209eecSAndrew Geissler page of the Yocto Project Wiki. 170*09209eecSAndrew Geissler 171*09209eecSAndrew Geissler#. **Initialize the Build Environment:** From within the ``poky`` 172*09209eecSAndrew Geissler directory, run the :ref:`ref-manual/structure:\`\`oe-init-build-env\`\`` 173*09209eecSAndrew Geissler environment 174*09209eecSAndrew Geissler setup script to define Yocto Project's build environment on your 175*09209eecSAndrew Geissler build host. 176*09209eecSAndrew Geissler 177*09209eecSAndrew Geissler .. code-block:: shell 178*09209eecSAndrew Geissler 179*09209eecSAndrew Geissler $ cd ~/poky 180*09209eecSAndrew Geissler $ source oe-init-build-env 181*09209eecSAndrew Geissler You had no conf/local.conf file. This configuration file has therefore been 182*09209eecSAndrew Geissler created for you with some default values. You may wish to edit it to, for 183*09209eecSAndrew Geissler example, select a different MACHINE (target hardware). See conf/local.conf 184*09209eecSAndrew Geissler for more information as common configuration options are commented. 185*09209eecSAndrew Geissler 186*09209eecSAndrew Geissler You had no conf/bblayers.conf file. This configuration file has therefore 187*09209eecSAndrew Geissler been created for you with some default values. To add additional metadata 188*09209eecSAndrew Geissler layers into your configuration please add entries to conf/bblayers.conf. 189*09209eecSAndrew Geissler 190*09209eecSAndrew Geissler The Yocto Project has extensive documentation about OE including a reference 191*09209eecSAndrew Geissler manual which can be found at: 192*09209eecSAndrew Geissler http://yoctoproject.org/documentation 193*09209eecSAndrew Geissler 194*09209eecSAndrew Geissler For more information about OpenEmbedded see their website: 195*09209eecSAndrew Geissler http://www.openembedded.org/ 196*09209eecSAndrew Geissler 197*09209eecSAndrew Geissler ### Shell environment set up for builds. ### 198*09209eecSAndrew Geissler 199*09209eecSAndrew Geissler You can now run 'bitbake <target>' 200*09209eecSAndrew Geissler 201*09209eecSAndrew Geissler Common targets are: 202*09209eecSAndrew Geissler core-image-minimal 203*09209eecSAndrew Geissler core-image-sato 204*09209eecSAndrew Geissler meta-toolchain 205*09209eecSAndrew Geissler meta-ide-support 206*09209eecSAndrew Geissler 207*09209eecSAndrew Geissler You can also run generated qemu images with a command like 'runqemu qemux86-64' 208*09209eecSAndrew Geissler 209*09209eecSAndrew Geissler Among other things, the script creates the :term:`Build Directory`, which is 210*09209eecSAndrew Geissler ``build`` in this case and is located in the :term:`Source Directory`. After 211*09209eecSAndrew Geissler the script runs, your current working directory is set to the Build 212*09209eecSAndrew Geissler Directory. Later, when the build completes, the Build Directory contains all the 213*09209eecSAndrew Geissler files created during the build. 214*09209eecSAndrew Geissler 215*09209eecSAndrew Geissler#. **Examine Your Local Configuration File:** When you set up the build 216*09209eecSAndrew Geissler environment, a local configuration file named ``local.conf`` becomes 217*09209eecSAndrew Geissler available in a ``conf`` subdirectory of the Build Directory. For this 218*09209eecSAndrew Geissler example, the defaults are set to build for a ``qemux86`` target, 219*09209eecSAndrew Geissler which is suitable for emulation. The package manager used is set to 220*09209eecSAndrew Geissler the RPM package manager. 221*09209eecSAndrew Geissler 222*09209eecSAndrew Geissler .. tip:: 223*09209eecSAndrew Geissler 224*09209eecSAndrew Geissler You can significantly speed up your build and guard against fetcher 225*09209eecSAndrew Geissler failures by using mirrors. To use mirrors, add these lines to your 226*09209eecSAndrew Geissler local.conf file in the Build directory: :: 227*09209eecSAndrew Geissler 228*09209eecSAndrew Geissler SSTATE_MIRRORS = "\ 229*09209eecSAndrew Geissler file://.* http://sstate.yoctoproject.org/dev/PATH;downloadfilename=PATH \n \ 230*09209eecSAndrew Geissler file://.* http://sstate.yoctoproject.org/&YOCTO_DOC_VERSION_MINUS_ONE;/PATH;downloadfilename=PATH \n \ 231*09209eecSAndrew Geissler file://.* http://sstate.yoctoproject.org/&YOCTO_DOC_VERSION;/PATH;downloadfilename=PATH \n \ 232*09209eecSAndrew Geissler " 233*09209eecSAndrew Geissler 234*09209eecSAndrew Geissler 235*09209eecSAndrew Geissler The previous examples showed how to add sstate paths for Yocto Project 236*09209eecSAndrew Geissler &YOCTO_DOC_VERSION_MINUS_ONE;, &YOCTO_DOC_VERSION;, and a development 237*09209eecSAndrew Geissler area. For a complete index of sstate locations, see http://sstate.yoctoproject.org/. 238*09209eecSAndrew Geissler 239*09209eecSAndrew Geissler#. **Start the Build:** Continue with the following command to build an OS 240*09209eecSAndrew Geissler image for the target, which is ``core-image-sato`` in this example: 241*09209eecSAndrew Geissler 242*09209eecSAndrew Geissler .. code-block:: shell 243*09209eecSAndrew Geissler 244*09209eecSAndrew Geissler $ bitbake core-image-sato 245*09209eecSAndrew Geissler 246*09209eecSAndrew Geissler For information on using the ``bitbake`` command, see the 247*09209eecSAndrew Geissler :ref:`overview-manual/concepts:bitbake` section in the Yocto Project Overview and 248*09209eecSAndrew Geissler Concepts Manual, or see the ":ref:`BitBake Command 249*09209eecSAndrew Geissler <bitbake:bitbake-user-manual/bitbake-user-manual-intro:the bitbake command>`" section in the BitBake User Manual. 250*09209eecSAndrew Geissler 251*09209eecSAndrew Geissler#. **Simulate Your Image Using QEMU:** Once this particular image is 252*09209eecSAndrew Geissler built, you can start QEMU, which is a Quick EMUlator that ships with 253*09209eecSAndrew Geissler the Yocto Project: 254*09209eecSAndrew Geissler 255*09209eecSAndrew Geissler .. code-block:: shell 256*09209eecSAndrew Geissler 257*09209eecSAndrew Geissler $ runqemu qemux86-64 258*09209eecSAndrew Geissler 259*09209eecSAndrew Geissler If you want to learn more about running QEMU, see the 260*09209eecSAndrew Geissler :ref:`dev-manual/qemu:using the quick emulator (qemu)` chapter in 261*09209eecSAndrew Geissler the Yocto Project Development Tasks Manual. 262*09209eecSAndrew Geissler 263*09209eecSAndrew Geissler#. **Exit QEMU:** Exit QEMU by either clicking on the shutdown icon or by typing 264*09209eecSAndrew Geissler ``Ctrl-C`` in the QEMU transcript window from which you evoked QEMU. 265*09209eecSAndrew Geissler 266*09209eecSAndrew GeisslerCustomizing Your Build for Specific Hardware 267*09209eecSAndrew Geissler============================================ 268*09209eecSAndrew Geissler 269*09209eecSAndrew GeisslerSo far, all you have done is quickly built an image suitable for 270*09209eecSAndrew Geissleremulation only. This section shows you how to customize your build for 271*09209eecSAndrew Geisslerspecific hardware by adding a hardware layer into the Yocto Project 272*09209eecSAndrew Geisslerdevelopment environment. 273*09209eecSAndrew Geissler 274*09209eecSAndrew GeisslerIn general, layers are repositories that contain related sets of 275*09209eecSAndrew Geisslerinstructions and configurations that tell the Yocto Project what to do. 276*09209eecSAndrew GeisslerIsolating related metadata into functionally specific layers facilitates 277*09209eecSAndrew Geisslermodular development and makes it easier to reuse the layer metadata. 278*09209eecSAndrew Geissler 279*09209eecSAndrew Geissler.. note:: 280*09209eecSAndrew Geissler 281*09209eecSAndrew Geissler By convention, layer names start with the string "meta-". 282*09209eecSAndrew Geissler 283*09209eecSAndrew GeisslerFollow these steps to add a hardware layer: 284*09209eecSAndrew Geissler 285*09209eecSAndrew Geissler#. **Find a Layer:** Lots of hardware layers exist. The Yocto Project 286*09209eecSAndrew Geissler :yocto_git:`Source Repositories <>` has many hardware layers. 287*09209eecSAndrew Geissler This example adds the 288*09209eecSAndrew Geissler `meta-altera <https://github.com/kraj/meta-altera>`__ hardware layer. 289*09209eecSAndrew Geissler 290*09209eecSAndrew Geissler#. **Clone the Layer:** Use Git to make a local copy of the layer on your 291*09209eecSAndrew Geissler machine. You can put the copy in the top level of the copy of the 292*09209eecSAndrew Geissler Poky repository created earlier: 293*09209eecSAndrew Geissler 294*09209eecSAndrew Geissler .. code-block:: shell 295*09209eecSAndrew Geissler 296*09209eecSAndrew Geissler $ cd ~/poky 297*09209eecSAndrew Geissler $ git clone https://github.com/kraj/meta-altera.git 298*09209eecSAndrew Geissler Cloning into 'meta-altera'... 299*09209eecSAndrew Geissler remote: Counting objects: 25170, done. 300*09209eecSAndrew Geissler remote: Compressing objects: 100% (350/350), done. 301*09209eecSAndrew Geissler remote: Total 25170 (delta 645), reused 719 (delta 538), pack-reused 24219 302*09209eecSAndrew Geissler Receiving objects: 100% (25170/25170), 41.02 MiB | 1.64 MiB/s, done. 303*09209eecSAndrew Geissler Resolving deltas: 100% (13385/13385), done. 304*09209eecSAndrew Geissler Checking connectivity... done. 305*09209eecSAndrew Geissler 306*09209eecSAndrew Geissler The hardware layer now exists 307*09209eecSAndrew Geissler with other layers inside the Poky reference repository on your build 308*09209eecSAndrew Geissler host as ``meta-altera`` and contains all the metadata needed to 309*09209eecSAndrew Geissler support hardware from Altera, which is owned by Intel. 310*09209eecSAndrew Geissler 311*09209eecSAndrew Geissler .. note:: 312*09209eecSAndrew Geissler 313*09209eecSAndrew Geissler It is recommended for layers to have a branch per Yocto Project release. 314*09209eecSAndrew Geissler Please make sure to checkout the layer branch supporting the Yocto Project 315*09209eecSAndrew Geissler release you're using. 316*09209eecSAndrew Geissler 317*09209eecSAndrew Geissler#. **Change the Configuration to Build for a Specific Machine:** The 318*09209eecSAndrew Geissler :term:`MACHINE` variable in the 319*09209eecSAndrew Geissler ``local.conf`` file specifies the machine for the build. For this 320*09209eecSAndrew Geissler example, set the ``MACHINE`` variable to ``cyclone5``. These 321*09209eecSAndrew Geissler configurations are used: 322*09209eecSAndrew Geissler https://github.com/kraj/meta-altera/blob/master/conf/machine/cyclone5.conf. 323*09209eecSAndrew Geissler 324*09209eecSAndrew Geissler .. note:: 325*09209eecSAndrew Geissler 326*09209eecSAndrew Geissler See the "Examine Your Local Configuration File" step earlier for more 327*09209eecSAndrew Geissler information on configuring the build. 328*09209eecSAndrew Geissler 329*09209eecSAndrew Geissler#. **Add Your Layer to the Layer Configuration File:** Before you can use 330*09209eecSAndrew Geissler a layer during a build, you must add it to your ``bblayers.conf`` 331*09209eecSAndrew Geissler file, which is found in the 332*09209eecSAndrew Geissler :term:`Build Directory` ``conf`` 333*09209eecSAndrew Geissler directory. 334*09209eecSAndrew Geissler 335*09209eecSAndrew Geissler Use the ``bitbake-layers add-layer`` command to add the layer to the 336*09209eecSAndrew Geissler configuration file: 337*09209eecSAndrew Geissler 338*09209eecSAndrew Geissler .. code-block:: shell 339*09209eecSAndrew Geissler 340*09209eecSAndrew Geissler $ cd ~/poky/build 341*09209eecSAndrew Geissler $ bitbake-layers add-layer ../meta-altera 342*09209eecSAndrew Geissler NOTE: Starting bitbake server... 343*09209eecSAndrew Geissler Parsing recipes: 100% |##################################################################| Time: 0:00:32 344*09209eecSAndrew Geissler Parsing of 918 .bb files complete (0 cached, 918 parsed). 1401 targets, 345*09209eecSAndrew Geissler 123 skipped, 0 masked, 0 errors. 346*09209eecSAndrew Geissler 347*09209eecSAndrew Geissler You can find 348*09209eecSAndrew Geissler more information on adding layers in the 349*09209eecSAndrew Geissler :ref:`dev-manual/common-tasks:adding a layer using the \`\`bitbake-layers\`\` script` 350*09209eecSAndrew Geissler section. 351*09209eecSAndrew Geissler 352*09209eecSAndrew GeisslerCompleting these steps has added the ``meta-altera`` layer to your Yocto 353*09209eecSAndrew GeisslerProject development environment and configured it to build for the 354*09209eecSAndrew Geissler``cyclone5`` machine. 355*09209eecSAndrew Geissler 356*09209eecSAndrew Geissler.. note:: 357*09209eecSAndrew Geissler 358*09209eecSAndrew Geissler The previous steps are for demonstration purposes only. If you were 359*09209eecSAndrew Geissler to attempt to build an image for the ``cyclone5`` machine, you should 360*09209eecSAndrew Geissler read the Altera ``README``. 361*09209eecSAndrew Geissler 362*09209eecSAndrew GeisslerCreating Your Own General Layer 363*09209eecSAndrew Geissler=============================== 364*09209eecSAndrew Geissler 365*09209eecSAndrew GeisslerMaybe you have an application or specific set of behaviors you need to 366*09209eecSAndrew Geisslerisolate. You can create your own general layer using the 367*09209eecSAndrew Geissler``bitbake-layers create-layer`` command. The tool automates layer 368*09209eecSAndrew Geisslercreation by setting up a subdirectory with a ``layer.conf`` 369*09209eecSAndrew Geisslerconfiguration file, a ``recipes-example`` subdirectory that contains an 370*09209eecSAndrew Geissler``example.bb`` recipe, a licensing file, and a ``README``. 371*09209eecSAndrew Geissler 372*09209eecSAndrew GeisslerThe following commands run the tool to create a layer named 373*09209eecSAndrew Geissler``meta-mylayer`` in the ``poky`` directory: 374*09209eecSAndrew Geissler 375*09209eecSAndrew Geissler.. code-block:: shell 376*09209eecSAndrew Geissler 377*09209eecSAndrew Geissler $ cd ~/poky 378*09209eecSAndrew Geissler $ bitbake-layers create-layer meta-mylayer 379*09209eecSAndrew Geissler NOTE: Starting bitbake server... 380*09209eecSAndrew Geissler Add your new layer with 'bitbake-layers add-layer meta-mylayer' 381*09209eecSAndrew Geissler 382*09209eecSAndrew GeisslerFor more information 383*09209eecSAndrew Geissleron layers and how to create them, see the 384*09209eecSAndrew Geissler:ref:`dev-manual/common-tasks:creating a general layer using the \`\`bitbake-layers\`\` script` 385*09209eecSAndrew Geisslersection in the Yocto Project Development Tasks Manual. 386*09209eecSAndrew Geissler 387*09209eecSAndrew GeisslerWhere To Go Next 388*09209eecSAndrew Geissler================ 389*09209eecSAndrew Geissler 390*09209eecSAndrew GeisslerNow that you have experienced using the Yocto Project, you might be 391*09209eecSAndrew Geisslerasking yourself "What now?". The Yocto Project has many sources of 392*09209eecSAndrew Geisslerinformation including the website, wiki pages, and user manuals: 393*09209eecSAndrew Geissler 394*09209eecSAndrew Geissler- **Website:** The :yocto_home:`Yocto Project Website <>` provides 395*09209eecSAndrew Geissler background information, the latest builds, breaking news, full 396*09209eecSAndrew Geissler development documentation, and access to a rich Yocto Project 397*09209eecSAndrew Geissler Development Community into which you can tap. 398*09209eecSAndrew Geissler 399*09209eecSAndrew Geissler- **Developer Screencast:** The `Getting Started with the Yocto Project - 400*09209eecSAndrew Geissler New Developer Screencast Tutorial <http://vimeo.com/36450321>`__ 401*09209eecSAndrew Geissler provides a 30-minute video created for users unfamiliar with the 402*09209eecSAndrew Geissler Yocto Project but familiar with Linux build hosts. While this 403*09209eecSAndrew Geissler screencast is somewhat dated, the introductory and fundamental 404*09209eecSAndrew Geissler concepts are useful for the beginner. 405*09209eecSAndrew Geissler 406*09209eecSAndrew Geissler- **Yocto Project Overview and Concepts Manual:** The 407*09209eecSAndrew Geissler :doc:`/overview-manual/index` is a great 408*09209eecSAndrew Geissler place to start to learn about the Yocto Project. This manual 409*09209eecSAndrew Geissler introduces you to the Yocto Project and its development environment. 410*09209eecSAndrew Geissler The manual also provides conceptual information for various aspects 411*09209eecSAndrew Geissler of the Yocto Project. 412*09209eecSAndrew Geissler 413*09209eecSAndrew Geissler- **Yocto Project Wiki:** The :yocto_wiki:`Yocto Project Wiki <>` 414*09209eecSAndrew Geissler provides additional information on where to go next when ramping up 415*09209eecSAndrew Geissler with the Yocto Project, release information, project planning, and QA 416*09209eecSAndrew Geissler information. 417*09209eecSAndrew Geissler 418*09209eecSAndrew Geissler- **Yocto Project Mailing Lists:** Related mailing lists provide a forum 419*09209eecSAndrew Geissler for discussion, patch submission and announcements. Several mailing 420*09209eecSAndrew Geissler lists exist and are grouped according to areas of concern. See the 421*09209eecSAndrew Geissler :ref:`ref-manual/resources:mailing lists` 422*09209eecSAndrew Geissler section in the Yocto Project Reference Manual for a complete list of 423*09209eecSAndrew Geissler Yocto Project mailing lists. 424*09209eecSAndrew Geissler 425*09209eecSAndrew Geissler- **Comprehensive List of Links and Other Documentation:** The 426*09209eecSAndrew Geissler :ref:`ref-manual/resources:links and related documentation` 427*09209eecSAndrew Geissler section in the Yocto Project Reference Manual provides a 428*09209eecSAndrew Geissler comprehensive list of all related links and other user documentation. 429*09209eecSAndrew Geissler 430*09209eecSAndrew Geissler.. include:: /boilerplate.rst 431