summaryrefslogtreecommitdiffstats
path: root/handbook/ref-structure.xml
diff options
context:
space:
mode:
Diffstat (limited to 'handbook/ref-structure.xml')
-rw-r--r--handbook/ref-structure.xml200
1 files changed, 179 insertions, 21 deletions
diff --git a/handbook/ref-structure.xml b/handbook/ref-structure.xml
index 3cc7295b7e..3d7c3c9db7 100644
--- a/handbook/ref-structure.xml
+++ b/handbook/ref-structure.xml
@@ -7,7 +7,7 @@
7 7
8<para> 8<para>
9 Poky consists of several components and understanding what these are 9 Poky consists of several components and understanding what these are
10 and where they're located is one of the keys to using it. This section walks 10 and where they're located is one of the keys to use it. This section walks
11 through the Poky directory structure giving information about the various 11 through the Poky directory structure giving information about the various
12 files and directories. 12 files and directories.
13</para> 13</para>
@@ -40,7 +40,10 @@
40 40
41 <para> 41 <para>
42 This directory contains user configuration files and the output 42 This directory contains user configuration files and the output
43 from Poky. 43 from Poky. It's now deprecated to be a sub-directory in Poky source tree,
44 though it's still supported. The desired way is to use <link
45 linkend='structure-core-script'>seperate output directory</link> for build
46 outside of Poky source tree.
44 </para> 47 </para>
45 </section> 48 </section>
46 49
@@ -64,6 +67,15 @@
64 </para> 67 </para>
65 </section> 68 </section>
66 69
70 <section id='structure-core-meta-***'>
71 <title><filename class="directory">meta-***/</filename></title>
72
73 <para>
74 These directories are optional layers to be added to core metadata, which
75 are enabled by adding them to conf/bblayers.conf.
76 </para>
77 </section>
78
67 <section id='structure-core-scripts'> 79 <section id='structure-core-scripts'>
68 <title><filename class="directory">scripts/</filename></title> 80 <title><filename class="directory">scripts/</filename></title>
69 81
@@ -108,6 +120,14 @@
108 120
109 </section> 121 </section>
110 122
123 <section id='handbook'>
124 <title><filename class="directory">handbook</filename></title>
125
126 <para>
127 This is the location where this handbook is generated
128 </para>
129 </section>
130
111 <section id='structure-core-script'> 131 <section id='structure-core-script'>
112 <title><filename>poky-init-build-env</filename></title> 132 <title><filename>poky-init-build-env</filename></title>
113 133
@@ -116,7 +136,18 @@
116 a shell makes changes to PATH and sets other core BitBake variables based on the 136 a shell makes changes to PATH and sets other core BitBake variables based on the
117 current working directory. You need to use this before running Poky commands. 137 current working directory. You need to use this before running Poky commands.
118 Internally it uses scripts within the <filename class="directory">scripts/ 138 Internally it uses scripts within the <filename class="directory">scripts/
119 </filename> directory to do the bulk of the work. 139 </filename> directory to do the bulk of the work. Now this script supports
140 specifying any directory as the build output:
141 </para>
142
143 <programlisting>
144source POKY_SRC/poky-init-build-env [BUILDDIR]
145 </programlisting>
146
147 <para>
148 Above command can be typed from any directory, as long as POKY_SRC points to
149 the desired Poky source tree. The optional BUILDDIR could be any directory you'd
150 like to contain output contents.
120 </para> 151 </para>
121 </section> 152 </section>
122</section> 153</section>
@@ -145,6 +176,16 @@
145 </para> 176 </para>
146 </section> 177 </section>
147 178
179 <section id='structure-build-conf-bblayers.conf'>
180 <title><filename>build/conf/bblayers.conf</filename></title>
181
182 <para>
183 This file defines layers walked by bitbake. If there's no <filename>
184 bblayers.conf</filename> present, it is created from <filename>bblayers.conf.sample
185 </filename>.
186 </para>
187 </section>
188
148 <section id='structure-build-tmp'> 189 <section id='structure-build-tmp'>
149 <title><filename class="directory">build/tmp/</filename></title> 190 <title><filename class="directory">build/tmp/</filename></title>
150 191
@@ -181,6 +222,15 @@
181 </para> 222 </para>
182 </section> 223 </section>
183 224
225 <section id='structure-build-tmp-deploy-rpm'>
226 <title><filename class="directory">build/tmp/deploy/rpm/</filename></title>
227
228 <para>
229 Any .rpm packages emitted by Poky are placed here, sorted into feeds for
230 different architecture types.
231 </para>
232 </section>
233
184 <section id='structure-build-tmp-deploy-images'> 234 <section id='structure-build-tmp-deploy-images'>
185 <title><filename class="directory">build/tmp/deploy/images/</filename></title> 235 <title><filename class="directory">build/tmp/deploy/images/</filename></title>
186 236
@@ -196,17 +246,6 @@
196 <para>Any resulting .ipk packages emitted by Poky are placed here.</para> 246 <para>Any resulting .ipk packages emitted by Poky are placed here.</para>
197 </section> 247 </section>
198 248
199 <section id='structure-build-tmp-rootfs'>
200 <title><filename class="directory">build/tmp/rootfs/</filename></title>
201
202 <para>
203 This is a temporary scratch area used when creating filesystem images. It is run
204 under fakeroot and is not useful once that fakeroot session has ended as
205 information is lost. It is left around since it is still useful in debugging
206 image creation problems.
207 </para>
208 </section>
209
210 <section id='structure-build-tmp-sysroots'> 249 <section id='structure-build-tmp-sysroots'>
211 <title><filename class="directory">build/tmp/sysroots/</filename></title> 250 <title><filename class="directory">build/tmp/sysroots/</filename></title>
212 251
@@ -224,7 +263,38 @@
224 <para> 263 <para>
225 This is used by BitBake for accounting purposes to keep track of which tasks 264 This is used by BitBake for accounting purposes to keep track of which tasks
226 have been run and when. It is also subdivided by architecture. The files are 265 have been run and when. It is also subdivided by architecture. The files are
227 empty and the important information is the filenames and timestamps.</para> 266 empty and the important information is the filenames and timestamps.
267 </para>
268 </section>
269
270 <section id='structure-build-tmp-log'>
271 <title><filename class="directory">build/tmp/log/</filename></title>
272
273 <para>
274 This contains some general logs if not placing in a package's
275 <glossterm><link linkend='var-WORKDIR'>WORKDIR</link></glossterm>, such as
276 the log output from check_pkg or distro_check tasks.
277 </para>
278 </section>
279
280 <section id='structure-build-tmp-pkgdata'>
281 <title><filename class="directory">build/tmp/pkgdata/</filename></title>
282
283 <para>
284 This is an intermediate place for saving packaging data, which will be used
285 in later packaging process. For detail please refer to <link linkend='ref-classes-package'>
286 package.bbclass</link>.
287 </para>
288 </section>
289
290 <section id='structure-build-tmp-pstagelogs'>
291 <title><filename class="directory">build/tmp/pstagelogs/</filename></title>
292
293 <para>
294 This directory contains manifest for task based prebuilt. Each manifest is basically
295 a file list for installed files from a given task, which would be useful for later
296 packaging or cleanup process.
297 </para>
228 </section> 298 </section>
229 299
230 <section id='structure-build-tmp-work'> 300 <section id='structure-build-tmp-work'>
@@ -258,7 +328,8 @@
258 linkend='var-WORKDIR'>WORKDIR</link></glossterm><filename 328 linkend='var-WORKDIR'>WORKDIR</link></glossterm><filename
259 class="directory">/image/</filename> directory is where <command>make 329 class="directory">/image/</filename> directory is where <command>make
260 install</command> places its output which is then split into subpackages 330 install</command> places its output which is then split into subpackages
261 within <glossterm><link linkend='var-WORKDIR'>WORKDIR</link></glossterm><filename class="directory">/install/</filename>. 331 within <glossterm><link linkend='var-WORKDIR'>WORKDIR</link></glossterm>
332 <filename class="directory">/packages-split/</filename>.
262 </para> 333 </para>
263 </section> 334 </section>
264</section> 335</section>
@@ -327,15 +398,102 @@
327 </para> 398 </para>
328 </section> 399 </section>
329 400
401 <section id='structure-meta-recipes-bsp'>
402 <title><filename class="directory">meta/recipes-bsp/</filename></title>
403
404 <para>
405 Anything linking to specific hardware or hardware configuration information
406 are placed here, such as uboot, grub, etc.
407 </para>
408 </section>
409
410 <section id='structure-meta-recipes-connectivity'>
411 <title><filename class="directory">meta/recipes-connectivity/</filename></title>
412
413 <para>
414 Libraries and applications related to communication with other devices
415 </para>
416 </section>
417
418 <section id='structure-meta-recipes-core'>
419 <title><filename class="directory">meta/recipes-core/</filename></title>
420
421 <para>
422 What's needed to build a basic working Linux image including commonly used dependencies
423 </para>
424 </section>
425
426 <section id='structure-meta-recipes-devtools'>
427 <title><filename class="directory">meta/recipes-devtools/</filename></title>
428
429 <para>
430 Tools primarily used by the build system (but can also be used on targets)
431 </para>
432 </section>
433
434 <section id='structure-meta-recipes-extended'>
435 <title><filename class="directory">meta/recipes-extended/</filename></title>
436
437 <para>
438 Applications which whilst not essential add features compared to the alternatives in
439 core. May be needed for full tool functionality or LSB compliance.
440 </para>
441 </section>
442
443 <section id='structure-meta-recipes-gnome'>
444 <title><filename class="directory">meta/recipes-gnome/</filename></title>
445
446 <para>
447 All things related to the GTK+ application framework
448 </para>
449 </section>
450
451 <section id='structure-meta-recipes-graphics'>
452 <title><filename class="directory">meta/recipes-graphics/</filename></title>
453
454 <para>
455 X and other graphically related system libraries
456 </para>
457 </section>
458
459 <section id='structure-meta-recipes-kernel'>
460 <title><filename class="directory">meta/recipes-kernel/</filename></title>
461
462 <para>
463 The kernel and generic applications/libraries with strong kernel dependencies
464 </para>
465 </section>
466
467 <section id='structure-meta-recipes-multimedia'>
468 <title><filename class="directory">meta/recipes-multimedia/</filename></title>
469
470 <para>
471 Codecs and support utilties for audio, images and video
472 </para>
473 </section>
474
475 <section id='structure-meta-recipes-qt'>
476 <title><filename class="directory">meta/recipes-qt/</filename></title>
477
478 <para>
479 All things related to the QT application framework
480 </para>
481 </section>
482
483 <section id='structure-meta-recipes-sato'>
484 <title><filename class="directory">meta/recipes-sato/</filename></title>
485
486 <para>
487 The Sato demo/reference UI/UX, its associated apps and configuration
488 </para>
489 </section>
490
330 <section id='structure-meta-packages'> 491 <section id='structure-meta-packages'>
331 <title><filename class="directory">meta/packages/</filename></title> 492 <title><filename class="directory">meta/packages/</filename></title>
332 493
333 <para> 494 <para>
334 Each application (package) Poky can build has an associated .bb file which are 495 this is a catch-all place for the rest which not fits into above
335 all stored under this directory. Poky finds them through the BBFILES variable 496 recipes-***. Images and tasks are also placed here.
336 which defaults to packages/*/*.bb. Adding a new piece of software to Poky
337 consists of adding the appropriate .bb file. The .bb files from OpenEmbedded
338 upstream are usually compatible although they are not supported.
339 </para> 497 </para>
340 </section> 498 </section>
341 499