Skip to contentSkip to conversation

Manual improvements part 2

PATCH New Thomas De Schampheleire 2 participants 5 messages Aug 19, 2014 – Aug 21, 2014

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Manual improvements part 2

This is a second set of manual improvements I'm sending out for 2014.08. Thomas Petazzoni already applied the first part which was actually an RFC, and following his comments I will send out subsequent patches as soon as they are available.

As far as structure is concerned, this series covers all I was planning to change. Content-wise, I will be making more changes, which will be sent as a third series. At least one change I have to make is regarding the configuration of busybox/uclibc, which is now easier thanks to the kconfig-package infrastructure. After that change, I think the manual is in a good enough shape for the release, and any further changes I can make (see below) are welcome but not necessary. Do let me know if you think otherwise.

Additional changes I'm planning but may not be ready in time for the release:
- Rework the 'General Buildroot usage' chapter
- Rework the 'Project-specific customization' chapter.
- Revive the 'Beyond Buildroot' rework patch that has been sent to the list a long while back. This will certainly not be ready before the release.

---
Thomas De Schampheleire (3)
manual/getting started: minor improvements to 'Using Buildroot' section manual/user guide: high-level restructuring
manual/user guide: move tip on configuration searches

 docs/manual/common-usage.txt        |   8 ++++-
 docs/manual/configure.txt           |  46 ++++++++++++++++++++++++--
 docs/manual/customize-store.txt     |   9 +----
 docs/manual/customize-toolchain.txt |  49 -----------------------------
 docs/manual/customize.txt           |  16 ++++-----
 docs/manual/eclipse-integration.txt |   2 +-
 docs/manual/going-further.txt       |   8 ----
 docs/manual/how-buildroot-works.txt |   2 +-
 docs/manual/make-tips.txt           |  12 +------
 docs/manual/manual.txt              |   4 +-
 docs/manual/using.txt               |   5 +-
 docs/manual/working-with.txt        |  16 +--------
 12 files changed, 67 insertions(+), 110 deletions(-)
#1 lore raw

PATCH 1/1 manual/getting started: minor improvements to 'Using Buildroot' section

This patch renames the section 'Using Buildroot' into 'Buildroot quick start' as real details about Buildroot usage will be in the User Guide rather than in 'Getting Started'.

Additionally, add a cross-reference to the section about configuring Buildroot.

---
 docs/manual/using.txt |  5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)
docs/manual/using.txt +3 -2
diff -r 44128f28ff7d -r 6da37bceeeff docs/manual/using.txt
@@ -1,7 +1,7 @@
 // -*- mode:doc; -*-
 // vim: set syntax=asciidoc:
 
-== Using Buildroot
+== Buildroot quick start
 
 *Important*: you can and should *build everything as a normal user*. There
 is no need to be root to configure and use Buildroot. By running all
@@ -47,7 +47,8 @@
 to get the dependencies of your favorite interface.
 
 For each menu entry in the configuration tool, you can find associated
-help that describes the purpose of the entry.
+help that describes the purpose of the entry. Refer to xref:configure[]
+for details on some specific configuration aspects.
 
 Once everything is configured, the configuration tool generates a
 +.config+ file that contains the entire configuration. This file will be
#2 lore raw

PATCH 1/1 manual/user guide: high-level restructuring

In reply to Thomas De Schampheleire

This patch performs some additional restructuring of the manual, specifically in the User Guide. In detail:

- Rename 'Daily use' to 'General Buildroot usage'
- Move chapters 'make tips', 'Eclipse integration', and 'Advanced usage' as sections under the 'General Buildroot usage' chapter.
- Rename 'Details on Buildroot configuration' into 'Buildroot configuration'
- Rework the 'Customization' section as follows:
- Move the short section on debugging the external toolchain wrapper into the rest of the explanation on external toolchains.
- Remove the now redundant section on toolchains, as this is already explained in much more detail in the 'Buildroot configuration' chapter.
- Move the sections on busybox/uclibc/kernel configuration from chapter 'Customization' into a separate chapter 'Configuration of other components'.
- Rename the remaining part of the original 'Customization' chapter into 'Project-specific customization' and fold it together with the next chapter 'Storing the configuration'
- Remove the chapter 'Going further in Buildroot innards' thanks to:
- Moving the chapter 'How Buildroot works' to the Developer guide.
- Moving the 'Advanced Buildroot usage' section to the 'General Buildroot usage' chapter.
- Remove the chapter 'Hacking Buildroot' by:
- Adding a reference to adding packages to the 'Project-specific customizations' chapter
- Leaving out the explicit reference to creating board support, as this is part of the previous chapter already, so an extra reference is redundant.

