Skip to contentSkip to conversation

Various simplifications of the buildroot configuration

PATCH Superseded Arnout Vandecappelle (Essensium/Mind) 4 participants 22 messages Oct 20, 2012 – Oct 23, 2012

Subsystems (2)

v1 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

cover Various simplifications of the buildroot configuration

Second attempt at my "project directory" series - this time leaving out the project directory.

First patch adds a section to the manual to explain how to store the configuration. It's basically Thomas's ELC-E presentation of last year, but I've added a section for when it's out-of-tree. I also added a very brief explanation about how to add packages and patches out-of-tree.

The second patch adds the fs-overlay as a config option. Skeleton is not deprecated this time round.

The next seven patches add the update-all-config target. At Thomas S.'s suggestion, it's split up more. The first three add missing -update-config targets and fix the busybox one; the last three ones make sure that the buildroot default config files are not overwritten by update-all-config.

The final patch adds the BR2_DEFCONFIG to .config, so update-all-config can save directly to the right config file.

Regards,
Arnout

----------------------------------------------------------------
Arnout Vandecappelle (Essensium/Mind) (10):
manual: add section about storing the configuration. target/generic: add filesystem overlay option
ctng: add ctng-update-config target
busybox: busybox-update-config should depend on busybox-configure
at91bootstrap3: add -update-config target
Add update-all-config target
busybox: update-all-config shouldn't update default busybox config
crosstool-ng: update-all-config shouldn't update default busybox config
uClibc: update-all-config shouldn't update default uClibc config Make savedefconfig save to a configured file.

 Config.in                                        |   12 ++
 Makefile                                         |   32 +++-
 boot/at91bootstrap3/at91bootstrap3.mk            |    8 +
 docs/manual/adding-packages-directory.txt        |    1 +
 docs/manual/board-support.txt                    |   35 ----
 docs/manual/customize-rootfs.txt                 |   21 +-
 docs/manual/customize-store.txt                  |  223 ++++++++++++++++++++++
 docs/manual/customize.txt                        |    2 +
 linux/linux.mk                                   |    2 +
 package/busybox/Config.in                        |    7 +-
 package/busybox/busybox.mk                       |   13 +-
 target/generic/Config.in                         |   11 ++
 toolchain/toolchain-crosstool-ng/Config.in       |    6 +-
 toolchain/toolchain-crosstool-ng/crosstool-ng.mk |   21 +-
 toolchain/uClibc/Config.in                       |    7 +-
 toolchain/uClibc/uclibc.mk                       |   25 +--
 16 files changed, 340 insertions(+), 86 deletions(-)
 delete mode 100644 docs/manual/board-support.txt
 create mode 100644 docs/manual/customize-store.txt
#1 lore raw

PATCH 1/10 manual: add section about storing the configuration.

From: "Arnout Vandecappelle (Essensium/Mind)" <[email protected]>

Reuse part of board-support.txt, and remove that one because it was unused.

---
 docs/manual/adding-packages-directory.txt |    1 +
 docs/manual/board-support.txt             |   35 -----
 docs/manual/customize-store.txt           |  241 +++++++++++++++++++++++++++++
 docs/manual/customize.txt                 |    2 +
 4 files changed, 244 insertions(+), 35 deletions(-)
 delete mode 100644 docs/manual/board-support.txt
 create mode 100644 docs/manual/customize-store.txt
docs/manual/adding-packages-directory.txt +1 -0
index 4a96415..ce9c5ce 100644
@@ -147,6 +147,7 @@ package.
 
 The +.mk+ file
 ~~~~~~~~~~~~~~
+[[adding-packages-mk]]
 
 Finally, here's the hardest part. Create a file named +libfoo.mk+. It
 describes how the package should be downloaded, configured, built,
docs/manual/board-support.txt deleted +0 -35
deleted file mode 100644
index d1d9d63..0000000
@@ -1,35 +0,0 @@
-Creating your own board support
-===============================
-
-Creating your own board support in Buildroot allows users of a
-particular hardware platform to easily build a system that is known to
-work.
-
-To do so, you need to create a normal Buildroot configuration that
-builds a basic system for the hardware: toolchain, kernel, bootloader,
-filesystem and a simple Busybox-only userspace. No specific package
-should be selected: the configuration should be as minimal as
-possible, and should only build a working basic Busybox system for the
-target platform. You can of course use more complicated configurations
-for your internal projects, but the Buildroot project will only
-integrate basic board configurations. This is because package
-selections are highly application-specific.
-
-Once you have a known working configuration, run +make
-savedefconfig+. This will generate a minimal +defconfig+ file at the
-root of the Buildroot source tree. Move this file into the +configs/+
-directory, and rename it +MYBOARD_defconfig+.
-
-It is recommended to use as much as possible upstream versions of the
-Linux kernel and bootloaders, and to use as much as possible default
-kernel and bootloader configurations. If they are incorrect for your
-platform, we encourage you to send fixes to the corresponding upstream
-projects.
-
-However, in the mean time, you may want to store kernel or bootloader
-configuration or patches specific to your target platform. To do so,
-create a directory +board/MANUFACTURER+ and a subdirectory
-+board/MANUFACTURER/BOARDNAME+ (after replacing, of course,
-MANUFACTURER and BOARDNAME with the appropriate values, in lower case
-letters). You can then store your patches and configurations in these
-directories, and reference them from the main Buildroot configuration.
docs/manual/customize-store.txt new file +241 -0

241 lines not on this page · raw message

docs/manual/customize.txt +2 -0
index e8235de..6bd5811 100644
@@ -10,3 +10,5 @@ include::customize-uclibc-config.txt[]
 include::customize-kernel-config.txt[]
 
 include::customize-toolchain.txt[]
+
+include::customize-store.txt[]
Signature · 1 line
1.7.10.4
#2 lore raw

PATCH 1/10 manual: add section about storing the configuration.

Arnout, all,

2012/10/21 Arnout Vandecappelle (Essensium/Mind) <[email protected]>:

Quoted 15 lines

From: "Arnout Vandecappelle (Essensium/Mind)" <[email protected]>

Reuse part of board-support.txt, and remove that one because it was unused.

---
 docs/manual/adding-packages-directory.txt |    1 +
 docs/manual/board-support.txt             |   35 -----
 docs/manual/customize-store.txt           |  241 +++++++++++++++++++++++++++++
 docs/manual/customize.txt                 |    2 +
 4 files changed, 244 insertions(+), 35 deletions(-)
 delete mode 100644 docs/manual/board-support.txt
 create mode 100644 docs/manual/customize-store.txt

[...]

docs/manual/customize-store.txt line 111

Quoted 11 lines
docs/manual/customize-store.txt new file +11 -0
+Step-by-step instructions for storing configuration inside the buildroot tree
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To store the configuration for a specific product, device or
+application, it is advisable to use the same conventions as for the
+board support: put the buildroot defconfig in the +configs+ directory,
+and any other files in a subdirectory of the +boards+ directory.  This
+section gives step-by-step instructions about how to do that. Of course,
+you can skip the steps that are not relevant for your use case.
+
+1. +make menuconfig+ to configure toolchain, packages and kernel.

I think you don't need to use explicit numbering here and everywhere below, which should force to "1. ..." each item.

Note that I haven't try to build the doc with this patch, I'm just referring to:
http://www.methods.co.nz/asciidoc/userguide.html#_numbered_lists

docs/manual/customize-store.txt line 121

Quoted 10 lines

+1. +make linux-menuconfig+ to update the kernel config, similar for

docs/manual/customize-store.txt new file +9 -0
+   other configuration.
+1. +mkdir -p board/<manufacturer>/<boardname>+
+1. Set the following options to +board/<manufacturer>/<boardname>/<package>.config+
+   (as far as they are relevant):
+   * +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+
+   * +BR2_PACKAGE_BUSYBOX_CONFIG+
+   * +BR2_TOOLCHAIN_CTNG_CONFIG+
+   * +BR2_UCLIBC_CONFIG+
+   * +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+

I think that we could/should/have to add such option for barebox too. I've cooked a patch for that and I'll post it shortly.

docs/manual/customize-store.txt line 127

Quoted 6 lines

+1. Write the configuration files:

docs/manual/customize-store.txt new file +5 -0
+   * +make linux-update-defconfig+
+   * +make busybox-update-config+
+   * +cp <output>/build/build-toolchain/.config board/<manufacturer>/<boardname>/ctng.config+
+   * +make uclibc-update-config+
+   * +cp <output>/build/at91bootstrap3-*/.config board/<manufacturer>/<boardname>/at91bootstrap3.config+

