12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025 |
- <!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>
- <section id='using-toaster-in-analysis-mode'>
- <title>Using Toaster in Analysis Mode</title>
- <para>
- This section describes how to use Toaster in Analysis Mode
- after setting Toaster up as a local instance or as a hosted
- service.
- </para>
- <section id='setting-up-locally-and-running-in-analysis-mode'>
- <title>Setting Up Locally and Running in Analysis Mode</title>
- <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
- "<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.
- </para></listitem>
- <listitem><para><emphasis>Source your Build Environment Setup Script:</emphasis>
- From your
- <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
- (e.g. <filename>poky/build</filename>), source the build
- environment setup script
- <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>
- <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>
- <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>
- </orderedlist>
- </para>
- <para>
- </para>
- </section>
- <section id='setting-up-a-hosted-service-and-running-in-analysis-mode'>
- <title>Setting Up a Hosted Service and Running in Analysis Mode</title>
- <para>
- A hosted service resides on a shared server and allows
- multiple users to take advantage of Toaster.
- </para>
- <para>
- 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:
- <itemizedlist>
- <listitem><para>
- Maintain a common SQL database.
- </para></listitem>
- <listitem><para>
- Set up separate instances of BitBake servers
- and Toaster Logging Interfaces for each of those
- separate BitBake servers.
- </para></listitem>
- </itemizedlist>
- </para>
- <para>
- The common SQL database allows the Web server to show data from
- all the various BitBake builds.
- Setting the SQL database outside of any
- <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
- 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.
- </para>
- <para>
- Follow these steps to set up and run a hosted service and run
- Toaster in Analysis Mode:
- <note>
- The steps assume a Toaster installation path of
- <filename>/opt/bitbake/</filename>.
- </note>
- <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
- "<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.
- </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>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
- <ulink url='https://docs.djangoproject.com/en/1.7/howto/deployment/wsgi/'><filename>django</filename> WSGI</ulink>.
- 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>
- 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:
- <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>
- 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.
- </para></listitem>
- <listitem><para><emphasis>Enable Build Logging to the Common SQL Server for Each Build Directory you are Using:</emphasis>
- You need to make sure that the
- <ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-toaster'><filename>toaster</filename></ulink>
- 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
- <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:
- <literallayout class='monospaced'>
- INHERIT += "toaster buildhistory"
- </literallayout>
- 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>
- <para>You also need to point to the database that you set
- up in step 3.
- 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>
- This example assumes that you are using
- <filename>mysql-server</filename>.
- The IP address should be the IP address of your
- database server.
- </para></listitem>
- <listitem><para><emphasis>Source your Build Environment Setup Script:</emphasis>
- From your
- <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
- 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>
- <listitem><para><emphasis>Start the BitBake Server:</emphasis>
- Start the BitBake server using the following command:
- <literallayout class='monospaced'>
- $ bitbake --postread conf/toaster.conf --server-only -t xmlrpc -B localhost:0 && export BBSERVER=localhost:-1
- </literallayout>
- </para></listitem>
- <listitem><para><emphasis>Start the Logging Server:</emphasis>
- Start the Toaster Logging Interface using the following
- command:
- <literallayout class='monospaced'>
- $ nohup bitbake --observe-only -u toasterui >toaster_ui.log &
- </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>
- <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'>
- $ bitbake core-image-minimal
- </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'>
- $ bitbake -m
- </literallayout>
- </para></listitem>
- </orderedlist>
- </para>
- <para>
- 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>"
- section.
- </para>
- </section>
- </section>
- <section id='using-toaster-in-build-mode'>
- <title>Using Toaster in Build Mode</title>
- <para>
- This section describes how to use Toaster in Build Mode
- after setting Toaster up as a local instance or as a hosted
- service.
- </para>
- <section id='setting-up-locally-and-running-in-build-mode'>
- <title>Setting Up Locally and Running in Build Mode</title>
- <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
- "<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.
- </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
- <filename>toasterconf.json</filename>.
- 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>
- </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>
- <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
- "<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.
- </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 "fido" version.
- # set Name: fido, Giturl git://git.openembedded.org/bitbake
- # branch fido, 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: fido, Description: Current fido release, select Bitbake Version,
- # and Branch: fido
- # Save your changes and exit
- # Go to Home, Toaster Settings, select the Setting for DEFAULT_RELEASE
- # set Helptext: This selects the default release., Value: fido
- # 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 manual assumes the fido version
- # set Name: fido, Giturl git://git.openembedded.org/bitbake
- # branch fido, 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
- the user, which is "poky" in this example.
- 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>
- <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.
- For information on the relevant sections of the file,
- see the
- "<link linkend='toaster-json-files'>JSON Files</link>"
- 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>"
- section.
- </para></listitem>
- <listitem><para><emphasis>Check the Toaster Settings:</emphasis>
- Configure the build environment by running the
- following:
- <literallayout class='monospaced'>
- $ bitbake/lib/toaster/manage.py checksettings
- </literallayout>
- When prompted, paste in the directory paths created
- 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.
- </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
- <ulink url='https://docs.djangoproject.com/en/1.7/howto/deployment/wsgi/'><filename>django</filename> WSGI</ulink>.
- 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>
- 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:
- <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
- interface comes up:
- <literallayout class='monospaced'>
- http://localhost:8000/toastergui
- </literallayout>
- You can track accesses and errors in the Apache
- service logs.
- </para></listitem>
- </orderedlist>
- </para>
- </section>
- </section>
- <section id='using-the-toaster-web-interface'>
- <title>Using the Toaster Web Interface</title>
- <para>
- The Toaster web interface allows you to do the following:
- <itemizedlist>
- <listitem><para>
- 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.
- </para></listitem>
- <listitem><para>
- Import your own layers for building.
- </para></listitem>
- <listitem><para>
- Add and remove layers from your configuration.
- </para></listitem>
- <listitem><para>
- Set configuration variables.
- </para></listitem>
- <listitem><para>
- Select a target or multiple targets to build.
- </para></listitem>
- <listitem><para>
- Start your builds.
- </para></listitem>
- <listitem><para>
- See what was built (recipes and packages) and what
- packages were installed into your final image.
- </para></listitem>
- <listitem><para>
- Browse the directory structure of your image.
- </para></listitem>
- <listitem><para>
- 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.
- </para></listitem>
- </itemizedlist>
- Following are several videos that show how to use the Toaster GUI:
- <itemizedlist>
- <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-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>
- </mediaobject>qYgDZ8YzV6w
- </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>
- -->
- </chapter>
|