---

 docs/manual/common-usage.txt        |   8 ++++-
 docs/manual/configure.txt           |  25 ++++++++++++++-
 docs/manual/customize-store.txt     |   9 +----
 docs/manual/customize-toolchain.txt |  49 -----------------------------
 docs/manual/customize.txt           |  16 ++++-----
 docs/manual/eclipse-integration.txt |   2 +-
 docs/manual/going-further.txt       |   8 ----
 docs/manual/how-buildroot-works.txt |   2 +-
 docs/manual/make-tips.txt           |   2 +-
 docs/manual/manual.txt              |   4 +-
 docs/manual/working-with.txt        |  16 +--------
 11 files changed, 46 insertions(+), 95 deletions(-)

Again, for ease of reviewing the structure, the original structure of the User guide was:

II. User guide

6. Details on Buildroot configuration

6.1. Cross-compilation toolchain
6.2. /dev management
6.3. init system

7. make tips
8. Customization

8.1. Customizing the generated target filesystem 8.2. Customizing the BusyBox configuration 8.3. Customizing the uClibc configuration 8.4. Customizing the Linux kernel configuration 8.5. Customizing the toolchain

9. Storing the configuration

9.1. Basics for storing the configuration
9.2. Creating your own board support
9.3. Step-by-step instructions for storing configuration 9.4. Customizing packages
9.5. Keeping customizations outside Buildroot

10. Daily use

10.1. Understanding when a full rebuild is necessary 10.2. Understanding how to rebuild packages 10.3. Offline builds
10.4. Building out-of-tree
10.5. Environment variables
10.6. Dealing efficiently with filesystem images 10.7. Graphing the dependencies between packages 10.8. Graphing the build duration

11. Integration with Eclipse
12. Hacking Buildroot
13. Frequently Asked Questions & Troubleshooting

13.1. The boot hangs after Starting network?
13.2. Why is there no compiler on the target?
13.3. Why are there no development files on the target? 13.4. Why is there no documentation on the target?
13.5. Why are some packages not visible in the Buildroot config
menu?
13.6. Why not use the target directory as a chroot directory? 13.7. Why doesn?t Buildroot generate binary packages (.deb, .ipkg?)?

14. Known issues
15. Going further in Buildroot?s innards

15.1. How Buildroot works
15.2. Advanced usage

16. Legal notice and licensing

16.1. Complying with open source licenses 16.2. License abbreviations
16.3. Complying with the Buildroot license

17. Beyond Buildroot

17.1. Boot the generated images
17.2. Chroot

and this becomes:

II. User guide

6. Buildroot configuration

6.1. Cross-compilation toolchain
6.2. /dev management
6.3. init system

7. Configuration of other components

7.1. Customizing the BusyBox configuration 7.2. Customizing the uClibc configuration 7.3. Customizing the Linux kernel configuration

8. General Buildroot usage

8.1. make tips
8.2. Understanding when a full rebuild is necessary 8.3. Understanding how to rebuild packages 8.4. Offline builds
8.5. Building out-of-tree
8.6. Environment variables
8.7. Dealing efficiently with filesystem images 8.8. Graphing the dependencies between packages 8.9. Graphing the build duration
8.10. Integration with Eclipse
8.11. Advanced usage

9. Project-specific customization

9.1. Customizing the generated target filesystem 9.2. Basics for storing the configuration
9.3. Creating your own board support
9.4. Step-by-step instructions for storing configuration 9.5. Customizing packages
9.6. Keeping customizations outside Buildroot

10. Frequently Asked Questions & Troubleshooting

10.1. The boot hangs after Starting network?
10.2. Why is there no compiler on the target?
10.3. Why are there no development files on the target? 10.4. Why is there no documentation on the target?
10.5. Why are some packages not visible in the Buildroot config
menu?
10.6. Why not use the target directory as a chroot directory? 10.7. Why doesn?t Buildroot generate binary packages (.deb, .ipkg?)?

11. Known issues
12. Legal notice and licensing

12.1. Complying with open source licenses 12.2. License abbreviations
12.3. Complying with the Buildroot license

13. Beyond Buildroot

13.1. Boot the generated images
13.2. Chroot

docs/manual/common-usage.txt +7 -1
diff -r 6da37bceeeff -r 80688762f124 docs/manual/common-usage.txt
@@ -1,7 +1,9 @@
 // -*- mode:doc; -*-
 // vim: set syntax=asciidoc:
 
-== Daily use
+== General Buildroot usage
+
+include::make-tips.txt[]
 
 include::rebuilding-packages.txt[]
 
@@ -262,3 +264,7 @@
 ----------------
 BR2_GRAPH_OUT=png make graph-build
 ----------------
