%poky; ] >
My First Yocto Project Build ©RIGHT_YEAR; Linux Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-Share Alike 2.0 UK: England & Wales as published by Creative Commons.
Welcome! Welcome! This short document steps you through the process for a typical image build using the Yocto Project. You will use Yocto Project to build a reference embedded OS called Poky. The examples in this paper assume you are using a native Linux system running a recent Ubuntu Linux distribution. If the machine you want to use Yocto Project on to build an image is not a native Linux system, you can still perform these steps by using CROss PlatformS (CROPS) and setting up a Poky container. See the Setting Up to Use CROss PlatformS (CROPS)" section in the Yocto Project Development Tasks Manual for more information. If you want more conceptual or background information on the Yocto Project, see the Getting Started With Yocto Project Manual.
Compatible Linux Distribution Make sure your build system meets the following requirements: 50 Gbytes of free disk space Runs a supported Linux distribution (i.e. recent releases of Fedora, openSUSE, CentOS, Debian, or Ubuntu). For a list of Linux distributions that support the Yocto Project, see the "Supported Linux Distributions" section in the Yocto Project Reference Manual. Git 1.8.3.1 or greater tar 1.27 or greater Python 3.4.0 or greater. If your build host does not meet any of these three listed version requirements, you can take steps to prepare the system so that you can still use the Yocto Project. See the "Required Git, tar, and Python Versions" section in the Yocto Project Reference Manual for information.
Build System Packages You must install essential host packages on your development host. The following command installs the host packages based on an Ubuntu distribution: For host package requirements on all supported Linux distributions, see the "Required Packages for the Host Development System" section in the Yocto Project Reference Manual. $ sudo apt-get install &UBUNTU_HOST_PACKAGES_ESSENTIAL; libsdl1.2-dev xterm
Use Git to Clone Poky Once you complete the setup instructions for your machine, you need to get a copy of the Poky repository on your build system. Use the following commands to clone the Poky repository and then checkout the &DISTRO_REL_TAG; release: $ git clone git://git.yoctoproject.org/poky Cloning into 'poky'... remote: Counting objects: 361782, done. remote: Compressing objects: 100% (87100/87100), done. remote: Total 361782 (delta 268619), reused 361439 (delta 268277) Receiving objects: 100% (361782/361782), 131.94 MiB | 6.88 MiB/s, done. Resolving deltas: 100% (268619/268619), done. Checking connectivity... done. $ git checkout tags/yocto-2.5 -b my-yocto-2.5 The previous Git checkout command creates a local branch named my-&DISTRO_REL_TAG;. The files available to you in that branch exactly match the repository's files in the "&DISTRO_NAME_NO_CAP;" development branch at the time of the Yocto Project &DISTRO; release. For more options and information about accessing Yocto Project related repositories, see the "Working With Yocto Project Source Files" section in the Yocto Project Development Tasks Manual.
Building Your Image Use the following steps to build your image. The OpenEmbedded build system creates an entire Linux distribution, including the toolchain, from source. If you are working behind a firewall and your build host is not set up for proxies, you could encounter problems with the build process when fetching source code (e.g. fetcher failures or Git failures). If you do not know your proxy settings, consult your local network infrastructure resources and get that information. A good starting point could also be to check your web browser settings. Finally, you can find more information on the "Working Behind a Network Proxy" page of the Yocto Project Wiki. Initialize the Build Environment: Run the &OE_INIT_FILE; environment setup script to define the OpenEmbedded build environment on your build host. $ source &OE_INIT_FILE; Among other things, the script creates the Build Directory, which is build in this case and is located in the Source Directory. After the script runs, your current working directory is set to the Build Directory. Later, when the build completes, the Build Directory contains all the files created during the build. Examine Your Local Configuration File: When you set up the build environment, a local configuration file named local.conf becomes available in a conf subdirectory of the Build Directory. For this example, the defaults are set to build for a qemux86 target, which is suitable for emulation. The package manager used is set to the RPM package manager. You can significantly speed up your build and guard against fetcher failures by using mirrors. To use mirrors, add these lines to your local.conf file in the Build directory: SSTATE_MIRRORS = "\ file://.* http://sstate.yoctoproject.org/dev/PATH;downloadfilename=PATH \n \ file://.* http://sstate.yoctoproject.org/2.3/PATH;downloadfilename=PATH \n \ file://.* http://sstate.yoctoproject.org/2.4/PATH;downloadfilename=PATH \n \ " The previous examples showed how to add sstate paths for Yocto Project 2.3, 2.4, and a development area. For a complete index of sstate locations, see . Start the Build: Continue with the following command to build an OS image for the target, which is core-image-sato in this example: $ bitbake core-image-sato For information on using the bitbake command, see the "BitBake" section in the Yocto Project Overview Manual, or see the "BitBake Command" section in the BitBake User Manual. Simulate Your Image Using QEMU: Once this particular image is built, you can start QEMU, which is a Quick EMUlator that ships with the Yocto Project: $ runqemu qemux86 If you want to learn more about running QEMU, see the "Using the Quick EMUlator (QEMU)" chapter in the Yocto Project Development Tasks Manual. Exit QEMU: Exit QEMU by either clicking on the shutdown icon or by typing Ctrl-C in the QEMU transcript window from which you evoked QEMU.
Where To Go Next Now that you have experienced using the Yocto Project, you might be asking yourself "What now?" The Yocto Project has many sources of information including the website, wiki pages, and user manuals: Website: The Yocto Project Website provides background information, the latest builds, breaking news, full development documentation, and access to a rich Yocto Project Development Community into which you can tap. Developer Screencast: The Getting Started with the Yocto Project - New Developer Screencast Tutorial provides a 30-minute video created for users unfamiliar with the Yocto Project but familiar with Linux build hosts. While this screencast is somewhat dated, the introductory and fundamental concepts are useful for the beginner. Yocto Project Wiki: The Yocto Project Wiki provides additional information on where to go next when ramping up with the Yocto Project, release information, project planning, and QA information. Yocto Project Mailing Lists: Related mailing lists provide a forum for discussion, patch submission and announcements. Several mailing lists exist and are grouped according to areas of concern. See the "Mailing lists" section in the Yocto Project Reference Manual for a complete list of Yocto Project mailing lists. Comprehensive List of Links and Other Documentation: The "Links and Related Documentation" section in the Yocto Project Reference Manual provides a comprehensive list of all related links and other user documentation.