humm... I may be a bit nit, but I would prefer fill the board/<manufacturer>/<boardname> directory with all these config. files _before_ setting the corresponding options, so I would swap this step with the previous one.

Quoted 9 lines

+1. Create +board/<manufacturer>/<boardname>/fs-overlay+ and fill it

docs/manual/customize-store.txt new file +8 -0
+   with additional files you need on your rootfs, e.g.
+   +board/<manufacturer>/<boardname>/etc/inittab+.
+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

docs/manual/customize-store.txt line 146

Quoted 10 lines
docs/manual/customize-store.txt new file +10 -0
+------------
++
+1. 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+.
+1. +make savedefconfig+ to save the buildroot configuration.
+1. +cp defconfig configs/<boardname>_defconfig+
+
+

In the following, I won't repeat all the previous points I've already mentioned.

Quoted 40 lines
docs/manual/customize-store.txt new file +40 -0
+Step-by-step instructions for storing configuration outside the buildroot tree
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+When you use buildroot in different projects, you may want to keep
+each project separate from buildroot itself. This requires an extra
+script or Makefile, but is otherwise easy to do with buildroot.
+Take the following steps (very similar to storing configuration inside
+the buildroot tree).
+
+1. +make menuconfig+ to configure toolchain, packages and kernel.
+1. +make linux-menuconfig+ to update the kernel config, similar for
+   other configuration.
+1. +mkdir -p <path-to-board-directory>+
+1. Set the following options to +$(BOARDDIR)/<package>.config+
+   (as far as they are relevant):
+   * +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+
+   * +BR2_PACKAGE_BUSYBOX_CONFIG+
+   * +BR2_TOOLCHAIN_CTNG_CONFIG+
+   * +BR2_UCLIBC_CONFIG+
+   * +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+
+1. Write the configuration files:
+   * +make linux-update-defconfig+
+   * +make busybox-update-config+
+   * +cp <output>/build/build-toolchain/.config <path-to-board-directory>/ctng.config+
+   * +make uclibc-update-config+
+   * +cp <output>/build/at91bootstrap3-*/.config <path-to-board-directory>/at91bootstrap3.config+
+1. Create +<path-to-board-directory>/fs-overlay+ and fill it
+   with additional files you need on your rootfs, e.g.
+   +<path-to-board-directory>/etc/inittab+.
+1. Create a post-build script
+   +<path-to-board-directory>/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 +$(BOARDDIR)/post-build.sh+
+1. If additional setuid permissions have to be set or device nodes have
+   to be created, create +<path-to-board-directory>/device_table.txt+

docs/manual/customize-store.txt line 196

Quoted 10 lines
docs/manual/customize-store.txt new file +10 -0
+   and add that path to +BR2_ROOTFS_DEVICE_TABLE+.
+1. +make savedefconfig+ to save the buildroot configuration.
+1. +cp defconfig <path-to-board-directory>/buildroot.config+
+1. Create a script or Makefile in the board directory that calls
+   buildroot:
++
+------------
+make -C <path-to-buildroot> O=<path-to-board-directory>/output BR2_DEFCONFIG=<path-to-board-directory>/buildroot.config defconfig
+make -C <path-to-buildroot> O=<path-to-board-directory>/output BOARDDIR=<path-to-board-directory>
+------------

Rather a (rhetoric) question or a feature request ;-) than a comment:
since this script/makefile is located at the root of the board directory, how about automatically resolve the <path-to-board-directory>?

Quoted 25 lines

++
+1. If you have additional proprietary binaries that are compiled

docs/manual/customize-store.txt new file +23 -0
+   outside of buildroot, you can copy them into the rootfs as
+   part of +post-build.sh+
+1. If you need additional packages that are not available in buildroot
+   and that you don't want to make available (e.g. proprietary
+   applications), set +BR2_PACKAGE_OVERRIDE_FILE+ to
+   +$(BOARDDIR)/local.mk+. Add the following to +local.mk+ to
+   add package 'foo': +include foo/foo.mk+.  Add the following in
+   +foo.mk+ (see xref:adding-packages-mk[Adding packages to buildroot]):
++
+------------
+BR2_PACKAGE_FOO     = y
+FOO_OVERRIDE_SRCDIR = $(BOARDDIR)/foo
+
+define FOO_BUILD_CMDS
+        $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
+endef
+
+define FOO_INSTALL_TARGET_CMDS
+        $(INSTALL) -D -m 0755 $(@D)/foo $(TARGET_DIR)/usr/bin/foo
+endef
+
+$(eval $(generic-package))
+------------

docs/manual/customize-store.txt line 231

Quoted 10 lines
docs/manual/customize-store.txt new file +10 -0
++
+The +BR2_PACKAGE_FOO=y+ makes sure the package is always selected,
+so there is no need for a +Config.in+ file. The +FOO_OVERRIDE_SRCDIR+
+tells buildroot to fetch the sources from the +foo+ directory, and
+also makes sure that they are re-synchronized when you call +make
+foo-rebuild+
++
+1. To add patches to the linux build, set +BR2_LINUX_KERNEL_PATCH+ to
+   +$(BOARDDIR)/patches/linux+ and add your patches in that directory.
+   Similar for U-Boot, barebox, at91bootstrap and at91bootstrap3.

This point is also true for board supported in BR, except that all patches belong to the board/<manufacturer>/<boardname> directory. So, either move this point up in the "Creating your own board support" section and/or add the corresponding point to the "Step-by-step instructions for storing configuration inside the buildroot tree" section.

Quoted 21 lines

+1. To add patches for some other package 'foo', put them in the

docs/manual/customize-store.txt new file +9 -0
+   +patches/foo+ directory and add the following to +local.mk+:
++
+------------
+define FOO_LOCAL_PATCHES
+support/scripts/apply-patches.sh $(@D) $(BOARDDIR)/patches/foo foo-\*.patch
+endef
+
+FOO_POST_PATCH_HOOKS += FOO_LOCAL_PATCHES
+------------
docs/manual/customize.txt +2 -1
index e8235de..6bd5811 100644
@@ -10,3 +10,5 @@ include::customize-uclibc-config.txt[]
 include::customize-kernel-config.txt[]
 
 include::customize-toolchain.txt[]
+
+include::customize-store.txt[]
--
Quoted 1 line

1.7.10.4

Regards,

Signature · 1 line
Sam
#3 lore raw

PATCH 1/10 manual: add section about storing the configuration.

Quoted 8 lines · Samuel Martin

docs/manual/customize-store.txt line 121

Quoted 6 lines
docs/manual/customize-store.txt new file +6 -0
+   (as far as they are relevant):
+   * +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+
+   * +BR2_PACKAGE_BUSYBOX_CONFIG+
+   * +BR2_TOOLCHAIN_CTNG_CONFIG+
+   * +BR2_UCLIBC_CONFIG+
+   * +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+

I think that we could/should/have to add such option for barebox too. I've cooked a patch for that and I'll post it shortly.

My colleague Maxime has already posted such a patch a few days ago:

http://lists.busybox.net/pipermail/buildroot/2012-October/060102.html

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#4 lore raw

PATCH 1/10 manual: add section about storing the configuration.

In reply to Samuel Martin
Quoted 3 lines · Samuel Martin

Arnout, all,

2012/10/21 Arnout Vandecappelle (Essensium/Mind)<[email protected]>:

[snip]

Quoted 4 lines
Quoted 1 line

+1. +make menuconfig+ to configure toolchain, packages and kernel.

I think you don't need to use explicit numbering here and everywhere below, which should force to "1. ..." each item.

I find the 1. notation clearer than the plain . notation (they do exactly
the same AFAICS).

Quoted 10 lines

docs/manual/customize-store.txt line 121

Quoted 10 lines

+1. +make linux-menuconfig+ to update the kernel config, similar for

docs/manual/customize-store.txt new file +9 -0
+   other configuration.
+1. +mkdir -p board/<manufacturer>/<boardname>+
+1. Set the following options to +board/<manufacturer>/<boardname>/<package>.config+
+   (as far as they are relevant):
+   * +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+
+   * +BR2_PACKAGE_BUSYBOX_CONFIG+
+   * +BR2_TOOLCHAIN_CTNG_CONFIG+
+   * +BR2_UCLIBC_CONFIG+
+   * +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+
Quoted 2 lines

