| <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | 
 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" | 
 | [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > | 
 |  | 
 | <chapter id='dev-manual-intro'> | 
 |  | 
 | <title>The Yocto Project Development Manual</title> | 
 |     <section id='dev-intro'> | 
 |         <title>Introduction</title> | 
 |  | 
 |         <para> | 
 |             Welcome to the Yocto Project Development Manual! | 
 |             This manual provides information on how to use the Yocto Project to | 
 |             develop embedded Linux images and user-space applications that | 
 |             run on targeted devices. | 
 |             The manual provides an overview of image, kernel, and | 
 |             user-space application development using the Yocto Project. | 
 |             Because much of the information in this manual is general, it | 
 |             contains many references to other sources where you can find more | 
 |             detail. | 
 |             For example, you can find detailed information on Git, repositories, | 
 |             and open source in general in many places on the Internet. | 
 |             Another example specific to the Yocto Project is how to quickly | 
 |             set up your host development system and build an image, which you | 
 |             find in the | 
 |             <ulink url='&YOCTO_DOCS_QS_URL;'>Yocto Project Quick Start</ulink>. | 
 |         </para> | 
 |  | 
 |         <para> | 
 |             The Yocto Project Development Manual does, however, provide | 
 |             guidance and examples on how to change the kernel source code, | 
 |             reconfigure the kernel, and develop an application using | 
 |             <filename>devtool</filename>. | 
 |         </para> | 
 |  | 
 |         <note> | 
 |             By default, using the Yocto Project creates a Poky distribution. | 
 |             However, you can create your own distribution by providing key | 
 |             <link linkend='metadata'>Metadata</link>. | 
 |             A good example is Angstrom, which has had a distribution | 
 |             based on the Yocto Project since its inception. | 
 |             Other examples include commercial distributions like | 
 |             <ulink url='https://www.yoctoproject.org/organization/wind-river-systems'>Wind River Linux</ulink>, | 
 |             <ulink url='https://www.yoctoproject.org/organization/mentor-graphics'>Mentor Embedded Linux</ulink>, | 
 |             <ulink url='https://www.yoctoproject.org/organization/enea-ab'>ENEA Linux</ulink> | 
 |             and <ulink url='https://www.yoctoproject.org/ecosystem/member-organizations'>others</ulink>. | 
 |             See the "<link linkend='creating-your-own-distribution'>Creating Your Own Distribution</link>" | 
 |             section for more information. | 
 |         </note> | 
 |     </section> | 
 |  | 
 |     <section id='what-this-manual-provides'> | 
 |         <title>What This Manual Provides</title> | 
 |  | 
 |         <para> | 
 |             The following list describes what you can get from this manual: | 
 |             <itemizedlist> | 
 |                 <listitem><para>Information that lets you get set | 
 |                     up to develop using the Yocto Project.</para></listitem> | 
 |                 <listitem><para>Information to help developers who are new to | 
 |                     the open source environment and to the distributed revision | 
 |                     control system Git, which the Yocto Project uses. | 
 |                     </para></listitem> | 
 |                 <listitem><para>An understanding of common end-to-end | 
 |                     development models and tasks.</para></listitem> | 
 |                 <listitem><para>Information about common development tasks | 
 |                     generally used during image development for | 
 |                     embedded devices. | 
 |                     </para></listitem> | 
 |                 <listitem><para>Information on using the Yocto Project | 
 |                     integration of the QuickEMUlator (QEMU), which lets you | 
 |                     simulate running on hardware an image you have built using | 
 |                     the OpenEmbedded build system. | 
 |                     </para></listitem> | 
 |                 <listitem><para>Many references to other sources of related | 
 |                     information.</para></listitem> | 
 |             </itemizedlist> | 
 |         </para> | 
 |     </section> | 
 |  | 
 |     <section id='what-this-manual-does-not-provide'> | 
 |         <title>What this Manual Does Not Provide</title> | 
 |  | 
 |         <para> | 
 |             This manual will not give you the following: | 
 |             <itemizedlist> | 
 |                 <listitem><para><emphasis>Step-by-step instructions when those instructions exist in other Yocto | 
 |                     Project documentation:</emphasis> | 
 |                     For example, the | 
 |                     <ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Software Development Kit (SDK) Developer's Guide</ulink> | 
 |                     manual contains detailed instructions on how to install an | 
 |                     SDK, which is used to develop applications for target | 
 |                     hardware. | 
 |                     </para></listitem> | 
 |                 <listitem><para><emphasis>Reference material:</emphasis> | 
 |                     This type of material resides in an appropriate reference manual. | 
 |                     For example, system variables are documented in the | 
 |                     <ulink url='&YOCTO_DOCS_REF_URL;'>Yocto Project Reference Manual</ulink>. | 
 |                     </para></listitem> | 
 |                 <listitem><para><emphasis>Detailed public information that is not specific to the Yocto Project:</emphasis> | 
 |                     For example, exhaustive information on how to use Git is covered better through the | 
 |                     Internet than in this manual. | 
 |                     </para></listitem> | 
 |             </itemizedlist> | 
 |         </para> | 
 |     </section> | 
 |  | 
 |     <section id='other-information'> | 
 |         <title>Other Information</title> | 
 |  | 
 |         <para> | 
 |             Because this manual presents overview information for many different | 
 |             topics, supplemental information is recommended for full | 
 |             comprehension. | 
 |             The following list presents other sources of information you might find helpful: | 
 |             <itemizedlist> | 
 |                 <listitem><para><emphasis><ulink url='&YOCTO_HOME_URL;'>Yocto Project Website</ulink>: | 
 |                     </emphasis> The home page for the Yocto Project provides lots of information on the project | 
 |                     as well as links to software and documentation. | 
 |                     </para></listitem> | 
 |                 <listitem><para><emphasis> | 
 |                     <ulink url='&YOCTO_DOCS_QS_URL;'>Yocto Project Quick Start</ulink>:</emphasis> | 
 |                     This short document lets you get started | 
 |                     with the Yocto Project and quickly begin building an image. | 
 |                     </para></listitem> | 
 |                 <listitem><para><emphasis> | 
 |                     <ulink url='&YOCTO_DOCS_REF_URL;'>Yocto Project Reference Manual</ulink>:</emphasis> | 
 |                     This manual is a reference | 
 |                     guide to the OpenEmbedded build system, which is based on BitBake. | 
 |                     The build system is sometimes referred to as "Poky". | 
 |                     </para></listitem> | 
 |                 <listitem><para><emphasis> | 
 |                     <ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Software Development Kit (SDK) Developer's Guide</ulink>:</emphasis> | 
 |                     This guide provides information that lets you get going | 
 |                     with the standard or extensible SDK. | 
 |                     An SDK, with its cross-development toolchains, allows you | 
 |                     to develop projects inside or outside of the Yocto Project | 
 |                     environment. | 
 |                     </para></listitem> | 
 |                 <listitem><para><emphasis> | 
 |                     <ulink url='&YOCTO_DOCS_BSP_URL;'>Yocto Project Board Support Package (BSP) Developer's Guide</ulink>:</emphasis> | 
 |                     This guide defines the structure for BSP components. | 
 |                     Having a commonly understood structure encourages standardization. | 
 |                     </para></listitem> | 
 |                 <listitem><para><emphasis> | 
 |                     <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;'>Yocto Project Linux Kernel Development Manual</ulink>:</emphasis> | 
 |                     This manual describes how to work with Linux Yocto kernels as well as provides a bit | 
 |                     of conceptual information on the construction of the Yocto Linux kernel tree. | 
 |                     </para></listitem> | 
 |                 <listitem><para><emphasis> | 
 |                     <ulink url='&YOCTO_DOCS_PROF_URL;'>Yocto Project Profiling and Tracing Manual</ulink>:</emphasis> | 
 |                     This manual presents a set of common and generally useful tracing and | 
 |                     profiling schemes along with their applications (as appropriate) to each tool. | 
 |                     </para></listitem> | 
 |                 <listitem><para><emphasis> | 
 |                     <ulink url='&YOCTO_DOCS_TOAST_URL;'>Toaster User Manual</ulink>:</emphasis> | 
 |                     This manual introduces and describes how to set up and use | 
 |                     Toaster, which is a web interface to the Yocto Project's | 
 |                     <link linkend='build-system-term'>OpenEmbedded Build System</link>. | 
 |                     </para></listitem> | 
 |                 <listitem><para><emphasis> | 
 |                     <ulink url='http://www.youtube.com/watch?v=3ZlOu-gLsh0'> | 
 |                     Eclipse IDE Yocto Plug-in</ulink>:</emphasis> | 
 |                     A step-by-step instructional video that | 
 |                     demonstrates how an application developer uses Yocto Plug-in features within | 
 |                     the Eclipse IDE. | 
 |                     </para></listitem> | 
 |                 <listitem><para><emphasis> | 
 |                     <ulink url='&YOCTO_WIKI_URL;/wiki/FAQ'>FAQ</ulink>:</emphasis> | 
 |                     A list of commonly asked questions and their answers. | 
 |                     </para></listitem> | 
 |                 <listitem><para><emphasis> | 
 |                     <ulink url='&YOCTO_RELEASE_NOTES;'>Release Notes</ulink>:</emphasis> | 
 |                     Features, updates and known issues for the current | 
 |                     release of the Yocto Project. | 
 |                     </para></listitem> | 
 |                 <listitem><para><emphasis> | 
 |                     <ulink url='&YOCTO_HOME_URL;/tools-resources/projects/toaster'>Toaster</ulink>:</emphasis> | 
 |                     An Application Programming Interface (API) and web-based | 
 |                     interface to the OpenEmbedded build system, which uses | 
 |                     BitBake, that reports build information. | 
 |                     </para></listitem> | 
 |                 <listitem><para><emphasis> | 
 |                     <ulink url='&YOCTO_HOME_URL;/tools-resources/projects/build-appliance'>Build Appliance</ulink>:</emphasis> | 
 |                     A virtual machine that | 
 |                     enables you to build and boot a custom embedded Linux image | 
 |                     with the Yocto Project using a non-Linux development system. | 
 |                     </para></listitem> | 
 |                 <listitem><para><emphasis> | 
 |                     <ulink url='&YOCTO_BUGZILLA_URL;'>Bugzilla</ulink>:</emphasis> | 
 |                     The bug tracking application the Yocto Project uses. | 
 |                     If you find problems with the Yocto Project, you should report them using this | 
 |                     application. | 
 |                     </para></listitem> | 
 |                 <listitem><para><emphasis>Yocto Project Mailing Lists:</emphasis> | 
 |                     To subscribe to the Yocto Project mailing | 
 |                     lists, click on the following URLs and follow the instructions: | 
 |                     <itemizedlist> | 
 |                         <listitem><para><ulink url='&YOCTO_LISTS_URL;/listinfo/yocto'></ulink> | 
 |                             for a Yocto Project Discussions mailing list. | 
 |                             </para></listitem> | 
 |                         <listitem><para><ulink url='&YOCTO_LISTS_URL;/listinfo/poky'></ulink> | 
 |                             for a Yocto Project Discussions mailing list about the | 
 |                             OpenEmbedded build system (Poky). | 
 |                             </para></listitem> | 
 |                         <listitem><para><ulink url='&YOCTO_LISTS_URL;/listinfo/yocto-announce'></ulink> | 
 |                             for a mailing list to receive official Yocto Project announcements | 
 |                             as well as Yocto Project milestones. | 
 |                             </para></listitem> | 
 |                         <listitem><para><ulink url='&YOCTO_LISTS_URL;/listinfo'></ulink> | 
 |                             for a listing of all public mailing lists on | 
 |                             <filename>lists.yoctoproject.org</filename>. | 
 |                             </para></listitem> | 
 |                     </itemizedlist></para></listitem> | 
 |                 <listitem><para><emphasis>Internet Relay Chat (IRC):</emphasis> | 
 |                     Two IRC channels on freenode are available | 
 |                     for Yocto Project and Poky discussions: <filename>#yocto</filename> and | 
 |                     <filename>#poky</filename>, respectively. | 
 |                     </para></listitem> | 
 |                 <listitem><para><emphasis> | 
 |                     <ulink url='&OE_HOME_URL;'>OpenEmbedded</ulink>:</emphasis> | 
 |                     The build system used by the Yocto Project. | 
 |                     This project is the upstream, generic, embedded distribution | 
 |                     from which the Yocto Project derives its build system (Poky) | 
 |                     and to which it contributes. | 
 |                     </para></listitem> | 
 |                 <listitem><para><emphasis> | 
 |                     <ulink url='http://www.openembedded.org/wiki/BitBake'>BitBake</ulink>:</emphasis> | 
 |                     The tool used by the OpenEmbedded build system | 
 |                     to process project metadata. | 
 |                     </para></listitem> | 
 |                 <listitem><para><emphasis> | 
 |                     <ulink url='&YOCTO_DOCS_BB_URL;'>BitBake User Manual:</ulink></emphasis> | 
 |                     A comprehensive guide to the BitBake tool. | 
 |                     If you want information on BitBake, see this manual. | 
 |                     </para></listitem> | 
 |                 <listitem><para><emphasis> | 
 |                     <ulink url='http://wiki.qemu.org/Index.html'>Quick EMUlator (QEMU)</ulink>:</emphasis> | 
 |                     An open-source machine emulator and virtualizer. | 
 |                     </para></listitem> | 
 |             </itemizedlist> | 
 |         </para> | 
 |     </section> | 
 | </chapter> | 
 | <!-- | 
 | vim: expandtab tw=80 ts=4 | 
 | --> |