2012-11-11 04:14:42 +01:00
|
|
|
// -*- mode:doc; -*-
|
2013-02-13 13:59:02 +01:00
|
|
|
// vim: set syntax=asciidoc:
|
2012-11-11 04:14:42 +01:00
|
|
|
|
2014-09-18 21:39:25 +02:00
|
|
|
[[customize]]
|
2014-08-19 21:41:47 +02:00
|
|
|
== Project-specific customization
|
2011-10-10 10:46:39 +02:00
|
|
|
|
2014-08-29 21:50:39 +02:00
|
|
|
Typical actions you may need to perform for a given project are:
|
2011-10-10 10:46:39 +02:00
|
|
|
|
2014-08-29 21:50:39 +02:00
|
|
|
- configuring Buildroot (including build options and toolchain,
|
|
|
|
bootloader, kernel, package and filesystem image type selection)
|
|
|
|
- configuring other components, like the Linux kernel and BusyBox
|
|
|
|
- adding project-specific patches to some packages (using
|
|
|
|
+BR2_GLOBAL_PATCH_DIR+)
|
|
|
|
- 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+)
|
|
|
|
- running arbitrary commands after generating the filesystem image
|
|
|
|
(using +BR2_ROOTFS_POST_IMAGE_SCRIPT+)
|
|
|
|
- adding project-specific packages
|
|
|
|
|
2014-08-29 21:50:41 +02:00
|
|
|
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.
|
|
|
|
|
2014-08-29 21:50:39 +02:00
|
|
|
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!
|
2011-10-10 10:46:39 +02:00
|
|
|
|
2014-08-29 21:50:40 +02:00
|
|
|
include::customize-directory-structure.txt[]
|
|
|
|
|
|
|
|
include::customize-outside-br.txt[]
|
|
|
|
|
2014-08-19 21:41:47 +02:00
|
|
|
include::customize-rootfs.txt[]
|
2013-02-05 08:15:59 +01:00
|
|
|
|
2014-08-31 15:14:30 +02:00
|
|
|
include::customize-post-image.txt[]
|
|
|
|
|
2013-02-05 08:15:59 +01:00
|
|
|
include::customize-store.txt[]
|
rework patch model
At the Buildroot Developers Meeting (4-5 February 2013, in Brussels) a change
to the patch logic was discussed. See
http://elinux.org/Buildroot:DeveloperDaysFOSDEM2013
for details. In summary:
* For patches stored in the package directory, if
package/<pkg>/<version>/ does exist, apply package/<pkg>/<version>/*.patch,
otherwise, apply package/<pkg>/*.patch
* For patches stored in the global patches directory, if
$(GLOBAL_PATCH_DIR)/<pkg>/<version>/ does exist, apply
$(GLOBAL_PATCH_DIR)/<pkg>/<version>/*.patch, otherwise, apply
$(GLOBAL_PATCH_DIR)/<pkg>/*.patch
This patch adds the new BR2_GLOBAL_PATCH_DIR configuration item, and reworks
the generic package infrastructure to implement the new patch logic.
[Peter: fixup doc nits as pointed out by Thomas]
Signed-off-by: Simon Dawson <spdawson@gmail.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-03-18 00:13:47 +01:00
|
|
|
|
|
|
|
include::customize-packages.txt[]
|