xref: /OK3568_Linux_fs/buildroot/docs/manual/customize.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1// -*- mode:doc; -*-
2// vim: set syntax=asciidoc:
3
4[[customize]]
5== Project-specific customization
6
7Typical actions you may need to perform for a given project are:
8
9* configuring Buildroot (including build options and toolchain,
10  bootloader, kernel, package and filesystem image type selection)
11* configuring other components, like the Linux kernel and BusyBox
12* customizing the generated target filesystem
13  ** adding or overwriting files on the target filesystem (using
14     +BR2_ROOTFS_OVERLAY+)
15  ** modifying or deleting files on the target filesystem (using
16     +BR2_ROOTFS_POST_BUILD_SCRIPT+)
17  ** running arbitrary commands prior to generating the filesystem image
18     (using +BR2_ROOTFS_POST_BUILD_SCRIPT+)
19  ** setting file permissions and ownership (using
20     +BR2_ROOTFS_DEVICE_TABLE+)
21  ** adding custom devices nodes (using
22     +BR2_ROOTFS_STATIC_DEVICE_TABLE+)
23* adding custom user accounts (using +BR2_ROOTFS_USERS_TABLES+)
24* running arbitrary commands after generating the filesystem image
25  (using +BR2_ROOTFS_POST_IMAGE_SCRIPT+)
26* adding project-specific patches to some packages (using
27  +BR2_GLOBAL_PATCH_DIR+)
28* adding project-specific packages
29
30An important note regarding such 'project-specific' customizations:
31please carefully consider which changes are indeed project-specific and
32which changes are also useful to developers outside your project. The
33Buildroot community highly recommends and encourages the upstreaming of
34improvements, packages and board support to the official Buildroot
35project. Of course, it is sometimes not possible or desirable to
36upstream because the changes are highly specific or proprietary.
37
38This chapter describes how to make such project-specific customizations
39in Buildroot and how to store them in a way that you can build the same
40image in a reproducible way, even after running 'make clean'. By
41following the recommended strategy, you can even use the same Buildroot
42tree to build multiple distinct projects!
43
44include::customize-directory-structure.txt[]
45
46include::customize-outside-br.txt[]
47
48include::customize-configuration.txt[]
49
50include::customize-rootfs.txt[]
51
52include::customize-users-tables.txt[]
53
54include::customize-post-image.txt[]
55
56include::customize-patches.txt[]
57
58include::customize-packages.txt[]
59
60include::customize-quick-guide.txt[]
61