diff options
Diffstat (limited to 'docs')
-rw-r--r-- | docs/buildroot.html | 43 |
1 files changed, 36 insertions, 7 deletions
diff --git a/docs/buildroot.html b/docs/buildroot.html index 6bddd31d6..850e58d7a 100644 --- a/docs/buildroot.html +++ b/docs/buildroot.html @@ -145,10 +145,15 @@ <p>For each entry of the configuration tool, you can find associated help that describes the purpose of the entry.</p> + <p>One of the key configuration items is the <code>PROJECT</code> which + determines where some board specific packages are built and where the + results are stored.</p> + <p>Once everything is configured, the configuration tool has generated a <code>.config</code> file that contains the description of your configuration. It will be used by the Makefiles to do what's needed.</p> + <p>Let's go:</p> <pre> @@ -160,7 +165,7 @@ be named <code>root_fs_ARCH.EXT</code> where <code>ARCH</code> is your architecture and <code>EXT</code> depends on the type of target filesystem selected in the <code>Target options</code> section of the configuration - tool.</p> + tool.The file is stored in the "binaries/<code>$(PROJECT)</code>/" directory</p> <p>If you intend to do an offline-build and just want to download all sources that you previously selected in "make menuconfig" then @@ -198,11 +203,11 @@ $ make HOSTCXX=g++-4.3-HEAD HOSTCC=gcc-4.3-HEAD <h2><a name="custom_targetfs" id="custom_targetfs"></a>Customizing the target filesystem</h2> - <p>There are two ways to customize the resulting target filesystem:</p> + <p>There are a few ways to customize the resulting target filesystem:</p> <ul> <li>Customize the target filesystem directly, and rebuild the image. The - target filesystem is available under <code>build_ARCH/root/</code> where + target filesystem is available under <code>project_build_ARCH/root/</code> where <code>ARCH</code> is the chosen target architecture. You can simply make your changes here, and run make afterwards, which will rebuild the target filesystem image. This method allows to do everything on the target @@ -224,9 +229,13 @@ $ make HOSTCXX=g++-4.3-HEAD HOSTCC=gcc-4.3-HEAD it should be changed. These main directories are in an tarball inside of inside the skeleton because it contains symlinks that would be broken otherwise.<br /> - These customizations are deployed into <code>build_ARCH/root/</code> just + These customizations are deployed into <code>project_build_ARCH/root/</code> just before the actual image is made. So simply rebuilding the image by running make should propogate any new changes to the image.</li> + + <li>When configuring the build system, using <code>make menuconfig</code>, you + can specify the contents of the /etc/hostname and /etc/issue + (the welcome banner) in the <code>PROJECT</code> section</li> </ul> <h2><a name="custom_busybox" id="custom_busybox"></a>Customizing the @@ -349,9 +358,29 @@ $ make HOSTCXX=g++-4.3-HEAD HOSTCC=gcc-4.3-HEAD tarballs are in this directory because it may be useful to save them somewhere to avoid further downloads.</li> - <li>Create the build directory (<code>build_ARCH/</code> by default, + <li>Create the shared build directory (<code>build_ARCH/</code> by default, where <code>ARCH</code> is your architecture). This is where all - user-space tools while be compiled.</li> + non configurable user-space tools will be compiled.When building two or more + targets using the same architecture, the first build will go through the full + download, configure, make process, but the second and later builds will only + copy the result from the first build to its project specific target directory + significantly speeding up the build process</li> + + <li>Create the project specific build directory + (<code>project_build_ARCH/$(PROJECT)</code> by default, where <code>ARCH</code> + is your architecture). This is where all configurable user-space tools will be + compiled. The project specific build directory is neccessary, if two different + targets needs to use a specific package, but the packages have different + configuration for both targets. Some examples of packages built in this directory + are busybox and linux. + </li> + + <li>Create the project specific result directory + (<code>binaries/$(PROJECT)</code> by default, where <code>ARCH</code> + is your architecture). This is where the root file system images are stored, + It is also used to store the linux kernel image and any utilities, boot-loaders + etc. needed for a target. + </li> <li>Create the toolchain build directory (<code>toolchain_build_ARCH/</code> by default, where <code>ARCH</code> @@ -367,7 +396,7 @@ $ make HOSTCXX=g++-4.3-HEAD HOSTCC=gcc-4.3-HEAD setup this staging directory, it first removes it, and then it creates various subdirectories and symlinks inside it.</li> - <li>Create the target directory (<code>build_ARCH/root/</code> by + <li>Create the target directory (<code>project_build_ARCH/root/</code> by default) and the target filesystem skeleton. This directory will contain the final root filesystem. To setup it up, it first deletes it, then it uncompress the <code>target/generic/skel.tar.gz</code> file to create the |