summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--documentation/dev-manual/dev-manual-common-tasks.xml165
-rw-r--r--documentation/ref-manual/ref-classes.xml43
2 files changed, 100 insertions, 108 deletions
diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml
index e6fd4fb363..6ad61d633a 100644
--- a/documentation/dev-manual/dev-manual-common-tasks.xml
+++ b/documentation/dev-manual/dev-manual-common-tasks.xml
@@ -606,27 +606,27 @@
606 <filename>EXTRA_IMAGE_FEATURES</filename></title> 606 <filename>EXTRA_IMAGE_FEATURES</filename></title>
607 607
608 <para> 608 <para>
609 Ultimately, you might want to add extra image features to the 609 Ultimately, you might want to add extra image features to the
610 set by using the 610 set by using the
611 <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_FEATURES'>IMAGE_FEATURES</ulink></filename> 611 <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_FEATURES'>IMAGE_FEATURES</ulink></filename>
612 variable. 612 variable.
613 To create these features, the best reference is 613 To create these features, the best reference is
614 <filename>meta/classes/core-image.bbclass</filename>, which 614 <filename>meta/classes/core-image.bbclass</filename>, which
615 shows how you can add features. 615 shows how you can add features.
616 In summary, the file looks at the contents of the 616 In summary, the file looks at the contents of the
617 <filename>IMAGE_FEATURES</filename> variable and then maps those 617 <filename>IMAGE_FEATURES</filename> variable and then maps those
618 contents into a set of tasks or packages. 618 contents into a set of tasks or packages.
619 Based on this information, the build system automatically 619 Based on this information, the build system automatically
620 generates the 620 generates the
621 <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_INSTALL'> IMAGE_INSTALL</ulink></filename> 621 <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_INSTALL'> IMAGE_INSTALL</ulink></filename>
622 variable. 622 variable.
623 You can add extra features by extending the class or creating a 623 You can add extra features by extending the class or creating a
624 custom class for use with specialized image 624 custom class for use with specialized image
625 <filename>.bb</filename> files. 625 <filename>.bb</filename> files.
626 You can also add more features by configuring the 626 You can also add more features by configuring the
627 <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_IMAGE_FEATURES'>EXTRA_IMAGE_FEATURES</ulink></filename> 627 <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_IMAGE_FEATURES'>EXTRA_IMAGE_FEATURES</ulink></filename>
628 variable in the <filename>local.conf</filename> file found in 628 variable in the <filename>local.conf</filename> file found in
629 the <filename>local.conf</filename> file, which is located in 629 the <filename>local.conf</filename> file, which is located in
630 the <link linkend='build-directory'>Build Directory</link>. 630 the <link linkend='build-directory'>Build Directory</link>.
631 </para> 631 </para>
632 632
@@ -634,25 +634,25 @@
634 <title>Choosing the SSH Server</title> 634 <title>Choosing the SSH Server</title>
635 635
636 <para> 636 <para>
637 The Yocto Project ships with two SSH servers you can use 637 The Yocto Project ships with two SSH servers you can use
638 with your images: Dropbear and OpenSSH. 638 with your images: Dropbear and OpenSSH.
639 Dropbear is a minimal SSH server appropriate for 639 Dropbear is a minimal SSH server appropriate for
640 resource-constrained environments, while OpenSSH is a 640 resource-constrained environments, while OpenSSH is a
641 well-known standard SSH server implementation. 641 well-known standard SSH server implementation.
642 By default, the <filename>core-image-sato</filename> image 642 By default, the <filename>core-image-sato</filename> image
643 is configured to use Dropbear. 643 is configured to use Dropbear.
644 The <filename>core-image-basic</filename> and 644 The <filename>core-image-basic</filename> and
645 <filename>core-image-lsb</filename> images both 645 <filename>core-image-lsb</filename> images both
646 include OpenSSH. 646 include OpenSSH.
647 The <filename>core-image-minimal</filename> image does not 647 The <filename>core-image-minimal</filename> image does not
648 contain an SSH server. 648 contain an SSH server.
649 </para> 649 </para>
650 650
651 <para> 651 <para>
652 You can customize your image and change these defaults. 652 You can customize your image and change these defaults.
653 Edit <filename>IMAGE_FEATURES</filename> variable 653 Edit <filename>IMAGE_FEATURES</filename> variable
654 so that it configures the image you are working with to 654 so that it configures the image you are working with to
655 include <filename>ssh-server-dropbear</filename> or 655 include <filename>ssh-server-dropbear</filename> or
656 <filename>ssh-server-openssh</filename>. 656 <filename>ssh-server-openssh</filename>.
657 </para> 657 </para>
658 </section> 658 </section>
@@ -661,24 +661,24 @@
661 <title>Creating a Read-Only Root Filesystem</title> 661 <title>Creating a Read-Only Root Filesystem</title>
662 662
663 <para> 663 <para>
664 Another example of customizing your image could be setting 664 Another example of customizing your image could be setting
665 up a read-only filesystem. 665 up a read-only filesystem.
666 Suppose, for security reasons, you need to disable the 666 Suppose, for security reasons, you need to disable the
667 your target device's root filesystem's write permisions 667 your target device's root filesystem's write permisions
668 (i.e. you need a read-only root filesystem). 668 (i.e. you need a read-only root filesystem).
669 Or, perhaps you are running the device's operating system 669 Or, perhaps you are running the device's operating system
670 from a read-only storage device. 670 from a read-only storage device.
671 For either case, you can customize your image for 671 For either case, you can customize your image for
672 that behavior. 672 that behavior.
673 </para> 673 </para>
674 674
675 <para> 675 <para>
676 To create a read-only root filesystem, simply add the 676 To create a read-only root filesystem, simply add the
677 "read-only-rootfs" feature to your image. 677 "read-only-rootfs" feature to your image.
678 Using either of the following statements in your 678 Using either of the following statements in your
679 image recipe or from within the 679 image recipe or from within the
680 <filename>local.conf</filename> file found in the Build 680 <filename>local.conf</filename> file found in the Build
681 Directory causes the build system to create a 681 Directory causes the build system to create a
682 read-only root filesystem: 682 read-only root filesystem:
683 <literallayout class='monospaced'> 683 <literallayout class='monospaced'>
684 IMAGE_FEATURES = "read-only-rootfs" 684 IMAGE_FEATURES = "read-only-rootfs"
@@ -2320,16 +2320,16 @@
2320 <para> 2320 <para>
2321 It is easiest to have something to start with when creating 2321 It is easiest to have something to start with when creating
2322 your own distribution. 2322 your own distribution.
2323 You can use the Yocto Project out-of-the-box to create the 2323 You can use the Yocto Project out-of-the-box to create the
2324 <filename>poky-tiny</filename> distribution. 2324 <filename>poky-tiny</filename> distribution.
2325 Ulitmately, you will want to make changes in your own 2325 Ulitmately, you will want to make changes in your own
2326 distribution that are likely modeled after 2326 distribution that are likely modeled after
2327 <filename>poky-tiny</filename>. 2327 <filename>poky-tiny</filename>.
2328 <note> 2328 <note>
2329 To use <filename>poky-tiny</filename> in your build, 2329 To use <filename>poky-tiny</filename> in your build,
2330 set the <filename>DISTRO</filename> variable in your 2330 set the <filename>DISTRO</filename> variable in your
2331 <filename>local.conf</filename> file to "poky-tiny" 2331 <filename>local.conf</filename> file to "poky-tiny"
2332 as described in the 2332 as described in the
2333 "<link linkend='creating-your-own-distribution'>Creating Your Own Distribution</link>" 2333 "<link linkend='creating-your-own-distribution'>Creating Your Own Distribution</link>"
2334 section. 2334 section.
2335 </note> 2335 </note>
@@ -2344,7 +2344,7 @@
2344 Dynamic memory contains memory that is allocated at runtime, 2344 Dynamic memory contains memory that is allocated at runtime,
2345 stacks, hash tables, and so forth. 2345 stacks, hash tables, and so forth.
2346 Temporary memory is recovered after the boot process. 2346 Temporary memory is recovered after the boot process.
2347 This memory consists of memory used for decompressing 2347 This memory consists of memory used for decompressing
2348 the kernel and for the <filename>__init__</filename> 2348 the kernel and for the <filename>__init__</filename>
2349 functions. 2349 functions.
2350 </para> 2350 </para>
@@ -2560,7 +2560,7 @@
2560 <title>Look for Other Ways to Minimize Size</title> 2560 <title>Look for Other Ways to Minimize Size</title>
2561 2561
2562 <para> 2562 <para>
2563 Depending on your particular circumstances, other areas that you 2563 Depending on your particular circumstances, other areas that you
2564 can trim likely exist. 2564 can trim likely exist.
2565 The key to finding these areas is through tools and methods 2565 The key to finding these areas is through tools and methods
2566 described here combined with experimentation and iteration. 2566 described here combined with experimentation and iteration.
@@ -2570,35 +2570,35 @@
2570 In general, follow this process: 2570 In general, follow this process:
2571 <orderedlist> 2571 <orderedlist>
2572 <listitem><para>Remove <filename>eglibc</filename> 2572 <listitem><para>Remove <filename>eglibc</filename>
2573 features from 2573 features from
2574 <ulink url='&YOCTO_DOCS_REF_URL;#var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></ulink> 2574 <ulink url='&YOCTO_DOCS_REF_URL;#var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></ulink>
2575 that you think you don't need.</para></listitem> 2575 that you think you don't need.</para></listitem>
2576 <listitem><para>Build your distribution. 2576 <listitem><para>Build your distribution.
2577 </para></listitem> 2577 </para></listitem>
2578 <listitem><para>If the build fails due to missing 2578 <listitem><para>If the build fails due to missing
2579 symbols in a package, determine if you can 2579 symbols in a package, determine if you can
2580 reconfigure the package to not need those 2580 reconfigure the package to not need those
2581 features. 2581 features.
2582 For example, change the configuration to not 2582 For example, change the configuration to not
2583 support wide character support as is done for 2583 support wide character support as is done for
2584 <filename>ncurses</filename>. 2584 <filename>ncurses</filename>.
2585 Or, if support for those characters is needed, 2585 Or, if support for those characters is needed,
2586 determine what <filename>eglibc</filename> 2586 determine what <filename>eglibc</filename>
2587 features provide the support and restore the 2587 features provide the support and restore the
2588 configuration. 2588 configuration.
2589 </para></listitem> 2589 </para></listitem>
2590 <listitem><para>Rebuild and repeat the process. 2590 <listitem><para>Rebuild and repeat the process.
2591 </para></listitem> 2591 </para></listitem>
2592 </orderedlist></para></listitem> 2592 </orderedlist></para></listitem>
2593 <listitem><para><filename>busybox</filename>: 2593 <listitem><para><filename>busybox</filename>:
2594 For BusyBox, use a process similar as described for 2594 For BusyBox, use a process similar as described for
2595 <filename>eglibc</filename>. 2595 <filename>eglibc</filename>.
2596 A difference is you will need to boot the resulting 2596 A difference is you will need to boot the resulting
2597 system to see if you are able to do everything you 2597 system to see if you are able to do everything you
2598 expect from the running system. 2598 expect from the running system.
2599 You need to be sure to integrate configuration fragments 2599 You need to be sure to integrate configuration fragments
2600 into Busybox because BusyBox handles its own core 2600 into Busybox because BusyBox handles its own core
2601 features and then allows you to add configuration 2601 features and then allows you to add configuration
2602 fragments on top. 2602 fragments on top.
2603 </para></listitem> 2603 </para></listitem>
2604 </itemizedlist> 2604 </itemizedlist>
@@ -3126,8 +3126,9 @@
3126 <title>Setting Up Runtime Package Management</title> 3126 <title>Setting Up Runtime Package Management</title>
3127 3127
3128 <para> 3128 <para>
3129 It is possible to set up a repository that is a host-based 3129 For RPM, IPK, and DEB package formats, it is possible to set
3130 package feed from which you can install packages on the 3130 up a repository that is a host-based
3131 package feed from which you can install packages on the
3131 target system during runtime. 3132 target system during runtime.
3132 Doing so is optional and depends on the following: 3133 Doing so is optional and depends on the following:
3133 <itemizedlist> 3134 <itemizedlist>
@@ -3135,14 +3136,14 @@
3135 You take specific steps to set up the feed. 3136 You take specific steps to set up the feed.
3136 </para></listitem> 3137 </para></listitem>
3137 <listitem><para> 3138 <listitem><para>
3138 When you build your image, you select to use the 3139 When you build your image, you select to use the
3139 RPM package manager by setting the 3140 appropriate package manager by setting the
3140 <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></ulink> 3141 <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></ulink>
3141 variable. 3142 variable.
3142 </para></listitem> 3143 </para></listitem>
3143 <listitem><para> 3144 <listitem><para>
3144 You have Apache 2 installed and configured on the 3145 You have a supported web server, such as Apache 2,
3145 development host. 3146 installed and configured on the development host.
3146 </para></listitem> 3147 </para></listitem>
3147 <listitem><para> 3148 <listitem><para>
3148 You have <filename>createrepo</filename> installed on 3149 You have <filename>createrepo</filename> installed on
@@ -3152,14 +3153,16 @@
3152 </para> 3153 </para>
3153 3154
3154 <para> 3155 <para>
3155 Here are the steps to set up this optional package feed: 3156 Following are the steps to set up the optional repository.
3157 This examples assumes you are using RPM and the Apache 2
3158 server:
3156 <orderedlist> 3159 <orderedlist>
3157 <listitem><para> 3160 <listitem><para>
3158 Add the directory to your Apache configuration, which 3161 Add the directory to your Apache configuration, which
3159 you can find at 3162 you can find at
3160 <filename>/etc/httpd/conf/httpd.conf</filename>. 3163 <filename>/etc/httpd/conf/httpd.conf</filename>.
3161 Use commands similar to these on the development system. 3164 Use commands similar to these on the development system.
3162 These example commands assume a top-level 3165 These example commands assume a top-level
3163 <link linkend='source-directory'>Source Directory</link> 3166 <link linkend='source-directory'>Source Directory</link>
3164 named <filename>poky</filename> in your home directory: 3167 named <filename>poky</filename> in your home directory:
3165 <literallayout class='monospaced'> 3168 <literallayout class='monospaced'>
@@ -3169,7 +3172,7 @@
3169 &lt;Directory "~/poky/build/tmp/deploy/rpm"&gt; 3172 &lt;Directory "~/poky/build/tmp/deploy/rpm"&gt;
3170 Options +Indexes 3173 Options +Indexes
3171 &lt;/Directory&gt; 3174 &lt;/Directory&gt;
3172 &lt;/VirtualHost&gt; 3175 &lt;/VirtualHost&gt;
3173 </literallayout> 3176 </literallayout>
3174 </para></listitem> 3177 </para></listitem>
3175 <listitem><para> 3178 <listitem><para>
@@ -3177,35 +3180,23 @@
3177 For all commands, be sure you have root privileges. 3180 For all commands, be sure you have root privileges.
3178 </para> 3181 </para>
3179 <para> 3182 <para>
3180 If your development system is using Fedora or 3183 If your development system is using Fedora or
3181 CentOS, use the following: 3184 CentOS, use the following:
3182 </para> 3185 <literallayout class='monospaced'>
3183 <note> 3186 service httpd reload
3184 <emphasis>Note to Self:</emphasis> Paul says that 3187 </literallayout>
3185 some of the distros (Fedora and CentOS in 3188 For Ubuntu, use the following:
3186 particular) might have different commands based 3189 <literallayout class='monospaced'>
3187 on the distro version.
3188 We need links for the reader to follow for the
3189 specifics.
3190 We don't want to have to document all this
3191 distro-specific stuff.
3192 </note>
3193 <para>
3194 <literallayout class='monospaced'>
3195 service httpd reload
3196 </literallayout>
3197 For Ubuntu, use the following:
3198 <literallayout class='monospaced'>
3199 /etc/init.d/apache2 reload 3190 /etc/init.d/apache2 reload
3200 </literallayout> 3191 </literallayout>
3201 For OpenSUSE, use the following: 3192 For OpenSUSE, use the following:
3202 <literallayout class='monospaced'> 3193 <literallayout class='monospaced'>
3203 /etc/init.d/apache2 reload 3194 /etc/init.d/apache2 reload
3204 </literallayout> 3195 </literallayout>
3205 </para></listitem> 3196 </para></listitem>
3206 <listitem><para> 3197 <listitem><para>
3207 Change your working directory to 3198 Change your working directory to
3208 <filename>tmp/deploy/rpm</filename> in the 3199 <filename>tmp/deploy/rpm</filename> in the
3209 <link linkend='build-directory'>Build Directory</link>. 3200 <link linkend='build-directory'>Build Directory</link>.
3210 </para></listitem> 3201 </para></listitem>
3211 <listitem><para> 3202 <listitem><para>
@@ -3217,13 +3208,13 @@
3217 </para> 3208 </para>
3218 <para> 3209 <para>
3219 <note> 3210 <note>
3220 If you're updating, add 3211 If you're updating, add
3221 <filename>&dash;&dash;update</filename> to save some time. 3212 <filename>&dash;&dash;update</filename> to save some time.
3222 </note> 3213 </note>
3223 </para></listitem> 3214 </para></listitem>
3224 <listitem><para> 3215 <listitem><para>
3225 If you are using Security-Enhanced Linux (SELinux), 3216 If you are using Security-Enhanced Linux (SELinux),
3226 you need to label the files as being accessible 3217 you need to label the files as being accessible
3227 through Apache. 3218 through Apache.
3228 Use the following command from the development host: 3219 Use the following command from the development host:
3229 <literallayout class='monospaced'> 3220 <literallayout class='monospaced'>
@@ -3232,14 +3223,14 @@
3232 </para></listitem> 3223 </para></listitem>
3233 <listitem><para> 3224 <listitem><para>
3234 On the target machine, add the repository to Smart. 3225 On the target machine, add the repository to Smart.
3235 For <filename>somealias</filename>, provide a local 3226 For <filename>somealias</filename>, provide a local
3236 alias for the repository: 3227 alias for the repository:
3237 <literallayout class='monospaced'> 3228 <literallayout class='monospaced'>
3238 smart channel &dash;&dash;add &lt;somealias&gt; type=rpm-md baseurl=http://server.name/rpm 3229 smart channel &dash;&dash;add &lt;somealias&gt; type=rpm-md baseurl=http://server.name/rpm
3239 </literallayout> 3230 </literallayout>
3240 </para></listitem> 3231 </para></listitem>
3241 <listitem><para> 3232 <listitem><para>
3242 Also from the target machine, fetch the repository 3233 Also from the target machine, fetch the repository
3243 information using this command: 3234 information using this command:
3244 <literallayout class='monospaced'> 3235 <literallayout class='monospaced'>
3245 smart update 3236 smart update
@@ -3249,9 +3240,9 @@
3249 </para> 3240 </para>
3250 3241
3251 <para> 3242 <para>
3252 After taking these steps and making sure that the other 3243 After taking these steps and making sure that the other
3253 requirements mentioned at the beginning of the section are met, 3244 requirements mentioned at the beginning of the section are met,
3254 reboot the target device to take advantage of runtime package 3245 reboot the target device to take advantage of runtime package
3255 installations. 3246 installations.
3256 </para> 3247 </para>
3257 </section> 3248 </section>
diff --git a/documentation/ref-manual/ref-classes.xml b/documentation/ref-manual/ref-classes.xml
index e2f1611b5b..a03a68b6e9 100644
--- a/documentation/ref-manual/ref-classes.xml
+++ b/documentation/ref-manual/ref-classes.xml
@@ -328,51 +328,52 @@
328 </para> 328 </para>
329 329
330 <para> 330 <para>
331 If you take the optional step to set up a repository (package feed)
332 on the development host that can be used by Smart, you can
333 install packages from the feed while you are running the image
334 on the target (i.e. runtime installation of packages).
335 For information on how to set up this repository, see the
336 "<ulink url='&YOCTO_DOCS_DEV_URL;#setting-up-runtime-package-management'>Setting Up Runtime Package Management</ulink>"
337 in the Yocto Project Development Manual.
338 </para>
339
340 <para>
331 The package class you choose can affect build-time performance and has space 341 The package class you choose can affect build-time performance and has space
332 ramifications. 342 ramifications.
333 In general, building a package with IPK takes about thirty percent less 343 In general, building a package with IPK takes about thirty percent less
334 time as compared to using RPM to build the same or similar package. 344 time as compared to using RPM to build the same or similar package.
335 This comparison takes into account a complete build of the package with 345 This comparison takes into account a complete build of the package with
336 all dependencies previously built. 346 all dependencies previously built.
337 The reason for this discrepancy is because the RPM package manager 347 The reason for this discrepancy is because the RPM package manager
338 creates and processes more 348 creates and processes more
339 <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink> than the 349 <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink> than the
340 IPK package manager. 350 IPK package manager.
341 Consequently, you might consider setting <filename>PACKAGE_CLASSES</filename> 351 Consequently, you might consider setting <filename>PACKAGE_CLASSES</filename>
342 to "package_ipk" if you are building smaller systems. 352 to "package_ipk" if you are building smaller systems.
343 </para> 353 </para>
344 354
345 <para> 355 <para>
346 Before making your decision on package manager, however, you should 356 Before making your decision on package manager, however, you should
347 consider some further things about using RPM: 357 consider some further things about using RPM:
348 <itemizedlist> 358 <itemizedlist>
349 <listitem><para> 359 <listitem><para>
350 RPM starts to provide more abilities than IPK due to 360 RPM starts to provide more abilities than IPK due to
351 the fact that it processes more metadata. 361 the fact that it processes more metadata.
352 For example, this information includes individual file types, 362 For example, this information includes individual file types,
353 file checksum generation and evaluation on install, sparse file 363 file checksum generation and evaluation on install, sparse file
354 support, conflict detection and resolution for Multilib systems, 364 support, conflict detection and resolution for Multilib systems,
355 ACID style upgrade, and repackaging abilities for rollbacks. 365 ACID style upgrade, and repackaging abilities for rollbacks.
356 </para></listitem> 366 </para></listitem>
357 <listitem><para> 367 <listitem><para>
358 For smaller systems, the extra space used for the Berkley 368 For smaller systems, the extra space used for the Berkley
359 Database and the amount of metadata when using RPM can affect 369 Database and the amount of metadata when using RPM can affect
360 your ability to perform on-device upgrades. 370 your ability to perform on-device upgrades.
361 </para></listitem> 371 </para></listitem>
362 <listitem><para> 372 </itemizedlist>
363 If you take the steps to set up a repository (package feed)
364 on the development host that can be used by Smart, you can
365 install packages from the feed while you are running the image
366 on the target (i.e. runtime installation of packages).
367 For information on how to set up this repository, see the
368 "<ulink url='&YOCTO_DOCS_DEV_URL;#setting-up-runtime-package-management'>Setting Up Runtime Package Management</ulink>"
369 in the Yocto Project Development Manual.
370 </para></listitem>
371 </itemizedlist>
372 </para> 373 </para>
373 374
374 <para> 375 <para>
375 You can find additional information on the effects of the package 376 You can find additional information on the effects of the package
376 class at these two Yocto Project mailing list links: 377 class at these two Yocto Project mailing list links:
377 <itemizedlist> 378 <itemizedlist>
378 <listitem><para><ulink url='&YOCTO_LISTS_URL;/pipermail/poky/2011-May/006362.html'> 379 <listitem><para><ulink url='&YOCTO_LISTS_URL;/pipermail/poky/2011-May/006362.html'>