UPDATE: This functionality was removed in April 2017.

The easy way is to include the files as custom files

This is a plain copy-paste from mailing list, if you have some time to turn it in a proper wiki article please do so.

Hi Karl,

let me introduce a not strictly new way but another heavily under documented buildroot feature which you can use to implement custom modifications to packages which do not require source code edits.

For every processed package Makefile, the buildroot tries to include a a Makefile fragment in $(TOPDIR)/overlay/*/$(PKG_DIR_NAME).mk which one can use to monkey-patch internals without directly touching the package recipes.

For example to amend “base-files” to include a custom banner and inittab, you could create an overlay file called

"overlay/my-example-organization/base-files.mk"\\

which extends the default Package/base-files/install recipe to copy your custom files in the end.

Assuming a directory structure like this

* overlay/my-example-organization/banner
* overlay/my-example-organization/inittab
* overlay/my-example-organization/base-files.mk

the base-files.mk would need to include something like the following code to splicy your custom files into the packaging procedure:

--- 8< ---
# Figure out the containing dir of this Makefile
OVERLAY_DIR:=$(dir $(abspath $(lastword $(MAKEFILE_LIST))))

# Declare custom installation commands
define custom_install_commands
        @echo "Installing extra files from $(OVERLAY_DIR)"
        $(INSTALL_DIR) $(1)/etc/config
        $(INSTALL_DATA) $(OVERLAY_DIR)/banner $(1)/etc/banner
        $(INSTALL_DATA) $(OVERLAY_DIR)/inittab $(1)/etc/inittab
endef

# Append custom commands to install recipe,
# and make sure to include a newline to avoid syntax error
Package/base-files/install += $(newline)$(custom_install_commands)
--- >8 ---

HTH, Jo