I think that we could/should/have to add such option for barebox too. I've cooked a patch for that and I'll post it shortly.

I intentionally made the documentation patch first, and the others later,
so it's easier to see how the other patches affect the documentation. And I didn't make a barebox patch because Maxime is making one.

Quoted 11 lines

docs/manual/customize-store.txt

Quoted 7 lines

+1. Write the configuration files:

docs/manual/customize-store.txt new file +5 -0
+   * +make linux-update-defconfig+
+   * +make busybox-update-config+
+   * +cp<output>/build/build-toolchain/.config board/<manufacturer>/<boardname>/ctng.config+
+   * +make uclibc-update-config+
+   * +cp<output>/build/at91bootstrap3-*/.config board/<manufacturer>/<boardname>/at91bootstrap3.config+

humm... I may be a bit nit, but I would prefer fill the board/<manufacturer>/<boardname> directory with all these config. files _before_ setting the corresponding options, so I would swap this step with the previous one.

But then you can't use 'make xxx-update-defconfig'...

[snip]

Quoted 11 lines

docs/manual/customize-store.txt line 196

Quoted 7 lines

+1. Create a script or Makefile in the board directory that calls

docs/manual/customize-store.txt new file +6 -0
+   buildroot:
++
+------------
+make -C<path-to-buildroot>  O=<path-to-board-directory>/output BR2_DEFCONFIG=<path-to-board-directory>/buildroot.config defconfig
+make -C<path-to-buildroot>  O=<path-to-board-directory>/output BOARDDIR=<path-to-board-directory>
+------------

Rather a (rhetoric) question or a feature request ;-) than a comment:
since this script/makefile is located at the root of the board directory, how about automatically resolve the <path-to-board-directory>?

Yes, but since that feature seemed to be too controversial in my first
patch series, I left it out here.

[snip]

Quoted 9 lines

docs/manual/customize-store.txt line 231

Quoted 3 lines

+1. To add patches to the linux build, set +BR2_LINUX_KERNEL_PATCH+ to

docs/manual/customize-store.txt new file +2 -0
+   +$(BOARDDIR)/patches/linux+ and add your patches in that directory.
+   Similar for U-Boot, barebox, at91bootstrap and at91bootstrap3.

This point is also true for board supported in BR, except that all patches belong to the board/<manufacturer>/<boardname> directory. So, either move this point up in the "Creating your own board support" section and/or add the corresponding point to the "Step-by-step instructions for storing configuration inside the buildroot tree" section.

True, will do.

Thanks,
Regards,
Arnout

[snip]

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#5 lore raw

PATCH 1/10 manual: add section about storing the configuration.

In reply to Arnout Vandecappelle (Essensium/Mind)

Am 21.10.2012 01:45, schrieb Arnout Vandecappelle (Essensium/Mind):

docs/manual/customize-store.txt line 85

Quoted 4 lines
docs/manual/customize-store.txt new file +4 -0
+Once you have a known working configuration, run +make
+savedefconfig+. This will generate a minimal +defconfig+ file at the
+root of the Buildroot source tree. Move this file into the +configs/+
+directory, and rename it +<boardname>_defconfig+.

Hello all,

so we will end with a nice tree of hopefully many board/<manufacturer>/<boardname> folders containig special settings for each board, most likely at least a kernel config file. I don't expect that too many boards will do without other settings but those in buildroot's defconfig. And we will have many <boardname>_defconfig files in the configs folder.

Wouldn't it make more sense to move buildroot's <boardname>_defconfig files to the respective board folder, so that everything would be together in one place?

Just my 2 cents

Stephan

Signature · 4 lines
reLinux     -    Stephan Hoffmann
Am Schmidtgrund 124    50765 K?ln
Tel. +49.221.95595-19    Fax: -64
www.reLinux.de     sho at reLinux.de
#6 lore raw

PATCH 1/10 manual: add section about storing the configuration.

Quoted 14 lines · Stephan Hoffmann

Am 21.10.2012 01:45, schrieb Arnout Vandecappelle (Essensium/Mind):

docs/manual/customize-store.txt line 85

Quoted 4 lines
docs/manual/customize-store.txt new file +4 -0
+Once you have a known working configuration, run +make
+savedefconfig+. This will generate a minimal +defconfig+ file at the
+root of the Buildroot source tree. Move this file into the +configs/+
+directory, and rename it +<boardname>_defconfig+.

Hello all,

so we will end with a nice tree of hopefully many board/<manufacturer>/<boardname> folders containig special settings for each board, most likely at least a kernel config file. I don't expect that too many boards will do without other settings but those in buildroot's defconfig. And we will have many<boardname>_defconfig files in the configs folder.

Quoted 3 lines

Wouldn't it make more sense to move buildroot's<boardname>_defconfig files to the respective board folder, so that everything would be together in one place?

I fully agree, but I think we should first get these clean-ups committed
before considering that.

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#7 lore raw

PATCH 2/10 target/generic: add filesystem overlay option

In reply to Arnout Vandecappelle (Essensium/Mind)

From: "Arnout Vandecappelle (Essensium/Mind)" <[email protected]>

The filesystem overlay is a tree that is copied over the target fs after building everything - which is currently usually done in the post-build script.

Also replace the documentation for a custom skeleton with the filesystem overlay and deprecate the custom skeleton.

---
 Makefile                         |    9 +++++++++
 docs/manual/customize-rootfs.txt |   21 +++++++++------------
 docs/manual/customize-store.txt  |   27 +++++++++------------------
 target/generic/Config.in         |   11 +++++++++++
 4 files changed, 38 insertions(+), 30 deletions(-)
Makefile +9 -0
index 0128839..2122d45 100644
@@ -463,6 +463,15 @@ endif
 		echo "PRETTY_NAME=\"Buildroot $(BR2_VERSION)\"" \
 	) >  $(TARGET_DIR)/etc/os-release
 
+	@for dir in $(call qstrip,$(BR2_ROOTFS_OVERLAY)); do \
+		if [ -d $${dir} ]; then \
+			$(call MESSAGE,"Copying overlay $${dir}"); \
+			rsync -a \
+				--exclude .svn --exclude .git --exclude .hg --exclude '*~' \
+				$${dir}/ $(TARGET_DIR); \
+		fi \
+	done
+
 ifneq ($(BR2_ROOTFS_POST_BUILD_SCRIPT),"")
 	@$(call MESSAGE,"Executing post-build script")
 	$(BR2_ROOTFS_POST_BUILD_SCRIPT) $(TARGET_DIR)
docs/manual/customize-rootfs.txt +9 -12
index 8c3ea82..b3c160b 100644
@@ -1,5 +1,6 @@
 Customizing the generated target filesystem
 -------------------------------------------
+[customize-rootfs]
 
 There are a few ways to customize the resulting target filesystem:
 
@@ -10,24 +11,20 @@ There are a few ways to customize the resulting target filesystem:
   anything to the target filesystem, but if you decide to completely
   rebuild your toolchain and tools, these changes will be lost.
 
-* Create your own 'target skeleton'. You can start with the default
-  skeleton available under +fs/skeleton+ and then customize it to suit
-  your needs. The +BR2_ROOTFS_SKELETON_CUSTOM+ and
-  +BR2_ROOTFS_SKELETON_CUSTOM_PATH+ will allow you to specify the
-  location of your custom skeleton. At build time, the contents of the
-  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.
 
 * 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
   assembled. 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.
+  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.
 
 * A special package, 'customize', stored in +package/customize+ can be
   used. You can put all the files that you want to see in the final
docs/manual/customize-store.txt +9 -18
index cad1700..bc1751e 100644
@@ -127,16 +127,12 @@ you can skip the steps that are not relevant for your use case.
    * +cp <output>/build/at91bootstrap3-*/.config board/<manufacturer>/<boardname>/at91bootstrap3.config+
 1. Create +board/<manufacturer>/<boardname>/fs-overlay+ and fill it
    with additional files you need on your rootfs, e.g.
-   +board/<manufacturer>/<boardname>/etc/inittab+.
+   +board/<manufacturer>/<boardname>/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+.
@@ -172,16 +168,11 @@ the buildroot tree).
    * +cp <output>/build/at91bootstrap3-*/.config <path-to-board-directory>/at91bootstrap3.config+
 1. Create +<path-to-board-directory>/fs-overlay+ and fill it
    with additional files you need on your rootfs, e.g.
