diff options
Diffstat (limited to 'documentation/toaster-manual/toaster-manual-setup-and-use.xml')
-rw-r--r-- | documentation/toaster-manual/toaster-manual-setup-and-use.xml | 326 |
1 files changed, 326 insertions, 0 deletions
diff --git a/documentation/toaster-manual/toaster-manual-setup-and-use.xml b/documentation/toaster-manual/toaster-manual-setup-and-use.xml new file mode 100644 index 0000000000..ac9e9313ff --- /dev/null +++ b/documentation/toaster-manual/toaster-manual-setup-and-use.xml | |||
@@ -0,0 +1,326 @@ | |||
1 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | ||
2 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" | ||
3 | [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > | ||
4 | |||
5 | <chapter id='toaster-manual-setup-and-use'> | ||
6 | |||
7 | <title>Setting Up and Using Toaster</title> | ||
8 | |||
9 | <para> | ||
10 | You can set up local and production instances of Toaster. | ||
11 | This chapter describes how to set up both these types of instances. | ||
12 | </para> | ||
13 | |||
14 | <section id='toaster-setting-up-a-local-instance'> | ||
15 | <title>Setting Up a Local Instance</title> | ||
16 | |||
17 | <para> | ||
18 | Follow these steps to set up and run a local instance of Toaster: | ||
19 | <orderedlist> | ||
20 | <listitem><para><emphasis>Prepare your build system:</emphasis> | ||
21 | Be sure your system has the Toaster requirements | ||
22 | by following the steps in the | ||
23 | "<link linkend='toaster-establishing-toaster-system-dependencies'>Establishing Toaster System Dependencies</link>" | ||
24 | section. | ||
25 | </para></listitem> | ||
26 | <listitem><para><emphasis>Get Set Up to Use the Yocto Project:</emphasis> | ||
27 | Get the requirements set up so that you can use the | ||
28 | Yocto Project to build images. | ||
29 | See the | ||
30 | "<ulink url='&YOCTO_DOCS_QS_URL;#yp-resources'>What You Need and How You Get It</ulink>" | ||
31 | section in the Yocto Project Quick Start for information. | ||
32 | </para></listitem> | ||
33 | <listitem><para><emphasis>Be sure Ports are free:</emphasis> | ||
34 | Make sure that port 8000 and 8200 are free. | ||
35 | In other words, make sure the ports do not have servers | ||
36 | on them. | ||
37 | </para></listitem> | ||
38 | <listitem><para><emphasis>Source your Build Environment Setup Script:</emphasis> | ||
39 | From your | ||
40 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink> | ||
41 | (e.g. <filename>poky/build</filename>), source the build | ||
42 | environment setup script (i.e. | ||
43 | <ulink url="&YOCTO_DOCS_REF_URL;#structure-core-script"><filename>&OE_INIT_FILE;</filename></ulink> | ||
44 | or | ||
45 | <ulink url="&YOCTO_DOCS_REF_URL;#structure-memres-core-script"><filename>oe-init-build-env-memres</filename></ulink>). | ||
46 | </para></listitem> | ||
47 | <listitem><para><emphasis>Start Toaster:</emphasis> | ||
48 | From the | ||
49 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>, | ||
50 | start Toaster: | ||
51 | <literallayout class='monospaced'> | ||
52 | $ source toaster start | ||
53 | </literallayout> | ||
54 | </para></listitem> | ||
55 | <listitem><para><emphasis>Start Your Build using BitBake:</emphasis> | ||
56 | Use the <filename>bitbake</filename> command to start your | ||
57 | build. | ||
58 | Here is an example that builds the | ||
59 | <filename>core-image-minimal</filename> image: | ||
60 | <literallayout class='monospaced'> | ||
61 | $ bitbake core-image-minimal | ||
62 | </literallayout> | ||
63 | </para></listitem> | ||
64 | </orderedlist> | ||
65 | </para> | ||
66 | |||
67 | <para> | ||
68 | For information on how to use Toaster, see the | ||
69 | "<link linkend='using-the-toaster-interface'>Using the Toaster Interface</link>" | ||
70 | section. | ||
71 | </para> | ||
72 | </section> | ||
73 | |||
74 | <section id='toaster-setting-up-a-production-instance'> | ||
75 | <title>Setting Up a Production Instance</title> | ||
76 | |||
77 | <para> | ||
78 | A production instance of Toaster resides on a server and allows | ||
79 | multiple users to take advantage of Toaster. | ||
80 | In a production environment, you might want to have multiple | ||
81 | instances of Toaster running on various remote build machines. | ||
82 | You can create this situation by basically modifying how Toaster | ||
83 | starts. | ||
84 | </para> | ||
85 | |||
86 | <para> | ||
87 | Starting Toaster with the <filename>toaster</filename> command | ||
88 | (i.e. the script), causes three things to start: | ||
89 | <itemizedlist> | ||
90 | <listitem><para> | ||
91 | The BitBake server. | ||
92 | </para></listitem> | ||
93 | <listitem><para> | ||
94 | the Toaster User Interface, which connects to the | ||
95 | BitBake server on one side and to the SQL | ||
96 | database on the other side. | ||
97 | </para></listitem> | ||
98 | <listitem><para> | ||
99 | The web server, which reads the database and displays the | ||
100 | web user interface. | ||
101 | </para></listitem> | ||
102 | </itemizedlist> | ||
103 | Rather than starting Toaster with the script, you can set up | ||
104 | and start multiple instances of Toaster by manually starting | ||
105 | as many or few of these three components across your environment. | ||
106 | This is possible because it is not required that Toaster starts | ||
107 | all three of its separate components in order to run. | ||
108 | Minimally, an instance of Toaster requires just one of the | ||
109 | components. | ||
110 | </para> | ||
111 | |||
112 | <para> | ||
113 | The concepts for setting up multiple instances of Toaster revolve | ||
114 | around maintaining a common SQL database and Web server that | ||
115 | show data from that common database as well as setting up | ||
116 | separate instances of BitBake servers and Toaster user interfaces | ||
117 | for each separate BitBake build directory. | ||
118 | The common SQL database and the Web server show data from all the | ||
119 | various BitBake builds. | ||
120 | Setting the SQL database outside of any | ||
121 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink> | ||
122 | maintains a separation layer between the various builds. | ||
123 | The database is persistent because the logging database is set | ||
124 | up external to the database server (e.g. MySQL). | ||
125 | It is not even necessary to run the BitBake servers, the SQL | ||
126 | server, and the Web server on the same machine. | ||
127 | Each component can be run on its own machine. | ||
128 | </para> | ||
129 | |||
130 | <para> | ||
131 | Follow these steps to set up and run a production instance of | ||
132 | Toaster: | ||
133 | <orderedlist> | ||
134 | <listitem><para><emphasis>Prepare your build system:</emphasis> | ||
135 | Be sure your system has the Toaster requirements | ||
136 | by following the steps in the | ||
137 | "<link linkend='toaster-establishing-toaster-system-dependencies'>Establishing Toaster System Dependencies</link>" | ||
138 | section. | ||
139 | </para></listitem> | ||
140 | <listitem><para><emphasis>Get Set Up to Use the Yocto Project:</emphasis> | ||
141 | Get the requirements set up so that you can use the | ||
142 | Yocto Project to build images. | ||
143 | See the | ||
144 | "<ulink url='&YOCTO_DOCS_QS_URL;#yp-resources'>What You Need and How You Get It</ulink>" | ||
145 | section in the Yocto Project Quick Start for information. | ||
146 | </para></listitem> | ||
147 | <listitem><para><emphasis>Be sure Ports are free:</emphasis> | ||
148 | Make sure that port 8000 and 8200 are free. | ||
149 | In other words, make sure the ports do not have servers | ||
150 | on them. | ||
151 | </para></listitem> | ||
152 | <listitem><para><emphasis>Set up the SQL Logging Server and the Web Server:</emphasis> | ||
153 | You can use any SQL server out of the box (e.g. | ||
154 | <filename>mysgl-server</filename> for an Ubuntu build | ||
155 | system). | ||
156 | <note> | ||
157 | If you are concerned about performance, you might want | ||
158 | to hand-tune the server. | ||
159 | </note> | ||
160 | You must set up proper username and password access for | ||
161 | the server for everyone that will be using Toaster. | ||
162 | You need administration rights for the | ||
163 | <filename>mysql</filename> root account, which is not the | ||
164 | same thing as root access on the machine.</para> | ||
165 | |||
166 | <para>Clone a separate, local Git repository of the | ||
167 | Toaster master branch to use for running the Web server: | ||
168 | <literallayout class='monospaced'> | ||
169 | $ git clone (NEED THE GIT REPO URL HERE) | ||
170 | </literallayout> | ||
171 | You do not perform builds on this tree. | ||
172 | You need to create this local repository away from any | ||
173 | build areas.</para> | ||
174 | |||
175 | <para>In the separately cloned tree for the Web server, | ||
176 | edit the | ||
177 | <filename>bitbake/lib/toaster/toastermain/settings.py</filename> | ||
178 | file so that the <filename>DATABASES</filename> value | ||
179 | points to the previously created database server. | ||
180 | Use the username and password established earlier.</para> | ||
181 | |||
182 | <para>Run the database sync scripts to create the needed | ||
183 | tables as follows: | ||
184 | <literallayout class='monospaced'> | ||
185 | $ python bitbake/lib/toaster/manage.py syncdb | ||
186 | $ python bitbake/lib/toaster/manage.py migrate orm | ||
187 | </literallayout> | ||
188 | You can start the web server in the foreground or the | ||
189 | background using these commands, respectively: | ||
190 | <literallayout class='monospaced'> | ||
191 | $ python bitbake/lib/toaster/manage.py runserver | ||
192 | $ nohup python bitbake/lib/toaster/manage.py runserver 2>toaster_web.log >toaster_web.log & | ||
193 | </literallayout> | ||
194 | </para></listitem> | ||
195 | <listitem><para><emphasis>Enable Build Logging to the Common SQL Server for Each Build Directory you are Using</emphasis> | ||
196 | For each build system that will be using Toaster and the | ||
197 | SQL server, you need to edit the | ||
198 | <filename>bitbake/lib/toaster/toastermain/settings.py</filename> | ||
199 | to alter the <filename>DATABASES</filename> value to point | ||
200 | to the common SQL logging server. | ||
201 | (I DON'T SEE HOW TO DO THIS FROM THE WIKI - I NEED MORE | ||
202 | CLARIFICATION).</para> | ||
203 | |||
204 | <para>In the Build Directory, create the required | ||
205 | <filename>conf/toaster.conf</filename> file as described in | ||
206 | <ulink url='https://wiki.yoctoproject.org/wiki/Setting_up_a_local_instance_of_Toaster'>BitBake Extra Options</ulink>. | ||
207 | Briefly, for each Build Directory, you need to inherit the | ||
208 | <ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-toaster'>toaster</ulink> | ||
209 | class by setting the following in your | ||
210 | <filename>local.conf</filename> configuration file: | ||
211 | <literallayout class='monospaced'> | ||
212 | INHERIT += "toaster" | ||
213 | INHERIT += "buildhistory" | ||
214 | BUILDHISTORY_COMMIT = "1" | ||
215 | </literallayout> | ||
216 | Start the BitBake server using the following command: | ||
217 | <literallayout class='monospaced'> | ||
218 | $ bitbake --postread conf/toaster.conf --server-only -t xmlrpc -B localhost:0 && export BBSERVER=localhost:-1 | ||
219 | </literallayout> | ||
220 | Start the logging user interface using the following | ||
221 | command: | ||
222 | <literallayout class='monospaced'> | ||
223 | $ nohup bitbake --observe-only -u toasterui >toaster_ui.log & | ||
224 | </literallayout> | ||
225 | <note> | ||
226 | No hard-coded ports are used as there is enough code | ||
227 | to run <filename>autodiscovery</filename> | ||
228 | for ports to prevent collisions. | ||
229 | </note> | ||
230 | </para></listitem> | ||
231 | <listitem><para><emphasis>Source your Build Environment Setup Script:</emphasis> | ||
232 | From your | ||
233 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink> | ||
234 | on each of the build systems, | ||
235 | (e.g. <filename>poky/build</filename>), source the build | ||
236 | environment setup script (i.e. | ||
237 | <ulink url="&YOCTO_DOCS_REF_URL;#structure-core-script"><filename>&OE_INIT_FILE;</filename></ulink> | ||
238 | or | ||
239 | <ulink url="&YOCTO_DOCS_REF_URL;#structure-memres-core-script"><filename>oe-init-build-env-memres</filename></ulink>). | ||
240 | </para></listitem> | ||
241 | <listitem><para><emphasis>Start Builds Using BitBake:</emphasis> | ||
242 | Use the <filename>bitbake</filename> command to start a | ||
243 | build on a build system. | ||
244 | Here is an example that builds the | ||
245 | <filename>core-image-minimal</filename> image: | ||
246 | <literallayout class='monospaced'> | ||
247 | $ bitbake core-image-minimal | ||
248 | </literallayout> | ||
249 | When you are finished with a build in a given | ||
250 | Build Directory, be sure to <filename>kill</filename> | ||
251 | the BitBake server for that build area: | ||
252 | <literallayout class='monospaced'> | ||
253 | $ bitbake -m | ||
254 | </literallayout> | ||
255 | </para></listitem> | ||
256 | </orderedlist> | ||
257 | </para> | ||
258 | |||
259 | <para> | ||
260 | For information on how to use Toaster, see the | ||
261 | "<link linkend='using-the-toaster-interface'>Using the Toaster Interface</link>" | ||
262 | section. | ||
263 | </para> | ||
264 | </section> | ||
265 | |||
266 | <section id='setting-up-a-hosted-managed-mode-for-toaster'> | ||
267 | <title>Setting Up a Hosted Managed Mode for Toaster</title> | ||
268 | |||
269 | <para> | ||
270 | (RIGHT NOW, THE | ||
271 | <ulink url='https://wiki.yoctoproject.org/wiki/Setting_up_a_hosted_managed_mode_for_Toaster'>WIKI PAGE</ulink> | ||
272 | HAS SOME INFORMATION ON THIS. | ||
273 | I DON'T GET IT THOUGH. | ||
274 | I NEED SOME MORE INFORMATION IN ORDER TO UNDERSTAND THIS AND | ||
275 | CREATE A SECTION. | ||
276 | </para> | ||
277 | </section> | ||
278 | |||
279 | <section id='using-the-toaster-interface'> | ||
280 | <title>Using the Toaster Interface</title> | ||
281 | |||
282 | <para> | ||
283 | The Toaster interface allows you to examine the following: | ||
284 | <itemizedlist> | ||
285 | <listitem><para> | ||
286 | Outcome of the build, errors and warnings thrown | ||
287 | </para></listitem> | ||
288 | <listitem><para> | ||
289 | Packages included in an image | ||
290 | </para></listitem> | ||
291 | <listitem><para> | ||
292 | Image directory structure | ||
293 | </para></listitem> | ||
294 | <listitem><para> | ||
295 | Build configuration | ||
296 | </para></listitem> | ||
297 | <listitem><para> | ||
298 | Recipes and packages built | ||
299 | </para></listitem> | ||
300 | <listitem><para> | ||
301 | Full dependency chain for tasks, recipes and packages | ||
302 | </para></listitem> | ||
303 | <listitem><para> | ||
304 | Tasks run by the build system | ||
305 | </para></listitem> | ||
306 | <listitem><para> | ||
307 | Performance information such as time, CPU usage, and | ||
308 | disk I/O per task | ||
309 | </para></listitem> | ||
310 | </itemizedlist> | ||
311 | For several useful videos that show how to effectively use the | ||
312 | Toaster interface, see the | ||
313 | <ulink url='https://www.yoctoproject.org/documentation/toaster-manual-17'>Toaster Documentation</ulink> | ||
314 | on the Yocto Project website. | ||
315 | (SO WE NEED TO DECIDE IF THESE VIDS ARE GOING TO ROLL OVER INTO | ||
316 | 1.8 AND REMAIN ON A "TOASTER MANUAL" PAGE AS THEY DO IN 1.7. | ||
317 | OR, IF WE ARE GOING TO GET THE LINKS TO THE VIDS HERE IN THIS | ||
318 | MANUAL.) | ||
319 | </para> | ||
320 | </section> | ||
321 | </chapter> | ||
322 | |||
323 | |||
324 | <!-- | ||
325 | vim: expandtab tw=80 ts=4 | ||
326 | --> | ||