customize.txt 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. // -*- mode:doc; -*-
  2. // vim: set syntax=asciidoc:
  3. [[customize]]
  4. == Project-specific customization
  5. Typical actions you may need to perform for a given project are:
  6. * configuring Buildroot (including build options and toolchain,
  7. bootloader, kernel, package and filesystem image type selection)
  8. * configuring other components, like the Linux kernel and BusyBox
  9. * customizing the generated target filesystem
  10. ** adding or overwriting files on the target filesystem (using
  11. +BR2_ROOTFS_OVERLAY+)
  12. ** modifying or deleting files on the target filesystem (using
  13. +BR2_ROOTFS_POST_BUILD_SCRIPT+)
  14. ** running arbitrary commands prior to generating the filesystem image
  15. (using +BR2_ROOTFS_POST_BUILD_SCRIPT+)
  16. ** setting file permissions and ownership (using
  17. +BR2_ROOTFS_DEVICE_TABLE+)
  18. ** adding custom devices nodes (using
  19. +BR2_ROOTFS_STATIC_DEVICE_TABLE+)
  20. * adding custom user accounts (using +BR2_ROOTFS_USERS_TABLES+)
  21. * running arbitrary commands after generating the filesystem image
  22. (using +BR2_ROOTFS_POST_IMAGE_SCRIPT+)
  23. * adding project-specific patches to some packages (using
  24. +BR2_GLOBAL_PATCH_DIR+)
  25. * adding project-specific packages
  26. An important note regarding such 'project-specific' customizations:
  27. please carefully consider which changes are indeed project-specific and
  28. which changes are also useful to developers outside your project. The
  29. Buildroot community highly recommends and encourages the upstreaming of
  30. improvements, packages and board support to the official Buildroot
  31. project. Of course, it is sometimes not possible or desirable to
  32. upstream because the changes are highly specific or proprietary.
  33. This chapter describes how to make such project-specific customizations
  34. in Buildroot and how to store them in a way that you can build the same
  35. image in a reproducible way, even after running 'make clean'. By
  36. following the recommended strategy, you can even use the same Buildroot
  37. tree to build multiple distinct projects!
  38. include::customize-directory-structure.txt[]
  39. include::customize-outside-br.txt[]
  40. include::customize-configuration.txt[]
  41. include::customize-rootfs.txt[]
  42. include::customize-users-tables.txt[]
  43. include::customize-post-image.txt[]
  44. include::customize-patches.txt[]
  45. include::customize-packages.txt[]
  46. include::customize-quick-guide.txt[]