Buildroot:ManualOrganization
Discussion around the organization of the Buildroot manual
List of topics that must be covered
- Starting with Buildroot (out-of-box experience, just using menuconfig options to get something, no need to hack anything)
- Configuration
- Explain the impact of the target architecture variant selection
- Explain the toolchain backends
- Explain the init systems
- Explain the /dev management strategies. Explain custom device tables.
- Explain the configuration of the kernel, and real-time extensions
- Explain the root filesystem types, with specific details on the special initramfs case
- Explain usage of the board/ directory
- Explain usage of post-build scripts, give examples (set a root password, etc.), and explain why it's better than custom target skeletons.
- How to add new packages
- The different package infrastructures
- Details on autotools-package infrastructure, on cmake-package infrastructure, generic-package infrastructure
- Details on how to write the Config.in files: when 'depends on' should be used, when 'select' should be used. How to properly handle dependencies on toolchain features (RPC, locale, etc.)
- Details on hooks
- Details on adding patches to packages
- Details on adding licensing information to packages
- Details on gettext/libiconv handling
- The different download infrastructures
- Contribution
- How to report bugs (bug tracker, IRC). Explain to include the .config file + 100-200 last lines of build log after doing a complete 'make clean; make'
- How to send patches.
Proposed organization
This toc suggestion is close to the one already posted on the mailing list (see: http://lists.busybox.net/pipermail/buildroot/2012-March/051952.html), and is here to give some starting-point.
- About Buildroot
- Starting up
- System requirements
- Mandatory packages
- Optional packages
- Getting Buildroot
- Using Buildroot
- System requirements
- Working with Buildroot
- make tips
- Customization
- Customizing the generated target filesystem
- Customizing the Busybox configuration
- Customizing the uClibc configuration
- Customizing the Linux kernel configuration
- Customizing the toolchain
- Using the external toolchain backend
- Using the internal Buildroot toolchain backend
- Using the Crosstool-NG backend
- Daily use
- Understanding how to rebuild packages
- Offline builds
- Building out-of-tree
- Environment variables
- Hacking Buildroot
- Frequently Asked Questions & Troubleshooting
- The boot hangs after Starting network…
- module-init-tools fails to build with cannot find -lc
- LZO package configuration failure due to incorrect host architecture detection
- Typical error output
- Solution
- Going further in Buildroot’s innards
- Embedded system basics & Reasons to use Buildroot
- Cross-compilation & cross-toolchain
- Why choose Buildroot
- How Buildroot works
- Advanced usage
- Using the generated toolchain outside Buildroot
- Using an external toolchain
- Using ccache in Buildroot
- Location of downloaded packages
- Package make targets
- Embedded system basics & Reasons to use Buildroot
- Developer Guidelines
- Writing rules
- Config.in file
- The .mk file
- The documentation
- Adding new packages to Buildroot
- Package directory
- Config.in file
- The .mk file
- Infrastructure for packages with specific build systems
- generic-package Tutorial
- generic-package Reference
- Infrastructure for autotools-based packages
- autotools-package tutorial
- autotools-package reference
- Infrastructure for CMake-based packages
- cmake-package tutorial
- cmake-package reference
- Manual Makefile
- Gettext integration and interaction with packages
- Conclusion
- Package directory
- Patch Policy
- Provinding patches
- Additionnal tarball
- Within Buildroot
- How patches are applied
- Format and licensing of the package patches
- Provinding patches
- Download infrastructure
- Creating your own board support
- Writing rules
- Getting involved
- Mailing List
- Subscribing to the mailing list
- Searching the List Archives
- IRC
- Patchwork
- Bugtracker
- Buildroot wikipage
- Mailing List
- Contibuting to Buildroot
- Submitting patches
- Reviewing/Testing patches
- Autobuild
- Legal notice and licensing
- Complying with opensource licenses
- Complying with the Buildroot license
- Appendix
- Makedev syntax documentation
- Deprecated list