Difference between revisions of "Buildroot:ManualOrganization"
SamuelMartin (talk | contribs) (add toc suggestion) |
|||
Line 1: | Line 1: | ||
= Discussion around the organization of the Buildroot manual = | = Discussion around the organization of the Buildroot manual = | ||
− | |||
− | |||
== List of topics that must be covered == | == 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 | * Configuration | ||
** Explain the impact of the target architecture variant selection | ** Explain the impact of the target architecture variant selection | ||
Line 22: | Line 20: | ||
** Details on adding licensing information to packages | ** Details on adding licensing information to packages | ||
** Details on gettext/libiconv handling | ** Details on gettext/libiconv handling | ||
+ | ** The different download infrastructures | ||
* Contribution | * 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 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. | ** 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 | ||
+ | # 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 | ||
+ | # 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 | ||
+ | ## Patch Policy | ||
+ | ### Provinding patches | ||
+ | #### Additionnal tarball | ||
+ | #### Within Buildroot | ||
+ | ### How patches are applied | ||
+ | ### Format and licensing of the package patches | ||
+ | ## Download infrastructure | ||
+ | ## Creating your own board support | ||
+ | # Getting involved | ||
+ | ## Mailing List | ||
+ | ### Subscribing to the mailing list | ||
+ | ### Searching the List Archives | ||
+ | ## IRC | ||
+ | ## Patchwork | ||
+ | ## Bugtracker | ||
+ | ## Buildroot wikipage | ||
+ | # 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 |
Revision as of 04:20, 1 September 2012
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