<!DOCTYPE book 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; ] >

<book id='toaster-manual' lang='en'
      xmlns:xi="http://www.w3.org/2003/XInclude"
      xmlns="http://docbook.org/ns/docbook"
      >
    <bookinfo>

        <mediaobject>
            <imageobject>
                <imagedata fileref='figures/toaster-title.png'
                    format='SVG'
                    align='left' scalefit='1' width='100%'/>
            </imageobject>
        </mediaobject>

        <title>
            Toaster User Manual
        </title>

        <authorgroup>
            <author>
                <firstname>Kristi</firstname> <surname>Rifenbark</surname>
                <affiliation>
                    <orgname>Scotty's Documentation Services, INC</orgname>
                </affiliation>
                <email>kristi@buzzcollectivemarketing.com</email>
            </author>
        </authorgroup>

        <revhistory>
            <revision>
                <revnumber>1.8</revnumber>
                <date>April 2015</date>
                <revremark>Released with the Yocto Project 1.8 Release.</revremark>
            </revision>
            <revision>
                <revnumber>2.0</revnumber>
                <date>October 2015</date>
                <revremark>Released with the Yocto Project 2.0 Release.</revremark>
            </revision>
            <revision>
                <revnumber>2.1</revnumber>
                <date>April 2016</date>
                <revremark>Released with the Yocto Project 2.1 Release.</revremark>
            </revision>
            <revision>
                <revnumber>2.2</revnumber>
                <date>October 2016</date>
                <revremark>Released with the Yocto Project 2.2 Release.</revremark>
            </revision>
            <revision>
                <revnumber>2.3</revnumber>
                <date>May 2017</date>
                <revremark>Released with the Yocto Project 2.3 Release.</revremark>
            </revision>
            <revision>
                <revnumber>2.4</revnumber>
                <date>October 2017</date>
                <revremark>Released with the Yocto Project 2.4 Release.</revremark>
            </revision>
            <revision>
                <revnumber>2.5</revnumber>
                <date>May 2018</date>
                <revremark>Released with the Yocto Project 2.5 Release.</revremark>
            </revision>
            <revision>
                <revnumber>2.6</revnumber>
                <date>November 2018</date>
                <revremark>Released with the Yocto Project 2.6 Release.</revremark>
            </revision>
            <revision>
                <revnumber>2.7</revnumber>
                <date>May 2019</date>
                <revremark>Released with the Yocto Project 2.7 Release.</revremark>
            </revision>
            <revision>
                <revnumber>3.0</revnumber>
                <date>&REL_MONTH_YEAR;</date>
                <revremark>Released with the Yocto Project 3.0 Release.</revremark>
            </revision>
       </revhistory>

    <copyright>
      <year>&COPYRIGHT_YEAR;</year>
      <holder>Linux Foundation</holder>
    </copyright>

    <legalnotice>
      <para>
        Permission is granted to copy, distribute and/or modify this document under
        the terms of the <ulink type="http" url="http://creativecommons.org/licenses/by-sa/2.0/uk/">Creative Commons Attribution-Share Alike 2.0 UK: England &amp; Wales</ulink> as published by Creative Commons.
      </para>
           <note><title>Manual Notes</title>
               <itemizedlist>
                   <listitem><para>
                       This version of the
                       <emphasis>Toaster User Manual</emphasis>
                       is for the &YOCTO_DOC_VERSION; release of the
                       Yocto Project.
                       To be sure you have the latest version of the manual
                       for this release, go to the
                       <ulink url='&YOCTO_HOME_URL;/documentation'>Yocto Project documentation page</ulink>
                       and select the manual from that site.
                       Manuals from the site are more up-to-date than manuals
                       derived from the Yocto Project released TAR files.
                       </para></listitem>
                   <listitem><para>
                       If you located this manual through a web search, the
                       version of the manual might not be the one you want
                       (e.g. the search might have returned a manual much
                       older than the Yocto Project version with which you
                       are working).
                       You can see all Yocto Project major releases by
                       visiting the
                       <ulink url='&YOCTO_WIKI_URL;/wiki/Releases'>Releases</ulink>
                       page.
                       If you need a version of this manual for a different
                       Yocto Project release, visit the
                       <ulink url='&YOCTO_HOME_URL;/documentation'>Yocto Project documentation page</ulink>
                       and select the manual set by using the
                       "ACTIVE RELEASES DOCUMENTATION" or "DOCUMENTS ARCHIVE"
                       pull-down menus.
                       </para></listitem>
                   <listitem><para>
                       To report any inaccuracies or problems with this
                       manual, send an email to the Yocto Project
                       discussion group at
                       <filename>yocto@yoctoproject.com</filename> or log into
                       the freenode <filename>#yocto</filename> channel.
                       </para></listitem>
               </itemizedlist>
           </note>

    </legalnotice>

    </bookinfo>

    <xi:include href="toaster-manual-intro.xml"/>

    <xi:include href="toaster-manual-start.xml"/>

    <xi:include href="toaster-manual-setup-and-use.xml"/>

    <xi:include href="toaster-manual-reference.xml"/>

</book>
<!--
vim: expandtab tw=80 ts=4
-->
