Buildroot-ts Configuration: Difference between revisions

From embeddedTS Manuals
(Created page with "The full-featured stock image may be too cumbersome for some applications. Applications that require faster bootup time or a smaller root filesystem will benefit greatly from...")
 
(Grammar fix for BusyBox)
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
The full-featured stock image may be too cumbersome for some applications. Applications that require faster bootup time or a smaller root filesystem will benefit greatly from using a lighter distribution like Buildroot. To assist customers heading down this path we have forked a stable snapshot of Buildroot (specifically 2018.02) and have added on top of it everything that is required for operation with one of our products. In order to provide consistency, the Buildroot image we provide and the default configuration are fairly large; but it includes a number of tools that are present on our stock image so that transitioning from one to the other is much easier. The Buildroot configuration could be customized to provide a much smaller footprint with a faster bootup time.  Our current buildroot averages about 10 seconds of bootup time (much of this is spent on networking). Reducing the configuration can bring this time down to 5 seconds from power on to login prompt.
The full-featured Debian image may be too cumbersome for some applications. Applications that require faster bootup time or a smaller root filesystem will benefit greatly from using a lighter distribution like Buildroot. Using Buildroot for generating images makes it easy to keep software up to date, both userspace and kernel. Additionally, the use of Buildroot allows for building full images completely from source, with semi-reproducable builds, and full software license reports.
 
To assist customers heading down this path, we maintain our own [https://github.com/embeddedTS/buildroot-ts#readme Buildroot br2-external tree]. This tree includes upstream Buildroot as a submodule, which eases updating between Buildroot releases. See the [https://buildroot.org/downloads/manual/manual.html Buildroot manual] for more information on Buildroot and br2-external trees.
 
In order to provide an easy transition from a larger Linux distribution to Buildroot, we provide and maintain two levels of configurations:
* The base configuration for each device brings in hardware support to get the unit booted, but offers minimal software support and relies mostly on tools provided by BusyBox.
* An "extra packages" defconfig that can be merged in with any of the base configurations in order to provide many additional packages to create an environment that is more consistent with larger Linux distributions.
 
The larger Buildroot configuration averages about 10 seconds of boot time, much of which is spent on networking. The base configurations can reduce this time significantly.
 
Our Buildroot br2-external currently uses the <source inline>linux-5.10.y</source> branch of our [https://github.com/embeddedTS/linux-lts/tree/linux-5.10.y Linux LTS kernel repository] for the majority of its supported platforms.
 
 
{{Note|Note that our base configurations include that device's utilities package where possible. Normally, these utilities (e.g. <source inline>tshwctl</source>, <source inline>tsmicroctl</source>, etc.) list the git hash of the build source in the help output. However, due to the Buildroot process, the git hash in these utilities reflects the git hash of Buildroot-ts, NOT of the utilities repository. There is no way to work around this without building the utilities outside of Buildroot.}}

Latest revision as of 13:40, 4 April 2023

The full-featured Debian image may be too cumbersome for some applications. Applications that require faster bootup time or a smaller root filesystem will benefit greatly from using a lighter distribution like Buildroot. Using Buildroot for generating images makes it easy to keep software up to date, both userspace and kernel. Additionally, the use of Buildroot allows for building full images completely from source, with semi-reproducable builds, and full software license reports.

To assist customers heading down this path, we maintain our own Buildroot br2-external tree. This tree includes upstream Buildroot as a submodule, which eases updating between Buildroot releases. See the Buildroot manual for more information on Buildroot and br2-external trees.

In order to provide an easy transition from a larger Linux distribution to Buildroot, we provide and maintain two levels of configurations:

  • The base configuration for each device brings in hardware support to get the unit booted, but offers minimal software support and relies mostly on tools provided by BusyBox.
  • An "extra packages" defconfig that can be merged in with any of the base configurations in order to provide many additional packages to create an environment that is more consistent with larger Linux distributions.

The larger Buildroot configuration averages about 10 seconds of boot time, much of which is spent on networking. The base configurations can reduce this time significantly.

Our Buildroot br2-external currently uses the linux-5.10.y branch of our Linux LTS kernel repository for the majority of its supported platforms.


Note: Note that our base configurations include that device's utilities package where possible. Normally, these utilities (e.g. tshwctl, tsmicroctl, etc.) list the git hash of the build source in the help output. However, due to the Buildroot process, the git hash in these utilities reflects the git hash of Buildroot-ts, NOT of the utilities repository. There is no way to work around this without building the utilities outside of Buildroot.