61 lines
2.3 KiB
Plaintext
61 lines
2.3 KiB
Plaintext
// -*- 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[]
|