echo "PRETTY_NAME=\"Buildroot $(BR2_VERSION)\"" \
) > $(TARGET_DIR)/etc/os-release
+ @for dir in $(call qstrip,$(BR2_ROOTFS_OVERLAY)); do \
+ $(call MESSAGE,"Copying overlay $${dir}"); \
+ rsync -a \
+ --exclude .svn --exclude .git --exclude .hg --exclude '*~' \
+ $${dir}/ $(TARGET_DIR); \
+ done
+
ifneq ($(BR2_ROOTFS_POST_BUILD_SCRIPT),"")
@$(call MESSAGE,"Executing post-build script\(s\)")
@$(foreach s, $(call qstrip,$(BR2_ROOTFS_POST_BUILD_SCRIPT)), \
skeleton are copied to output/target before any package
installation.
+* Create a filesystem overlay: a tree of files that are copied directly
+ over the target filesystem after it has been built. Set
+ +BR2_ROOTFS_OVERLAY+ to the top of the tree. +.git+, +.svn+,
+ +.hg+ directories and files ending with +~+ are excluded.
+ _Among these first 3 methods, this one should be preferred_.
+
* In the Buildroot configuration, you can specify the path to a
*post-build script*, that gets called 'after' Buildroot builds all the
selected software, but 'before' the rootfs packages are
specify the location of your post-build script. This option can be
found in the +System configuration+ menu. The destination root
filesystem folder is given as the first argument to this script,
- and this script can then be used to copy programs, static data or
- any other needed file to your target filesystem. You should,
- however, use this feature with care. Whenever you find that a
- certain package generates wrong or unneeded files, you should fix
- that package rather than work around it with a post-build cleanup
- script. _Among these first 3 methods, this one should be preferred_.
+ and this script can then be used to remove or modify any file in your
+ target filesystem. You should, however, use this feature with care.
+ Whenever you find that a certain package generates wrong or unneeded
+ files, you should fix that package rather than work around it with a
+ post-build cleanup script.
You may also use these variables in your post-build script:
- +BUILDROOT_CONFIG+: the path to the Buildroot .config file
- +HOST_DIR+, +STAGING_DIR+, +TARGET_DIR+: see
1. Create +board/<manufacturer>/<boardname>/fs-overlay/+ and fill it
with additional files you need on your rootfs, e.g.
+board/<manufacturer>/<boardname>/fs-overlay/etc/inittab+.
+ Set +BR2_ROOTFS_OVERLAY+
+ to +board/<manufacturer>/<boardname>/fs-overlay+.
1. Create a post-build script
- +board/<manufacturer>/<boardname>/post-build.sh+. It should contain
- the following command:
-+
-------------
-rsync -a --exclude .empty --exclude '*~' ${0%/*}/fs-overlay $1
-------------
-+
-1. Set +BR2_ROOTFS_POST_BUILD_SCRIPT+ to +board/<manufacturer>/<boardname>/post-build.sh+
+ +board/<manufacturer>/<boardname>/post-build.sh+. Set
+ +BR2_ROOTFS_POST_BUILD_SCRIPT+ to
+ +board/<manufacturer>/<boardname>/post-build.sh+
1. If additional setuid permissions have to be set or device nodes have
to be created, create +board/<manufacturer>/<boardname>/device_table.txt+
and add that path to +BR2_ROOTFS_DEVICE_TABLE+.
endif # BR2_ROOTFS_SKELETON_DEFAULT
+config BR2_ROOTFS_OVERLAY
+ string "Root filesystem overlay directories"
+ default ""
+ help
+ Specify a list of directories that are copied over the target
+ root filesystem after the build has finished and before it is
+ packed into the selected filesystem images.
+
+ They are copied as-is into the rootfs, excluding files ending with
+ ~ and .git, .svn and .hg directories.
+
config BR2_ROOTFS_POST_BUILD_SCRIPT
string "Custom script to run before creating filesystem images"
default ""