[Buildroot] Project configuration management

Gustavo Zacarias gustavo at zacarias.com.ar
Wed Apr 6 16:01:45 UTC 2016


On 06/04/16 11:52, Thomas Petazzoni wrote:

> That's not exactly the sort of script I was thinking of. I was thinking
> of a more high-level, project specific script, like maybe:
>
> 	genconfig -h <hwplatform> -s <softwarestack> -r <releasetype>
>
> or anything like that, which would internally have the knowledge of
> which fragments to use for which aspect (HW platform, software stack,
> etc.). Of course, internally, this script can use merge_config.sh, but
> having a more high-level script might help users to more easily
> generate their Buildroot configuration.
>
> Thomas

Hi.
Adding a bit on this since you CCed me, this customer has multiple 
platforms (boards/architectures), with multiple capabilities (different 
video in/out frontends) and localized features.
What i've used is pretty much what Thomas says, a script that takes 
several parameters as input:

genconfig -p platform -b build_type -c capabilities -l localization ...

Where platform would be different hardware targets, build_type is what 
kind of rootfs/image/firmware it's building (debug, release, etc), which 
capabilities (isdb-t, dvb-s2, etc), and which localization (target 
country, for language, menus, logos, etc).

The script then combines different defconfig fragments according to 
these parameters and validates the different combinations (for instance 
some platform X can't have isdb-t or so on), generating a suitable 
defconfig and setting up an out-of-tree build ready to go.

Of course the "chunkization" of the defconfig fragments requires some 
knowledge, but it essentially boils down to:

* Hardware platform
   + Toolchain setup (varies for debug & release)
   + Target filesystem setup (might be different for debug & release)
   + Kernel setup (ditto above)

* Apps
   + Open-source apps for the target (might vary for debug & release)
   + Propietary apps (varies according to capabilities and localization)

* Localization
   + Language packs, certificates, default settings, marketing stuff, etc

Regards.


More information about the buildroot mailing list