-   +<path-to-board-directory>/etc/inittab+.
+   +<path-to-board-directory>/etc/inittab+. Set +BR2_ROOTFS_OVERLAY+
+   to +<path-to-board-directory>/fs-overlay+.
 1. Create a post-build script
-   +<path-to-board-directory>/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 +$(BOARDDIR)/post-build.sh+
+   +<path-to-board-directory>/post-build.sh+. Set
+   +BR2_ROOTFS_POST_BUILD_SCRIPT+ to +$(BOARDDIR)/post-build.sh+
 1. If additional setuid permissions have to be set or device nodes have
    to be created, create +<path-to-board-directory>/device_table.txt+
    and add that path to +BR2_ROOTFS_DEVICE_TABLE+.
target/generic/Config.in +11 -0
index b8472f4..7f53a7c 100644
@@ -166,6 +166,17 @@ config BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW
 
 endif # BR2_ROOTFS_SKELETON_DEFAULT
 
+config BR2_ROOTFS_OVERLAY
+	string "Root filesystem overlay"
+	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.
+
+	  It is 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 ""
Signature · 1 line
1.7.10.4
#8 lore raw

PATCH 3/10 ctng: add ctng-update-config target

In reply to Arnout Vandecappelle (Essensium/Mind)

From: "Arnout Vandecappelle (Essensium/Mind)" <[email protected]>

Analogous to linux-update-config and friends.

Also update documentation.

---
 docs/manual/customize-store.txt                  |    8 ++++----
 toolchain/toolchain-crosstool-ng/crosstool-ng.mk |    3 +++
 2 files changed, 7 insertions(+), 4 deletions(-)
docs/manual/customize-store.txt +4 -4
index bc1751e..c7ef00c 100644
@@ -58,8 +58,8 @@ configuration files easier.
   path specified by +BR2_PACKAGE_BUSYBOX_CONFIG+.
 * +make uclibc-update-config+ saves the uClibc configuration to the
   path specified by +BR2_UCLIBC_CONFIG+.
-* For crosstool-NG, no helper exists so you have to copy the config
-  file manually to +BR2_TOOLCHAIN_CTNG_CONFIG+.
+* +make ctng-update-config+ saves the crosstool-NG configuration to the
+  patch specified by +BR2_TOOLCHAIN_CTNG_CONFIG+.
 
 
 Creating your own board support
@@ -122,7 +122,7 @@ you can skip the steps that are not relevant for your use case.
 1. Write the configuration files:
    * +make linux-update-defconfig+
    * +make busybox-update-config+
-   * +cp <output>/build/build-toolchain/.config board/<manufacturer>/<boardname>/ctng.config+
+   * +make ctng-update-config+
    * +make uclibc-update-config+
    * +cp <output>/build/at91bootstrap3-*/.config board/<manufacturer>/<boardname>/at91bootstrap3.config+
 1. Create +board/<manufacturer>/<boardname>/fs-overlay+ and fill it
@@ -163,7 +163,7 @@ the buildroot tree).
 1. Write the configuration files:
    * +make linux-update-defconfig+
    * +make busybox-update-config+
-   * +cp <output>/build/build-toolchain/.config <path-to-board-directory>/ctng.config+
+   * +make ctng-update-config+
    * +make uclibc-update-config+
    * +cp <output>/build/at91bootstrap3-*/.config <path-to-board-directory>/at91bootstrap3.config+
 1. Create +<path-to-board-directory>/fs-overlay+ and fill it
toolchain/toolchain-crosstool-ng/crosstool-ng.mk +3 -0
index e46bb20..fb6da0f 100644
@@ -397,3 +397,6 @@ ctng-menuconfig: $(CTNG_DIR)/.config
 	$(call ctng-oldconfig,$<)
 	$(call ctng-check-config-changed,$<,$<.timestamp)
 	$(Q)rm -f $<.timestamp
+
+ctng-update-config: $(CTNG_DIR)/.config
+	cp -f $< $(CTNG_CONFIG_FILE)
Signature · 1 line
1.7.10.4
#9 lore raw

PATCH 3/10 ctng: add ctng-update-config target

Arnout, all,

2012/10/21 Arnout Vandecappelle (Essensium/Mind) <[email protected]>:

Quoted 50 lines

From: "Arnout Vandecappelle (Essensium/Mind)" <[email protected]>

Analogous to linux-update-config and friends.

Also update documentation.

---
 docs/manual/customize-store.txt                  |    8 ++++----
 toolchain/toolchain-crosstool-ng/crosstool-ng.mk |    3 +++
 2 files changed, 7 insertions(+), 4 deletions(-)
docs/manual/customize-store.txt +4 -4
index bc1751e..c7ef00c 100644
@@ -58,8 +58,8 @@ configuration files easier.
   path specified by +BR2_PACKAGE_BUSYBOX_CONFIG+.
 * +make uclibc-update-config+ saves the uClibc configuration to the
   path specified by +BR2_UCLIBC_CONFIG+.
-* For crosstool-NG, no helper exists so you have to copy the config
-  file manually to +BR2_TOOLCHAIN_CTNG_CONFIG+.
+* +make ctng-update-config+ saves the crosstool-NG configuration to the
+  patch specified by +BR2_TOOLCHAIN_CTNG_CONFIG+.
 
 
 Creating your own board support
@@ -122,7 +122,7 @@ you can skip the steps that are not relevant for your use case.
 1. Write the configuration files:
    * +make linux-update-defconfig+
    * +make busybox-update-config+
-   * +cp <output>/build/build-toolchain/.config board/<manufacturer>/<boardname>/ctng.config+
+   * +make ctng-update-config+
    * +make uclibc-update-config+
    * +cp <output>/build/at91bootstrap3-*/.config board/<manufacturer>/<boardname>/at91bootstrap3.config+
 1. Create +board/<manufacturer>/<boardname>/fs-overlay+ and fill it
@@ -163,7 +163,7 @@ the buildroot tree).
 1. Write the configuration files:
    * +make linux-update-defconfig+
    * +make busybox-update-config+
-   * +cp <output>/build/build-toolchain/.config <path-to-board-directory>/ctng.config+
+   * +make ctng-update-config+
    * +make uclibc-update-config+
    * +cp <output>/build/at91bootstrap3-*/.config <path-to-board-directory>/at91bootstrap3.config+
 1. Create +<path-to-board-directory>/fs-overlay+ and fill it
toolchain/toolchain-crosstool-ng/crosstool-ng.mk +0 -0
index e46bb20..fb6da0f 100644

toolchain/toolchain-crosstool-ng/crosstool-ng.mk ctng-menuconfig: $(CTNG_DIR)/.config · line 402

Quoted 6 lines
toolchain/toolchain-crosstool-ng/crosstool-ng.mk +3 -0
@@ -397,3 +397,6 @@ ctng-menuconfig: $(CTNG_DIR)/.config
        $(call ctng-oldconfig,$<)
        $(call ctng-check-config-changed,$<,$<.timestamp)
        $(Q)rm -f $<.timestamp
+
+ctng-update-config: $(CTNG_DIR)/.config
+       cp -f $< $(CTNG_CONFIG_FILE)

IIRC, crosstool-NG (recently) learns how to save defconfig, so how about saving the ct-ng defconfig instead?

Regards,

Signature · 1 line
Sam
#10 lore raw

PATCH 3/10 ctng: add ctng-update-config target

Quoted 5 lines · Samuel Martin
Quoted 3 lines
Quoted 3 lines

+
+ctng-update-config: $(CTNG_DIR)/.config
+ cp -f $< $(CTNG_CONFIG_FILE)

IIRC, crosstool-NG (recently) learns how to save defconfig, so how about saving the ct-ng defconfig instead?

Good idea, but non-trivial. Feel free to add it :-)

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#11 lore raw

PATCH 4/10 busybox: busybox-update-config should depend on busybox-configure

In reply to Arnout Vandecappelle (Essensium/Mind)

From: "Arnout Vandecappelle (Essensium/Mind)" <[email protected]>

Before the config file can be copied, it has to exist. The other xxx-update-config targets to this as well.

---
 package/busybox/busybox.mk |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
package/busybox/busybox.mk +1 -1
index 33f8633..e95364c 100644
@@ -215,5 +215,5 @@ busybox-menuconfig busybox-xconfig busybox-gconfig: busybox-patch
 	rm -f $(BUSYBOX_DIR)/.stamp_built
 	rm -f $(BUSYBOX_DIR)/.stamp_target_installed
 
