| // -*- mode:doc; -*- |
| // vim: set syntax=asciidoc: |
| |
| [[customize]] |
| == 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.txt[] |
| |
| include::customize-outside-br.txt[] |
| |
| include::customize-configuration.txt[] |
| |
| include::customize-rootfs.txt[] |
| |
| include::customize-users-tables.txt[] |
| |
| include::customize-post-image.txt[] |
| |
| include::customize-patches.txt[] |
| |
| include::customize-packages.txt[] |
| |
| include::customize-quick-guide.txt[] |