From 680641105df77f6253070fd5736a5badf0dce93d Mon Sep 17 00:00:00 2001 From: Thomas De Schampheleire Date: Thu, 18 Sep 2014 21:39:35 +0200 Subject: [PATCH] manual/user guide/customization: rework 'step-by-step instructions' This patch reworks the section 'Step-by-step instructions for storing configuration' as follows: - rename into 'Quick guide to storing your project-specific customizations' and hence make it serve as a summary to the chapter - change the introduction to make this clear - update paths to line-up with section 'recommended directory structure' - recommend BR2_GLOBAL_PATCH_DIR, as is done in the section on adding patches. - mention how to add packages in a project-specific directory (to be expanded in another patch) - minor rewording - rename file into customize-quick-guide.txt Signed-off-by: Thomas De Schampheleire Signed-off-by: Thomas Petazzoni --- docs/manual/customize-quick-guide.txt | 64 +++++++++++++++++++++++++++ docs/manual/customize-store.txt | 51 --------------------- docs/manual/customize.txt | 2 +- 3 files changed, 65 insertions(+), 52 deletions(-) create mode 100644 docs/manual/customize-quick-guide.txt delete mode 100644 docs/manual/customize-store.txt diff --git a/docs/manual/customize-quick-guide.txt b/docs/manual/customize-quick-guide.txt new file mode 100644 index 0000000000..617cc9a8bd --- /dev/null +++ b/docs/manual/customize-quick-guide.txt @@ -0,0 +1,64 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +=== Quick guide to storing your project-specific customizations + +Earlier in this chapter, the different methods for making +project-specific customizations have been described. This section will +now summarize all this by providing step-by-step instructions to storing your +project-specific customizations. Clearly, the steps that are not relevant to +your project can be skipped. + +1. +make menuconfig+ to configure toolchain, packages and kernel. +1. +make linux-menuconfig+ to update the kernel config, similar for + other configuration like busybox, uclibc, ... +1. +mkdir -p board//+ +1. Set the following options to +board///.config+ + (as far as they are relevant): + * +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+ + * +BR2_PACKAGE_BUSYBOX_CONFIG+ + * +BR2_UCLIBC_CONFIG+ + * +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+ + * +BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE+ +1. Write the configuration files: + * +make linux-update-defconfig+ + * +make busybox-update-config+ + * +make uclibc-update-config+ + * +cp /build/at91bootstrap3-*/.config + board///at91bootstrap3.config+ + * +make barebox-update-defconfig+ +1. Create +board///rootfs-overlay/+ and fill it + with additional files you need on your rootfs, e.g. + +board///rootfs-overlay/etc/inittab+. + Set +BR2_ROOTFS_OVERLAY+ + to +board///rootfs-overlay+. +1. Create a post-build script + +board///post_build.sh+. Set + +BR2_ROOTFS_POST_BUILD_SCRIPT+ to + +board///post_build.sh+ +1. If additional setuid permissions have to be set or device nodes have + to be created, create +board///device_table.txt+ + and add that path to +BR2_ROOTFS_DEVICE_TABLE+. +1. If additional user accounts have to be created, create + +board///users_table.txt+ and add that path + to +BR2_ROOTFS_USERS_TABLES+. +1. To add custom patches to certain packages, set +BR2_GLOBAL_PATCH_DIR+ + to +board///patches/+ and add your patches + for each package in a subdirectory named after the package. Each + patch should be called +--.patch+. +1. Specifically for the Linux kernel, there also exists the option + +BR2_LINUX_KERNEL_PATCH+ with as main advantage that it can also + download patches from a URL. If you do not need this, + +BR2_GLOBAL_PATCH_DIR+ is preferred. U-Boot, Barebox, at91bootstrap + and at91bootstrap3 also have separate options, but these do not + provide any advantage over +BR2_GLOBAL_PATCH_DIR+ and will likely be + removed in the future. +1. If you need to add project-specific packages, create + +package//+ and place your packages in that + directory. Create an overall +.mk+ file that + includes the +.mk+ files of all your packages. Create an overall + +Config.in+ file that sources the +Config.in+ files of all your + packages. Include this +Config.in+ file from Buildroot's + +package/Config.in+ file. +1. +make savedefconfig+ to save the buildroot configuration. +1. +cp defconfig configs/_defconfig+ diff --git a/docs/manual/customize-store.txt b/docs/manual/customize-store.txt deleted file mode 100644 index 7f4a289f0a..0000000000 --- a/docs/manual/customize-store.txt +++ /dev/null @@ -1,51 +0,0 @@ -// -*- mode:doc; -*- -// vim: set syntax=asciidoc: - -=== Step-by-step instructions for storing configuration - -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. -1. +make linux-menuconfig+ to update the kernel config, similar for - other configuration. -1. +mkdir -p board//+ -1. Set the following options to +board///.config+ - (as far as they are relevant): - * +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+ - * +BR2_PACKAGE_BUSYBOX_CONFIG+ - * +BR2_UCLIBC_CONFIG+ - * +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+ - * +BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE+ -1. Write the configuration files: - * +make linux-update-defconfig+ - * +make busybox-update-config+ - * +make uclibc-update-config+ - * +cp /build/at91bootstrap3-*/.config board///at91bootstrap3.config+ - * +make barebox-update-defconfig+ -1. Create +board///fs-overlay/+ and fill it - with additional files you need on your rootfs, e.g. - +board///fs-overlay/etc/inittab+. - Set +BR2_ROOTFS_OVERLAY+ - to +board///fs-overlay+. -1. Create a post-build script - +board///post-build.sh+. Set - +BR2_ROOTFS_POST_BUILD_SCRIPT+ to - +board///post-build.sh+ -1. If additional setuid permissions have to be set or device nodes have - to be created, create +board///device_table.txt+ - and add that path to +BR2_ROOTFS_DEVICE_TABLE+. -1. +make savedefconfig+ to save the buildroot configuration. -1. +cp defconfig configs/_defconfig+ -1. To add patches to the linux build, set +BR2_LINUX_KERNEL_PATCH+ to - +board///patches/linux/+ and add your - patches in that directory. Each patch should be called - +linux--.patch+. Similar for U-Boot, barebox, - at91bootstrap and at91bootstrap3. -1. If you need modifications to other packages, or if you need to add - packages, do that directly in the +packages/+ directory, following the - instructions in xref:adding-packages[]. diff --git a/docs/manual/customize.txt b/docs/manual/customize.txt index 98db69de18..484413e4d8 100644 --- a/docs/manual/customize.txt +++ b/docs/manual/customize.txt @@ -57,4 +57,4 @@ include::customize-patches.txt[] include::customize-packages.txt[] -include::customize-store.txt[] +include::customize-quick-guide.txt[]