-busybox-update-config:
+busybox-update-config: busybox-configure
 	cp -f $(BUSYBOX_BUILD_CONFIG) $(BUSYBOX_CONFIG_FILE)
Signature · 1 line
1.7.10.4
#12 lore raw

PATCH 4/10 busybox: busybox-update-config should depend on busybox-configure

Arnout, all,

2012/10/21 Arnout Vandecappelle (Essensium/Mind) <[email protected]>:

Quoted 15 lines

From: "Arnout Vandecappelle (Essensium/Mind)" <[email protected]>

Before the config file can be copied, it has to exist. The other xxx-update-config targets to this as well.

---
 package/busybox/busybox.mk |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
package/busybox/busybox.mk +0 -0
index 33f8633..e95364c 100644

package/busybox/busybox.mk busybox-menuconfig busybox-xconfig busybox-gconfig: busybox-patch · line 219

Quoted 6 lines
package/busybox/busybox.mk +1 -1
@@ -215,5 +215,5 @@ busybox-menuconfig busybox-xconfig busybox-gconfig: busybox-patch
        rm -f $(BUSYBOX_DIR)/.stamp_built
        rm -f $(BUSYBOX_DIR)/.stamp_target_installed
 
-busybox-update-config:
+busybox-update-config: busybox-configure
        cp -f $(BUSYBOX_BUILD_CONFIG) $(BUSYBOX_CONFIG_FILE)

How about saving the busybox-defconfig instead?

Regards,

Signature · 1 line
Sam
#13 lore raw

PATCH 4/10 busybox: busybox-update-config should depend on busybox-configure

Quoted 21 lines · Samuel Martin

Arnout, all,

2012/10/21 Arnout Vandecappelle (Essensium/Mind)<[email protected]>:

Quoted 18 lines
Quoted 18 lines

From: "Arnout Vandecappelle (Essensium/Mind)"<[email protected]>

Before the config file can be copied, it has to exist. The other xxx-update-config targets to this as well.

---

   package/busybox/busybox.mk |    2 +-
   1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/busybox/busybox.mk b/package/busybox/busybox.mk index 33f8633..e95364c 100644
--- a/package/busybox/busybox.mk
+++ b/package/busybox/busybox.mk
@@ -215,5 +215,5 @@ busybox-menuconfig busybox-xconfig busybox-gconfig: busybox-patch

          rm -f $(BUSYBOX_DIR)/.stamp_built
          rm -f $(BUSYBOX_DIR)/.stamp_target_installed
Quoted 4 lines
Quoted 3 lines
Quoted 3 lines

-busybox-update-config:
+busybox-update-config: busybox-configure

          cp -f $(BUSYBOX_BUILD_CONFIG) $(BUSYBOX_CONFIG_FILE)

How about saving the busybox-defconfig instead?

Is there a busybox version that has a savedefconfig target?

Anyway, that would again be a separate patch.

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#14 lore raw

PATCH 5/10 at91bootstrap3: add -update-config target

In reply to Arnout Vandecappelle (Essensium/Mind)

From: "Arnout Vandecappelle (Essensium/Mind)" <[email protected]>

---
 boot/at91bootstrap3/at91bootstrap3.mk |    7 +++++++
 1 file changed, 7 insertions(+)
boot/at91bootstrap3/at91bootstrap3.mk +7 -0
index 74f08e8..bb6ef09 100644
@@ -65,3 +65,10 @@ $(error No at91bootstrap3 configuration file specified, check your BR2_TARGET_AT
 endif
 endif
 endif
+
+ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_USE_CUSTOM_CONFIG),y)
+at91bootstrap3-update-config: at91bootstrap3-configure
+	cp -f $(AT91BOOTSTRAP3_DIR)/.config $(AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE)
+else
+at91bootstrap3-update-config: ;
+endif
Signature · 1 line
1.7.10.4
#15 lore raw

PATCH 6/10 Add update-all-config target

In reply to Arnout Vandecappelle (Essensium/Mind)

From: "Arnout Vandecappelle (Essensium/Mind)" <[email protected]>

The update-all-config target updates all the external configuration file with their current values. This includes:
- buildroot
- busybox
- linux
- crosstool-ng
- uClibc
- at91bootstrap3

Linux and buildroot are saved as defconfigs. For Linux, this means that it will fail on kernels before 2.6.33 (when the savedefconfig was added to Linux Kconfig).

---
Barebox is missing because there is no BR2_TARGET_BAREBOX_CONFIG option. Can be added once Maxime's patch has been accepted.

---
 Makefile                                         |    6 ++++++
 boot/at91bootstrap3/at91bootstrap3.mk            |    1 +
 docs/manual/customize-store.txt                  |   18 ++++--------------
 linux/linux.mk                                   |    2 ++
 package/busybox/busybox.mk                       |    4 ++++
 toolchain/toolchain-crosstool-ng/crosstool-ng.mk |    4 ++++
 toolchain/uClibc/uclibc.mk                       |    4 ++++
 7 files changed, 25 insertions(+), 14 deletions(-)
Makefile +6 -0
index 2122d45..e257c61 100644
@@ -548,6 +548,10 @@ legal-info: dirs legal-info-clean legal-info-prepare $(REDIST_SOURCES_DIR) \
 show-targets:
 	@echo $(TARGETS)
 
+# UPDATE_ALL_CONFIG_TARGETS is set by the individual packages that have a
+# save*config target.
+update-all-config: savedefconfig $(UPDATE_ALL_CONFIG_TARGETS)
+
 else # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
 
 all: menuconfig
@@ -700,6 +704,8 @@ help:
 	@echo '  defconfig              - New config with default answer to all options'
 	@echo '                             BR2_DEFCONFIG, if set, is used as input'
 	@echo '  savedefconfig          - Save current config as ./defconfig (minimal config)'
+	@echo '  update-all-config      - Update all configuration targets that have an input:'
+	@echo '                           buildroot, busybox, linux, crosstool-ng, uClibc'
 	@echo '  allyesconfig           - New config where all options are accepted with yes'
 	@echo '  allnoconfig            - New config where all options are answered with no'
 	@echo '  randpackageconfig      - New config with random answer to package options'
boot/at91bootstrap3/at91bootstrap3.mk +1 -0
index bb6ef09..1451ad8 100644
@@ -69,6 +69,7 @@ endif
 ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_USE_CUSTOM_CONFIG),y)
 at91bootstrap3-update-config: at91bootstrap3-configure
 	cp -f $(AT91BOOTSTRAP3_DIR)/.config $(AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE)
+UPDATE_ALL_CONFIG_TARGETS += at91bootstrap3-update-defconfig
 else
 at91bootstrap3-update-config: ;
 endif
docs/manual/customize-store.txt +4 -14
index c7ef00c..6deed49 100644
@@ -60,6 +60,8 @@ configuration files easier.
   path specified by +BR2_UCLIBC_CONFIG+.
 * +make ctng-update-config+ saves the crosstool-NG configuration to the
   patch specified by +BR2_TOOLCHAIN_CTNG_CONFIG+.
+* +make update-all-config+ updates all of the above configuration files
+  for which you have defined the corresponding +_CONFIG+ option.
 
 
 Creating your own board support
@@ -119,12 +121,6 @@ you can skip the steps that are not relevant for your use case.
    * +BR2_TOOLCHAIN_CTNG_CONFIG+
    * +BR2_UCLIBC_CONFIG+
    * +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+
-1. Write the configuration files:
-   * +make linux-update-defconfig+
-   * +make busybox-update-config+
-   * +make ctng-update-config+
-   * +make uclibc-update-config+
-   * +cp <output>/build/at91bootstrap3-*/.config board/<manufacturer>/<boardname>/at91bootstrap3.config+
 1. Create +board/<manufacturer>/<boardname>/fs-overlay+ and fill it
    with additional files you need on your rootfs, e.g.
    +board/<manufacturer>/<boardname>/etc/inittab+.  Set +BR2_ROOTFS_OVERLAY+
@@ -136,7 +132,7 @@ you can skip the steps that are not relevant for your use case.
 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+.
-1. +make savedefconfig+ to save the buildroot configuration.
+1. Write the configuration files: +make update-all-config+
 1. +cp defconfig configs/<boardname>_defconfig+
 
 
@@ -160,12 +156,6 @@ the buildroot tree).
    * +BR2_TOOLCHAIN_CTNG_CONFIG+
    * +BR2_UCLIBC_CONFIG+
    * +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+
