kumquat-buildroot/docs/manual/customize.adoc

61 lines
2.3 KiB
Plaintext
Raw Normal View History

// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
[[customize]]
manual/user guide: high-level restructuring This patch performs some additional restructuring of the manual, specifically in the User Guide. In detail: - Rename 'Daily use' to 'General Buildroot usage' - Move chapters 'make tips', 'Eclipse integration', and 'Advanced usage' as sections under the 'General Buildroot usage' chapter. - Rename 'Details on Buildroot configuration' into 'Buildroot configuration' - Rework the 'Customization' section as follows: - Move the short section on debugging the external toolchain wrapper into the rest of the explanation on external toolchains. - Remove the now redundant section on toolchains, as this is already explained in much more detail in the 'Buildroot configuration' chapter. - Move the sections on busybox/uclibc/kernel configuration from chapter 'Customization' into a separate chapter 'Configuration of other components'. - Rename the remaining part of the original 'Customization' chapter into 'Project-specific customization' and fold it together with the next chapter 'Storing the configuration' - Remove the chapter 'Going further in Buildroot innards' thanks to: - Moving the chapter 'How Buildroot works' to the Developer guide. - Moving the 'Advanced Buildroot usage' section to the 'General Buildroot usage' chapter. - Remove the chapter 'Hacking Buildroot' by: - Adding a reference to adding packages to the 'Project-specific customizations' chapter - Leaving out the explicit reference to creating board support, as this is part of the previous chapter already, so an extra reference is redundant. Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-19 21:41:47 +02:00
== Project-specific customization
Typical actions you may need to perform for a given project are:
* configuring Buildroot (including build options and toolchain,
bootloader, kernel, package and filesystem image type selection)
* configuring other components, like the Linux kernel and BusyBox
* customizing the generated target filesystem
** adding or overwriting files on the target filesystem (using
+BR2_ROOTFS_OVERLAY+)
** modifying or deleting files on the target filesystem (using
+BR2_ROOTFS_POST_BUILD_SCRIPT+)
** running arbitrary commands prior to generating the filesystem image
(using +BR2_ROOTFS_POST_BUILD_SCRIPT+)
** setting file permissions and ownership (using
+BR2_ROOTFS_DEVICE_TABLE+)
** adding custom devices nodes (using
+BR2_ROOTFS_STATIC_DEVICE_TABLE+)
* adding custom user accounts (using +BR2_ROOTFS_USERS_TABLES+)
* running arbitrary commands after generating the filesystem image
(using +BR2_ROOTFS_POST_IMAGE_SCRIPT+)
* adding project-specific patches to some packages (using
+BR2_GLOBAL_PATCH_DIR+)
* adding project-specific packages
An important note regarding such 'project-specific' customizations:
please carefully consider which changes are indeed project-specific and
which changes are also useful to developers outside your project. The
Buildroot community highly recommends and encourages the upstreaming of
improvements, packages and board support to the official Buildroot
project. Of course, it is sometimes not possible or desirable to
upstream because the changes are highly specific or proprietary.
This chapter describes how to make such project-specific customizations
in Buildroot and how to store them in a way that you can build the same
image in a reproducible way, even after running 'make clean'. By
following the recommended strategy, you can even use the same Buildroot
tree to build multiple distinct projects!
include::customize-directory-structure.adoc[]
include::customize-outside-br.adoc[]
include::customize-configuration.adoc[]
include::customize-rootfs.adoc[]
include::customize-users-tables.adoc[]
include::customize-post-image.adoc[]
include::customize-patches.adoc[]
include::customize-packages.adoc[]
include::customize-quick-guide.adoc[]