The Buildroot user manual iii
8.5 Building out-of-tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
8.6 Environment variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
8.7 Dealing efficiently with filesystem images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
8.8 Details about packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
8.9 Graphing the dependencies between packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
8.10 Graphing the build duration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
8.11 Graphing the filesystem size contribution of packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
8.12 Top-level parallel build . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
8.13 Advanced usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
8.13.1 Using the generated toolchain outside Buildroot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
8.13.2 Using gdb in Buildroot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
8.13.3 Using ccache in Buildroot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
8.13.4 Location of downloaded packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
8.13.5 Package-specific make targets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
8.13.6 Using Buildroot during development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
9 Project-specific customization 30
9.1 Recommended directory structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
9.1.1 Implementing layered customizations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
9.2 Keeping customizations outside of Buildroot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
9.2.1 Layout of a br2-external tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
9.2.1.1 The external.desc file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
9.2.1.2 The Config.in and external.mk files . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
9.2.1.3 The configs/ directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
9.2.1.4 The provides/ directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
9.2.1.5 Free-form content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
9.2.1.6 Additional Linux kernel extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
9.2.1.7 Example layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
9.3 Storing the Buildroot configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
9.4 Storing the configuration of other components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
9.5 Customizing the generated target filesystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
9.5.1 Setting file permissions and ownership and adding custom devices nodes . . . . . . . . . . . . . . . . . 40
9.6 Adding custom user accounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
9.7 Customization after the images have been created . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
9.8 Adding project-specific patches and hashes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
9.8.1 Providing extra patches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
9.8.2 Providing extra hashes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
9.9 Adding project-specific packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
9.10 Quick guide to storing your project-specific customizations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43