-1. Write the configuration files:
-   * +make linux-update-defconfig+
-   * +make busybox-update-config+
-   * +make ctng-update-config+
-   * +make uclibc-update-config+
-   * +cp <output>/build/at91bootstrap3-*/.config <path-to-board-directory>/at91bootstrap3.config+
 1. Create +<path-to-board-directory>/fs-overlay+ and fill it
    with additional files you need on your rootfs, e.g.
    +<path-to-board-directory>/etc/inittab+. Set +BR2_ROOTFS_OVERLAY+
@@ -176,7 +166,7 @@ the buildroot tree).
 1. If additional setuid permissions have to be set or device nodes have
    to be created, create +<path-to-board-directory>/device_table.txt+
    and add that path to +BR2_ROOTFS_DEVICE_TABLE+.
-1. +make savedefconfig+ to save the buildroot configuration.
+1. Write the configuration files: +make update-all-config+
 1. +cp defconfig <path-to-board-directory>/buildroot.config+
 1. Create a script or Makefile in the board directory that calls
    buildroot:
linux/linux.mk +2 -0
index c4bdf90..98ffe44 100644
@@ -151,6 +151,8 @@ ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y)
 KERNEL_SOURCE_CONFIG = $(KERNEL_ARCH_PATH)/configs/$(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig
 else ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG),y)
 KERNEL_SOURCE_CONFIG = $(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE)
+# savedefconfig requires a kernel >= 2.6.33
+UPDATE_ALL_CONFIG_TARGETS += linux-update-defconfig
 endif
 
 define LINUX_CONFIGURE_CMDS
package/busybox/busybox.mk +4 -0
index e95364c..c73d0d0 100644
@@ -217,3 +217,7 @@ busybox-menuconfig busybox-xconfig busybox-gconfig: busybox-patch
 
 busybox-update-config: busybox-configure
 	cp -f $(BUSYBOX_BUILD_CONFIG) $(BUSYBOX_CONFIG_FILE)
+
+ifneq ($(BUSYBOX_CONFIG_FILE),)
+UPDATE_ALL_CONFIG_TARGETS += busybox-update-config
+endif
toolchain/toolchain-crosstool-ng/crosstool-ng.mk +4 -0
index fb6da0f..37398bd 100644
@@ -400,3 +400,7 @@ ctng-menuconfig: $(CTNG_DIR)/.config
 
 ctng-update-config: $(CTNG_DIR)/.config
 	cp -f $< $(CTNG_CONFIG_FILE)
+
+ifneq ($(CTNG_CONFIG_FILE),)
+UPDATE_ALL_CONFIG_TARGETS += ctng-update-config
+endif
toolchain/uClibc/uclibc.mk +4 -0
index d1cd718..0faaf18 100644
@@ -508,6 +508,10 @@ uclibc-oldconfig: $(UCLIBC_DIR)/.oldconfig
 uclibc-update-config: uclibc-config
 	cp -f $(UCLIBC_DIR)/.config $(UCLIBC_CONFIG_FILE)
 
+ifneq ($(UCLIBC_CONFIG_FILE),)
+UPDATE_ALL_CONFIG_TARGETS += uclibc-update-config
+endif
+
 uclibc-configured: gcc_initial kernel-headers $(UCLIBC_DIR)/.configured
 
 uclibc-configured-source: uclibc-source
Signature · 1 line
1.7.10.4
#16 lore raw

PATCH 7/10 busybox: update-all-config shouldn't update default busybox config

In reply to Arnout Vandecappelle (Essensium/Mind)

From: "Arnout Vandecappelle (Essensium/Mind)" <[email protected]>

The new update-all-config target will update the busybox config file if BR2_PACKAGE_BUSYBOX_CONFIG is set, even if it is set to the default value in package/busybox/busybox-xxx.config.

To avoid this, set the default BR2_PACKAGE_BUSYBOX_CONFIG to empty, and select a default to use in the .mk file.

Note that busybox-update-config will still overwrite the default file in package/busybox/busybox-xxx.config - presumably it's intentional.

---
 package/busybox/Config.in  |    7 ++-----
 package/busybox/busybox.mk |    9 +++++----
 2 files changed, 7 insertions(+), 9 deletions(-)
package/busybox/Config.in +2 -5
index dedcf18..0b77872 100644
@@ -40,15 +40,12 @@ config BR2_BUSYBOX_VERSION
 
 config BR2_PACKAGE_BUSYBOX_CONFIG
 	string "BusyBox configuration file to use?"
-	default "package/busybox/busybox-1.20.x.config" if BR2_PACKAGE_BUSYBOX_SNAPSHOT
-	default "package/busybox/busybox-1.18.x.config" if BR2_BUSYBOX_VERSION_1_18_X
-	default "package/busybox/busybox-1.19.x.config" if BR2_BUSYBOX_VERSION_1_19_X
-	default "package/busybox/busybox-1.20.x.config" if BR2_BUSYBOX_VERSION_1_20_X
+	default ""
 	help
 	  Some people may wish to use their own modified BusyBox configuration
 	  file, and will specify their config file location with this option.
 
-	  Most people will just use the default BusyBox configuration file.
+	  If left empty, a default configuration file is used.
 
 config BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
 	bool "Show packages that are also provided by busybox"
package/busybox/busybox.mk +5 -4
index c73d0d0..5c54319 100644
@@ -6,9 +6,11 @@
 
 ifeq ($(BR2_PACKAGE_BUSYBOX_SNAPSHOT),y)
 BUSYBOX_VERSION = snapshot
+BUSYBOX_CONFIG_VERSION = 1.20
 BUSYBOX_SITE = http://www.busybox.net/downloads/snapshots
 else
 BUSYBOX_VERSION = $(call qstrip,$(BR2_BUSYBOX_VERSION))
+BUSYBOX_CONFIG_VERSION = $(subst $(space),.,$(wordlist 1,2,$(subst .,$(space),$(BUSYBOX_VERSION))))
 BUSYBOX_SITE = http://www.busybox.net/downloads
 endif
 BUSYBOX_SOURCE = busybox-$(BUSYBOX_VERSION).tar.bz2
@@ -27,9 +29,8 @@ BUSYBOX_MAKE_OPTS = \
 	CONFIG_PREFIX="$(TARGET_DIR)" \
 	SKIP_STRIP=y
 
-ifndef BUSYBOX_CONFIG_FILE
-	BUSYBOX_CONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_BUSYBOX_CONFIG))
-endif
+BUSYBOX_CONFIG = $(call qstrip,$(BR2_PACKAGE_BUSYBOX_CONFIG))
+BUSYBOX_CONFIG_FILE = $(or $(wildcard $(BUSYBOX_CONFIG)),package/busybox/busybox-$(BUSYBOX_CONFIG_VERSION).x.config)
 
 define BUSYBOX_PERMISSIONS
 /bin/busybox			 f 4755	0 0 - - - - -
@@ -218,6 +219,6 @@ busybox-menuconfig busybox-xconfig busybox-gconfig: busybox-patch
 busybox-update-config: busybox-configure
 	cp -f $(BUSYBOX_BUILD_CONFIG) $(BUSYBOX_CONFIG_FILE)
 
-ifneq ($(BUSYBOX_CONFIG_FILE),)
+ifneq ($(BUSYBOX_CONFIG),)
 UPDATE_ALL_CONFIG_TARGETS += busybox-update-config
 endif
Signature · 1 line
1.7.10.4
#17 lore raw

PATCH 8/10 crosstool-ng: update-all-config shouldn't update default busybox config

In reply to Arnout Vandecappelle (Essensium/Mind)

From: "Arnout Vandecappelle (Essensium/Mind)" <[email protected]>

The new update-all-config target will update the ctng config file if BR2_TOOLCHAIN_CTNG_CONFIG is set, even if it is set to the default value in toolchain/toolchain-crosstool-ng/crosstool-ng.config-xxx

To avoid this, set the default BR2_TOOLCHAIN_CTNG_CONFIG to empty, and select a default to use in the .mk file.

Note that ctng-update-config will still overwrite the default file in toolchain/toolchain-crosstool-ng/crosstool-ng.config-xxx - presumably it's intentional.

Also factored out the often-qstripped BR2_TOOLCHAIN_CTNG_LIBC (thereby adding a few missing qstrips).