+
+include::eclipse-integration.txt[]
+
+include::advanced.txt[]
docs/manual/configure.txt +24 -1
diff -r 6da37bceeeff -r 80688762f124 docs/manual/configure.txt
@@ -2,7 +2,7 @@
 // vim: set syntax=asciidoc:
 
 [[configure]]
-== Details on Buildroot configuration
+== Buildroot configuration
 
 All the configuration options in +make *config+ have a help text
 providing details about the option. However, a number of topics
@@ -215,6 +215,20 @@
   fix from the toolchain vendor, unless you build your external
   toolchain by yourself using Crosstool-NG.
 
+===== External toolchain wrapper
+
+When using an external toolchain, Buildroot generates a wrapper program,
+that transparently passes the appropriate options (according to the
+configuration) to the external toolchain programs. In case you need to
+debug this wrapper to check exactly what arguments are passed, you can
+set the environment variable +BR2_DEBUG_WRAPPER+ to either one of:
+
+* +0+, empty or not set: no debug
+
+* +1+: trace all arguments on a single line
+
+* +2+: trace one argument per line
+
 === /dev management
 
 On a Linux system, the +/dev+ directory contains special files, called
@@ -355,3 +369,12 @@
 The solution recommended by Buildroot developers is to use the
 *BusyBox init* as it is sufficient for most embedded
 systems. *systemd* can be used for more complex situations.
+
+== Configuration of other components
+
+include::customize-busybox-config.txt[]
+
+include::customize-uclibc-config.txt[]
+
+include::customize-kernel-config.txt[]
+
docs/manual/customize-store.txt +2 -7
diff -r 6da37bceeeff -r 80688762f124 docs/manual/customize-store.txt
@@ -1,8 +1,8 @@
 // -*- mode:doc; -*-
 // vim: set syntax=asciidoc:
 
-[[customize-store]]
-== Storing the configuration
+[[customize-store-basics]]
+=== Basics for storing the configuration
 
 When you have a buildroot configuration that you are satisfied with and
 you want to share it with others, put it under revision control or move
@@ -12,11 +12,6 @@
 packages that you use (kernel, busybox, uClibc, ...), and your rootfs
 modifications.
 
-
-[[customize-store-basics]]
-=== Basics for storing the configuration
-
-
 [[customize-store-buildroot-config]]
 ==== Buildroot configuration
 
docs/manual/customize-toolchain.txt deleted +0 -49

49 lines not on this page · raw message

docs/manual/customize.txt +7 -9
diff -r 6da37bceeeff -r 80688762f124 docs/manual/customize.txt
@@ -1,18 +1,16 @@
 // -*- mode:doc; -*-
 // vim: set syntax=asciidoc:
 
-== Customization
+== Project-specific customization
+
+The following sections describe the various way in which you can
+customize Buildroot for a given project.
+
+For instructions on how to add new packages to Buildroot, refer to
+xref:adding-packages[]
 
 include::customize-rootfs.txt[]
 
-include::customize-busybox-config.txt[]
-
-include::customize-uclibc-config.txt[]
-
-include::customize-kernel-config.txt[]
-
-include::customize-toolchain.txt[]
-
 include::customize-store.txt[]
 
 include::customize-packages.txt[]
docs/manual/eclipse-integration.txt +1 -1
diff -r 6da37bceeeff -r 80688762f124 docs/manual/eclipse-integration.txt
@@ -1,7 +1,7 @@
 // -*- mode:doc; -*-
 // vim: set syntax=asciidoc:
 
-== Integration with Eclipse
+=== Integration with Eclipse
 
 While a part of the embedded Linux developers like classical text
 editors like Vim or Emacs, and command-line based interfaces, a number
docs/manual/going-further.txt deleted +0 -8
diff -r 6da37bceeeff -r 80688762f124 docs/manual/going-further.txt
@@ -1,8 +0,0 @@
-// -*- mode:doc; -*-
-// vim: set syntax=asciidoc:
-
-== Going further in Buildroot's innards
-
-include::how-buildroot-works.txt[]
-
-include::advanced.txt[]
docs/manual/how-buildroot-works.txt +1 -1
diff -r 6da37bceeeff -r 80688762f124 docs/manual/how-buildroot-works.txt
@@ -1,7 +1,7 @@
 // -*- mode:doc; -*-
 // vim: set syntax=asciidoc:
 
-=== How Buildroot works
+== How Buildroot works
 
 As mentioned above, Buildroot is basically a set of Makefiles that
 download, configure, and compile software with the correct options. It
docs/manual/make-tips.txt +1 -1
diff -r 6da37bceeeff -r 80688762f124 docs/manual/make-tips.txt
@@ -2,7 +2,7 @@
 // vim: set syntax=asciidoc:
 
 [[make-tips]]
