diff options
| -rw-r--r-- | documentation/dev-manual/dev-manual-common-tasks.xml | 172 |
1 files changed, 87 insertions, 85 deletions
diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml index a6aa8fafbe..1abc91431d 100644 --- a/documentation/dev-manual/dev-manual-common-tasks.xml +++ b/documentation/dev-manual/dev-manual-common-tasks.xml | |||
| @@ -2132,18 +2132,18 @@ | |||
| 2132 | 2132 | ||
| 2133 | <para> | 2133 | <para> |
| 2134 | Very small distributions have some significant advantages such | 2134 | Very small distributions have some significant advantages such |
| 2135 | as requiring less on-die memory (cheaper), better performance | 2135 | as requiring less on-die memory (cheaper), better performance |
| 2136 | through efficient cache usage, lower power requirements due to less | 2136 | through efficient cache usage, lower power requirements due to less |
| 2137 | memory, faster boot times, and reduced development overhead. | 2137 | memory, faster boot times, and reduced development overhead. |
| 2138 | Some real-world examples where a very small distribution gives | 2138 | Some real-world examples where a very small distribution gives |
| 2139 | you distinct advantages are digital cameras, medical devices, | 2139 | you distinct advantages are digital cameras, medical devices, |
| 2140 | small headless systems, and partitioned flash. | 2140 | small headless systems, and partitioned flash. |
| 2141 | </para> | 2141 | </para> |
| 2142 | 2142 | ||
| 2143 | <para> | 2143 | <para> |
| 2144 | This section presents information that shows you how you can | 2144 | This section presents information that shows you how you can |
| 2145 | trim your distribution to even smaller sizes than the | 2145 | trim your distribution to even smaller sizes than the |
| 2146 | 8 Mbytes <filename>poky-tiny</filename> distribution that | 2146 | 8 Mbytes <filename>poky-tiny</filename> distribution that |
| 2147 | can be built out-of-the-box using the Yocto Project. | 2147 | can be built out-of-the-box using the Yocto Project. |
| 2148 | </para> | 2148 | </para> |
| 2149 | 2149 | ||
| @@ -2151,18 +2151,18 @@ | |||
| 2151 | <title>Overview</title> | 2151 | <title>Overview</title> |
| 2152 | 2152 | ||
| 2153 | <para> | 2153 | <para> |
| 2154 | The following list presents the overall steps you need to | 2154 | The following list presents the overall steps you need to |
| 2155 | consider and perform to create very small systems that | 2155 | consider and perform to create very small systems that |
| 2156 | have a kernel and root filesystem under 4 Mbytes, boot to the | 2156 | have a kernel and root filesystem under 4 Mbytes, boot to the |
| 2157 | shell in under two seconds, maintain <filename>ipv4</filename> | 2157 | shell in under two seconds, maintain <filename>ipv4</filename> |
| 2158 | functionality, and avoid an initial RAM disk: | 2158 | functionality, and avoid an initial RAM disk: |
| 2159 | <itemizedlist> | 2159 | <itemizedlist> |
| 2160 | <listitem><para>Determine your goals and guiding | 2160 | <listitem><para>Determine your goals and guiding |
| 2161 | principles.</para></listitem> | 2161 | principles.</para></listitem> |
| 2162 | <listitem><para>Understand what gives your image size. | 2162 | <listitem><para>Understand what gives your image size. |
| 2163 | </para></listitem> | 2163 | </para></listitem> |
| 2164 | <listitem><para>Reduce the size of the root filesystem. | 2164 | <listitem><para>Reduce the size of the root filesystem. |
| 2165 | </para></listitem> | 2165 | </para></listitem> |
| 2166 | <listitem><para>Reduce the size of the kernel. | 2166 | <listitem><para>Reduce the size of the kernel. |
| 2167 | </para></listitem> | 2167 | </para></listitem> |
| 2168 | <listitem><para>Iterate on the process.</para></listitem> | 2168 | <listitem><para>Iterate on the process.</para></listitem> |
| @@ -2174,26 +2174,26 @@ | |||
| 2174 | <title>Goals and Guiding Principles</title> | 2174 | <title>Goals and Guiding Principles</title> |
| 2175 | 2175 | ||
| 2176 | <para> | 2176 | <para> |
| 2177 | Before you can reach your destination, you need to know | 2177 | Before you can reach your destination, you need to know |
| 2178 | where you are going. | 2178 | where you are going. |
| 2179 | Here is an example list that you can use as a guide when | 2179 | Here is an example list that you can use as a guide when |
| 2180 | creating very small distributions: | 2180 | creating very small distributions: |
| 2181 | <itemizedlist> | 2181 | <itemizedlist> |
| 2182 | <listitem><para>Determine how much space you need | 2182 | <listitem><para>Determine how much space you need |
| 2183 | (e.g. a kernel that is 1 Mbyte or less and | 2183 | (e.g. a kernel that is 1 Mbyte or less and |
| 2184 | a root filesystem that is 3 Mbytes or less). | 2184 | a root filesystem that is 3 Mbytes or less). |
| 2185 | </para></listitem> | 2185 | </para></listitem> |
| 2186 | <listitem><para>Find the areas that are currently | 2186 | <listitem><para>Find the areas that are currently |
| 2187 | taking 90% of the space and concentrate on reducing | 2187 | taking 90% of the space and concentrate on reducing |
| 2188 | those areas. | 2188 | those areas. |
| 2189 | </para></listitem> | 2189 | </para></listitem> |
| 2190 | <listitem><para>Do not create any difficult "hacks" | 2190 | <listitem><para>Do not create any difficult "hacks" |
| 2191 | to achieve your goals.</para></listitem> | 2191 | to achieve your goals.</para></listitem> |
| 2192 | <listitem><para>Leverage off the device-specific | 2192 | <listitem><para>Leverage off the device-specific |
| 2193 | options.</para></listitem> | 2193 | options.</para></listitem> |
| 2194 | <listitem><para>Work in a separate layer so that you | 2194 | <listitem><para>Work in a separate layer so that you |
| 2195 | keep changes isolated. | 2195 | keep changes isolated. |
| 2196 | For information on how to create layers, see | 2196 | For information on how to create layers, see |
| 2197 | the "<link linkend='understanding-and-creating-layers'>Understanding and Creating Layers</link>" section. | 2197 | the "<link linkend='understanding-and-creating-layers'>Understanding and Creating Layers</link>" section. |
| 2198 | </para></listitem> | 2198 | </para></listitem> |
| 2199 | </itemizedlist> | 2199 | </itemizedlist> |
| @@ -2204,9 +2204,9 @@ | |||
| 2204 | <title>Understand What Gives Your Image Size</title> | 2204 | <title>Understand What Gives Your Image Size</title> |
| 2205 | 2205 | ||
| 2206 | <para> | 2206 | <para> |
| 2207 | You will need to have an image from which you can | 2207 | You will need to have an image from which you can |
| 2208 | work. | 2208 | work. |
| 2209 | The Yocto Project ships with the ability to create a | 2209 | The Yocto Project ships with the ability to create a |
| 2210 | <filename>poky-tiny</filename> distribution. | 2210 | <filename>poky-tiny</filename> distribution. |
| 2211 | This distribution consists of a small, sub-8 Mbyte kernel | 2211 | This distribution consists of a small, sub-8 Mbyte kernel |
| 2212 | that works with two shipped Board Support Packages (BSPs): | 2212 | that works with two shipped Board Support Packages (BSPs): |
| @@ -2218,16 +2218,16 @@ | |||
| 2218 | "<link linkend='creating-your-own-distribution'>Creating Your Own Distribution</link>" | 2218 | "<link linkend='creating-your-own-distribution'>Creating Your Own Distribution</link>" |
| 2219 | section for information. | 2219 | section for information. |
| 2220 | </para> | 2220 | </para> |
| 2221 | 2221 | ||
| 2222 | <para> | 2222 | <para> |
| 2223 | Understanding some memory concepts will help you reduce the | 2223 | Understanding some memory concepts will help you reduce the |
| 2224 | system size. | 2224 | system size. |
| 2225 | Memory consists of static, dynamic, and temporary memory. | 2225 | Memory consists of static, dynamic, and temporary memory. |
| 2226 | Static memory is the TEXT (the code), DATA (initialized data | 2226 | Static memory is the TEXT (the code), DATA (initialized data |
| 2227 | in the code), and BSS (uninitialized data) sections. | 2227 | in the code), and BSS (uninitialized data) sections. |
| 2228 | Dynamic memory contains memory that is allocate at runtime, | 2228 | Dynamic memory contains memory that is allocate at runtime, |
| 2229 | stacks, hash tables, and so forth. | 2229 | stacks, hash tables, and so forth. |
| 2230 | Temporary memory is decompressed from the expanded kernel | 2230 | Temporary memory is decompressed from the expanded kernel |
| 2231 | after boot. | 2231 | after boot. |
| 2232 | Temporary memory also includes the <filename>__init__</filename> | 2232 | Temporary memory also includes the <filename>__init__</filename> |
| 2233 | functions. | 2233 | functions. |
| @@ -2235,8 +2235,8 @@ | |||
| 2235 | 2235 | ||
| 2236 | <para> | 2236 | <para> |
| 2237 | To help you see where you currently are with kernel and root | 2237 | To help you see where you currently are with kernel and root |
| 2238 | filesystem sizes, you can use two tools found in the | 2238 | filesystem sizes, you can use two tools found in the |
| 2239 | <link linkend='source-directory'>Source Directory</link> in | 2239 | <link linkend='source-directory'>Source Directory</link> in |
| 2240 | the <filename>scripts</filename> directory: | 2240 | the <filename>scripts</filename> directory: |
| 2241 | <itemizedlist> | 2241 | <itemizedlist> |
| 2242 | <listitem><para><filename>ksize.py</filename>: Reports | 2242 | <listitem><para><filename>ksize.py</filename>: Reports |
| @@ -2244,54 +2244,54 @@ | |||
| 2244 | <listitem><para><filename>dirsize.py</filename>: Reports | 2244 | <listitem><para><filename>dirsize.py</filename>: Reports |
| 2245 | the size of the root filesystem.</para></listitem> | 2245 | the size of the root filesystem.</para></listitem> |
| 2246 | </itemizedlist> | 2246 | </itemizedlist> |
| 2247 | This next tool and command helps you organize configuration | 2247 | This next tool and command helps you organize configuration |
| 2248 | fragments and view file dependencies in a human-readable form: | 2248 | fragments and view file dependencies in a human-readable form: |
| 2249 | <itemizedlist> | 2249 | <itemizedlist> |
| 2250 | <listitem><para><filename>merge_config.sh</filename>: | 2250 | <listitem><para><filename>merge_config.sh</filename>: |
| 2251 | Helps you manage configuration files and fragments | 2251 | Helps you manage configuration files and fragments |
| 2252 | within the kernel. | 2252 | within the kernel. |
| 2253 | With this tool you can merge individual configuration | 2253 | With this tool you can merge individual configuration |
| 2254 | fragments together. | 2254 | fragments together. |
| 2255 | The tool allows you to make overrides and warns you | 2255 | The tool allows you to make overrides and warns you |
| 2256 | of any missing configuration options. | 2256 | of any missing configuration options. |
| 2257 | The tool is ideal for allowing you to iterate on | 2257 | The tool is ideal for allowing you to iterate on |
| 2258 | configurations, create minimal configurations, and | 2258 | configurations, create minimal configurations, and |
| 2259 | create a configuration files for different machines | 2259 | create a configuration files for different machines |
| 2260 | without having to duplicate your process.</para> | 2260 | without having to duplicate your process.</para> |
| 2261 | <para>The <filename>merge_config.sh</filename> script is | 2261 | <para>The <filename>merge_config.sh</filename> script is |
| 2262 | part of the Linux Yocto kernel Git repository in the | 2262 | part of the Linux Yocto kernel Git repository in the |
| 2263 | <filename>scripts/kconfig</filename> directory.</para> | 2263 | <filename>scripts/kconfig</filename> directory.</para> |
| 2264 | <para>For more information on configuration fragments, | 2264 | <para>For more information on configuration fragments, |
| 2265 | see the | 2265 | see the |
| 2266 | "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#generating-configuration-files'>Generating Configuration Files</ulink>" | 2266 | "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#generating-configuration-files'>Generating Configuration Files</ulink>" |
| 2267 | section of the Yocto Project Linux Kernel Development | 2267 | section of the Yocto Project Linux Kernel Development |
| 2268 | Manual and the "<link linkend='creating-config-fragments'>Creating Configuration Fragments</link>" | 2268 | Manual and the "<link linkend='creating-config-fragments'>Creating Configuration Fragments</link>" |
| 2269 | section, which is in this manual.</para></listitem> | 2269 | section, which is in this manual.</para></listitem> |
| 2270 | <listitem><para><filename>bitbake -u depexp -g core-image-*</filename>: | 2270 | <listitem><para><filename>bitbake -u depexp -g core-image-*</filename>: |
| 2271 | Using the BitBake command with these options brings up | 2271 | Using the BitBake command with these options brings up |
| 2272 | a Dependency Explorer from which you can view file | 2272 | a Dependency Explorer from which you can view file |
| 2273 | dependencies. | 2273 | dependencies. |
| 2274 | Understanding these dependencies allows you to make | 2274 | Understanding these dependencies allows you to make |
| 2275 | sane decisions when cutting out various pieces of the | 2275 | sane decisions when cutting out various pieces of the |
| 2276 | kernel and root filesystem.</para></listitem> | 2276 | kernel and root filesystem.</para></listitem> |
| 2277 | </itemizedlist> | 2277 | </itemizedlist> |
| 2278 | </para> | 2278 | </para> |
| 2279 | </section> | 2279 | </section> |
| 2280 | 2280 | ||
| 2281 | <section id='trim-the-root-filesystem'> | 2281 | <section id='trim-the-root-filesystem'> |
| 2282 | <title>Trim the Root Filesystem</title> | 2282 | <title>Trim the Root Filesystem</title> |
| 2283 | 2283 | ||
| 2284 | <para> | 2284 | <para> |
| 2285 | Root filesystem is made up of packages for booting, libraries, | 2285 | Root filesystem is made up of packages for booting, libraries, |
| 2286 | and applications. | 2286 | and applications. |
| 2287 | To change things you can configure how the packaging happens, | 2287 | To change things you can configure how the packaging happens, |
| 2288 | which changes the way you build them. | 2288 | which changes the way you build them. |
| 2289 | You can also tweak the filesystem itself or select a different | 2289 | You can also tweak the filesystem itself or select a different |
| 2290 | file system. | 2290 | file system. |
| 2291 | </para> | 2291 | </para> |
| 2292 | 2292 | ||
| 2293 | <para> | 2293 | <para> |
| 2294 | First, check out what is hogging your file system running the | 2294 | First, check out what is hogging your file system running the |
| 2295 | <filename>dirsize.sh</filename> script from your root directory: | 2295 | <filename>dirsize.sh</filename> script from your root directory: |
| 2296 | <literallayout class='monospaced'> | 2296 | <literallayout class='monospaced'> |
| 2297 | $ cd <root-directory-of-image> | 2297 | $ cd <root-directory-of-image> |
| @@ -2299,7 +2299,7 @@ | |||
| 2299 | $ cat dirsize-100k.log | 2299 | $ cat dirsize-100k.log |
| 2300 | </literallayout> | 2300 | </literallayout> |
| 2301 | You can apply a filter to the script to ignore files under | 2301 | You can apply a filter to the script to ignore files under |
| 2302 | a certain size. | 2302 | a certain size. |
| 2303 | This example filters out anything below 100 Kbytes. | 2303 | This example filters out anything below 100 Kbytes. |
| 2304 | When you examine your log file, you can focus on areas of the | 2304 | When you examine your log file, you can focus on areas of the |
| 2305 | root filesystem that take up large amounts of memory. | 2305 | root filesystem that take up large amounts of memory. |
| @@ -2307,20 +2307,20 @@ | |||
| 2307 | 2307 | ||
| 2308 | <para> | 2308 | <para> |
| 2309 | You need to be sure that what you eliminate does not cripple | 2309 | You need to be sure that what you eliminate does not cripple |
| 2310 | the functionality you need. | 2310 | the functionality you need. |
| 2311 | One way to see how packages relate to each other is by using | 2311 | One way to see how packages relate to each other is by using |
| 2312 | the Dependency Explorer UI with the BitBake command: | 2312 | the Dependency Explorer UI with the BitBake command: |
| 2313 | <literallayout class='monospaced'> | 2313 | <literallayout class='monospaced'> |
| 2314 | $ cd <image-directory> | 2314 | $ cd <image-directory> |
| 2315 | $ bitbake -u depexp -g <image> | 2315 | $ bitbake -u depexp -g <image> |
| 2316 | </literallayout> | 2316 | </literallayout> |
| 2317 | Use the interface to select potential packages you wish to | 2317 | Use the interface to select potential packages you wish to |
| 2318 | eliminate and see their dependency relationships. | 2318 | eliminate and see their dependency relationships. |
| 2319 | </para> | 2319 | </para> |
| 2320 | 2320 | ||
| 2321 | <para> | 2321 | <para> |
| 2322 | When deciding how to reduce the size, get rid of packages that | 2322 | When deciding how to reduce the size, get rid of packages that |
| 2323 | result in minimal impact on the feature set. | 2323 | result in minimal impact on the feature set. |
| 2324 | For example, you might not need a VGA display. | 2324 | For example, you might not need a VGA display. |
| 2325 | Or, you might be able to get by with <filename>devtmpfs</filename> | 2325 | Or, you might be able to get by with <filename>devtmpfs</filename> |
| 2326 | and <filename>mdev</filename>. | 2326 | and <filename>mdev</filename>. |
| @@ -2328,8 +2328,8 @@ | |||
| 2328 | 2328 | ||
| 2329 | <para> | 2329 | <para> |
| 2330 | Use the <filename>local.conf</filename> file to make changes. | 2330 | Use the <filename>local.conf</filename> file to make changes. |
| 2331 | For example, to eliminate <filename>udev</filename> and | 2331 | For example, to eliminate <filename>udev</filename> and |
| 2332 | <filename>glib</filename>, set the following in the | 2332 | <filename>glib</filename>, set the following in the |
| 2333 | local configuration file: | 2333 | local configuration file: |
| 2334 | <literallayout class='monospaced'> | 2334 | <literallayout class='monospaced'> |
| 2335 | VIRTUAL-RUNTIME_dev_manager = "" | 2335 | VIRTUAL-RUNTIME_dev_manager = "" |
| @@ -2337,21 +2337,21 @@ | |||
| 2337 | </para> | 2337 | </para> |
| 2338 | 2338 | ||
| 2339 | <para> | 2339 | <para> |
| 2340 | Some other examples of where you can look to eliminate size | 2340 | Some other examples of where you can look to eliminate size |
| 2341 | from the root filesystem are using <filename>ext2</filename> | 2341 | from the root filesystem are using <filename>ext2</filename> |
| 2342 | rather than <filename>ext3</filename>, which requires a | 2342 | rather than <filename>ext3</filename>, which requires a |
| 2343 | 1 Mbyte journal. | 2343 | 1 Mbyte journal. |
| 2344 | If you are okay with running read-only you don't need this | 2344 | If you are okay with running read-only you don't need this |
| 2345 | journal. | 2345 | journal. |
| 2346 | </para> | 2346 | </para> |
| 2347 | 2347 | ||
| 2348 | <note> | 2348 | <note> |
| 2349 | After each round of elimination, you need to rebuild your | 2349 | After each round of elimination, you need to rebuild your |
| 2350 | system and then use the tools to see the effects of your | 2350 | system and then use the tools to see the effects of your |
| 2351 | reductions. | 2351 | reductions. |
| 2352 | </note> | 2352 | </note> |
| 2353 | 2353 | ||
| 2354 | 2354 | ||
| 2355 | </section> | 2355 | </section> |
| 2356 | 2356 | ||
| 2357 | <section id='trim-the-kernel'> | 2357 | <section id='trim-the-kernel'> |
| @@ -2370,51 +2370,51 @@ | |||
| 2370 | 2370 | ||
| 2371 | <para> | 2371 | <para> |
| 2372 | Run the <filename>ksize.py</filename> script from the top-level | 2372 | Run the <filename>ksize.py</filename> script from the top-level |
| 2373 | Linux build directory to get an idea of what is making up | 2373 | Linux build directory to get an idea of what is making up |
| 2374 | the kernel: | 2374 | the kernel: |
| 2375 | <literallayout class='monospaced'> | 2375 | <literallayout class='monospaced'> |
| 2376 | $ cd <top-level-linux-build-directory> | 2376 | $ cd <top-level-linux-build-directory> |
| 2377 | $ ksize.py > ksize.log | 2377 | $ ksize.py > ksize.log |
| 2378 | $ cat ksize.log | 2378 | $ cat ksize.log |
| 2379 | </literallayout> | 2379 | </literallayout> |
| 2380 | When you examine the log, you will see how much space is | 2380 | When you examine the log, you will see how much space is |
| 2381 | taken up with the built-in <filename>.o</filename> files for | 2381 | taken up with the built-in <filename>.o</filename> files for |
| 2382 | drivers, networking, core kernel files, filesystem, sound, | 2382 | drivers, networking, core kernel files, filesystem, sound, |
| 2383 | and so forth. | 2383 | and so forth. |
| 2384 | Look to reduce the areas that are large and taking up around | 2384 | Look to reduce the areas that are large and taking up around |
| 2385 | the "90% rule". | 2385 | the "90% rule". |
| 2386 | </para> | 2386 | </para> |
| 2387 | 2387 | ||
| 2388 | <para> | 2388 | <para> |
| 2389 | To examine, or drill down, into any particular area, use the | 2389 | To examine, or drill down, into any particular area, use the |
| 2390 | <filename>-d</filename> option with the script: | 2390 | <filename>-d</filename> option with the script: |
| 2391 | <literallayout class='monospaced'> | 2391 | <literallayout class='monospaced'> |
| 2392 | $ ksize.py -d > ksize.log | 2392 | $ ksize.py -d > ksize.log |
| 2393 | </literallayout> | 2393 | </literallayout> |
| 2394 | Using this option breaks out the individual file information | 2394 | Using this option breaks out the individual file information |
| 2395 | for each area of the kernel (e.g. drivers, networking, and | 2395 | for each area of the kernel (e.g. drivers, networking, and |
| 2396 | so forth). | 2396 | so forth). |
| 2397 | </para> | 2397 | </para> |
| 2398 | 2398 | ||
| 2399 | <para> | 2399 | <para> |
| 2400 | Use your log file to see what you can eliminate from the kernel | 2400 | Use your log file to see what you can eliminate from the kernel |
| 2401 | based on features you can let go. | 2401 | based on features you can let go. |
| 2402 | For example, if you are not going to need sound, you do not | 2402 | For example, if you are not going to need sound, you do not |
| 2403 | need any drivers that support sound. | 2403 | need any drivers that support sound. |
| 2404 | </para> | 2404 | </para> |
| 2405 | 2405 | ||
| 2406 | <para> | 2406 | <para> |
| 2407 | After figuring out what to eliminate, you need to reconfigure | 2407 | After figuring out what to eliminate, you need to reconfigure |
| 2408 | kernel to reflect those changes during the next build. | 2408 | kernel to reflect those changes during the next build. |
| 2409 | You could run <filename>menuconfig</filename> and make all your | 2409 | You could run <filename>menuconfig</filename> and make all your |
| 2410 | changes at once. | 2410 | changes at once. |
| 2411 | However, that makes it difficult to see the effects of your | 2411 | However, that makes it difficult to see the effects of your |
| 2412 | individual eliminations and also makes it difficult to replicate | 2412 | individual eliminations and also makes it difficult to replicate |
| 2413 | the changes for perhaps another target device. | 2413 | the changes for perhaps another target device. |
| 2414 | A better method is to start with no configurations using | 2414 | A better method is to start with no configurations using |
| 2415 | <filename>allnoconfig</filename>, create configuration | 2415 | <filename>allnoconfig</filename>, create configuration |
| 2416 | fragments for individual changes, and then manage the | 2416 | fragments for individual changes, and then manage the |
| 2417 | fragments into a single configuration file using | 2417 | fragments into a single configuration file using |
| 2418 | <filename>merge_config.sh</filename>. | 2418 | <filename>merge_config.sh</filename>. |
| 2419 | The tool makes it easy for you to iterate using the | 2419 | The tool makes it easy for you to iterate using the |
| 2420 | configuration change/build cycle. | 2420 | configuration change/build cycle. |
| @@ -2422,7 +2422,7 @@ | |||
| 2422 | 2422 | ||
| 2423 | <para> | 2423 | <para> |
| 2424 | Each time you make configuration changes, you need to rebuild | 2424 | Each time you make configuration changes, you need to rebuild |
| 2425 | the kernel and check to see what impact your changes had on | 2425 | the kernel and check to see what impact your changes had on |
| 2426 | the overall size. | 2426 | the overall size. |
| 2427 | </para> | 2427 | </para> |
| 2428 | </section> | 2428 | </section> |
| @@ -2432,16 +2432,16 @@ | |||
| 2432 | 2432 | ||
| 2433 | <para> | 2433 | <para> |
| 2434 | If you have not reached your goals on system size, you need | 2434 | If you have not reached your goals on system size, you need |
| 2435 | to iterate on the process. | 2435 | to iterate on the process. |
| 2436 | The process is the same. | 2436 | The process is the same. |
| 2437 | Use the tools and see just what is taking up 90% of the root | 2437 | Use the tools and see just what is taking up 90% of the root |
| 2438 | filesystem and the kernel. | 2438 | filesystem and the kernel. |
| 2439 | Decide what you can eliminate without limiting your device | 2439 | Decide what you can eliminate without limiting your device |
| 2440 | beyond what you need. | 2440 | beyond what you need. |
| 2441 | </para> | 2441 | </para> |
| 2442 | 2442 | ||
| 2443 | <para> | 2443 | <para> |
| 2444 | Depending on your system, a good place to look might be | 2444 | Depending on your system, a good place to look might be |
| 2445 | Busybox, which provides a stripped down | 2445 | Busybox, which provides a stripped down |
| 2446 | version of Unix tools in a single, executable file. | 2446 | version of Unix tools in a single, executable file. |
| 2447 | You might be able to drop virtual terminal services or perhaps | 2447 | You might be able to drop virtual terminal services or perhaps |
| @@ -3004,9 +3004,11 @@ | |||
| 3004 | <para> | 3004 | <para> |
| 3005 | You might find that there are groups of recipes or append files | 3005 | You might find that there are groups of recipes or append files |
| 3006 | that you want to filter out of the build process. | 3006 | that you want to filter out of the build process. |
| 3007 | For example, recipes you know you will never use or want should not | 3007 | Usually, this is not necessary. |
| 3008 | be part of the build. | 3008 | However, on rare occasions where you might want to use a |
| 3009 | Removing these files from parsing speeds up parts of the build. | 3009 | layer but exclude parts that are causing problems, such |
| 3010 | as introducing a different version of a recipe, you can | ||
| 3011 | use <filename>BBMASK</filename> to exclude the recipe. | ||
| 3010 | </para> | 3012 | </para> |
| 3011 | 3013 | ||
| 3012 | <para> | 3014 | <para> |