---
 toolchain/toolchain-crosstool-ng/Config.in       |    6 ++----
 toolchain/toolchain-crosstool-ng/crosstool-ng.mk |   16 +++++++++-------
 2 files changed, 11 insertions(+), 11 deletions(-)
toolchain/toolchain-crosstool-ng/Config.in +2 -4
index 35ea2b1..e5d373e 100644
@@ -36,15 +36,13 @@ config BR2_TOOLCHAIN_CTNG_LIBC
 
 config BR2_TOOLCHAIN_CTNG_CONFIG
 	string "crosstool-NG configuration file to use"
-	default "toolchain/toolchain-crosstool-ng/crosstool-ng.config-uClibc" if BR2_TOOLCHAIN_CTNG_uClibc
-	default "toolchain/toolchain-crosstool-ng/crosstool-ng.config-eglibc" if BR2_TOOLCHAIN_CTNG_eglibc
-	default "toolchain/toolchain-crosstool-ng/crosstool-ng.config-glibc"  if BR2_TOOLCHAIN_CTNG_glibc
+	default ""
 	help
 	  Enter here the crosstool-NG's .config file to use.
 	  To fine-tune your toolchain, you can also call:
 	    make ctng-menuconfig
 
-	  If unsure, keep the default value.
+	  If left empty, a default configuration file is used.
 
 if BR2_TOOLCHAIN_CTNG_uClibc
 
toolchain/toolchain-crosstool-ng/crosstool-ng.mk +9 -7
index 37398bd..c99c8d8 100644
@@ -9,9 +9,11 @@
 # Internal variables
 
 CTNG_DIR := $(BUILD_DIR)/build-toolchain
+CTNG_LIBC = $(call qstrip,$(BR2_TOOLCHAIN_CTNG_LIBC))
 
 CTNG_UCLIBC_CONFIG_FILE := $(TOPDIR)/toolchain/uClibc/uClibc-0.9.33.config
-CTNG_CONFIG_FILE:=$(call qstrip,$(BR2_TOOLCHAIN_CTNG_CONFIG))
+CTNG_CONFIG = $(call qstrip,$(BR2_TOOLCHAIN_CTNG_CONFIG))
+CTNG_CONFIG_FILE = $(or $(wildcard $(CTNG_CONFIG)),toolchain/toolchain-crosstool-ng/crosstool-ng.config-$(CTNG_LIBC))
 
 # Hack! ct-ng is in fact a Makefile script. As such, it accepts all
 # make options, such as -C, which makes it uneeded to chdir prior
@@ -50,7 +52,7 @@ CTNG_LIBS_eglibc := $(CTNG_LIBS_glibc)
 
 #--------------
 # All that we need in /lib
-CTNG_LIBS_LIB += $(CTNG_LIBS_$(call qstrip,$(BR2_TOOLCHAIN_CTNG_LIBC)))
+CTNG_LIBS_LIB += $(CTNG_LIBS_$(CTNG_LIBC))
 
 #--------------
 # All that we need in /usr/lib
@@ -348,7 +350,7 @@ define ctng-oldconfig
 	$(call ctng,CT_IS_A_BACKEND=y                           \
 	            CT_BACKEND_ARCH=$(CTNG_ARCH)                \
 	            CT_BACKEND_KERNEL=linux                     \
-	            CT_BACKEND_LIBC=$(BR2_TOOLCHAIN_CTNG_LIBC)  \
+	            CT_BACKEND_LIBC=$(CTNG_LIBC)                \
 	            oldconfig                                   )
 	$(call ctng-fix-dot-config,$(1),$(CTNG_FIX_DOT_CONFIG_PATHS_SED))
 endef
@@ -372,9 +374,9 @@ $(CTNG_DIR)/.config: $(CTNG_CONFIG_FILE) $(CONFIG_DIR)/.config
 	$(Q)if [ ! -f $@ ]; then                                                        \
 	        mkdir -p "$(CTNG_DIR)";                                                 \
 	        libc="$$(awk -F '"' '$$1=="CT_LIBC=" { print $$2; }' "$<")";            \
-	        if [ "$${libc}" != "$(BR2_TOOLCHAIN_CTNG_LIBC)" ]; then                 \
+	        if [ "$${libc}" != "$(CTNG_LIBC)" ]; then                               \
 	            echo "* Inconsistency in crosstool-NG config file '$<'";            \
-	            echo "* - buildroot configured for '$(BR2_TOOLCHAIN_CTNG_LIBC)'";   \
+	            echo "* - buildroot configured for '$(CTNG_LIBC)'";                 \
 	            echo "* - given config file for '$${libc}'";                        \
 	            exit 1;                                                             \
 	        fi;                                                                     \
@@ -392,7 +394,7 @@ ctng-menuconfig: $(CTNG_DIR)/.config
 	$(Q)$(call ctng,CT_IS_A_BACKEND=y                           \
 	                CT_BACKEND_ARCH=$(CTNG_ARCH)                \
 	                CT_BACKEND_KERNEL=linux                     \
-	                CT_BACKEND_LIBC=$(BR2_TOOLCHAIN_CTNG_LIBC)  \
+	                CT_BACKEND_LIBC=$(CTNG_LIBC)                \
 	                menuconfig                                  )
 	$(call ctng-oldconfig,$<)
 	$(call ctng-check-config-changed,$<,$<.timestamp)
@@ -401,6 +403,6 @@ ctng-menuconfig: $(CTNG_DIR)/.config
 ctng-update-config: $(CTNG_DIR)/.config
 	cp -f $< $(CTNG_CONFIG_FILE)
 
-ifneq ($(CTNG_CONFIG_FILE),)
+ifneq ($(CTNG_CONFIG),)
 UPDATE_ALL_CONFIG_TARGETS += ctng-update-config
 endif
Signature · 1 line
1.7.10.4
#18 lore raw

PATCH 8/10 crosstool-ng: update-all-config shouldn't update default busybox config

Arnout, all

Nitpicking: take care of the commit message. ;-)
In the subject: s/busybox/crosstool-ng/

Regards,

Signature · 1 line
Sam
#19 lore raw

PATCH 8/10 crosstool-ng: update-all-config shouldn't update default busybox config

Quoted 2 lines · Samuel Martin

Nitpicking: take care of the commit message.;-)
In the subject: s/busybox/crosstool-ng/

ACK, thanks,

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#20 lore raw

PATCH 9/10 uClibc: update-all-config shouldn't update default uClibc config

In reply to Arnout Vandecappelle (Essensium/Mind)

From: "Arnout Vandecappelle (Essensium/Mind)" <[email protected]>

The new update-all-config target will update the uClibc config file if BR2_UCLIBC_CONFIG is set, even if it is set to the default value in toolchain/uClibc/uClibc-xxx.config.

To avoid this, set the default BR2_UCLIBC_CONFIG to empty, and select a default to use in the .mk file.

Note that uclibc-update-config will still overwrite the default file in toolchain/uClibc/uClibc-xxx.config - presumably it's intentional.

---
 toolchain/uClibc/Config.in |    7 ++-----
 toolchain/uClibc/uclibc.mk |   23 +++++++++++------------
 2 files changed, 13 insertions(+), 17 deletions(-)
toolchain/uClibc/Config.in +2 -5
index f46a415..9cce05d 100644
@@ -42,15 +42,12 @@ config BR2_UCLIBC_VERSION_STRING
 
 config BR2_UCLIBC_CONFIG
 	string "uClibc configuration file to use?"
-	default "toolchain/uClibc/uClibc-0.9.31.config" if BR2_UCLIBC_VERSION_0_9_31
-	default "toolchain/uClibc/uClibc-0.9.32.config" if BR2_UCLIBC_VERSION_0_9_32
-	default "toolchain/uClibc/uClibc-0.9.33.config" if BR2_UCLIBC_VERSION_0_9_33
-	default "toolchain/uClibc/uClibc-snapshot.config" if BR2_UCLIBC_VERSION_SNAPSHOT
+	default ""
 	help
 	  Some people may wish to use their own modified uClibc configuration
 	  file and will specify their config file location with this option.
 	  See also docs/README in this package.
-	  If unsure, use the default.
+	  If left empty, a default configuration will be used.
 
 config BR2_PTHREAD_DEBUG
 	bool "Thread library debugging"
toolchain/uClibc/uclibc.mk +11 -12
index 0faaf18..d032684 100644
@@ -6,22 +6,21 @@
 
 ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
 
