// -*- mode:doc; -*- // vim: set syntax=asciidoc: [[customize-store-buildroot-config]] === Storing the Buildroot configuration The Buildroot configuration can be stored using the command +make savedefconfig+. This strips the Buildroot configuration down by removing configuration options that are at their default value. The result is stored in a file called +defconfig+. If you want to save it in another place, change the +BR2_DEFCONFIG+ option in the Buildroot configuration itself, or call make with +make savedefconfig BR2_DEFCONFIG=+. The recommended place to store this defconfig is +configs/_defconfig+. If you follow this recommendation, the configuration will be listed in +make list-defconfigs+ and can be set again by running +make _defconfig+. Alternatively, you can copy the file to any other place and rebuild with +make defconfig BR2_DEFCONFIG=+. [[customize-store-package-config]] === Storing the configuration of other components The configuration files for BusyBox, the Linux kernel, Barebox, U-Boot and uClibc should be stored as well if changed. For each of these components, a Buildroot configuration option exists to point to an input configuration file, e.g. +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+. To store their configuration, set these configuration options to a path where you want to save the configuration files, and then use the helper targets described below to actually store the configuration. As explained in xref:customize-dir-structure[], the recommended path to store these configuration files is +board///foo.config+. Make sure that you create a configuration file 'before' changing the +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+ etc. options. Otherwise, Buildroot will try to access this config file, which doesn't exist yet, and will fail. You can create the configuration file by running +make linux-menuconfig+ etc. Buildroot provides a few helper targets to make the saving of configuration files easier. * +make linux-update-defconfig+ saves the linux configuration to the path specified by +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+. It simplifies the config file by removing default values. However, this only works with kernels starting from 2.6.33. For earlier kernels, use +make linux-update-config+. * +make busybox-update-config+ saves the busybox configuration to the path specified by +BR2_PACKAGE_BUSYBOX_CONFIG+. * +make uclibc-update-config+ saves the uClibc configuration to the path specified by +BR2_UCLIBC_CONFIG+. * +make barebox-update-defconfig+ saves the barebox configuration to the path specified by +BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE+. * +make uboot-update-defconfig+ saves the U-Boot configuration to the path specified by +BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE+. * For at91bootstrap3, no helper exists so you have to copy the config file manually to +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+.