diff --git a/doc/branding.md b/doc/branding.md index 17087dc4..37a75942 100644 --- a/doc/branding.md +++ b/doc/branding.md @@ -41,6 +41,62 @@ Verify the result after a build by inspecting: printed on a label on the device. +Factory Defaults +---------------- + +The Infix default configuration, factory-config, is part static files +and part per-device generated files, e.g., SSH hostkey and hostname. +The latter is constructed from the file `/etc/hostname`, appended with +the last three octets of the system's base MAC address. To override the +base hostname, set `BR2_TARGET_GENERIC_HOSTNAME` in your defconfig. + +The static files are installed by Infix `confd` in `/usr/share/confd/` +at build time. It contains two subdirectories: + + /usr/share/confd/ + |- factory.d/ + | |- 10-foo.json + | |- 10-bar.json + | `- 10-qux.json + `- failure.d/ + |- 10-xyzzy.json + `- 10-garply.json + +To override, or extend, these files in you br2-external, set up a rootfs +overlay and add it last in `BR2_ROOTFS_OVERLAY`. Your overlay can look +something like this: + + ./board/common/rootfs/ + |- etc/ + | |- confdrc # See below + | `- confdrc.local + `- usr/ + `- share/ + `- confd/ + |- 10-foo.json # Override Infix foo + |- 30-bar.json # Extend, probably 10-bar.json + `- 30-fred.json # Extend, your own defaults + +Using the same filename in your overlay, here `10-foo.json`, completely +replaces the contents of the same file provided by Infix. If you just +want to extend, or replace parts of an Infix default, use `30-....json`. +Here the file `30-bar.json` is just a helpful hit to maintainers of your +br2-external that it probably extends Infix' `10-bar.json`. + +The reason for the jump in numbers is that 20 is reserved for files +generated by Infix' `gen-function` scripts. Your br2-external can +provide a few custom ones that the `bootstrap` knows about, e.g., +`gen-ifs-custom` that overrides `20-interfaces.json`. See the +bootstrap script for more help, and up-to-date information. + +> **Note:** you may not need to provide your own `/etc/confdrc`. The +> one installed by `confd` is usually enough. However, if you want to +> adjust the behavior of `bootstrap` you may want to override it. There +> is also `confdrc.local`, which usually is enough to change arguments +> to scripts like `gen-interfaces`, e.g., to create a bridge by default, +> you may want to look into `GEN_IFACE_OPTS`. + + Integration -----------