12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- // -*- 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[]
|