diff options
author | Scott Rifenbark <scott.m.rifenbark@intel.com> | 2013-04-01 09:18:34 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-04-04 14:13:44 +0100 |
commit | 184a6f0c8820707919373f4eb8648155526862fc (patch) | |
tree | 3abd5e3f8ed6df1157183c3bd482ee39df7f4488 /documentation/dev-manual | |
parent | e4f0cc178e4aa560c2ccfa2013c2cdf288a94486 (diff) | |
download | poky-184a6f0c8820707919373f4eb8648155526862fc.tar.gz |
dev-manual: Applied review comments to building tiny section.
Fixes YOCTO #2568
These changes are based on Darren Hart's second review of this
new section.
(From yocto-docs rev: b61ef2b6cf96b45666e0f75753b76e0f875663b5)
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/dev-manual')
-rw-r--r-- | documentation/dev-manual/dev-manual-common-tasks.xml | 87 |
1 files changed, 70 insertions, 17 deletions
diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml index 544a14693a..5da9861c85 100644 --- a/documentation/dev-manual/dev-manual-common-tasks.xml +++ b/documentation/dev-manual/dev-manual-common-tasks.xml | |||
@@ -2209,8 +2209,8 @@ | |||
2209 | <para> | 2209 | <para> |
2210 | This section presents information that shows you how you can | 2210 | This section presents information that shows you how you can |
2211 | trim your distribution to even smaller sizes than the | 2211 | trim your distribution to even smaller sizes than the |
2212 | 8 Mbytes <filename>poky-tiny</filename> distribution that | 2212 | <filename>poky-tiny</filename> distribution, which is around |
2213 | can be built out-of-the-box using the Yocto Project. | 2213 | 5 Mbytes, that can be built out-of-the-box using the Yocto Project. |
2214 | </para> | 2214 | </para> |
2215 | 2215 | ||
2216 | <section id='tiny-system-overview'> | 2216 | <section id='tiny-system-overview'> |
@@ -2269,19 +2269,21 @@ | |||
2269 | <title>Understand What Gives Your Image Size</title> | 2269 | <title>Understand What Gives Your Image Size</title> |
2270 | 2270 | ||
2271 | <para> | 2271 | <para> |
2272 | You will need to have an image from which you can | 2272 | It is easiest to have something to start with when creating |
2273 | work. | 2273 | your own distribution. |
2274 | The Yocto Project ships with the ability to create a | 2274 | You can use the Yocto Project out-of-the-box to create the |
2275 | <filename>poky-tiny</filename> distribution. | 2275 | <filename>poky-tiny</filename> distribution. |
2276 | This distribution consists of a small, sub-8 Mbyte kernel | 2276 | Ulitmately, you will want to make changes in your own |
2277 | that works with two shipped Board Support Packages (BSPs): | 2277 | distribution that are likely modeled after |
2278 | Fish River Island 2 and QEMU. | 2278 | <filename>poky-tiny</filename>. |
2279 | You can use this distribution as a starting point and trim | 2279 | <note> |
2280 | the size down from there. | 2280 | To use <filename>poky-tiny</filename> in your build, |
2281 | If you need to build out the <filename>poky-tiny</filename> | 2281 | set the <filename>DISTRO</filename> variable in your |
2282 | distribution, see the | 2282 | <filename>local.conf</filename> file to "poky-tiny" |
2283 | "<link linkend='creating-your-own-distribution'>Creating Your Own Distribution</link>" | 2283 | as described in the |
2284 | section for information. | 2284 | "<link linkend='creating-your-own-distribution'>Creating Your Own Distribution</link>" |
2285 | section. | ||
2286 | </note> | ||
2285 | </para> | 2287 | </para> |
2286 | 2288 | ||
2287 | <para> | 2289 | <para> |
@@ -2292,8 +2294,9 @@ | |||
2292 | in the code), and BSS (uninitialized data) sections. | 2294 | in the code), and BSS (uninitialized data) sections. |
2293 | Dynamic memory contains memory that is allocated at runtime, | 2295 | Dynamic memory contains memory that is allocated at runtime, |
2294 | stacks, hash tables, and so forth. | 2296 | stacks, hash tables, and so forth. |
2295 | Temporary memory is decompressed from the expanded kernel | 2297 | Temporary memory is recovered after the boot process. |
2296 | after boot and also includes the <filename>__init__</filename> | 2298 | This memory consists of memory used for decompressing |
2299 | the kernel and for the <filename>__init__</filename> | ||
2297 | functions. | 2300 | functions. |
2298 | </para> | 2301 | </para> |
2299 | 2302 | ||
@@ -2304,7 +2307,8 @@ | |||
2304 | the <filename>scripts</filename> directory: | 2307 | the <filename>scripts</filename> directory: |
2305 | <itemizedlist> | 2308 | <itemizedlist> |
2306 | <listitem><para><filename>ksize.py</filename>: Reports | 2309 | <listitem><para><filename>ksize.py</filename>: Reports |
2307 | component sizes for the kernel files.</para></listitem> | 2310 | component sizes for the kernel build objects. |
2311 | </para></listitem> | ||
2308 | <listitem><para><filename>dirsize.py</filename>: Reports | 2312 | <listitem><para><filename>dirsize.py</filename>: Reports |
2309 | component sizes for the root filesystem.</para></listitem> | 2313 | component sizes for the root filesystem.</para></listitem> |
2310 | </itemizedlist> | 2314 | </itemizedlist> |
@@ -2503,6 +2507,55 @@ | |||
2503 | </para> | 2507 | </para> |
2504 | </section> | 2508 | </section> |
2505 | 2509 | ||
2510 | <section id='look-for-other-ways-to-minimize-size'> | ||
2511 | <title>Look for Other Ways to Minimize Size</title> | ||
2512 | |||
2513 | <para> | ||
2514 | Depending on your particular circumstances, other areas that you | ||
2515 | can trim likely exist. | ||
2516 | The key to finding these areas is through tools and methods | ||
2517 | described here combined with experimentation and iteration. | ||
2518 | Here are a couple of areas to experiment with: | ||
2519 | <itemizedlist> | ||
2520 | <listitem><para><filename>eglibc</filename>: | ||
2521 | In general, follow this process: | ||
2522 | <orderedlist> | ||
2523 | <listitem><para>Remove <filename>eglibc</filename> | ||
2524 | features from | ||
2525 | <ulink url='&YOCTO_DOCS_REF_URL;#var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></ulink> | ||
2526 | that you think you don't need.</para></listitem> | ||
2527 | <listitem><para>Build your distribution. | ||
2528 | </para></listitem> | ||
2529 | <listitem><para>If the build fails due to missing | ||
2530 | symbols in a package, determine if you can | ||
2531 | reconfigure the package to not need those | ||
2532 | features. | ||
2533 | For example, change the configuration to not | ||
2534 | support wide character support as is done for | ||
2535 | <filename>ncurses</filename>. | ||
2536 | Or, if support for those characters is needed, | ||
2537 | determine what <filename>eglibc</filename> | ||
2538 | features provide the support and restore the | ||
2539 | configuration. | ||
2540 | </para></listitem> | ||
2541 | <listitem><para>Rebuild and repeat the process. | ||
2542 | </para></listitem> | ||
2543 | </orderedlist></para></listitem> | ||
2544 | <listitem><para><filename>busybox</filename>: | ||
2545 | For BusyBox, use a process similar as described for | ||
2546 | <filename>eglibc</filename>. | ||
2547 | A difference is you will need to boot the resulting | ||
2548 | system to see if you are able to do everything you | ||
2549 | expect from the running system. | ||
2550 | You need to be sure to integrate configuration fragments | ||
2551 | into Busybox because BusyBox handles its own core | ||
2552 | features and then allows you to add configuration | ||
2553 | fragments on top. | ||
2554 | </para></listitem> | ||
2555 | </itemizedlist> | ||
2556 | </para> | ||
2557 | </section> | ||
2558 | |||
2506 | <section id='iterate-on-the-process'> | 2559 | <section id='iterate-on-the-process'> |
2507 | <title>Iterate on the Process</title> | 2560 | <title>Iterate on the Process</title> |
2508 | 2561 | ||