-== 'make' tips
+=== 'make' tips
 
 This is a collection of tips that help you make the most of Buildroot.
 
docs/manual/manual.txt +2 -2
diff -r 6da37bceeeff -r 80688762f124 docs/manual/manual.txt
@@ -32,14 +32,14 @@
 
 include::known-issues.txt[]
 
-include::going-further.txt[]
-
 include::legal-notice.txt[]
 
 include::beyond-buildroot.txt[]
 
 = Developer guide
 
+include::how-buildroot-works.txt[]
+
 include::developer-guide.txt[]
 
 include::contribute.txt[]
docs/manual/working-with.txt +1 -15
diff -r 6da37bceeeff -r 80688762f124 docs/manual/working-with.txt
@@ -6,20 +6,6 @@
 
 include::configure.txt[]
 
-include::make-tips.txt[]
+include::common-usage.txt[]
 
 include::customize.txt[]
-
-include::common-usage.txt[]
-
-include::eclipse-integration.txt[]
-
-== Hacking Buildroot
-
-If Buildroot does not yet fit all your requirements, you may be
-interested in hacking it to add:
-
-* new packages: refer to the xref:adding-packages[Developer guide]
-
-* new board support: refer to the
-  xref:customize-store-board-support[Developer guide].
#3 lore raw

PATCH 1/1 manual/user guide: move tip on configuration searches

In reply to Thomas De Schampheleire

This patch moves the tip on searching in the configuration editors into the section 'Buildroot configuration', which is more logical.

The wording of that section is slightly adapted to fit this new part.

---
 docs/manual/configure.txt |  21 ++++++++++++++++++---
 docs/manual/make-tips.txt |  10 ----------
 2 files changed, 18 insertions(+), 13 deletions(-)
docs/manual/configure.txt +18 -3
diff -r 80688762f124 -r 742905f7caeb docs/manual/configure.txt
@@ -5,9 +5,24 @@
 == Buildroot configuration
 
 All the configuration options in +make *config+ have a help text
-providing details about the option. However, a number of topics
-require additional details that cannot easily be covered in the help
-text and are there covered in the following sections.
+providing details about the option.
+
+The +make *config+ commands also offer a search tool. Read the help
+message in the different frontend menus to know how to use it:
+
+* in _menuconfig_, the search tool is called by pressing +/+;
+* in _xconfig_, the search tool is called by pressing +Ctrl+ + +f+.
+
+The result of the search shows the help message of the matching items.
+In _menuconfig_, numbers in the left column provide a shortcut to the
+corresponding entry. Just type this number to directly jump to the
+entry, or to the containing menu in case the entry is not selectable due
+to a missing dependency.
+
+Although the menu structure and the help text of the entries should be
+sufficiently self-explanatory, a number of topics require additional
+explanation that cannot easily be covered in the help text and are
+therefore covered in the following sections.
 
 === Cross-compilation toolchain
 
docs/manual/make-tips.txt +0 -10
diff -r 80688762f124 -r 742905f7caeb docs/manual/make-tips.txt
@@ -6,16 +6,6 @@
 
 This is a collection of tips that help you make the most of Buildroot.
 
-.Configuration searches:
-
-The +make *config+ commands offer a search tool. Read the help message in
-the different frontend menus to know how to use it:
-
-* in _menuconfig_, the search tool is called by pressing +/+;
-* in _xconfig_, the search tool is called by pressing +Ctrl+ + +f+.
-
-The result of the search shows the help message of the matching items.
-
 .Display all commands executed by make:
 
 --------------------
#4 lore raw

PATCH 1/1 Manual improvements part 2

In reply to Thomas De Schampheleire

Dear Thomas De Schampheleire,

Quoted 21 lines · Thomas De Schampheleire

This is a second set of manual improvements I'm sending out for 2014.08. Thomas Petazzoni already applied the first part which was actually an RFC, and following his comments I will send out subsequent patches as soon as they are available.

As far as structure is concerned, this series covers all I was planning to change. Content-wise, I will be making more changes, which will be sent as a third series. At least one change I have to make is regarding the configuration of busybox/uclibc, which is now easier thanks to the kconfig-package infrastructure. After that change, I think the manual is in a good enough shape for the release, and any further changes I can make (see below) are welcome but not necessary. Do let me know if you think otherwise.

Additional changes I'm planning but may not be ready in time for the release:
- Rework the 'General Buildroot usage' chapter
- Rework the 'Project-specific customization' chapter.
- Revive the 'Beyond Buildroot' rework patch that has been sent to the list a long while back. This will certainly not be ready before the release.

Quoted 1 line

Series applied, thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com