2015-02-03 19:09:28 +00:00
|
|
|
<!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-setup-and-use'>
|
|
|
|
|
|
|
|
<title>Setting Up and Using Toaster</title>
|
|
|
|
|
2015-10-22 18:42:07 +00:00
|
|
|
<section id='starting-toaster-for-local-development'>
|
|
|
|
<title>Starting Toaster for Local Development</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Once you have set up the Yocto Project and installed the
|
|
|
|
Toaster system dependencies as described in
|
|
|
|
"<link linkend='toaster-manual-start'>Preparing to Use Toaster</link>",
|
|
|
|
you are ready to start Toaster.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
If you want to configure and start your builds using the
|
|
|
|
Toaster web interface
|
|
|
|
(i.e. "<link linkend='toaster-build-mode'>Build Mode</link>"),
|
|
|
|
navigate to the root of your
|
|
|
|
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
|
|
|
|
(e.g. <filename>poky</filename>):
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ cd poky
|
|
|
|
</literallayout>
|
|
|
|
Next, start Toaster:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ bitbake/bin/toaster
|
|
|
|
</literallayout>
|
|
|
|
Open your favourite browser and enter the following:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
http://127.0.0.1:8000
|
|
|
|
</literallayout>
|
|
|
|
If you would rather configure and start your builds
|
|
|
|
using the command line
|
|
|
|
(i.e. <link linkend='toaster-analysis-mode'>Analysis Mode</link>),
|
|
|
|
you can get Toaster to "listen"
|
|
|
|
to your builds and collect information about them.
|
|
|
|
To do that, navigate to the root of your Source Directory:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ cd poky
|
|
|
|
</literallayout>
|
|
|
|
Once in that directory, source the build environment script:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ source oe-init-build-env
|
|
|
|
</literallayout>
|
|
|
|
Next, from the build directory (e.g.
|
|
|
|
<filename>poky/build</filename>), start Toaster using this
|
|
|
|
command:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ source ../bitbake/bin/toaster
|
|
|
|
</literallayout>
|
|
|
|
You can now run builds normally.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
To see the build information provided by Toaster, open your
|
|
|
|
favorite browser and enter the following:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
http://127.0.0.1:8000
|
|
|
|
</literallayout>
|
|
|
|
</para>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id='setting-a-different-port'>
|
|
|
|
<title>Setting a Different Port</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
By default, Toaster starts on port 8000.
|
|
|
|
You can use the <filename>WEBPORT</filename> parameter to
|
|
|
|
set a different port.
|
|
|
|
For example, either of the following commands sets the
|
|
|
|
port to "8400":
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ bitbake/bin/toaster webport=8400
|
|
|
|
</literallayout>
|
|
|
|
or
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ source ../bitbake/bin/toaster webport=8400
|
|
|
|
</literallayout>
|
|
|
|
</para>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id='the-directory-for-cloning-layers'>
|
|
|
|
<title>The Directory for Cloning Layers</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
If you are running Toaster in Build Mode, Toaster creates
|
|
|
|
a <filename>_toaster_clones</filename> directory inside
|
|
|
|
your Source Directory (i.e. <filename>poky</filename>).
|
|
|
|
For example, suppose you use this command to start Toaster:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
poky/bitbake/bin/toaster
|
|
|
|
</literallayout>
|
|
|
|
In this example, Toaster creates and uses the
|
|
|
|
<filename>poky/_toaster_clones</filename>
|
|
|
|
directory to clone any layers needed for your builds.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Alternatively, if you would like all of your Toaster related
|
|
|
|
files and directories to be in a particular location other than
|
|
|
|
the default, you can set the <filename>TOASTER_DIR</filename>
|
|
|
|
environment variable, which takes precedence over your current
|
|
|
|
working directory.
|
|
|
|
Setting this environment variable causes Toaster to create and use
|
|
|
|
<filename>$TOASTER_DIR./_toaster_clones</filename>.
|
|
|
|
</para>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id='toaster-the-build-directory'>
|
|
|
|
<title>The Build Directory</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
If you are running Toaster in Build Mode, Toaster creates a
|
|
|
|
build directory within your Source Directory (e.g.
|
|
|
|
<filename>poky</filename>).
|
|
|
|
For example, suppose you use this command to start Toaster:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
poky/bitbake/bin/toaster
|
|
|
|
</literallayout>
|
|
|
|
In this example, Toaster creates and uses the
|
|
|
|
<filename>poky/_toaster_clones</filename>
|
|
|
|
directory to execute the builds.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Alternatively, if you would like all of your Toaster related files
|
|
|
|
and directories to be in a particular location, you can set
|
|
|
|
the <filename>TOASTER_DIR</filename> environment variable,
|
|
|
|
which takes precedence over your current working directory.
|
|
|
|
Setting this environment variable causes Toaster to use
|
|
|
|
<filename>$TOASTER_DIR./build</filename> as the build directory.
|
|
|
|
</para>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id='toaster-creating-a-django-super-user'>
|
|
|
|
<title>Creating a Django Superuser</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Toaster is built on the Django framework.
|
|
|
|
Django provides an administration interface you can use
|
|
|
|
to edit Toaster configuration parameters.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
To access the Django administration interface, you must
|
|
|
|
create a superuser by following these steps:
|
|
|
|
<orderedlist>
|
|
|
|
<listitem><para>
|
|
|
|
If you used <filename>virtualenv</filename>, which is
|
|
|
|
recommended, to set up the Toaster system dependencies,
|
|
|
|
you need be sure the virtual environment is activated.
|
|
|
|
To activate this environment, use the following:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ source venv/bin/activate
|
|
|
|
</literallayout>
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
|
|
From the root of your checkout directory, invoke the
|
|
|
|
following command from <filename>manage.py</filename>:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ ./bitbake/lib/toaster/manage.py createsuperuser
|
|
|
|
</literallayout>
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
|
|
Django prompts you for the username, which you need to
|
|
|
|
provide.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
|
|
Django prompts you for an email address, which is
|
|
|
|
optional.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
|
|
Django prompts you for a password, which you must provide.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
|
|
Django prompts you to re-enter your password for verification.
|
|
|
|
</para></listitem>
|
|
|
|
</orderedlist>
|
|
|
|
After completing these steps, the following confirmation message
|
|
|
|
appears:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
Superuser created successfully.
|
|
|
|
</literallayout>
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Creating a superuser allows you to access the Django administration
|
|
|
|
interface through a browser.
|
|
|
|
The URL for this interface is the same as the URL used for the
|
|
|
|
Toaster instance with "/admin" on the end.
|
|
|
|
For example, if you are running Toaster locally, use the
|
|
|
|
following URL:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
http://127.0.0.1:8000/admin
|
|
|
|
</literallayout>
|
|
|
|
You can use the Django administration interface to set Toaster
|
|
|
|
configuration parameters such as the build directory, layer sources,
|
|
|
|
default variable values, and BitBake versions.
|
|
|
|
</para>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id='toaster-setting-up-a-production-instance-of-toaster'>
|
|
|
|
<title>Setting Up a Production Instance of Toaster</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
You can use a production instance of Toaster to share the
|
|
|
|
Toaster instance with remote users, multiple users, or both.
|
|
|
|
The production instance is also the setup that can cope with
|
|
|
|
heavier loads on the web service.
|
|
|
|
Use the instructions in the following sections to set up
|
|
|
|
Toaster in
|
|
|
|
<link linkend='toaster-build-mode'>Build Mode</link>
|
|
|
|
where builds and projects are run,
|
|
|
|
viewed, and defined through the Toaster web interface.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<section id='toaster-production-instance-requirements'>
|
|
|
|
<title>Requirements</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Be sure you meet the following requirements:
|
|
|
|
<note>
|
|
|
|
You must comply with all Apache,
|
|
|
|
<filename>mod-wsgi</filename>, and Mysql requirements.
|
|
|
|
</note>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>
|
|
|
|
Have all the build requirements as described in
|
|
|
|
"<link linkend='toaster-setting-up-the-basic-system-requirements'>Setting Up the Basic System Requirements</link>"
|
|
|
|
chapter.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
|
|
Have an Apache webserver.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
|
|
Have <filename>mod-wsgi</filename> for the Apache
|
|
|
|
webserver.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
|
|
Use the Mysql database server.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
|
|
If you are using Ubuntu 14.04.3, run the following:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ sudo apt-get install apache2 libapache2-mod-wsgi mysql-server virtualenv libmysqlclient-dev
|
|
|
|
</literallayout>
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
|
|
If you are using Fedora 22 or a RedHat distribution, run
|
|
|
|
the following:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ sudo dnf install httpd mod_wsgi python-virtualenv gcc mysql-devel
|
|
|
|
</literallayout>
|
|
|
|
</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</para>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id='toaster-installation-steps'>
|
|
|
|
<title>Installation</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Perform the following steps to install Toaster:
|
|
|
|
<orderedlist>
|
|
|
|
<listitem><para>
|
|
|
|
Checkout a copy of <filename>poky</filename>
|
|
|
|
into the web server directory.
|
|
|
|
You will be using <filename>/var/www/toaster</filename>:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ mkdir -p /var/www/toaster
|
|
|
|
$ cd /var/www/toaster/
|
|
|
|
$ git clone git://git.yoctoproject.org/poky
|
|
|
|
$ git checkout &DISTRO_NAME;
|
|
|
|
</literallayout>
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
|
|
Initialize a virtual environment and install Toaster
|
|
|
|
dependencies.
|
|
|
|
Using a virtual environment keeps the Python packages
|
|
|
|
isolated from your system-provided packages:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ cd /var/www/toaster/
|
|
|
|
$ virtualenv venv
|
|
|
|
$ source ./venv/bin/activate
|
|
|
|
$ pip install -r ./poky/bitbake/toaster-requirements.txt
|
|
|
|
$ pip install mysql
|
|
|
|
$ pip install MySQL-python
|
|
|
|
</literallayout>
|
|
|
|
<note>
|
|
|
|
Isolating these packages is not required but is
|
|
|
|
recommended.
|
|
|
|
Alternatively, you can use your operating system's
|
|
|
|
package manager to install the packages.
|
|
|
|
</note>
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
|
|
Configure Toaster by editing
|
|
|
|
<filename>/var/www/toaster/poky/bitbake/lib/toaster/toastermain/settings.py</filename>
|
|
|
|
as follows:
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>
|
|
|
|
Edit the <filename>DATABASE</filename> settings:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
DATABASES = {
|
|
|
|
'default': {
|
|
|
|
'ENGINE': 'django.db.backends.mysql',
|
|
|
|
'NAME': 'toaster_data',
|
|
|
|
'USER': 'toaster',
|
|
|
|
'PASSWORD': 'yourpasswordhere',
|
|
|
|
'HOST': 'localhost',
|
|
|
|
'PORT': '3306',
|
|
|
|
}
|
|
|
|
</literallayout>
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
|
|
Edit the <filename>SECRET_KEY</filename>:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
SECRET_KEY = '<replaceable>your_secret_key</replaceable>'
|
|
|
|
</literallayout>
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
|
|
Edit the <filename>STATIC_ROOT</filename>:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
STATIC_ROOT = '/var/www/toaster/static_files/'
|
|
|
|
</literallayout>
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
|
|
Enable Build Mode by adding the following
|
|
|
|
line to <filename>settings.py</filename>:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
BUILD_MODE=True
|
|
|
|
</literallayout>
|
|
|
|
</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
|
|
Add the database and user to the <filename>mysql</filename>
|
|
|
|
server defined earlier:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ mysql -u root -p
|
|
|
|
mysql> CREATE DATABASE toaster;
|
|
|
|
mysql> CREATE USER 'toaster'@'localhost' identified by 'yourpasswordhere';
|
|
|
|
mysql> GRANT all on toaster_data.* to 'toaster'@'localhost';
|
|
|
|
mysql> quit
|
|
|
|
</literallayout>
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
|
|
Get Toaster to create the database schema,
|
|
|
|
default data, and gather the statically-served files:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ cd /var/www/toaster/poky/
|
|
|
|
$ ./bitbake/lib/toaster/manage.py syncdb --migrate
|
|
|
|
$ ./bitbake/lib/toaster/manage.py loadconf ./meta-yocto/conf/toasterconf.json
|
|
|
|
$ ./bitbake/lib/toaster/manage.py lsupdates
|
|
|
|
$ ./bitbake/lib/toaster/manage.py collectstatic
|
|
|
|
</literallayout>
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
For the above set of commands, after moving to the
|
|
|
|
<filename>poky</filename> directory,
|
|
|
|
the <filename>syncdb</filename> command with the
|
|
|
|
<filename>migrate</filename> option makes sure the database
|
|
|
|
schema has had changes propagated correctly (i.e.
|
|
|
|
migrations).
|
|
|
|
See the
|
|
|
|
<ulink url='https://south.readthedocs.org/en/latest/commands.html#syncdb'><filename>syncdb</filename></ulink>
|
|
|
|
command for more information.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The
|
|
|
|
<link linkend='toaster-command-loadconf'><filename>loadconf</filename></link>
|
|
|
|
command loads the
|
|
|
|
<filename>./meta-yocto/conf/toasterconf.json</filename>
|
|
|
|
JSON file.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The <filename>lsupdates</filename> command fetches the
|
|
|
|
initial recipes and layers data from the layer index.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Finally, the <filename>collectstatic</filename> command
|
|
|
|
is a Django framework command that collects all the
|
|
|
|
statically served files into a designated directory to
|
|
|
|
be served up by the Apache web server.
|
|
|
|
For more information on this Django command, see
|
|
|
|
<ulink url='https://docs.djangoproject.com/en/1.7/ref/contrib/staticfiles/'></ulink>.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
|
|
Add an Apache configuration file for Toaster to your Apache web
|
|
|
|
server's configuration directory.
|
|
|
|
If you are using Ubuntu or Debian, put the file here:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
/etc/apache2/conf-available/toaster.conf
|
|
|
|
</literallayout>
|
|
|
|
If you are using Fedora or RedHat, put it here:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
/etc/httpd/conf.d/toaster.conf
|
|
|
|
</literallayout>
|
|
|
|
Following is a sample Apache configuration for Toaster
|
|
|
|
you can follow:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
Alias /static /var/www/toaster/static_files
|
|
|
|
<Directory /var/www/toaster/static_files>
|
|
|
|
Order allow,deny
|
|
|
|
Allow from all
|
|
|
|
Require all granted
|
|
|
|
</Directory>
|
|
|
|
|
|
|
|
WSGIDaemonProcess toaster_wsgi python-path=/var/www/toaster/poky/bitbake/lib/toaster:/var/www/toaster/venv/lib/python2.7/site-packages
|
|
|
|
|
|
|
|
WSGIScriptAlias / "/var/www/toaster/poky/bitbake/lib/toaster/toastermain/wsgi.py"
|
|
|
|
<Location />
|
|
|
|
WSGIProcessGroup toastern_wsgi
|
|
|
|
</Location>
|
|
|
|
</literallayout>
|
|
|
|
If you are using Ubuntu or Debian,
|
|
|
|
you will need to enable the config and module for Apache:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ sudo a2enmod wsgi
|
|
|
|
$ sudo a2enconf toaster
|
|
|
|
</literallayout>
|
|
|
|
Finally, restart Apache to make sure all new configuration
|
|
|
|
is loaded.
|
|
|
|
For Ubuntu and Debian use:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ sudo service apache2 restart
|
|
|
|
</literallayout>
|
|
|
|
For Fedora and RedHat use:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ sudo service httpd restart
|
|
|
|
</literallayout>
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
|
|
Install the build runner service.
|
|
|
|
This service needs to be running in order to dispatch
|
|
|
|
builds.
|
|
|
|
Use this command:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
/var/www/toaster/poky/bitbake/lib/toaster/manage.py runbuilds
|
|
|
|
</literallayout>
|
|
|
|
Here is an example:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
#!/bin/sh
|
|
|
|
# toaster run builds dispatcher
|
|
|
|
cd /var/www/toaster/
|
|
|
|
source ./venv/bin/activate
|
|
|
|
./bitbake/lib/toaster/manage.py runbuilds
|
|
|
|
</literallayout>
|
|
|
|
</para></listitem>
|
|
|
|
</orderedlist>
|
|
|
|
You can now open up a browser and start using Toaster.
|
|
|
|
</para>
|
|
|
|
</section>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- <section id='using-toaster-in-analysis-mode'>
|
2015-02-13 15:48:24 +00:00
|
|
|
<title>Using Toaster in Analysis Mode</title>
|
2015-02-03 19:09:28 +00:00
|
|
|
|
2015-10-22 18:42:07 +00:00
|
|
|
|
2015-02-03 19:09:28 +00:00
|
|
|
<para>
|
2015-02-13 15:48:24 +00:00
|
|
|
This section describes how to use Toaster in Analysis Mode
|
|
|
|
after setting Toaster up as a local instance or as a hosted
|
|
|
|
service.
|
2015-02-03 19:09:28 +00:00
|
|
|
</para>
|
|
|
|
|
2015-02-13 15:48:24 +00:00
|
|
|
<section id='setting-up-locally-and-running-in-analysis-mode'>
|
|
|
|
<title>Setting Up Locally and Running in Analysis Mode</title>
|
2015-02-03 19:09:28 +00:00
|
|
|
|
2015-02-13 15:48:24 +00:00
|
|
|
<para>
|
|
|
|
Follow these steps to set up a local instance of Toaster and
|
|
|
|
then run in Analysis Mode:
|
|
|
|
<orderedlist>
|
|
|
|
<listitem><para><emphasis>Prepare your Build System:</emphasis>
|
|
|
|
Be sure your system has the Toaster requirements
|
|
|
|
by following the steps in the
|
|
|
|
"<link linkend='toaster-establishing-toaster-system-dependencies'>Establishing Toaster System Dependencies</link>"
|
|
|
|
section.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Get Set Up to Use the Yocto Project:</emphasis>
|
|
|
|
Get the requirements set up so that you can use the
|
|
|
|
Yocto Project to build images.
|
|
|
|
See the
|
2015-05-21 17:12:19 +00:00
|
|
|
"<ulink url='&YOCTO_DOCS_QS_URL;#yp-resources'>Setting Up to Use the Yocto Project</ulink>"
|
2015-02-13 15:48:24 +00:00
|
|
|
section in the Yocto Project Quick Start for information.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Source your Build Environment Setup Script:</emphasis>
|
|
|
|
From your
|
2015-02-18 14:24:18 +00:00
|
|
|
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
|
2015-02-13 15:48:24 +00:00
|
|
|
(e.g. <filename>poky/build</filename>), source the build
|
2015-02-18 14:24:18 +00:00
|
|
|
environment setup script
|
2015-02-13 15:48:24 +00:00
|
|
|
<ulink url="&YOCTO_DOCS_REF_URL;#structure-core-script"><filename>&OE_INIT_FILE;</filename></ulink>
|
|
|
|
or
|
2015-02-18 14:24:18 +00:00
|
|
|
<ulink url="&YOCTO_DOCS_REF_URL;#structure-memres-core-script"><filename>oe-init-build-env-memres</filename></ulink>.
|
2015-02-13 15:48:24 +00:00
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Start Toaster:</emphasis>
|
|
|
|
From the
|
|
|
|
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>,
|
|
|
|
start Toaster:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ source toaster start
|
|
|
|
</literallayout>
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Start Your Build Using BitBake:</emphasis>
|
|
|
|
Use the <filename>bitbake</filename> command to start your
|
|
|
|
build.
|
|
|
|
Here is an example that builds the
|
|
|
|
<filename>core-image-minimal</filename> image:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ bitbake core-image-minimal
|
|
|
|
</literallayout>
|
|
|
|
</para></listitem>
|
2015-02-18 14:24:18 +00:00
|
|
|
<listitem><para><emphasis>Open Your Browser:</emphasis>
|
|
|
|
Open your browser and visit
|
|
|
|
<filename>http://host:port/toastergui</filename>.
|
|
|
|
For host and port values, see the output of the
|
|
|
|
<filename>source toaster start</filename> command.
|
|
|
|
For information on how to use Toaster, see the
|
|
|
|
"<link linkend='using-the-toaster-web-interface'>Using the Toaster Web Interface</link>"
|
|
|
|
section.
|
|
|
|
</para></listitem>
|
2015-02-13 15:48:24 +00:00
|
|
|
</orderedlist>
|
|
|
|
</para>
|
2015-02-03 19:09:28 +00:00
|
|
|
|
2015-02-13 15:48:24 +00:00
|
|
|
<para>
|
2015-02-18 14:24:18 +00:00
|
|
|
|
2015-02-13 15:48:24 +00:00
|
|
|
</para>
|
|
|
|
</section>
|
2015-02-03 19:09:28 +00:00
|
|
|
|
2015-02-13 15:48:24 +00:00
|
|
|
<section id='setting-up-a-hosted-service-and-running-in-analysis-mode'>
|
|
|
|
<title>Setting Up a Hosted Service and Running in Analysis Mode</title>
|
2015-02-03 19:09:28 +00:00
|
|
|
|
2015-02-13 15:48:24 +00:00
|
|
|
<para>
|
2015-02-18 14:24:18 +00:00
|
|
|
A hosted service resides on a shared server and allows
|
2015-02-13 15:48:24 +00:00
|
|
|
multiple users to take advantage of Toaster.
|
|
|
|
</para>
|
2015-02-03 19:09:28 +00:00
|
|
|
|
2015-02-13 15:48:24 +00:00
|
|
|
<para>
|
2015-02-18 14:24:18 +00:00
|
|
|
In a production environment, you might want to have multiple
|
|
|
|
local instances of the Toaster Logging Interface running on
|
|
|
|
various remote build machines, and have those local instances
|
|
|
|
access and use a single web server.
|
|
|
|
To do this, you need to do the following:
|
2015-02-13 15:48:24 +00:00
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>
|
2015-02-18 14:24:18 +00:00
|
|
|
Maintain a common SQL database.
|
2015-02-13 15:48:24 +00:00
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
2015-02-18 14:24:18 +00:00
|
|
|
Set up separate instances of BitBake servers
|
|
|
|
and Toaster Logging Interfaces for each of those
|
|
|
|
separate BitBake servers.
|
2015-02-13 15:48:24 +00:00
|
|
|
</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</para>
|
2015-02-03 19:09:28 +00:00
|
|
|
|
2015-02-13 15:48:24 +00:00
|
|
|
<para>
|
2015-02-18 14:24:18 +00:00
|
|
|
The common SQL database allows the Web server to show data from
|
2015-02-13 15:48:24 +00:00
|
|
|
all the various BitBake builds.
|
|
|
|
Setting the SQL database outside of any
|
|
|
|
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
|
2015-02-18 14:24:18 +00:00
|
|
|
maintains a separation between the various builds.
|
|
|
|
The BitBake servers, the SQL server, and the Web server or
|
|
|
|
servers can be run on separate machines.
|
2015-02-13 15:48:24 +00:00
|
|
|
</para>
|
2015-02-03 19:09:28 +00:00
|
|
|
|
2015-02-13 15:48:24 +00:00
|
|
|
<para>
|
|
|
|
Follow these steps to set up and run a hosted service and run
|
|
|
|
Toaster in Analysis Mode:
|
2015-02-18 14:24:18 +00:00
|
|
|
<note>
|
|
|
|
The steps assume a Toaster installation path of
|
|
|
|
<filename>/opt/bitbake/</filename>.
|
|
|
|
</note>
|
2015-02-13 15:48:24 +00:00
|
|
|
<orderedlist>
|
|
|
|
<listitem><para><emphasis>Prepare your Build System:</emphasis>
|
|
|
|
Be sure your system has the Toaster requirements
|
|
|
|
by following the steps in the
|
|
|
|
"<link linkend='toaster-establishing-toaster-system-dependencies'>Establishing Toaster System Dependencies</link>"
|
|
|
|
section.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Get Set Up to Use the Yocto Project:</emphasis>
|
|
|
|
Get the requirements set up so that you can use the
|
|
|
|
Yocto Project to build images.
|
|
|
|
See the
|
2015-05-21 17:12:19 +00:00
|
|
|
"<ulink url='&YOCTO_DOCS_QS_URL;#yp-resources'>Setting Up to Use the Yocto Project</ulink>"
|
2015-02-13 15:48:24 +00:00
|
|
|
section in the Yocto Project Quick Start for information.
|
|
|
|
</para></listitem>
|
2015-02-18 14:24:18 +00:00
|
|
|
<listitem><para><emphasis>Install and Set up the Database Server:</emphasis>
|
|
|
|
You can use any SQL server out of the box.
|
|
|
|
It is recommended that you use
|
|
|
|
<filename>mysql-server</filename> because it has
|
|
|
|
the advantages of advanced SQL features along with a
|
|
|
|
fast and reliable database.
|
|
|
|
However, setting up <filename>mysql-server</filename>
|
|
|
|
is more complex and might require a Database
|
|
|
|
Administrator to tune it.</para>
|
|
|
|
<para>Another supported database backend is
|
|
|
|
<filename>sqlite3</filename>.
|
|
|
|
With <filename>sqlite3</filename>, you have the
|
|
|
|
advantage of no configuration and an easy installation.
|
|
|
|
However, Toaster still requires direct access to the
|
|
|
|
backend.
|
|
|
|
The <filename>sqlite</filename> backend is also slower
|
|
|
|
as compared to <filename>mysql-server</filename>, and
|
|
|
|
has no transactional support.</para>
|
|
|
|
<para>You should set up proper username and password
|
|
|
|
access on the shared database for everyone that will
|
|
|
|
be using Toaster.
|
|
|
|
You need administrator rights for the root account,
|
|
|
|
which is not the same thing as root access on the
|
|
|
|
machine.
|
|
|
|
Here is an example that installs
|
|
|
|
<filename>mysql-server</filename> and sets up
|
|
|
|
some user accounts and the database.
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ apt-get install mysql-server
|
|
|
|
$ mysql -u root
|
|
|
|
mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
|
|
|
|
mysql> GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
|
|
|
|
mysql> GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
|
|
|
|
mysql> CREATE DATABASE 'toaster';
|
|
|
|
</literallayout>
|
|
|
|
You need a separate clone of the
|
|
|
|
<ulink url='&YOCTO_DOCS_DEV_URL;#source-repositories'>Source Repositories</ulink>
|
|
|
|
for the Database Server.
|
|
|
|
This clone is only used for getting the latest Toaster
|
|
|
|
files.
|
|
|
|
You can set this up using the following Git command.
|
|
|
|
Be sure to set up the directory outside of any
|
|
|
|
Build Directories.
|
2015-02-13 15:48:24 +00:00
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ git clone git://git.yoctoproject.org/poky
|
|
|
|
</literallayout>
|
2015-02-18 14:24:18 +00:00
|
|
|
In the separately cloned tree for the Database Server,
|
2015-02-13 15:48:24 +00:00
|
|
|
edit the
|
|
|
|
<filename>bitbake/lib/toaster/toastermain/settings.py</filename>
|
|
|
|
file so that the <filename>DATABASES</filename> value
|
|
|
|
points to the previously created database server.
|
|
|
|
Use the username and password established
|
2015-02-18 14:24:18 +00:00
|
|
|
earlier.
|
|
|
|
Here is an example:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ cat /opt/bitbake/lib/toaster/toastermain/settings.py
|
|
|
|
...
|
|
|
|
DATABASES = {
|
|
|
|
'default': {
|
|
|
|
'ENGINE': 'django.db.backends.mysql',
|
|
|
|
'NAME': 'toaster',
|
|
|
|
'USER': 'newuser',
|
|
|
|
'PASSWORD': 'password',
|
|
|
|
'HOST': '192.168.0.25',
|
|
|
|
'PORT': '3306',
|
|
|
|
}
|
|
|
|
...
|
|
|
|
</literallayout>
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Install and Set Up the Web Server:</emphasis>
|
|
|
|
For a production environment, it is recommended that
|
|
|
|
you install and set up a front-end web server.
|
|
|
|
This server allows for load balancing and
|
|
|
|
multi-threading over Toaster and
|
2015-04-01 21:45:56 +00:00
|
|
|
<ulink url='https://docs.djangoproject.com/en/1.7/howto/deployment/wsgi/'><filename>django</filename> WSGI</ulink>.
|
2015-02-18 14:24:18 +00:00
|
|
|
Here is an example that uses Apache web server.
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ apt-get install apache2 libapache2-mod-wsgi
|
|
|
|
$ a2enmod wsgi
|
|
|
|
$ cat /etc/apache2/sites-available/000-default.conf
|
|
|
|
|
|
|
|
...
|
|
|
|
|
|
|
|
# the WSGIPythonPath is global
|
|
|
|
WSGIPythonPath /opt/bitbake/lib/toaster/
|
|
|
|
|
|
|
|
...
|
|
|
|
|
|
|
|
#snip - in VirtualHost
|
|
|
|
WSGIScriptAlias / /opt/bitbake/lib/toaster/toastermain/wsgi.py
|
|
|
|
|
|
|
|
<Directory //opt/bitbake/lib/toaster/toastermain/>
|
|
|
|
<Files wsgi.py>
|
|
|
|
Require all granted
|
|
|
|
</Files>
|
|
|
|
</Directory>
|
|
|
|
|
|
|
|
...
|
|
|
|
</literallayout>
|
|
|
|
You need to collect static media from Toaster and
|
|
|
|
continue configuring Apache to serve that static
|
|
|
|
media:
|
2015-02-13 15:48:24 +00:00
|
|
|
<literallayout class='monospaced'>
|
2015-02-18 14:24:18 +00:00
|
|
|
$ mkdir /var/www.html/static && cd /var/www.html/static
|
|
|
|
$ /opt/bitbake/lib/toaster/manage.py collectstatic
|
|
|
|
$ cat /etc/apache2/sites-available/000-default.conf
|
|
|
|
|
|
|
|
...
|
|
|
|
|
|
|
|
# in VirtualHost, AHEAD of the WSGIScriptAlias definition
|
|
|
|
Alias /static/ /var/www.html/static/
|
|
|
|
|
|
|
|
<Directory /var/www.html/static/>
|
|
|
|
Require all granted
|
|
|
|
</Directory>
|
|
|
|
|
|
|
|
...
|
|
|
|
|
|
|
|
WSGIScript Alias / /opt/bitbake/lib/toaster/toastermain/wsgi.py
|
|
|
|
|
|
|
|
...
|
2015-02-13 15:48:24 +00:00
|
|
|
</literallayout>
|
2015-02-18 14:24:18 +00:00
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Start Toaster:</emphasis>
|
|
|
|
Synchronize the databases for toaster, and then start
|
|
|
|
up the web server.
|
|
|
|
Here is an example that continues with the assumed
|
|
|
|
components from the previous steps:
|
2015-02-13 15:48:24 +00:00
|
|
|
<literallayout class='monospaced'>
|
2015-02-18 14:24:18 +00:00
|
|
|
$ /opt/bitbake/lib/toaster/manage.py syncdb
|
|
|
|
$ /opt/bitbake/lib/toaster/manage.py migrate orm
|
|
|
|
$ /opt/bitbake/lib/toaster/manage.py migrate bldcontrol
|
|
|
|
|
|
|
|
$ service apache2 restart
|
2015-02-13 15:48:24 +00:00
|
|
|
</literallayout>
|
2015-02-18 14:24:18 +00:00
|
|
|
You can find general documentation on
|
|
|
|
<filename>manage.py</filename> at the
|
|
|
|
<ulink url='https://docs.djangoproject.com/en/1.7/ref/django-admin/'>Django</ulink>
|
|
|
|
site.
|
|
|
|
For reference information on Toaster-specific
|
|
|
|
<filename>manage.py</filename> commands,
|
|
|
|
see the
|
|
|
|
"<link linkend='toaster-useful-commands'>Useful Commands</link>"
|
|
|
|
section.
|
2015-02-13 15:48:24 +00:00
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Enable Build Logging to the Common SQL Server for Each Build Directory you are Using:</emphasis>
|
2015-04-22 14:47:48 +00:00
|
|
|
You need to make sure that the
|
2015-04-02 16:30:41 +00:00
|
|
|
<ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-toaster'><filename>toaster</filename></ulink>
|
2015-04-22 14:47:48 +00:00
|
|
|
class and build history are enabled.
|
|
|
|
This is done in a
|
|
|
|
<filename>toaster.conf</filename> file that is
|
|
|
|
created automatically by the toaster
|
|
|
|
<filename>start</filename> command,
|
|
|
|
and that lives inside the
|
2015-04-02 16:30:41 +00:00
|
|
|
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
|
|
|
|
in <filename>/conf/toaster.conf</filename>.</para>
|
|
|
|
<para>That file should include the following line:
|
2015-02-13 15:48:24 +00:00
|
|
|
<literallayout class='monospaced'>
|
2015-04-02 16:30:41 +00:00
|
|
|
INHERIT += "toaster buildhistory"
|
2015-02-13 15:48:24 +00:00
|
|
|
</literallayout>
|
2015-04-02 16:30:41 +00:00
|
|
|
For information on build history, see the
|
|
|
|
"<ulink url='&YOCTO_DOCS_REF_URL;#maintaining-build-output-quality'>Maintaining Build Output Quality</ulink>"
|
|
|
|
section in the Yocto Project Development
|
|
|
|
Manual.</para>
|
2015-04-22 14:47:48 +00:00
|
|
|
<para>You also need to point to the database that you set
|
|
|
|
up in step 3.
|
2015-04-02 16:30:41 +00:00
|
|
|
You can do this by exporting the <filename>DATABASE_URL</filename>
|
|
|
|
variable as follows:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
export DATABASE_URL=mysql://newuser:password@192.168.0.25:3306/toaster
|
|
|
|
</literallayout>
|
2015-04-22 14:47:48 +00:00
|
|
|
This example assumes that you are using
|
|
|
|
<filename>mysql-server</filename>.
|
|
|
|
The IP address should be the IP address of your
|
2015-04-02 16:30:41 +00:00
|
|
|
database server.
|
2015-02-13 15:48:24 +00:00
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Source your Build Environment Setup Script:</emphasis>
|
|
|
|
From your
|
2015-02-18 14:24:18 +00:00
|
|
|
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
|
2015-02-13 15:48:24 +00:00
|
|
|
on each of the build systems,
|
|
|
|
(e.g. <filename>poky/build</filename>), source the
|
|
|
|
build environment setup script (i.e.
|
|
|
|
<ulink url="&YOCTO_DOCS_REF_URL;#structure-core-script"><filename>&OE_INIT_FILE;</filename></ulink>
|
|
|
|
or
|
|
|
|
<ulink url="&YOCTO_DOCS_REF_URL;#structure-memres-core-script"><filename>oe-init-build-env-memres</filename></ulink>).
|
|
|
|
</para></listitem>
|
2015-02-18 14:24:18 +00:00
|
|
|
<listitem><para><emphasis>Start the BitBake Server:</emphasis>
|
|
|
|
Start the BitBake server using the following command:
|
|
|
|
<literallayout class='monospaced'>
|
2015-10-22 18:42:07 +00:00
|
|
|
$ bitbake ‐‐postread conf/toaster.conf ‐‐server-only -t xmlrpc -B localhost:0 && export BBSERVER=localhost:-1
|
2015-02-18 14:24:18 +00:00
|
|
|
</literallayout>
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Start the Logging Server:</emphasis>
|
|
|
|
Start the Toaster Logging Interface using the following
|
|
|
|
command:
|
|
|
|
<literallayout class='monospaced'>
|
2015-10-22 18:42:07 +00:00
|
|
|
$ nohup bitbake ‐‐observe-only -u toasterui >toaster_ui.log &
|
2015-02-18 14:24:18 +00:00
|
|
|
</literallayout>
|
|
|
|
<note>
|
|
|
|
No hard-coded ports are used in the BitBake options
|
|
|
|
as there is enough code to run
|
|
|
|
<filename>autodiscovery</filename> for BitBake
|
|
|
|
ports.
|
|
|
|
Doing so prevents collisions.
|
|
|
|
</note>
|
|
|
|
</para></listitem>
|
2015-02-13 15:48:24 +00:00
|
|
|
<listitem><para><emphasis>Start Builds Using BitBake:</emphasis>
|
|
|
|
Use the <filename>bitbake</filename> command to start a
|
|
|
|
build on a build system.
|
|
|
|
Here is an example that builds the
|
|
|
|
<filename>core-image-minimal</filename> image:
|
|
|
|
<literallayout class='monospaced'>
|
2015-02-03 19:09:28 +00:00
|
|
|
$ bitbake core-image-minimal
|
2015-02-13 15:48:24 +00:00
|
|
|
</literallayout>
|
|
|
|
When you are finished with a build in a given
|
|
|
|
Build Directory, be sure to <filename>kill</filename>
|
|
|
|
the BitBake server for that build area:
|
|
|
|
<literallayout class='monospaced'>
|
2015-02-03 19:09:28 +00:00
|
|
|
$ bitbake -m
|
2015-02-13 15:48:24 +00:00
|
|
|
</literallayout>
|
|
|
|
</para></listitem>
|
|
|
|
</orderedlist>
|
|
|
|
</para>
|
2015-02-03 19:09:28 +00:00
|
|
|
|
2015-02-13 15:48:24 +00:00
|
|
|
<para>
|
2015-02-18 14:24:18 +00:00
|
|
|
For information on how to use the Toaster web interface,
|
|
|
|
see the
|
|
|
|
"<link linkend='using-the-toaster-web-interface'>Using the Toaster Web Interface</link>"
|
2015-02-13 15:48:24 +00:00
|
|
|
section.
|
|
|
|
</para>
|
|
|
|
</section>
|
2015-02-03 19:09:28 +00:00
|
|
|
</section>
|
|
|
|
|
2015-02-13 15:48:24 +00:00
|
|
|
<section id='using-toaster-in-build-mode'>
|
|
|
|
<title>Using Toaster in Build Mode</title>
|
2015-02-03 19:09:28 +00:00
|
|
|
|
|
|
|
<para>
|
2015-02-13 15:48:24 +00:00
|
|
|
This section describes how to use Toaster in Build Mode
|
|
|
|
after setting Toaster up as a local instance or as a hosted
|
|
|
|
service.
|
2015-02-03 19:09:28 +00:00
|
|
|
</para>
|
2015-02-13 15:48:24 +00:00
|
|
|
|
|
|
|
<section id='setting-up-locally-and-running-in-build-mode'>
|
|
|
|
<title>Setting Up Locally and Running in Build Mode</title>
|
|
|
|
|
2015-02-18 14:24:18 +00:00
|
|
|
<para>
|
|
|
|
Follow these steps to set up a local instance of Toaster and
|
|
|
|
then run in Build Mode:
|
|
|
|
<orderedlist>
|
|
|
|
<listitem><para><emphasis>Prepare your Build System:</emphasis>
|
|
|
|
Be sure your system has the Toaster requirements
|
|
|
|
by following the steps in the
|
|
|
|
"<link linkend='toaster-establishing-toaster-system-dependencies'>Establishing Toaster System Dependencies</link>"
|
|
|
|
section.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Get Set Up to Use the Yocto Project:</emphasis>
|
|
|
|
Get the requirements set up so that you can use the
|
|
|
|
Yocto Project to build images.
|
|
|
|
See the
|
2015-05-21 17:12:19 +00:00
|
|
|
"<ulink url='&YOCTO_DOCS_QS_URL;#yp-resources'>Setting Up to Use the Yocto Project</ulink>"
|
2015-02-18 14:24:18 +00:00
|
|
|
section in the Yocto Project Quick Start for information.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Start Toaster:</emphasis>
|
|
|
|
From the root of the source directory (e.g
|
|
|
|
<filename>poky/</filename>), run the following command:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ bitbake/bin/toaster
|
|
|
|
</literallayout>
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Create a Superuser:</emphasis>
|
|
|
|
Django will ask you if you want to create a superuser.
|
|
|
|
You can skip this step, but it is recommended that you
|
|
|
|
create a superuser.
|
|
|
|
You can use the superuser to access the Django
|
|
|
|
administration interface and make changes to the
|
|
|
|
Toaster configuration.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Select the Build Log Directory:</emphasis>
|
|
|
|
Toaster asks you to specify the directory where you
|
|
|
|
want to store the build log files.
|
|
|
|
Choosing a directory for these files makes sure they
|
|
|
|
are always available to you.
|
|
|
|
If you do not choose a directory, the logs can
|
|
|
|
disappear (e.g. deleting the Build Directory).</para>
|
|
|
|
<para>When Toaster prompts you for the Build Log
|
|
|
|
directory, you can select the suggested default
|
|
|
|
or provide a path to a different directory.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Specify the Layer Checkout Directory:</emphasis>
|
|
|
|
Toaster asks you to specify the directory into which
|
|
|
|
layers are checked out.
|
|
|
|
Toaster clones any layers needed for your builds
|
|
|
|
inside this directory.</para>
|
|
|
|
<para>When Toaster prompts you for the Layer
|
|
|
|
checkout directory, you can select the suggested
|
|
|
|
default or provide a path to a different directory.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Specify the Build Directory Path:</emphasis>
|
|
|
|
Toaster asks you to specify the path to the
|
|
|
|
Build Directory.
|
|
|
|
You can select the suggested default or provide a
|
|
|
|
path to a different directory.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Choose Whether or not to Import a Default Toaster Configuration File:</emphasis>
|
|
|
|
Toaster asks you if you want to import a default
|
|
|
|
Toaster configuration file.
|
|
|
|
Toaster configurations are stored in
|
|
|
|
JSON files called
|
2015-04-01 21:45:56 +00:00
|
|
|
<filename>toasterconf.json</filename>.
|
2015-02-18 14:24:18 +00:00
|
|
|
For information on JSON files, see the
|
|
|
|
"<link linkend='toaster-json-files'>JSON Files</link>"
|
|
|
|
section.</para>
|
|
|
|
<para>You can skip importing a configuration file
|
|
|
|
by entering "0" at the prompt.
|
|
|
|
However, it is recommended that you import one of the
|
|
|
|
configuration files listed during this step.
|
|
|
|
You can always amend the imported configuration during
|
|
|
|
a later stage through the Django administration
|
|
|
|
interface.</para>
|
|
|
|
<para>For general information on Django, see the
|
|
|
|
available
|
|
|
|
<ulink url='https://docs.djangoproject.com/en/1.7/'>documentation</ulink>.
|
|
|
|
You can also find information on Toaster-specific
|
|
|
|
<filename>manage.py</filename> commands in the
|
|
|
|
"<link linkend='toaster-useful-commands'>Useful Commands</link>"
|
|
|
|
section.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Open the Browser:</emphasis>
|
|
|
|
If no browser window appears, open your favorite
|
|
|
|
browser and enter the following:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
http://localhost:8000/toastergui
|
|
|
|
</literallayout>
|
|
|
|
You can now use the Toaster web interface.
|
|
|
|
</para></listitem>
|
|
|
|
</orderedlist>
|
|
|
|
</para>
|
2015-02-13 15:48:24 +00:00
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id='setting-up-a-hosted-service-and-running-in-build-mode'>
|
|
|
|
<title>Setting Up a Hosted Service and Running in Build Mode</title>
|
|
|
|
|
2015-02-18 14:24:18 +00:00
|
|
|
<para>
|
|
|
|
Follow these steps to set up a hosted service and run Toaster
|
|
|
|
in Build Mode:
|
|
|
|
<orderedlist>
|
|
|
|
<listitem><para><emphasis>Prepare your Build System:</emphasis>
|
|
|
|
Be sure your system has the Toaster requirements
|
|
|
|
by following the steps in the
|
|
|
|
"<link linkend='toaster-establishing-toaster-system-dependencies'>Establishing Toaster System Dependencies</link>"
|
|
|
|
section.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Get Set Up to Use the Yocto Project:</emphasis>
|
|
|
|
Get the requirements set up so that you can use the
|
|
|
|
Yocto Project to build images.
|
|
|
|
See the
|
2015-05-21 17:12:19 +00:00
|
|
|
"<ulink url='&YOCTO_DOCS_QS_URL;#yp-resources'>Setting Up to Use the Yocto Project</ulink>"
|
2015-02-18 14:24:18 +00:00
|
|
|
section in the Yocto Project Quick Start for information.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Be Sure Management is Enabled:</emphasis>
|
|
|
|
If you are running Toaster under Apache, you need to
|
|
|
|
be sure management is enabled.
|
|
|
|
To enable management, set
|
|
|
|
<filename>MANAGED</filename> to "True" by adding
|
|
|
|
the following to the
|
|
|
|
<filename>bitbake/lib/toaster/settings.py</filename>
|
|
|
|
file:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
MANAGED="True"
|
|
|
|
</literallayout>
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Set Up Toaster for Normal Usage:</emphasis>
|
|
|
|
You need to configure each build environment, layer
|
|
|
|
sources, and BitBake versions.</para>
|
|
|
|
<para>Verify that your releases have been loaded correctly by
|
|
|
|
using the Toaster web interface to create a new
|
|
|
|
project.
|
|
|
|
Check the "Releases" dropdown menu to be sure your
|
|
|
|
newly specified releases exist.</para>
|
|
|
|
<para>If you want to use the administration interface
|
|
|
|
for this step, here is a set of example commands
|
|
|
|
with some descriptions as an example:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
# Create the user under which the builds will run
|
|
|
|
$ adduser poky
|
|
|
|
|
|
|
|
# Bring up the administration interface
|
|
|
|
$xdg-open http://<replaceable>server-address</replaceable>/admin/
|
|
|
|
|
|
|
|
# Login with the admin user previously created
|
|
|
|
|
|
|
|
# Go to the BuildEnvironment object in Build Environments and
|
|
|
|
# set address to local host, sourcedir to /home/poky, and
|
|
|
|
# builddir to /home/pokybuild.
|
|
|
|
#
|
|
|
|
# Save your changes and exit
|
|
|
|
|
|
|
|
# Go to Home, Layer Sources and select add Layer Source
|
|
|
|
# Name: OpenEmbedded, Sourcetype: layerindex,
|
|
|
|
# Apiurl: http://layers openembedded.org/layerindex/api/
|
|
|
|
# Save your changes and exit
|
|
|
|
|
|
|
|
# Go to Home, Bitbake Versions, Add bitbake version;
|
|
|
|
# Take version information from: http://git.openembedded.org/bitbake/refs/heads,
|
|
|
|
# This example assumes "master" version.
|
|
|
|
# set Name: master, Giturl git://git.openembedded.org/bitbake
|
|
|
|
# branch master, dirpath /
|
|
|
|
# Save your changes and exit
|
|
|
|
</literallayout>
|
|
|
|
You also need to configure the project releases, the
|
|
|
|
default variables, and update information from the
|
|
|
|
layer index.
|
|
|
|
Continuing with the example:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
# Go to Home, Releases, Add release
|
|
|
|
# set Name: master, Description: Current master release, select Bitbake Version,
|
|
|
|
# and Branch: master
|
|
|
|
# Save your changes and exit
|
|
|
|
|
|
|
|
# Go to Home, Toaster Settings, select the Setting for DEFAULT_RELEASE
|
|
|
|
# set Helptext: This selects the default release., Value: master
|
|
|
|
# Save your changes and exit
|
|
|
|
|
|
|
|
# Go to Home, Bitbake Versions, Add bitbake version;
|
2015-04-02 16:30:41 +00:00
|
|
|
# take version information from : http://git.openembedded.org/bitbake/refs/heads,
|
2015-02-18 14:24:18 +00:00
|
|
|
# this manual assumes the master version
|
|
|
|
# set Name: master, Giturl git://git.openembedded.org/bitbake
|
|
|
|
# branch master, dirpath /
|
|
|
|
# Save your changes and exit
|
|
|
|
|
|
|
|
# Update the information
|
|
|
|
# bitbake/lib/toaster/manage.py lsupdates
|
|
|
|
</literallayout>
|
|
|
|
For reference information on Toaster-specific
|
|
|
|
<filename>manage.py</filename> commands, see the
|
|
|
|
"<link linkend='toaster-useful-commands'>Useful Commands</link>"
|
|
|
|
section.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Install and Set up the Database Server:</emphasis>
|
|
|
|
You can use any SQL server out of the box.
|
|
|
|
It is recommended that you use
|
|
|
|
<filename>mysql-server</filename> because it has
|
|
|
|
the advantages of advanced SQL features along with a
|
|
|
|
fast and reliable database.
|
|
|
|
However, setting up <filename>mysql-server</filename>
|
|
|
|
is more complex and might require a Database
|
|
|
|
Administrator to tune it.</para>
|
|
|
|
<para>Another supported database backend is
|
|
|
|
<filename>sqlite3</filename>.
|
|
|
|
With <filename>sqlite3</filename>, you have the
|
|
|
|
advantage of no configuration and an easy installation.
|
|
|
|
However, Toaster still requires direct access to the
|
|
|
|
backend.
|
|
|
|
The <filename>sqlite</filename> backend is also slower
|
|
|
|
as compared to <filename>mysql-server</filename>, and
|
|
|
|
has no transactional support.</para>
|
|
|
|
<para>You should set up proper username and password
|
|
|
|
access on the shared database for everyone that will
|
|
|
|
be using Toaster.
|
|
|
|
You need administrator rights for the root account,
|
|
|
|
which is not the same thing as root access on the
|
|
|
|
machine.
|
|
|
|
Here is an example that installs
|
|
|
|
<filename>mysql-server</filename> and sets up
|
|
|
|
some user accounts and the database.
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ apt-get install mysql-server
|
|
|
|
$ mysql -u root
|
|
|
|
mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
|
|
|
|
mysql> GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
|
|
|
|
mysql> GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
|
|
|
|
mysql> CREATE DATABASE 'toaster';
|
|
|
|
</literallayout>
|
|
|
|
You need a separate clone of the
|
|
|
|
<ulink url='&YOCTO_DOCS_DEV_URL;#source-repositories'>Source Repositories</ulink>
|
|
|
|
for the Database Server.
|
|
|
|
This clone is only used for getting the latest Toaster
|
|
|
|
files.
|
|
|
|
You can set this up using the following Git command.
|
|
|
|
Be sure to set up the directory outside of any
|
|
|
|
Build Directories.
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ git clone git://git.yoctoproject.org/poky
|
|
|
|
</literallayout>
|
|
|
|
In the separately cloned tree for the Database Server,
|
|
|
|
edit the
|
|
|
|
<filename>bitbake/lib/toaster/toastermain/settings.py</filename>
|
|
|
|
file so that the <filename>DATABASES</filename> value
|
|
|
|
points to the previously created database server.
|
|
|
|
Use the username and password established
|
|
|
|
earlier.
|
|
|
|
Here is an example:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ cat /opt/bitbake/lib/toaster/toastermain/settings.py
|
|
|
|
...
|
|
|
|
DATABASES = {
|
|
|
|
'default': {
|
|
|
|
'ENGINE': 'django.db.backends.mysql',
|
|
|
|
'NAME': 'toaster',
|
|
|
|
'USER': 'newuser',
|
|
|
|
'PASSWORD': 'password',
|
|
|
|
'HOST': '192.168.0.25',
|
|
|
|
'PORT': '3306',
|
|
|
|
}
|
|
|
|
...
|
|
|
|
</literallayout>
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Create the Database</emphasis>
|
|
|
|
Use the following commands to create the default
|
|
|
|
database structure:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ bitbake/lib/toaster/manage.py syncdb
|
|
|
|
$ bitbake/lib/toaster/manage.py migrate orm
|
|
|
|
$ bitbake/lib/toaster/manage.py migrate bldcontrol
|
|
|
|
</literallayout>
|
|
|
|
The interface asks you if you want to create a
|
|
|
|
superuser.
|
|
|
|
Do not skip this step.
|
|
|
|
You will use the superuser account to access the
|
|
|
|
administration interface and make changes to the
|
|
|
|
Toaster configuration.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Select Where the Build Process Takes Place:</emphasis>
|
|
|
|
You need to create three directories for storing
|
|
|
|
build artifacts, downloading sources, and running
|
|
|
|
builds.
|
|
|
|
All three directories need to be writable by
|
2015-04-01 21:45:56 +00:00
|
|
|
the user, which is "poky" in this example.
|
2015-02-18 14:24:18 +00:00
|
|
|
The build artifacts directory needs to readable by the
|
|
|
|
apache user.
|
|
|
|
You also need free disk space in the range of
|
|
|
|
100 Gbytes.
|
|
|
|
Following are three suggested directories:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
/home/poky/buildartifacts/
|
|
|
|
/home/poky/build/
|
|
|
|
/home/poky/sources/
|
|
|
|
</literallayout>
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Set Up the <filename>toasterconf.json</filename> File:</emphasis>
|
2015-04-01 21:45:56 +00:00
|
|
|
<ulink url='https://wiki.yoctoproject.org/wiki/File:Toasterconf.json.txt.patch'>Download the hosted <filename>toasterconf.json</filename> file</ulink>
|
|
|
|
from the Yocto Project wiki and edit it to suit your
|
|
|
|
environment.
|
2015-02-18 14:24:18 +00:00
|
|
|
For information on the relevant sections of the file,
|
|
|
|
see the
|
|
|
|
"<link linkend='toaster-json-files'>JSON Files</link>"
|
2015-04-01 21:45:56 +00:00
|
|
|
section.</para>
|
|
|
|
<para>After editing the file, load it by running
|
|
|
|
the following:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ bitbake/lib/toaster/manage.py loadconf path-to-toasterconf.json-file
|
|
|
|
</literallayout>
|
|
|
|
For reference information on Toaster-specific
|
|
|
|
<filename>manage.py</filename>, see the
|
|
|
|
"<link linkend='toaster-useful-commands'>Useful Commands</link>"
|
2015-02-18 14:24:18 +00:00
|
|
|
section.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Check the Toaster Settings:</emphasis>
|
2015-04-01 21:45:56 +00:00
|
|
|
Configure the build environment by running the
|
|
|
|
following:
|
2015-02-18 14:24:18 +00:00
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ bitbake/lib/toaster/manage.py checksettings
|
|
|
|
</literallayout>
|
|
|
|
When prompted, paste in the directory paths created
|
2015-04-01 21:45:56 +00:00
|
|
|
previously during Step 7.
|
|
|
|
For reference information on Toaster-specific
|
|
|
|
<filename>manage.py</filename>, see the
|
|
|
|
"<link linkend='toaster-useful-commands'>Useful Commands</link>"
|
|
|
|
section.
|
2015-02-18 14:24:18 +00:00
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Install and Set Up the Web Server:</emphasis>
|
|
|
|
For a production environment, it is recommended that
|
|
|
|
you install and set up a front-end web server.
|
|
|
|
This server allows for load balancing and
|
|
|
|
multi-threading over Toaster and
|
2015-04-01 21:45:56 +00:00
|
|
|
<ulink url='https://docs.djangoproject.com/en/1.7/howto/deployment/wsgi/'><filename>django</filename> WSGI</ulink>.
|
2015-02-18 14:24:18 +00:00
|
|
|
Here is an example that uses Apache web server:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ apt-get install apache2 libapache2-mod-wsgi
|
|
|
|
$ a2enmod wsgi
|
|
|
|
$ cat /etc/apache2/sites-available/000-default.conf
|
|
|
|
|
|
|
|
...
|
|
|
|
|
|
|
|
# the WSGIPythonPath is global
|
|
|
|
WSGIPythonPath /opt/bitbake/lib/toaster/
|
|
|
|
|
|
|
|
...
|
|
|
|
|
|
|
|
#snip - in VirtualHost
|
|
|
|
WSGIScriptAlias / /opt/bitbake/lib/toaster/toastermain/wsgi.py
|
|
|
|
|
|
|
|
<Directory //opt/bitbake/lib/toaster/toastermain/>
|
|
|
|
<Files wsgi.py>
|
|
|
|
Require all granted
|
|
|
|
</Files>
|
|
|
|
</Directory>
|
|
|
|
|
|
|
|
...
|
|
|
|
</literallayout>
|
|
|
|
You need to collect static media from Toaster and
|
|
|
|
continue configuring Apache to serve that static
|
|
|
|
media:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ mkdir /var/www.html/static && cd /var/www.html/static
|
|
|
|
$ /opt bitbake/lib/toaster/manage.py collectstatic
|
|
|
|
$ cat /etc/apache2/sites-available/000-default.conf
|
|
|
|
|
|
|
|
...
|
|
|
|
|
|
|
|
# in VirtualHost, AHEAD of the WSGIScriptAlias definition
|
|
|
|
Alias /static/ /var/www.html/static/
|
|
|
|
|
|
|
|
<Directory /var/www.html/static/>
|
|
|
|
Require all granted
|
|
|
|
</Directory>
|
|
|
|
|
|
|
|
...
|
|
|
|
|
|
|
|
WSGIScript Alias / /opt/bitbake/lib/toaster/toastermain/wsgi.py
|
|
|
|
|
|
|
|
...
|
|
|
|
</literallayout>
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Start Toaster:</emphasis>
|
2015-04-01 21:45:56 +00:00
|
|
|
Synchronize the databases for Toaster, and then start
|
2015-02-18 14:24:18 +00:00
|
|
|
up the web server.
|
|
|
|
Here is an example that continues with the assumed
|
|
|
|
components from the previous steps:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ /opt/bitbake/lib/toaster/manage.py syncdb
|
|
|
|
$ /opt/bitbake/lib/toaster/manage.py migrate orm
|
|
|
|
$ /opt/bitbake/lib/toaster/manage.py migrate bldcontrol
|
|
|
|
|
|
|
|
$ service apache2 restart
|
|
|
|
</literallayout>
|
|
|
|
For reference information on the
|
|
|
|
<filename>manage.py</filename> commands used here,
|
|
|
|
see the
|
|
|
|
"<link linkend='toaster-useful-commands'>Useful Commands</link>"
|
|
|
|
section.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Set up Build Control and Open the Web Interface:</emphasis>
|
|
|
|
You need to run the build control manager.
|
|
|
|
You can do this as shown in the following example:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
# as the "poky" user, start the runbuilds command in a loop (or put it in crontab!)
|
|
|
|
$ sudo -i -u poky
|
|
|
|
$ while true; do /opt/bitbake/lib/toaster/manage.py runbuilds; sleep 10; done
|
|
|
|
|
|
|
|
# open up the web interface
|
|
|
|
$ xdg-open http://[server-address]/toastergui/
|
|
|
|
</literallayout>
|
|
|
|
It is suggested that you enable build control by
|
|
|
|
setting <filename>runbuilds</filename> in the
|
|
|
|
<filename>crontab</filename> as follows:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
$ crontab -l
|
|
|
|
* * * * * /opt/bitbake/lit/toaster/manage.py runbuilds
|
|
|
|
</literallayout>
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Open the Browser:</emphasis>
|
|
|
|
Once the Apache server is running, connect to it with
|
|
|
|
your favorite browser and verify that the Toaster
|
2015-04-01 21:45:56 +00:00
|
|
|
interface comes up:
|
2015-02-18 14:24:18 +00:00
|
|
|
<literallayout class='monospaced'>
|
|
|
|
http://localhost:8000/toastergui
|
|
|
|
</literallayout>
|
2015-04-22 14:47:48 +00:00
|
|
|
You can track accesses and errors in the Apache
|
2015-04-01 21:45:56 +00:00
|
|
|
service logs.
|
2015-02-18 14:24:18 +00:00
|
|
|
</para></listitem>
|
|
|
|
</orderedlist>
|
|
|
|
</para>
|
2015-02-13 15:48:24 +00:00
|
|
|
</section>
|
2015-02-03 19:09:28 +00:00
|
|
|
</section>
|
2015-10-22 18:42:07 +00:00
|
|
|
-->
|
2015-02-03 19:09:28 +00:00
|
|
|
|
2015-02-18 14:24:18 +00:00
|
|
|
<section id='using-the-toaster-web-interface'>
|
|
|
|
<title>Using the Toaster Web Interface</title>
|
2015-02-03 19:09:28 +00:00
|
|
|
|
|
|
|
<para>
|
2015-02-18 14:24:18 +00:00
|
|
|
The Toaster web interface allows you to do the following:
|
2015-02-03 19:09:28 +00:00
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>
|
2015-04-01 21:45:56 +00:00
|
|
|
Browse published layers in the
|
|
|
|
<ulink url='http://layers.openembedded.org'>OpenEmbedded Metadata Index</ulink>
|
|
|
|
that are available for your selected version of the build
|
|
|
|
system.
|
2015-02-18 14:24:18 +00:00
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
|
|
Import your own layers for building.
|
2015-02-03 19:09:28 +00:00
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
2015-02-18 14:24:18 +00:00
|
|
|
Add and remove layers from your configuration.
|
2015-02-03 19:09:28 +00:00
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
2015-02-18 14:24:18 +00:00
|
|
|
Set configuration variables.
|
2015-02-03 19:09:28 +00:00
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
2015-02-18 14:24:18 +00:00
|
|
|
Select a target or multiple targets to build.
|
2015-02-03 19:09:28 +00:00
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
2015-02-18 14:24:18 +00:00
|
|
|
Start your builds.
|
2015-02-03 19:09:28 +00:00
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
2015-02-18 14:24:18 +00:00
|
|
|
See what was built (recipes and packages) and what
|
|
|
|
packages were installed into your final image.
|
2015-02-03 19:09:28 +00:00
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
2015-02-18 14:24:18 +00:00
|
|
|
Browse the directory structure of your image.
|
2015-02-03 19:09:28 +00:00
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
2015-02-18 14:24:18 +00:00
|
|
|
See the value of all variables in your build configuration,
|
|
|
|
and which files set each value.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
|
|
Examine error, warning and trace messages to aid in
|
|
|
|
debugging.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
|
|
See information about the BitBake tasks executed and
|
|
|
|
reused during your build, including those that used
|
|
|
|
shared state.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
|
|
See dependency relationships between recipes, packages
|
|
|
|
and tasks.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
|
|
See performance information such as build time, task time,
|
|
|
|
CPU usage, and disk I/O.
|
2015-02-03 19:09:28 +00:00
|
|
|
</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</para>
|
2015-10-06 15:19:18 +00:00
|
|
|
|
|
|
|
<section id='web-interface-videos'>
|
|
|
|
<title>Toaster Web Interface Videos</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Following are several videos that show how to use the Toaster GUI:
|
|
|
|
<itemizedlist>
|
2015-10-22 18:42:07 +00:00
|
|
|
<listitem><para><emphasis>Build Custom Layers:</emphasis>
|
|
|
|
This
|
|
|
|
<ulink url='https://www.youtube.com/watch?v=QJzaE_XjX5c'>video</ulink>
|
|
|
|
shows you how to build custom layers that are used with
|
|
|
|
Toaster.
|
|
|
|
</para></listitem>
|
2015-10-06 15:19:18 +00:00
|
|
|
<listitem><para><emphasis>Build Configuration:</emphasis>
|
|
|
|
This
|
|
|
|
<ulink url='https://www.youtube.com/watch?v=qYgDZ8YzV6w'>video</ulink>
|
|
|
|
overviews and demonstrates build configuration for Toaster.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Toaster Homepage and Table Controls:</emphasis>
|
|
|
|
This
|
|
|
|
<ulink url='https://www.youtube.com/watch?v=QEARDnrR1Xw'>video</ulink>
|
|
|
|
goes over the Toaster entry page, and provides
|
|
|
|
an overview of the data manipulation capabilities of
|
|
|
|
Toaster, which include search, sorting and filtering by
|
|
|
|
different criteria.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Build Dashboard:</emphasis>
|
|
|
|
This
|
|
|
|
<ulink url='https://www.youtube.com/watch?v=KKqHYcnp2gE'>video</ulink>
|
|
|
|
shows you the build dashboard, a page providing an
|
|
|
|
overview of the information available for a selected build.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Image Information:</emphasis>
|
|
|
|
This
|
|
|
|
<ulink url='https://www.youtube.com/watch?v=XqYGFsmA0Rw'>video</ulink>
|
|
|
|
walks through the information Toaster provides
|
|
|
|
about images: packages installed and root file system.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Configuration:</emphasis>
|
|
|
|
This
|
|
|
|
<ulink url='https://www.youtube.com/watch?v=UW-j-T2TzIg'>video</ulink>
|
|
|
|
provides Toaster build configuration information.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Tasks:</emphasis>
|
|
|
|
This
|
|
|
|
<ulink url='https://www.youtube.com/watch?v=D4-9vGSxQtw'>video</ulink>
|
|
|
|
shows the information Toaster provides about the
|
|
|
|
tasks run by the build system.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Recipes and Packages Built:</emphasis>
|
|
|
|
This
|
|
|
|
<ulink url='https://www.youtube.com/watch?v=x-6dx4huNnw'>video</ulink>
|
|
|
|
shows the information Toaster provides about recipes
|
|
|
|
and packages built.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>Performance Data:</emphasis>
|
|
|
|
This
|
|
|
|
<ulink url='https://www.youtube.com/watch?v=qWGMrJoqusQ'>video</ulink>
|
|
|
|
shows the build performance data provided by
|
|
|
|
Toaster.
|
|
|
|
</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</para>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id='toaster-web-interface-preferred-version'>
|
|
|
|
<title>Building a Specific Recipe Given Multiple Versions</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Occasionally, a layer might provide more than one version of
|
|
|
|
the same recipe.
|
|
|
|
For example, the <filename>openembedded-core</filename> layer
|
|
|
|
provides two versions of the <filename>bash</filename> recipe
|
|
|
|
(i.e. 3.2.48 and 4.3.30-r0) and two versions of the
|
|
|
|
<filename>which</filename> recipe (i.e. 2.21 and 2.18).
|
|
|
|
The following figure shows this exact scenario:
|
|
|
|
<imagedata fileref="figures/bash-oecore.png" align="center" width="9in" depth="6in" />
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
By default, the OpenEmbedded build system builds one of the
|
|
|
|
two recipes.
|
|
|
|
For the <filename>bash</filename> case, version 4.3.30-r0 is
|
|
|
|
built by default.
|
|
|
|
Unfortunately, Toaster as it exists, is not able to override
|
|
|
|
the default recipe version.
|
|
|
|
If you would like to build bash 3.2.48, you need to set the
|
|
|
|
<ulink url='&YOCTO_DOCS_REF_URL;#var-PREFERRED_VERSION'><filename>PREFERRED_VERSION</filename></ulink>
|
|
|
|
variable.
|
|
|
|
You can do so from Toaster, using the "Add variable" form,
|
|
|
|
which is available in the "BitBake variables" page of the
|
|
|
|
project configuration section as shown in the following screen:
|
|
|
|
<imagedata fileref="figures/add-variable.png" align="center" width="9in" depth="6in" />
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
To specify <filename>bash</filename> 3.2.48 as the version to build,
|
|
|
|
enter "PREFERRED_VERSION_bash" in the "Variable" field, and "3.2.48"
|
|
|
|
in the "Value" field.
|
|
|
|
Next, click the "Add variable" button:
|
|
|
|
<imagedata fileref="figures/set-variable.png" align="center" width="9in" depth="6in" />
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
After clicking the "Add variable" button, the settings for
|
|
|
|
<filename>PREFERRED_VERSION</filename> are added to the bottom
|
|
|
|
of the BitBake variables list.
|
|
|
|
With these settings, the OpenEmbedded build system builds the
|
|
|
|
desired version of the recipe rather than the default version:
|
|
|
|
<imagedata fileref="figures/variable-added.png" align="center" width="9in" depth="6in" />
|
|
|
|
</para>
|
|
|
|
</section>
|
2015-03-30 17:13:20 +00:00
|
|
|
</section>
|
2015-02-18 14:24:18 +00:00
|
|
|
|
2015-03-30 17:13:20 +00:00
|
|
|
<!--
|
2015-02-18 14:24:18 +00:00
|
|
|
<section id='toaster-gui-vids-1'>
|
|
|
|
<title>Toaster Homepage and Table Controls</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This video goes over the Toaster entry page, and provides
|
|
|
|
an overview of the data manipulation capabilities of Toaster,
|
|
|
|
which include search, sorting and filtering by different
|
|
|
|
criteria.
|
|
|
|
<mediaobject>
|
|
|
|
<videoobject>
|
|
|
|
<videodata width="640" height="480" fileref="http://www.youtube.com/v/QEARDnrR1Xw"></videodata>
|
|
|
|
</videoobject>
|
|
|
|
</mediaobject>
|
|
|
|
</para>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id='toaster-gui-vids-2'>
|
|
|
|
<title>Build Dashboard</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This video shows you the build dashboard, a page providing an
|
|
|
|
overview of the information available for a selected build.
|
|
|
|
<mediaobject>
|
|
|
|
<videoobject>
|
|
|
|
<videodata width="640px" height="480px" fileref="http://www.youtube.com/v/KKqHYcnp2gE"></videodata>
|
|
|
|
</videoobject>
|
|
|
|
</mediaobject>
|
|
|
|
</para>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id='toaster-gui-vids-3'>
|
|
|
|
<title>Image Information</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This video walks through the information Toaster provides
|
|
|
|
about images: packages installed and root file system.
|
|
|
|
<mediaobject>
|
|
|
|
<videoobject>
|
|
|
|
<videodata width="640px" height="480px" fileref="http://www.youtube.com/v/XqYGFsmA0Rw"></videodata>
|
|
|
|
</videoobject>
|
|
|
|
</mediaobject>
|
|
|
|
</para>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id='toaster-gui-vids-4'>
|
|
|
|
<title>Configuration</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This video shows the information Toaster provides about build
|
|
|
|
configuration.
|
|
|
|
<mediaobject>
|
|
|
|
<videoobject>
|
|
|
|
<videodata width="640px" height="480px" fileref="http://www.youtube.com/v/UW-j-T2TzIg"></videodata>
|
|
|
|
</videoobject>
|
|
|
|
</mediaobject>
|
|
|
|
</para>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id='toaster-gui-vids-5'>
|
|
|
|
<title>Tasks</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This video shows the information Toaster provides about the
|
|
|
|
tasks run by the build system.
|
|
|
|
<mediaobject>
|
|
|
|
<videoobject>
|
|
|
|
<videodata width="640px" height="480px" fileref="http://www.youtube.com/v/D4-9vGSxQtw"></videodata>
|
|
|
|
</videoobject>
|
|
|
|
</mediaobject>
|
|
|
|
</para>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id='toaster-gui-vids-6'>
|
|
|
|
<title>Recipes and Packages Built</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This video shows the information Toaster provides about recipes
|
|
|
|
and packages built.
|
|
|
|
<mediaobject>
|
|
|
|
<videoobject>
|
|
|
|
<videodata width="640px" height="480px" fileref="http://www.youtube.com/v/x-6dx4huNnw"></videodata>
|
|
|
|
</videoobject>
|
2015-04-02 16:30:41 +00:00
|
|
|
</mediaobject>qYgDZ8YzV6w
|
2015-02-18 14:24:18 +00:00
|
|
|
</para>
|
|
|
|
</section>
|
|
|
|
<section id='toaster-gui-vids-7'>
|
|
|
|
<title>Performance Data</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This video shows the build performance data provided by
|
|
|
|
Toaster.
|
|
|
|
<mediaobject>
|
|
|
|
<videoobject>
|
|
|
|
<videodata width="640px" height="480px" fileref="http://www.youtube.com/v/qWGMrJoqusQ"></videodata>
|
|
|
|
</videoobject>
|
|
|
|
</mediaobject>
|
|
|
|
</para>
|
|
|
|
</section>
|
2015-03-30 17:13:20 +00:00
|
|
|
-->
|
2015-02-03 19:09:28 +00:00
|
|
|
</chapter>
|