buildroot-s6: s6 Supervision for Embedded Devices

From: Eric Le Bihan <eric.le.bihan.dev_at_free.fr>
Date: Mon, 5 Oct 2015 11:52:35 +0200 (CEST)

Hi all!

In order to use s6 and friends on embedded devices, I added support for them in
[Buildroot](http://buildroot.org), a set of Makefiles which make building Linux
embedded systems easy.

As these patches are not available upstream yet, I've created a playground:
[buildroot-s6](https://github.com/elebihan/buildroot-s6/).

In this playground, the user can build a firmware using s6-rc as init system for
the following platforms:

- QEMU/x86, dynamically linked against glibc.
- Raspberry Pi, statically linked against musl.

ATM, I only added the skarnet.org software stack as packages in Buildroot (see
"buildroot/package"), the skeleton for using s6-rc as init is available outside
(in the "custom" directory of the project). The objective is to add another
package for it and allow the user to select s6-rc as init from the configuration
menu (among Busybox, SysV and systemd).

Additional information:

- Buildroot allows the user to build a cross-compilation toolchain using glibc,
  musl or uclibc-ng. The build of skalibs fails with the later. More details
  soon.
- To cross-compile skalibs the documentation of skalibs recommends generating
  the sysdeps offline. This is a problem for Buildroot, as many architectures
  are supported and providing sysdeps for them is a no-go. I provide a patch for
  skalibs which replaces the run time tests for some type sizes and endianness
  with some compile time tests. This removes the need for offline sysdeps. This
  patch may be fine for Buildroot, but I have not verified its portability.
- The source files for the s6-rc service database are not stored in the
  firmware images. The database is built offline.

Comments welcomed.

Best regards,
ELB
Received on Mon Oct 05 2015 - 09:52:35 UTC

This archive was generated by hypermail 2.3.0 : Sun May 09 2021 - 19:44:19 UTC