diff options
| -rw-r--r-- | documentation/toaster-manual/toaster-manual-setup-and-use.xml | 919 |
1 files changed, 5 insertions, 914 deletions
diff --git a/documentation/toaster-manual/toaster-manual-setup-and-use.xml b/documentation/toaster-manual/toaster-manual-setup-and-use.xml index 74c00c498c..8c7ff7bd0a 100644 --- a/documentation/toaster-manual/toaster-manual-setup-and-use.xml +++ b/documentation/toaster-manual/toaster-manual-setup-and-use.xml | |||
| @@ -53,12 +53,14 @@ | |||
| 53 | <literallayout class='monospaced'> | 53 | <literallayout class='monospaced'> |
| 54 | $ source ../bitbake/bin/toaster | 54 | $ source ../bitbake/bin/toaster |
| 55 | </literallayout> | 55 | </literallayout> |
| 56 | You can now run builds normally. | 56 | You can now run your builds from the command line, or with |
| 57 | Toaster as explained in section | ||
| 58 | "<link linkend='using-the-toaster-web-interface'>Using the Toaster Web Interface</link>". | ||
| 57 | </para> | 59 | </para> |
| 58 | 60 | ||
| 59 | <para> | 61 | <para> |
| 60 | To see the build information provided by Toaster, open your | 62 | To access the Toaster web interface, open your favorite |
| 61 | favorite browser and enter the following: | 63 | browser and enter the following: |
| 62 | <literallayout class='monospaced'> | 64 | <literallayout class='monospaced'> |
| 63 | http://127.0.0.1:8000 | 65 | http://127.0.0.1:8000 |
| 64 | </literallayout> | 66 | </literallayout> |
| @@ -473,816 +475,6 @@ | |||
| 473 | </section> | 475 | </section> |
| 474 | </section> | 476 | </section> |
| 475 | 477 | ||
| 476 | |||
| 477 | |||
| 478 | |||
| 479 | <!-- <section id='using-toaster-in-analysis-mode'> | ||
| 480 | <title>Using Toaster in Analysis Mode</title> | ||
| 481 | |||
| 482 | |||
| 483 | <para> | ||
| 484 | This section describes how to use Toaster in Analysis Mode | ||
| 485 | after setting Toaster up as a local instance or as a hosted | ||
| 486 | service. | ||
| 487 | </para> | ||
| 488 | |||
| 489 | <section id='setting-up-locally-and-running-in-analysis-mode'> | ||
| 490 | <title>Setting Up Locally and Running in Analysis Mode</title> | ||
| 491 | |||
| 492 | <para> | ||
| 493 | Follow these steps to set up a local instance of Toaster and | ||
| 494 | then run in Analysis Mode: | ||
| 495 | <orderedlist> | ||
| 496 | <listitem><para><emphasis>Prepare your Build System:</emphasis> | ||
| 497 | Be sure your system has the Toaster requirements | ||
| 498 | by following the steps in the | ||
| 499 | "<link linkend='toaster-establishing-toaster-system-dependencies'>Establishing Toaster System Dependencies</link>" | ||
| 500 | section. | ||
| 501 | </para></listitem> | ||
| 502 | <listitem><para><emphasis>Get Set Up to Use the Yocto Project:</emphasis> | ||
| 503 | Get the requirements set up so that you can use the | ||
| 504 | Yocto Project to build images. | ||
| 505 | See the | ||
| 506 | "<ulink url='&YOCTO_DOCS_QS_URL;#yp-resources'>Setting Up to Use the Yocto Project</ulink>" | ||
| 507 | section in the Yocto Project Quick Start for information. | ||
| 508 | </para></listitem> | ||
| 509 | <listitem><para><emphasis>Source your Build Environment Setup Script:</emphasis> | ||
| 510 | From your | ||
| 511 | <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink> | ||
| 512 | (e.g. <filename>poky/build</filename>), source the build | ||
| 513 | environment setup script | ||
| 514 | <ulink url="&YOCTO_DOCS_REF_URL;#structure-core-script"><filename>&OE_INIT_FILE;</filename></ulink> | ||
| 515 | or | ||
| 516 | <ulink url="&YOCTO_DOCS_REF_URL;#structure-memres-core-script"><filename>oe-init-build-env-memres</filename></ulink>. | ||
| 517 | </para></listitem> | ||
| 518 | <listitem><para><emphasis>Start Toaster:</emphasis> | ||
| 519 | From the | ||
| 520 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>, | ||
| 521 | start Toaster: | ||
| 522 | <literallayout class='monospaced'> | ||
| 523 | $ source toaster start | ||
| 524 | </literallayout> | ||
| 525 | </para></listitem> | ||
| 526 | <listitem><para><emphasis>Start Your Build Using BitBake:</emphasis> | ||
| 527 | Use the <filename>bitbake</filename> command to start your | ||
| 528 | build. | ||
| 529 | Here is an example that builds the | ||
| 530 | <filename>core-image-minimal</filename> image: | ||
| 531 | <literallayout class='monospaced'> | ||
| 532 | $ bitbake core-image-minimal | ||
| 533 | </literallayout> | ||
| 534 | </para></listitem> | ||
| 535 | <listitem><para><emphasis>Open Your Browser:</emphasis> | ||
| 536 | Open your browser and visit | ||
| 537 | <filename>http://host:port/toastergui</filename>. | ||
| 538 | For host and port values, see the output of the | ||
| 539 | <filename>source toaster start</filename> command. | ||
| 540 | For information on how to use Toaster, see the | ||
| 541 | "<link linkend='using-the-toaster-web-interface'>Using the Toaster Web Interface</link>" | ||
| 542 | section. | ||
| 543 | </para></listitem> | ||
| 544 | </orderedlist> | ||
| 545 | </para> | ||
| 546 | |||
| 547 | <para> | ||
| 548 | |||
| 549 | </para> | ||
| 550 | </section> | ||
| 551 | |||
| 552 | <section id='setting-up-a-hosted-service-and-running-in-analysis-mode'> | ||
| 553 | <title>Setting Up a Hosted Service and Running in Analysis Mode</title> | ||
| 554 | |||
| 555 | <para> | ||
| 556 | A hosted service resides on a shared server and allows | ||
| 557 | multiple users to take advantage of Toaster. | ||
| 558 | </para> | ||
| 559 | |||
| 560 | <para> | ||
| 561 | In a production environment, you might want to have multiple | ||
| 562 | local instances of the Toaster Logging Interface running on | ||
| 563 | various remote build machines, and have those local instances | ||
| 564 | access and use a single web server. | ||
| 565 | To do this, you need to do the following: | ||
| 566 | <itemizedlist> | ||
| 567 | <listitem><para> | ||
| 568 | Maintain a common SQL database. | ||
| 569 | </para></listitem> | ||
| 570 | <listitem><para> | ||
| 571 | Set up separate instances of BitBake servers | ||
| 572 | and Toaster Logging Interfaces for each of those | ||
| 573 | separate BitBake servers. | ||
| 574 | </para></listitem> | ||
| 575 | </itemizedlist> | ||
| 576 | </para> | ||
| 577 | |||
| 578 | <para> | ||
| 579 | The common SQL database allows the Web server to show data from | ||
| 580 | all the various BitBake builds. | ||
| 581 | Setting the SQL database outside of any | ||
| 582 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink> | ||
| 583 | maintains a separation between the various builds. | ||
| 584 | The BitBake servers, the SQL server, and the Web server or | ||
| 585 | servers can be run on separate machines. | ||
| 586 | </para> | ||
| 587 | |||
| 588 | <para> | ||
| 589 | Follow these steps to set up and run a hosted service and run | ||
| 590 | Toaster in Analysis Mode: | ||
| 591 | <note> | ||
| 592 | The steps assume a Toaster installation path of | ||
| 593 | <filename>/opt/bitbake/</filename>. | ||
| 594 | </note> | ||
| 595 | <orderedlist> | ||
| 596 | <listitem><para><emphasis>Prepare your Build System:</emphasis> | ||
| 597 | Be sure your system has the Toaster requirements | ||
| 598 | by following the steps in the | ||
| 599 | "<link linkend='toaster-establishing-toaster-system-dependencies'>Establishing Toaster System Dependencies</link>" | ||
| 600 | section. | ||
| 601 | </para></listitem> | ||
| 602 | <listitem><para><emphasis>Get Set Up to Use the Yocto Project:</emphasis> | ||
| 603 | Get the requirements set up so that you can use the | ||
| 604 | Yocto Project to build images. | ||
| 605 | See the | ||
| 606 | "<ulink url='&YOCTO_DOCS_QS_URL;#yp-resources'>Setting Up to Use the Yocto Project</ulink>" | ||
| 607 | section in the Yocto Project Quick Start for information. | ||
| 608 | </para></listitem> | ||
| 609 | <listitem><para><emphasis>Install and Set up the Database Server:</emphasis> | ||
| 610 | You can use any SQL server out of the box. | ||
| 611 | It is recommended that you use | ||
| 612 | <filename>mysql-server</filename> because it has | ||
| 613 | the advantages of advanced SQL features along with a | ||
| 614 | fast and reliable database. | ||
| 615 | However, setting up <filename>mysql-server</filename> | ||
| 616 | is more complex and might require a Database | ||
| 617 | Administrator to tune it.</para> | ||
| 618 | <para>Another supported database backend is | ||
| 619 | <filename>sqlite3</filename>. | ||
| 620 | With <filename>sqlite3</filename>, you have the | ||
| 621 | advantage of no configuration and an easy installation. | ||
| 622 | However, Toaster still requires direct access to the | ||
| 623 | backend. | ||
| 624 | The <filename>sqlite</filename> backend is also slower | ||
| 625 | as compared to <filename>mysql-server</filename>, and | ||
| 626 | has no transactional support.</para> | ||
| 627 | <para>You should set up proper username and password | ||
| 628 | access on the shared database for everyone that will | ||
| 629 | be using Toaster. | ||
| 630 | You need administrator rights for the root account, | ||
| 631 | which is not the same thing as root access on the | ||
| 632 | machine. | ||
| 633 | Here is an example that installs | ||
| 634 | <filename>mysql-server</filename> and sets up | ||
| 635 | some user accounts and the database. | ||
| 636 | <literallayout class='monospaced'> | ||
| 637 | $ apt-get install mysql-server | ||
| 638 | $ mysql -u root | ||
| 639 | mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password'; | ||
| 640 | mysql> GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost'; | ||
| 641 | mysql> GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost'; | ||
| 642 | mysql> CREATE DATABASE 'toaster'; | ||
| 643 | </literallayout> | ||
| 644 | You need a separate clone of the | ||
| 645 | <ulink url='&YOCTO_DOCS_DEV_URL;#source-repositories'>Source Repositories</ulink> | ||
| 646 | for the Database Server. | ||
| 647 | This clone is only used for getting the latest Toaster | ||
| 648 | files. | ||
| 649 | You can set this up using the following Git command. | ||
| 650 | Be sure to set up the directory outside of any | ||
| 651 | Build Directories. | ||
| 652 | <literallayout class='monospaced'> | ||
| 653 | $ git clone git://git.yoctoproject.org/poky | ||
| 654 | </literallayout> | ||
| 655 | In the separately cloned tree for the Database Server, | ||
| 656 | edit the | ||
| 657 | <filename>bitbake/lib/toaster/toastermain/settings.py</filename> | ||
| 658 | file so that the <filename>DATABASES</filename> value | ||
| 659 | points to the previously created database server. | ||
| 660 | Use the username and password established | ||
| 661 | earlier. | ||
| 662 | Here is an example: | ||
| 663 | <literallayout class='monospaced'> | ||
| 664 | $ cat /opt/bitbake/lib/toaster/toastermain/settings.py | ||
| 665 | ... | ||
| 666 | DATABASES = { | ||
| 667 | 'default': { | ||
| 668 | 'ENGINE': 'django.db.backends.mysql', | ||
| 669 | 'NAME': 'toaster', | ||
| 670 | 'USER': 'newuser', | ||
| 671 | 'PASSWORD': 'password', | ||
| 672 | 'HOST': '192.168.0.25', | ||
| 673 | 'PORT': '3306', | ||
| 674 | } | ||
| 675 | ... | ||
| 676 | </literallayout> | ||
| 677 | </para></listitem> | ||
| 678 | <listitem><para><emphasis>Install and Set Up the Web Server:</emphasis> | ||
| 679 | For a production environment, it is recommended that | ||
| 680 | you install and set up a front-end web server. | ||
| 681 | This server allows for load balancing and | ||
| 682 | multi-threading over Toaster and | ||
| 683 | <ulink url='https://docs.djangoproject.com/en/1.7/howto/deployment/wsgi/'><filename>django</filename> WSGI</ulink>. | ||
| 684 | Here is an example that uses Apache web server. | ||
| 685 | <literallayout class='monospaced'> | ||
| 686 | $ apt-get install apache2 libapache2-mod-wsgi | ||
| 687 | $ a2enmod wsgi | ||
| 688 | $ cat /etc/apache2/sites-available/000-default.conf | ||
| 689 | |||
| 690 | ... | ||
| 691 | |||
| 692 | # the WSGIPythonPath is global | ||
| 693 | WSGIPythonPath /opt/bitbake/lib/toaster/ | ||
| 694 | |||
| 695 | ... | ||
| 696 | |||
| 697 | #snip - in VirtualHost | ||
| 698 | WSGIScriptAlias / /opt/bitbake/lib/toaster/toastermain/wsgi.py | ||
| 699 | |||
| 700 | <Directory //opt/bitbake/lib/toaster/toastermain/> | ||
| 701 | <Files wsgi.py> | ||
| 702 | Require all granted | ||
| 703 | </Files> | ||
| 704 | </Directory> | ||
| 705 | |||
| 706 | ... | ||
| 707 | </literallayout> | ||
| 708 | You need to collect static media from Toaster and | ||
| 709 | continue configuring Apache to serve that static | ||
| 710 | media: | ||
| 711 | <literallayout class='monospaced'> | ||
| 712 | $ mkdir /var/www.html/static && cd /var/www.html/static | ||
| 713 | $ /opt/bitbake/lib/toaster/manage.py collectstatic | ||
| 714 | $ cat /etc/apache2/sites-available/000-default.conf | ||
| 715 | |||
| 716 | ... | ||
| 717 | |||
| 718 | # in VirtualHost, AHEAD of the WSGIScriptAlias definition | ||
| 719 | Alias /static/ /var/www.html/static/ | ||
| 720 | |||
| 721 | <Directory /var/www.html/static/> | ||
| 722 | Require all granted | ||
| 723 | </Directory> | ||
| 724 | |||
| 725 | ... | ||
| 726 | |||
| 727 | WSGIScript Alias / /opt/bitbake/lib/toaster/toastermain/wsgi.py | ||
| 728 | |||
| 729 | ... | ||
| 730 | </literallayout> | ||
| 731 | </para></listitem> | ||
| 732 | <listitem><para><emphasis>Start Toaster:</emphasis> | ||
| 733 | Synchronize the databases for toaster, and then start | ||
| 734 | up the web server. | ||
| 735 | Here is an example that continues with the assumed | ||
| 736 | components from the previous steps: | ||
| 737 | <literallayout class='monospaced'> | ||
| 738 | $ /opt/bitbake/lib/toaster/manage.py syncdb | ||
| 739 | $ /opt/bitbake/lib/toaster/manage.py migrate orm | ||
| 740 | $ /opt/bitbake/lib/toaster/manage.py migrate bldcontrol | ||
| 741 | |||
| 742 | $ service apache2 restart | ||
| 743 | </literallayout> | ||
| 744 | You can find general documentation on | ||
| 745 | <filename>manage.py</filename> at the | ||
| 746 | <ulink url='https://docs.djangoproject.com/en/1.7/ref/django-admin/'>Django</ulink> | ||
| 747 | site. | ||
| 748 | For reference information on Toaster-specific | ||
| 749 | <filename>manage.py</filename> commands, | ||
| 750 | see the | ||
| 751 | "<link linkend='toaster-useful-commands'>Useful Commands</link>" | ||
| 752 | section. | ||
| 753 | </para></listitem> | ||
| 754 | <listitem><para><emphasis>Enable Build Logging to the Common SQL Server for Each Build Directory you are Using:</emphasis> | ||
| 755 | You need to make sure that the | ||
| 756 | <ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-toaster'><filename>toaster</filename></ulink> | ||
| 757 | class and build history are enabled. | ||
| 758 | This is done in a | ||
| 759 | <filename>toaster.conf</filename> file that is | ||
| 760 | created automatically by the toaster | ||
| 761 | <filename>start</filename> command, | ||
| 762 | and that lives inside the | ||
| 763 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink> | ||
| 764 | in <filename>/conf/toaster.conf</filename>.</para> | ||
| 765 | <para>That file should include the following line: | ||
| 766 | <literallayout class='monospaced'> | ||
| 767 | INHERIT += "toaster buildhistory" | ||
| 768 | </literallayout> | ||
| 769 | For information on build history, see the | ||
| 770 | "<ulink url='&YOCTO_DOCS_REF_URL;#maintaining-build-output-quality'>Maintaining Build Output Quality</ulink>" | ||
| 771 | section in the Yocto Project Development | ||
| 772 | Manual.</para> | ||
| 773 | <para>You also need to point to the database that you set | ||
| 774 | up in step 3. | ||
| 775 | You can do this by exporting the <filename>DATABASE_URL</filename> | ||
| 776 | variable as follows: | ||
| 777 | <literallayout class='monospaced'> | ||
| 778 | export DATABASE_URL=mysql://newuser:password@192.168.0.25:3306/toaster | ||
| 779 | </literallayout> | ||
| 780 | This example assumes that you are using | ||
| 781 | <filename>mysql-server</filename>. | ||
| 782 | The IP address should be the IP address of your | ||
| 783 | database server. | ||
| 784 | </para></listitem> | ||
| 785 | <listitem><para><emphasis>Source your Build Environment Setup Script:</emphasis> | ||
| 786 | From your | ||
| 787 | <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink> | ||
| 788 | on each of the build systems, | ||
| 789 | (e.g. <filename>poky/build</filename>), source the | ||
| 790 | build environment setup script (i.e. | ||
| 791 | <ulink url="&YOCTO_DOCS_REF_URL;#structure-core-script"><filename>&OE_INIT_FILE;</filename></ulink> | ||
| 792 | or | ||
| 793 | <ulink url="&YOCTO_DOCS_REF_URL;#structure-memres-core-script"><filename>oe-init-build-env-memres</filename></ulink>). | ||
| 794 | </para></listitem> | ||
| 795 | <listitem><para><emphasis>Start the BitBake Server:</emphasis> | ||
| 796 | Start the BitBake server using the following command: | ||
| 797 | <literallayout class='monospaced'> | ||
| 798 | $ bitbake ‐‐postread conf/toaster.conf ‐‐server-only -t xmlrpc -B localhost:0 && export BBSERVER=localhost:-1 | ||
| 799 | </literallayout> | ||
| 800 | </para></listitem> | ||
| 801 | <listitem><para><emphasis>Start the Logging Server:</emphasis> | ||
| 802 | Start the Toaster Logging Interface using the following | ||
| 803 | command: | ||
| 804 | <literallayout class='monospaced'> | ||
| 805 | $ nohup bitbake ‐‐observe-only -u toasterui >toaster_ui.log & | ||
| 806 | </literallayout> | ||
| 807 | <note> | ||
| 808 | No hard-coded ports are used in the BitBake options | ||
| 809 | as there is enough code to run | ||
| 810 | <filename>autodiscovery</filename> for BitBake | ||
| 811 | ports. | ||
| 812 | Doing so prevents collisions. | ||
| 813 | </note> | ||
| 814 | </para></listitem> | ||
| 815 | <listitem><para><emphasis>Start Builds Using BitBake:</emphasis> | ||
| 816 | Use the <filename>bitbake</filename> command to start a | ||
| 817 | build on a build system. | ||
| 818 | Here is an example that builds the | ||
| 819 | <filename>core-image-minimal</filename> image: | ||
| 820 | <literallayout class='monospaced'> | ||
| 821 | $ bitbake core-image-minimal | ||
| 822 | </literallayout> | ||
| 823 | When you are finished with a build in a given | ||
| 824 | Build Directory, be sure to <filename>kill</filename> | ||
| 825 | the BitBake server for that build area: | ||
| 826 | <literallayout class='monospaced'> | ||
| 827 | $ bitbake -m | ||
| 828 | </literallayout> | ||
| 829 | </para></listitem> | ||
| 830 | </orderedlist> | ||
| 831 | </para> | ||
| 832 | |||
| 833 | <para> | ||
| 834 | For information on how to use the Toaster web interface, | ||
| 835 | see the | ||
| 836 | "<link linkend='using-the-toaster-web-interface'>Using the Toaster Web Interface</link>" | ||
| 837 | section. | ||
| 838 | </para> | ||
| 839 | </section> | ||
| 840 | </section> | ||
| 841 | |||
| 842 | <section id='using-toaster-in-build-mode'> | ||
| 843 | <title>Using Toaster in Build Mode</title> | ||
| 844 | |||
| 845 | <para> | ||
| 846 | This section describes how to use Toaster in Build Mode | ||
| 847 | after setting Toaster up as a local instance or as a hosted | ||
| 848 | service. | ||
| 849 | </para> | ||
| 850 | |||
| 851 | <section id='setting-up-locally-and-running-in-build-mode'> | ||
| 852 | <title>Setting Up Locally and Running in Build Mode</title> | ||
| 853 | |||
| 854 | <para> | ||
| 855 | Follow these steps to set up a local instance of Toaster and | ||
| 856 | then run in Build Mode: | ||
| 857 | <orderedlist> | ||
| 858 | <listitem><para><emphasis>Prepare your Build System:</emphasis> | ||
| 859 | Be sure your system has the Toaster requirements | ||
| 860 | by following the steps in the | ||
| 861 | "<link linkend='toaster-establishing-toaster-system-dependencies'>Establishing Toaster System Dependencies</link>" | ||
| 862 | section. | ||
| 863 | </para></listitem> | ||
| 864 | <listitem><para><emphasis>Get Set Up to Use the Yocto Project:</emphasis> | ||
| 865 | Get the requirements set up so that you can use the | ||
| 866 | Yocto Project to build images. | ||
| 867 | See the | ||
| 868 | "<ulink url='&YOCTO_DOCS_QS_URL;#yp-resources'>Setting Up to Use the Yocto Project</ulink>" | ||
| 869 | section in the Yocto Project Quick Start for information. | ||
| 870 | </para></listitem> | ||
| 871 | <listitem><para><emphasis>Start Toaster:</emphasis> | ||
| 872 | From the root of the source directory (e.g | ||
| 873 | <filename>poky/</filename>), run the following command: | ||
| 874 | <literallayout class='monospaced'> | ||
| 875 | $ bitbake/bin/toaster | ||
| 876 | </literallayout> | ||
| 877 | </para></listitem> | ||
| 878 | <listitem><para><emphasis>Create a Superuser:</emphasis> | ||
| 879 | Django will ask you if you want to create a superuser. | ||
| 880 | You can skip this step, but it is recommended that you | ||
| 881 | create a superuser. | ||
| 882 | You can use the superuser to access the Django | ||
| 883 | administration interface and make changes to the | ||
| 884 | Toaster configuration. | ||
| 885 | </para></listitem> | ||
| 886 | <listitem><para><emphasis>Select the Build Log Directory:</emphasis> | ||
| 887 | Toaster asks you to specify the directory where you | ||
| 888 | want to store the build log files. | ||
| 889 | Choosing a directory for these files makes sure they | ||
| 890 | are always available to you. | ||
| 891 | If you do not choose a directory, the logs can | ||
| 892 | disappear (e.g. deleting the Build Directory).</para> | ||
| 893 | <para>When Toaster prompts you for the Build Log | ||
| 894 | directory, you can select the suggested default | ||
| 895 | or provide a path to a different directory. | ||
| 896 | </para></listitem> | ||
| 897 | <listitem><para><emphasis>Specify the Layer Checkout Directory:</emphasis> | ||
| 898 | Toaster asks you to specify the directory into which | ||
| 899 | layers are checked out. | ||
| 900 | Toaster clones any layers needed for your builds | ||
| 901 | inside this directory.</para> | ||
| 902 | <para>When Toaster prompts you for the Layer | ||
| 903 | checkout directory, you can select the suggested | ||
| 904 | default or provide a path to a different directory. | ||
| 905 | </para></listitem> | ||
| 906 | <listitem><para><emphasis>Specify the Build Directory Path:</emphasis> | ||
| 907 | Toaster asks you to specify the path to the | ||
| 908 | Build Directory. | ||
| 909 | You can select the suggested default or provide a | ||
| 910 | path to a different directory. | ||
| 911 | </para></listitem> | ||
| 912 | <listitem><para><emphasis>Choose Whether or not to Import a Default Toaster Configuration File:</emphasis> | ||
| 913 | Toaster asks you if you want to import a default | ||
| 914 | Toaster configuration file. | ||
| 915 | Toaster configurations are stored in | ||
| 916 | JSON files called | ||
| 917 | <filename>toasterconf.json</filename>. | ||
| 918 | For information on JSON files, see the | ||
| 919 | "<link linkend='toaster-json-files'>JSON Files</link>" | ||
| 920 | section.</para> | ||
| 921 | <para>You can skip importing a configuration file | ||
| 922 | by entering "0" at the prompt. | ||
| 923 | However, it is recommended that you import one of the | ||
| 924 | configuration files listed during this step. | ||
| 925 | You can always amend the imported configuration during | ||
| 926 | a later stage through the Django administration | ||
| 927 | interface.</para> | ||
| 928 | <para>For general information on Django, see the | ||
| 929 | available | ||
| 930 | <ulink url='https://docs.djangoproject.com/en/1.7/'>documentation</ulink>. | ||
| 931 | You can also find information on Toaster-specific | ||
| 932 | <filename>manage.py</filename> commands in the | ||
| 933 | "<link linkend='toaster-useful-commands'>Useful Commands</link>" | ||
| 934 | section. | ||
| 935 | </para></listitem> | ||
| 936 | <listitem><para><emphasis>Open the Browser:</emphasis> | ||
| 937 | If no browser window appears, open your favorite | ||
| 938 | browser and enter the following: | ||
| 939 | <literallayout class='monospaced'> | ||
| 940 | http://localhost:8000/toastergui | ||
| 941 | </literallayout> | ||
| 942 | You can now use the Toaster web interface. | ||
| 943 | </para></listitem> | ||
| 944 | </orderedlist> | ||
| 945 | </para> | ||
| 946 | </section> | ||
| 947 | |||
| 948 | <section id='setting-up-a-hosted-service-and-running-in-build-mode'> | ||
| 949 | <title>Setting Up a Hosted Service and Running in Build Mode</title> | ||
| 950 | |||
| 951 | <para> | ||
| 952 | Follow these steps to set up a hosted service and run Toaster | ||
| 953 | in Build Mode: | ||
| 954 | <orderedlist> | ||
| 955 | <listitem><para><emphasis>Prepare your Build System:</emphasis> | ||
| 956 | Be sure your system has the Toaster requirements | ||
| 957 | by following the steps in the | ||
| 958 | "<link linkend='toaster-establishing-toaster-system-dependencies'>Establishing Toaster System Dependencies</link>" | ||
| 959 | section. | ||
| 960 | </para></listitem> | ||
| 961 | <listitem><para><emphasis>Get Set Up to Use the Yocto Project:</emphasis> | ||
| 962 | Get the requirements set up so that you can use the | ||
| 963 | Yocto Project to build images. | ||
| 964 | See the | ||
| 965 | "<ulink url='&YOCTO_DOCS_QS_URL;#yp-resources'>Setting Up to Use the Yocto Project</ulink>" | ||
| 966 | section in the Yocto Project Quick Start for information. | ||
| 967 | </para></listitem> | ||
| 968 | <listitem><para><emphasis>Be Sure Management is Enabled:</emphasis> | ||
| 969 | If you are running Toaster under Apache, you need to | ||
| 970 | be sure management is enabled. | ||
| 971 | To enable management, set | ||
| 972 | <filename>MANAGED</filename> to "True" by adding | ||
| 973 | the following to the | ||
| 974 | <filename>bitbake/lib/toaster/settings.py</filename> | ||
| 975 | file: | ||
| 976 | <literallayout class='monospaced'> | ||
| 977 | MANAGED="True" | ||
| 978 | </literallayout> | ||
| 979 | </para></listitem> | ||
| 980 | <listitem><para><emphasis>Set Up Toaster for Normal Usage:</emphasis> | ||
| 981 | You need to configure each build environment, layer | ||
| 982 | sources, and BitBake versions.</para> | ||
| 983 | <para>Verify that your releases have been loaded correctly by | ||
| 984 | using the Toaster web interface to create a new | ||
| 985 | project. | ||
| 986 | Check the "Releases" dropdown menu to be sure your | ||
| 987 | newly specified releases exist.</para> | ||
| 988 | <para>If you want to use the administration interface | ||
| 989 | for this step, here is a set of example commands | ||
| 990 | with some descriptions as an example: | ||
| 991 | <literallayout class='monospaced'> | ||
| 992 | # Create the user under which the builds will run | ||
| 993 | $ adduser poky | ||
| 994 | |||
| 995 | # Bring up the administration interface | ||
| 996 | $xdg-open http://<replaceable>server-address</replaceable>/admin/ | ||
| 997 | |||
| 998 | # Login with the admin user previously created | ||
| 999 | |||
| 1000 | # Go to the BuildEnvironment object in Build Environments and | ||
| 1001 | # set address to local host, sourcedir to /home/poky, and | ||
| 1002 | # builddir to /home/pokybuild. | ||
| 1003 | # | ||
| 1004 | # Save your changes and exit | ||
| 1005 | |||
| 1006 | # Go to Home, Layer Sources and select add Layer Source | ||
| 1007 | # Name: OpenEmbedded, Sourcetype: layerindex, | ||
| 1008 | # Apiurl: http://layers openembedded.org/layerindex/api/ | ||
| 1009 | # Save your changes and exit | ||
| 1010 | |||
| 1011 | # Go to Home, Bitbake Versions, Add bitbake version; | ||
| 1012 | # Take version information from: http://git.openembedded.org/bitbake/refs/heads, | ||
| 1013 | # This example assumes "master" version. | ||
| 1014 | # set Name: master, Giturl git://git.openembedded.org/bitbake | ||
| 1015 | # branch master, dirpath / | ||
| 1016 | # Save your changes and exit | ||
| 1017 | </literallayout> | ||
| 1018 | You also need to configure the project releases, the | ||
| 1019 | default variables, and update information from the | ||
| 1020 | layer index. | ||
| 1021 | Continuing with the example: | ||
| 1022 | <literallayout class='monospaced'> | ||
| 1023 | # Go to Home, Releases, Add release | ||
| 1024 | # set Name: master, Description: Current master release, select Bitbake Version, | ||
| 1025 | # and Branch: master | ||
| 1026 | # Save your changes and exit | ||
| 1027 | |||
| 1028 | # Go to Home, Toaster Settings, select the Setting for DEFAULT_RELEASE | ||
| 1029 | # set Helptext: This selects the default release., Value: master | ||
| 1030 | # Save your changes and exit | ||
| 1031 | |||
| 1032 | # Go to Home, Bitbake Versions, Add bitbake version; | ||
| 1033 | # take version information from : http://git.openembedded.org/bitbake/refs/heads, | ||
| 1034 | # this manual assumes the master version | ||
| 1035 | # set Name: master, Giturl git://git.openembedded.org/bitbake | ||
| 1036 | # branch master, dirpath / | ||
| 1037 | # Save your changes and exit | ||
| 1038 | |||
| 1039 | # Update the information | ||
| 1040 | # bitbake/lib/toaster/manage.py lsupdates | ||
| 1041 | </literallayout> | ||
| 1042 | For reference information on Toaster-specific | ||
| 1043 | <filename>manage.py</filename> commands, see the | ||
| 1044 | "<link linkend='toaster-useful-commands'>Useful Commands</link>" | ||
| 1045 | section. | ||
| 1046 | </para></listitem> | ||
| 1047 | <listitem><para><emphasis>Install and Set up the Database Server:</emphasis> | ||
| 1048 | You can use any SQL server out of the box. | ||
| 1049 | It is recommended that you use | ||
| 1050 | <filename>mysql-server</filename> because it has | ||
| 1051 | the advantages of advanced SQL features along with a | ||
| 1052 | fast and reliable database. | ||
| 1053 | However, setting up <filename>mysql-server</filename> | ||
| 1054 | is more complex and might require a Database | ||
| 1055 | Administrator to tune it.</para> | ||
| 1056 | <para>Another supported database backend is | ||
| 1057 | <filename>sqlite3</filename>. | ||
| 1058 | With <filename>sqlite3</filename>, you have the | ||
| 1059 | advantage of no configuration and an easy installation. | ||
| 1060 | However, Toaster still requires direct access to the | ||
| 1061 | backend. | ||
| 1062 | The <filename>sqlite</filename> backend is also slower | ||
| 1063 | as compared to <filename>mysql-server</filename>, and | ||
| 1064 | has no transactional support.</para> | ||
| 1065 | <para>You should set up proper username and password | ||
| 1066 | access on the shared database for everyone that will | ||
| 1067 | be using Toaster. | ||
| 1068 | You need administrator rights for the root account, | ||
| 1069 | which is not the same thing as root access on the | ||
| 1070 | machine. | ||
| 1071 | Here is an example that installs | ||
| 1072 | <filename>mysql-server</filename> and sets up | ||
| 1073 | some user accounts and the database. | ||
| 1074 | <literallayout class='monospaced'> | ||
| 1075 | $ apt-get install mysql-server | ||
| 1076 | $ mysql -u root | ||
| 1077 | mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password'; | ||
| 1078 | mysql> GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost'; | ||
| 1079 | mysql> GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost'; | ||
| 1080 | mysql> CREATE DATABASE 'toaster'; | ||
| 1081 | </literallayout> | ||
| 1082 | You need a separate clone of the | ||
| 1083 | <ulink url='&YOCTO_DOCS_DEV_URL;#source-repositories'>Source Repositories</ulink> | ||
| 1084 | for the Database Server. | ||
| 1085 | This clone is only used for getting the latest Toaster | ||
| 1086 | files. | ||
| 1087 | You can set this up using the following Git command. | ||
| 1088 | Be sure to set up the directory outside of any | ||
| 1089 | Build Directories. | ||
| 1090 | <literallayout class='monospaced'> | ||
| 1091 | $ git clone git://git.yoctoproject.org/poky | ||
| 1092 | </literallayout> | ||
| 1093 | In the separately cloned tree for the Database Server, | ||
| 1094 | edit the | ||
| 1095 | <filename>bitbake/lib/toaster/toastermain/settings.py</filename> | ||
| 1096 | file so that the <filename>DATABASES</filename> value | ||
| 1097 | points to the previously created database server. | ||
| 1098 | Use the username and password established | ||
| 1099 | earlier. | ||
| 1100 | Here is an example: | ||
| 1101 | <literallayout class='monospaced'> | ||
| 1102 | $ cat /opt/bitbake/lib/toaster/toastermain/settings.py | ||
| 1103 | ... | ||
| 1104 | DATABASES = { | ||
| 1105 | 'default': { | ||
| 1106 | 'ENGINE': 'django.db.backends.mysql', | ||
| 1107 | 'NAME': 'toaster', | ||
| 1108 | 'USER': 'newuser', | ||
| 1109 | 'PASSWORD': 'password', | ||
| 1110 | 'HOST': '192.168.0.25', | ||
| 1111 | 'PORT': '3306', | ||
| 1112 | } | ||
| 1113 | ... | ||
| 1114 | </literallayout> | ||
| 1115 | </para></listitem> | ||
| 1116 | <listitem><para><emphasis>Create the Database</emphasis> | ||
| 1117 | Use the following commands to create the default | ||
| 1118 | database structure: | ||
| 1119 | <literallayout class='monospaced'> | ||
| 1120 | $ bitbake/lib/toaster/manage.py syncdb | ||
| 1121 | $ bitbake/lib/toaster/manage.py migrate orm | ||
| 1122 | $ bitbake/lib/toaster/manage.py migrate bldcontrol | ||
| 1123 | </literallayout> | ||
| 1124 | The interface asks you if you want to create a | ||
| 1125 | superuser. | ||
| 1126 | Do not skip this step. | ||
| 1127 | You will use the superuser account to access the | ||
| 1128 | administration interface and make changes to the | ||
| 1129 | Toaster configuration. | ||
| 1130 | </para></listitem> | ||
| 1131 | <listitem><para><emphasis>Select Where the Build Process Takes Place:</emphasis> | ||
| 1132 | You need to create three directories for storing | ||
| 1133 | build artifacts, downloading sources, and running | ||
| 1134 | builds. | ||
| 1135 | All three directories need to be writable by | ||
| 1136 | the user, which is "poky" in this example. | ||
| 1137 | The build artifacts directory needs to readable by the | ||
| 1138 | apache user. | ||
| 1139 | You also need free disk space in the range of | ||
| 1140 | 100 Gbytes. | ||
| 1141 | Following are three suggested directories: | ||
| 1142 | <literallayout class='monospaced'> | ||
| 1143 | /home/poky/buildartifacts/ | ||
| 1144 | /home/poky/build/ | ||
| 1145 | /home/poky/sources/ | ||
| 1146 | </literallayout> | ||
| 1147 | </para></listitem> | ||
| 1148 | <listitem><para><emphasis>Set Up the <filename>toasterconf.json</filename> File:</emphasis> | ||
| 1149 | <ulink url='https://wiki.yoctoproject.org/wiki/File:Toasterconf.json.txt.patch'>Download the hosted <filename>toasterconf.json</filename> file</ulink> | ||
| 1150 | from the Yocto Project wiki and edit it to suit your | ||
| 1151 | environment. | ||
| 1152 | For information on the relevant sections of the file, | ||
| 1153 | see the | ||
| 1154 | "<link linkend='toaster-json-files'>JSON Files</link>" | ||
| 1155 | section.</para> | ||
| 1156 | <para>After editing the file, load it by running | ||
| 1157 | the following: | ||
| 1158 | <literallayout class='monospaced'> | ||
| 1159 | $ bitbake/lib/toaster/manage.py loadconf path-to-toasterconf.json-file | ||
| 1160 | </literallayout> | ||
| 1161 | For reference information on Toaster-specific | ||
| 1162 | <filename>manage.py</filename>, see the | ||
| 1163 | "<link linkend='toaster-useful-commands'>Useful Commands</link>" | ||
| 1164 | section. | ||
| 1165 | </para></listitem> | ||
| 1166 | <listitem><para><emphasis>Check the Toaster Settings:</emphasis> | ||
| 1167 | Configure the build environment by running the | ||
| 1168 | following: | ||
| 1169 | <literallayout class='monospaced'> | ||
| 1170 | $ bitbake/lib/toaster/manage.py checksettings | ||
| 1171 | </literallayout> | ||
| 1172 | When prompted, paste in the directory paths created | ||
| 1173 | previously during Step 7. | ||
| 1174 | For reference information on Toaster-specific | ||
| 1175 | <filename>manage.py</filename>, see the | ||
| 1176 | "<link linkend='toaster-useful-commands'>Useful Commands</link>" | ||
| 1177 | section. | ||
| 1178 | </para></listitem> | ||
| 1179 | <listitem><para><emphasis>Install and Set Up the Web Server:</emphasis> | ||
| 1180 | For a production environment, it is recommended that | ||
| 1181 | you install and set up a front-end web server. | ||
| 1182 | This server allows for load balancing and | ||
| 1183 | multi-threading over Toaster and | ||
| 1184 | <ulink url='https://docs.djangoproject.com/en/1.7/howto/deployment/wsgi/'><filename>django</filename> WSGI</ulink>. | ||
| 1185 | Here is an example that uses Apache web server: | ||
| 1186 | <literallayout class='monospaced'> | ||
| 1187 | $ apt-get install apache2 libapache2-mod-wsgi | ||
| 1188 | $ a2enmod wsgi | ||
| 1189 | $ cat /etc/apache2/sites-available/000-default.conf | ||
| 1190 | |||
| 1191 | ... | ||
| 1192 | |||
| 1193 | # the WSGIPythonPath is global | ||
| 1194 | WSGIPythonPath /opt/bitbake/lib/toaster/ | ||
| 1195 | |||
| 1196 | ... | ||
| 1197 | |||
| 1198 | #snip - in VirtualHost | ||
| 1199 | WSGIScriptAlias / /opt/bitbake/lib/toaster/toastermain/wsgi.py | ||
| 1200 | |||
| 1201 | <Directory //opt/bitbake/lib/toaster/toastermain/> | ||
| 1202 | <Files wsgi.py> | ||
| 1203 | Require all granted | ||
| 1204 | </Files> | ||
| 1205 | </Directory> | ||
| 1206 | |||
| 1207 | ... | ||
| 1208 | </literallayout> | ||
| 1209 | You need to collect static media from Toaster and | ||
| 1210 | continue configuring Apache to serve that static | ||
| 1211 | media: | ||
| 1212 | <literallayout class='monospaced'> | ||
| 1213 | $ mkdir /var/www.html/static && cd /var/www.html/static | ||
| 1214 | $ /opt bitbake/lib/toaster/manage.py collectstatic | ||
| 1215 | $ cat /etc/apache2/sites-available/000-default.conf | ||
| 1216 | |||
| 1217 | ... | ||
| 1218 | |||
| 1219 | # in VirtualHost, AHEAD of the WSGIScriptAlias definition | ||
| 1220 | Alias /static/ /var/www.html/static/ | ||
| 1221 | |||
| 1222 | <Directory /var/www.html/static/> | ||
| 1223 | Require all granted | ||
| 1224 | </Directory> | ||
| 1225 | |||
| 1226 | ... | ||
| 1227 | |||
| 1228 | WSGIScript Alias / /opt/bitbake/lib/toaster/toastermain/wsgi.py | ||
| 1229 | |||
| 1230 | ... | ||
| 1231 | </literallayout> | ||
| 1232 | </para></listitem> | ||
| 1233 | <listitem><para><emphasis>Start Toaster:</emphasis> | ||
| 1234 | Synchronize the databases for Toaster, and then start | ||
| 1235 | up the web server. | ||
| 1236 | Here is an example that continues with the assumed | ||
| 1237 | components from the previous steps: | ||
| 1238 | <literallayout class='monospaced'> | ||
| 1239 | $ /opt/bitbake/lib/toaster/manage.py syncdb | ||
| 1240 | $ /opt/bitbake/lib/toaster/manage.py migrate orm | ||
| 1241 | $ /opt/bitbake/lib/toaster/manage.py migrate bldcontrol | ||
| 1242 | |||
| 1243 | $ service apache2 restart | ||
| 1244 | </literallayout> | ||
| 1245 | For reference information on the | ||
| 1246 | <filename>manage.py</filename> commands used here, | ||
| 1247 | see the | ||
| 1248 | "<link linkend='toaster-useful-commands'>Useful Commands</link>" | ||
| 1249 | section. | ||
| 1250 | </para></listitem> | ||
| 1251 | <listitem><para><emphasis>Set up Build Control and Open the Web Interface:</emphasis> | ||
| 1252 | You need to run the build control manager. | ||
| 1253 | You can do this as shown in the following example: | ||
| 1254 | <literallayout class='monospaced'> | ||
| 1255 | # as the "poky" user, start the runbuilds command in a loop (or put it in crontab!) | ||
| 1256 | $ sudo -i -u poky | ||
| 1257 | $ while true; do /opt/bitbake/lib/toaster/manage.py runbuilds; sleep 10; done | ||
| 1258 | |||
| 1259 | # open up the web interface | ||
| 1260 | $ xdg-open http://[server-address]/toastergui/ | ||
| 1261 | </literallayout> | ||
| 1262 | It is suggested that you enable build control by | ||
| 1263 | setting <filename>runbuilds</filename> in the | ||
| 1264 | <filename>crontab</filename> as follows: | ||
| 1265 | <literallayout class='monospaced'> | ||
| 1266 | $ crontab -l | ||
| 1267 | * * * * * /opt/bitbake/lit/toaster/manage.py runbuilds | ||
| 1268 | </literallayout> | ||
| 1269 | </para></listitem> | ||
| 1270 | <listitem><para><emphasis>Open the Browser:</emphasis> | ||
| 1271 | Once the Apache server is running, connect to it with | ||
| 1272 | your favorite browser and verify that the Toaster | ||
| 1273 | interface comes up: | ||
| 1274 | <literallayout class='monospaced'> | ||
| 1275 | http://localhost:8000/toastergui | ||
| 1276 | </literallayout> | ||
| 1277 | You can track accesses and errors in the Apache | ||
| 1278 | service logs. | ||
| 1279 | </para></listitem> | ||
| 1280 | </orderedlist> | ||
| 1281 | </para> | ||
| 1282 | </section> | ||
| 1283 | </section> | ||
| 1284 | --> | ||
| 1285 | |||
| 1286 | <section id='using-the-toaster-web-interface'> | 478 | <section id='using-the-toaster-web-interface'> |
| 1287 | <title>Using the Toaster Web Interface</title> | 479 | <title>Using the Toaster Web Interface</title> |
| 1288 | 480 | ||
| @@ -1453,105 +645,4 @@ | |||
| 1453 | </para> | 645 | </para> |
| 1454 | </section> | 646 | </section> |
| 1455 | </section> | 647 | </section> |
| 1456 | |||
| 1457 | <!-- | ||
| 1458 | <section id='toaster-gui-vids-1'> | ||
| 1459 | <title>Toaster Homepage and Table Controls</title> | ||
| 1460 | |||
| 1461 | <para> | ||
| 1462 | This video goes over the Toaster entry page, and provides | ||
| 1463 | an overview of the data manipulation capabilities of Toaster, | ||
| 1464 | which include search, sorting and filtering by different | ||
| 1465 | criteria. | ||
| 1466 | <mediaobject> | ||
| 1467 | <videoobject> | ||
| 1468 | <videodata width="640" height="480" fileref="http://www.youtube.com/v/QEARDnrR1Xw"></videodata> | ||
| 1469 | </videoobject> | ||
| 1470 | </mediaobject> | ||
| 1471 | </para> | ||
| 1472 | </section> | ||
| 1473 | |||
| 1474 | <section id='toaster-gui-vids-2'> | ||
| 1475 | <title>Build Dashboard</title> | ||
| 1476 | |||
| 1477 | <para> | ||
| 1478 | This video shows you the build dashboard, a page providing an | ||
| 1479 | overview of the information available for a selected build. | ||
| 1480 | <mediaobject> | ||
| 1481 | <videoobject> | ||
| 1482 | <videodata width="640px" height="480px" fileref="http://www.youtube.com/v/KKqHYcnp2gE"></videodata> | ||
| 1483 | </videoobject> | ||
| 1484 | </mediaobject> | ||
| 1485 | </para> | ||
| 1486 | </section> | ||
| 1487 | |||
| 1488 | <section id='toaster-gui-vids-3'> | ||
| 1489 | <title>Image Information</title> | ||
| 1490 | |||
| 1491 | <para> | ||
| 1492 | This video walks through the information Toaster provides | ||
| 1493 | about images: packages installed and root file system. | ||
| 1494 | <mediaobject> | ||
| 1495 | <videoobject> | ||
| 1496 | <videodata width="640px" height="480px" fileref="http://www.youtube.com/v/XqYGFsmA0Rw"></videodata> | ||
| 1497 | </videoobject> | ||
| 1498 | </mediaobject> | ||
| 1499 | </para> | ||
| 1500 | </section> | ||
| 1501 | |||
| 1502 | <section id='toaster-gui-vids-4'> | ||
| 1503 | <title>Configuration</title> | ||
| 1504 | |||
| 1505 | <para> | ||
| 1506 | This video shows the information Toaster provides about build | ||
| 1507 | configuration. | ||
| 1508 | <mediaobject> | ||
| 1509 | <videoobject> | ||
| 1510 | <videodata width="640px" height="480px" fileref="http://www.youtube.com/v/UW-j-T2TzIg"></videodata> | ||
| 1511 | </videoobject> | ||
| 1512 | </mediaobject> | ||
| 1513 | </para> | ||
| 1514 | </section> | ||
| 1515 | |||
| 1516 | <section id='toaster-gui-vids-5'> | ||
| 1517 | <title>Tasks</title> | ||
| 1518 | |||
| 1519 | <para> | ||
| 1520 | This video shows the information Toaster provides about the | ||
| 1521 | tasks run by the build system. | ||
| 1522 | <mediaobject> | ||
| 1523 | <videoobject> | ||
| 1524 | <videodata width="640px" height="480px" fileref="http://www.youtube.com/v/D4-9vGSxQtw"></videodata> | ||
| 1525 | </videoobject> | ||
| 1526 | </mediaobject> | ||
| 1527 | </para> | ||
| 1528 | </section> | ||
| 1529 | |||
| 1530 | <section id='toaster-gui-vids-6'> | ||
| 1531 | <title>Recipes and Packages Built</title> | ||
| 1532 | |||
| 1533 | <para> | ||
| 1534 | This video shows the information Toaster provides about recipes | ||
| 1535 | and packages built. | ||
| 1536 | <mediaobject> | ||
| 1537 | <videoobject> | ||
| 1538 | <videodata width="640px" height="480px" fileref="http://www.youtube.com/v/x-6dx4huNnw"></videodata> | ||
| 1539 | </videoobject> | ||
| 1540 | </mediaobject>qYgDZ8YzV6w | ||
| 1541 | </para> | ||
| 1542 | </section> | ||
| 1543 | <section id='toaster-gui-vids-7'> | ||
| 1544 | <title>Performance Data</title> | ||
| 1545 | |||
| 1546 | <para> | ||
| 1547 | This video shows the build performance data provided by | ||
| 1548 | Toaster. | ||
| 1549 | <mediaobject> | ||
| 1550 | <videoobject> | ||
| 1551 | <videodata width="640px" height="480px" fileref="http://www.youtube.com/v/qWGMrJoqusQ"></videodata> | ||
| 1552 | </videoobject> | ||
| 1553 | </mediaobject> | ||
| 1554 | </para> | ||
| 1555 | </section> | ||
| 1556 | --> | ||
| 1557 | </chapter> | 648 | </chapter> |