-# specifying UCLIBC_CONFIG_FILE on the command-line overrides the .config
-# setting.
-ifndef UCLIBC_CONFIG_FILE
-UCLIBC_CONFIG_FILE=$(call qstrip,$(BR2_UCLIBC_CONFIG))
-endif
-
-UCLIBC_VERSION:=$(call qstrip,$(BR2_UCLIBC_VERSION_STRING))
+UCLIBC_VERSION = $(call qstrip,$(BR2_UCLIBC_VERSION_STRING))
 
 ifeq ($(BR2_UCLIBC_VERSION_SNAPSHOT),y)
-UCLIBC_SITE:=http://www.uclibc.org/downloads/snapshots
-UCLIBC_DIR:=$(TOOLCHAIN_DIR)/uClibc
+UCLIBC_SITE = http://www.uclibc.org/downloads/snapshots
+UCLIBC_DIR  = $(TOOLCHAIN_DIR)/uClibc
+UCLIBC_CONFIG_VERSION = snapshot
 else
-UCLIBC_SITE:=http://www.uclibc.org/downloads
-UCLIBC_DIR:=$(TOOLCHAIN_DIR)/uClibc-$(UCLIBC_VERSION)
+UCLIBC_SITE = http://www.uclibc.org/downloads
+UCLIBC_DIR  = $(TOOLCHAIN_DIR)/uClibc-$(UCLIBC_VERSION)
+UCLIBC_CONFIG_VERSION = $(subst $(space),.,$(wordlist 1,3,$(subst .,$(space),$(UCLIBC_VERSION))))
 endif
 
+UCLIBC_CONFIG = $(call qstrip,$(BR2_UCLIBC_CONFIG))
+UCLIBC_CONFIG_FILE = $(or $(wildcard $(UCLIBC_CONFIG)),toolchain/uClibc/uClibc-$(UCLIBC_CONFIG_VERSION).config)
+
 UCLIBC_PATCH_DIR:=toolchain/uClibc/
 UCLIBC_SOURCE:=uClibc-$(UCLIBC_VERSION).tar.bz2
 
@@ -508,7 +507,7 @@ uclibc-oldconfig: $(UCLIBC_DIR)/.oldconfig
 uclibc-update-config: uclibc-config
 	cp -f $(UCLIBC_DIR)/.config $(UCLIBC_CONFIG_FILE)
 
-ifneq ($(UCLIBC_CONFIG_FILE),)
+ifneq ($(UCLIBC_CONFIG),)
 UPDATE_ALL_CONFIG_TARGETS += uclibc-update-config
 endif
 
Signature · 1 line
1.7.10.4
#21 lore raw

PATCH 10/10 Make savedefconfig save to a configured file.

In reply to Arnout Vandecappelle (Essensium/Mind)

From: "Arnout Vandecappelle (Essensium/Mind)" <[email protected]>

Store BR2_DEFCONFIG in .config, and use it to update the original input defconfig file after updating the configuration. When a config is created by using the BR2_DEFCONFIG=... option, this is saved in the .config file; later runs of savedefconfig will update that same location. It is also possible to configure this place in the interactive configuration.

The BR2_DEFCONFIG value itself is not saved into the generated defconfig, since Kconfig considers it at its default. This is intentional, to avoid hard-coding an absolute path in the defconfig. It will anyway be set again when the defconfig is used with the 'make BR2_DEFCONFIG=... defconfig' command.

As a side-effect of this change, the *config options have been moved out of the BR2_HAVE_DOT_CONFIG condition. This doesn't make any functional difference, because the .config is still not read for the *config targets. However, the defconfig and savedefconfig targets do need to include .config now, which makes them slightly slower.

---
 Config.in                       |   12 ++++++++++++
 Makefile                        |   17 +++++++++++++----
 docs/manual/customize-store.txt |    1 +
 3 files changed, 26 insertions(+), 4 deletions(-)
Config.in +12 -0
index dab7787..670ce84 100644
@@ -16,6 +16,18 @@ config BR2_HOSTARCH
 
 source "target/Config.in.arch"
 
+config BR2_DEFCONFIG_FROM_ENV
+	string
+	option env="BR2_DEFCONFIG"
+
+config BR2_DEFCONFIG
+	string "Location to save buildroot config"
+	default BR2_DEFCONFIG_FROM_ENV if BR2_DEFCONFIG_FROM_ENV != ""
+	default "$(CONFIG_DIR)/defconfig"
+	help
+	  When running 'make savedefconfig', the defconfig file will be saved
+	  in this location.
+
 menu "Build options"
 
 menu "Commands"
Makefile +13 -4
index e257c61..f6b8ef8 100644
@@ -56,7 +56,7 @@ DATE:=$(shell date +%Y%m%d)
 export BR2_VERSION_FULL:=$(BR2_VERSION)$(shell $(TOPDIR)/support/scripts/setlocalversion)
 
 noconfig_targets:=menuconfig nconfig gconfig xconfig config oldconfig randconfig \
-	defconfig %_defconfig savedefconfig allyesconfig allnoconfig silentoldconfig release \
+	%_defconfig allyesconfig allnoconfig silentoldconfig release \
 	randpackageconfig allyespackageconfig allnopackageconfig \
 	source-check print-version
 
@@ -556,6 +556,8 @@ else # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
 
 all: menuconfig
 
+endif # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
+
 # configuration
 # ---------------------------------------------------------------------------
 
@@ -566,7 +568,12 @@ $(BUILD_DIR)/buildroot-config/%onf:
 	mkdir -p $(@D)/lxdialog
 	$(MAKE) CC="$(HOSTCC_NOCCACHE)" HOSTCC="$(HOSTCC_NOCCACHE)" obj=$(@D) -C $(CONFIG) -f Makefile.br $(@F)
 
+DEFCONFIG = $(call qstrip,$(BR2_DEFCONFIG))
+
+# We don't want to fully expand BR2_DEFCONFIG here, so Kconfig will
+# recognize that if it's still at its default $(CONFIG_DIR)/defconfig
 COMMON_CONFIG_ENV = \
+	BR2_DEFCONFIG='$(call qstrip,$(value BR2_DEFCONFIG))' \
 	KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \
 	KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \
 	KCONFIG_TRISTATE=$(BUILD_DIR)/buildroot-config/tristate.config \
@@ -638,7 +645,7 @@ silentoldconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
 
 defconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
 	@mkdir -p $(BUILD_DIR)/buildroot-config
-	@$(COMMON_CONFIG_ENV) $< --defconfig$(if $(BR2_DEFCONFIG),=$(BR2_DEFCONFIG)) $(CONFIG_CONFIG_IN)
+	@$(COMMON_CONFIG_ENV) $< --defconfig$(if $(DEFCONFIG),=$(DEFCONFIG)) $(CONFIG_CONFIG_IN)
 
 %_defconfig: $(BUILD_DIR)/buildroot-config/conf $(TOPDIR)/configs/%_defconfig outputmakefile
 	@mkdir -p $(BUILD_DIR)/buildroot-config
@@ -646,13 +653,15 @@ defconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
 
 savedefconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
 	@mkdir -p $(BUILD_DIR)/buildroot-config
-	@$(COMMON_CONFIG_ENV) $< --savedefconfig=$(CONFIG_DIR)/defconfig $(CONFIG_CONFIG_IN)
+	@$(COMMON_CONFIG_ENV) $< \
+		--savedefconfig=$(if $(DEFCONFIG),$(DEFCONFIG),$(CONFIG_DIR)/defconfig) \
+		$(CONFIG_CONFIG_IN)
 
 # check if download URLs are outdated
 source-check:
 	$(MAKE) DL_MODE=SOURCE_CHECK $(EXTRAMAKEARGS) source
 
-endif # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
+.PHONY: defconfig savedefconfig
 
 #############################################################
 #
docs/manual/customize-store.txt +1 -0
index 6deed49..92d5378 100644
@@ -156,6 +156,7 @@ the buildroot tree).
    * +BR2_TOOLCHAIN_CTNG_CONFIG+
    * +BR2_UCLIBC_CONFIG+
    * +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+
+1. Set +BR2_DEFCONFIG+ to +<path-to-board-directory>/buildroot.config+
 1. Create +<path-to-board-directory>/fs-overlay+ and fill it
    with additional files you need on your rootfs, e.g.
    +<path-to-board-directory>/etc/inittab+. Set +BR2_ROOTFS_OVERLAY+
Signature · 1 line
1.7.10.4