<!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='toaster-manual-start'>

<title>Preparing to Use Toaster</title>

    <para>
        This chapter describes how you need to prepare your system in order to
        use Toaster.
    </para>

    <section id='toaster-setting-up-the-basic-system-requirements'>
        <title>Setting Up the Basic System Requirements</title>

        <para>
            You first need to be sure your build system is set up to run
            the Yocto Project.
            See the
            "<ulink url='&YOCTO_DOCS_QS_URL;#yp-resources'>What You Need and How You Get It</ulink>"
            section in the Yocto Project Quick Start for information on how
            to set up your system for the Yocto Project.
        </para>
    </section>

    <section id='toaster-establishing-toaster-system-dependencies'>
        <title>Establishing Toaster System Dependencies</title>

        <para>
            Toaster requires extra Python dependencies and
            <ulink url='http://www.libslack.org/daemon/'><filename>daemon</filename></ulink>
            in order to run.
            A Toaster requirements file named
            <filename>toaster-requirements.txt</filename> defines the
            Python dependencies.
            The requirements file is located in the
            <filename>bitbake</filename> directory, which is located in the
            root directory of the
            <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
            (e.g. <filename>poky/bitbake/toaster-requirements.txt</filename>).
            The dependencies appear in a <filename>pip</filename>,
            install-compatible format.
        </para>

        <section id='toaster-optional-virtual-environment'>
            <title>Optionally Setting Up a Python Virtual Environment</title>

            <para>
                It is highly recommended that you use a Python virtual
                environment that allows you to maintain a dedicated Python
                executable and its own set of installed modules.
                Doing so separates the executable from the Python and modules
                provided by the operating system and therefore avoids any
                version conflicts.
            </para>

            <para>
                Follow these steps to set up your virtual environment.
                These steps assume a Ubuntu distribution:
                <orderedlist>
                    <listitem><para><emphasis>Install <filename>virtualenv</filename>:</emphasis>
                        Install the supported
                        <filename>python-virtualenv</filename> package from your
                        distribution rather than using <filename>pip</filename>.
                        <literallayout class='monospaced'>
     $ sudo apt-get install python-virtualenv
                        </literallayout>
                        </para></listitem>
                    <listitem><para><emphasis>Create and Activate a Virtual Environment:</emphasis>
                        <literallayout class='monospaced'>
     $ virtualenv venv
     $ source venv/bin/activate
                        </literallayout>
                        </para></listitem>
                </orderedlist>
                <note>
                    If you do choose to set up a virtual environment in
                    which to run Toaster, you must initialize that
                    virtual environment each time you want to start
                    Toaster.
                    Use the following to initialize the environment just
                    before you start Toaster:
                    <literallayout class='monospaced'>
     $ source venv/bin/activate
                    </literallayout>
                </note>
            </para>
        </section>

        <section id='toaster-load-packages'>
            <title>Install Toaster Packages</title>

            <para>
                You need to install the packages that Toaster requires.
                Use this command:
                <literallayout class='monospaced'>
     $ pip install -r bitbake/toaster-requirements.txt
                </literallayout>
            </para>
        </section>

        <section id='toaster-install-daemon'>
            <title>Install <filename>daemon</filename></title>

            <para>
                Toaster depends on
                <ulink url='http://www.libslack.org/daemon/'><filename>daemon</filename></ulink>.
                Depending on your distribution, how you install
                <filename>daemon</filename> differs:
                <itemizedlist>
                    <listitem><para><emphasis>Debian-Based Systems:</emphasis>
                        If you are running a Debian-based distribution,
                        install <filename>daemon</filename> using the
                        following command:
                        <literallayout class='monospaced'>
     $ sudo apt-get install daemon​
                        </literallayout>
                        </para></listitem>
                    <listitem><para><emphasis>Non-Debian-Based Systems:</emphasis>
                        If you are not running a Debian-based distribution
                        (Redhat-based distribution such as Fedora),
                        you need to download ​the file relevant to the
                        architecture and then install
                        <filename>daemon</filename> manually.
                        Following are the commands for 64-bit distributions:
                        <literallayout class='monospaced'>
     $ wget http://libslack.org/daemon/download/daemon-0.6.4-1.x86_64.rpm
     $ sudo rpm -i daemon-0.6.4-1.x86_64.rpm
                        </literallayout>
                        Here are the commands for a 32-bit distribution:
                        <literallayout class='monospaced'>
     $ wget http://libslack.org/daemon/download/daemon-0.6.4-1.i686.rpm
     $ sudo rpm -i ​daemon-0.6.4-1.i686.rpm​
                        </literallayout>
                        </para></listitem>
                </itemizedlist>
            </para>
        </section>
    </section>
</chapter>
