[OE-core] [OE-Core][PATCH v5 0/6] Fix systemd service enables/move towards "stateless" configuration

Alex Kiernan alex.kiernan at gmail.com
Tue Apr 30 11:52:59 UTC 2019


On Tue, Apr 30, 2019 at 12:45 PM Alex Kiernan <alex.kiernan at gmail.com> wrote:
>
> On Tue, Apr 30, 2019 at 11:59 AM <richard.purdie at linuxfoundation.org> wrote:
> >
> > On Mon, 2019-04-29 at 15:43 +0100, Alex Kiernan wrote:
> > > This is largely Jonas Bonn <jonas at norrbonn.se> patchset to move
> > > towards a
> > > "stateless" configuration:
> > >
> > >   These patches make some modifications to systemd with the long-term
> > > goal
> > >   of being able to run OE in systemd's "stateless" configuration.
> > >   "Stateless" boils down to building an image with empty /etc and
> > > /var
> > >   directories so that volatile (tmpfs) filesystems can be mounted
> > > there;
> > >   this requires that the system subsequently be able to populate
> > > these
> > >   directories dynamically, which systemd mostly takes care of if
> > > things are
> > >   done right.
> > >
> > >   In these patches:
> > >   i)   Don't include machine-id in writable images so that systemd
> > > can run
> > >        its first-boot machinery
> > >   ii)  Move systemd configuration files out of /etc
> > >   iii) Allow systemd to dynamically enable services and populate
> > >        /etc/systemd/system via the presets mechanism
> > >
> > >   There's a long way to go to get to a working "stateless"
> > > configuration.
> > >   Getting to a "volatile" system (just empty /var) should be easier
> > > and I'll
> > >   post patches moving things in that direction shortly.
> > >
> > > As a result of the systemd 242 upgrade, which includes 01d2041e41f4
> > > ("meson: stop creating enablement symlinks in /etc during
> > > installation"), services such as systemd-networkd are no longer
> > > enabled
> > > in images.
> > >
> > > This patch set fixes this problem in addition to satisfying the goal
> > > of
> > > moving towards "stateless" configurations.
> > >
> > > The issue with respect to image testing during CI was caused by
> > > systemd-time-wait-sync.service being enabled due to the lack of a
> > > default preset policy:
> > >
> > > https://www.freedesktop.org/wiki/Software/systemd/Preset/#howto
> > >
> > > We include a default policy of "enable nothing" which matches that
> > > used
> > > by (at least) Arch and Fedora.
> > >
> > > Changes in v5:
> > > - rebased for systemd 242
> > > - install default preset distribution policy of "enable nothing"
> > >
> > > Changes in v4:
> > > - add patch to make systemd-firstboot a non-default option to systemd
> > > to
> > >   prevent unexpected prompts at runtime
> > >
> > > Changes in v3:
> > > - parameterize preset-file installation location (as suggested in
> > > patch
> > >   review)
> > >
> > > Changes in v2:
> > > - address patchtest warnings:
> > >   - include sign-offs on patches
> > >   - include License-Update tag on patch that makes licensing change
> > > - dropped patch implementing brute-force removal of unit files
> > > installed
> > >   by systemd into /etc
> > > - reworked the systemd-conf patch to restore the installation of the
> > >   base systemd configuration files
> > >
> > > Jonas Bonn (6):
> > >   systemd: don't build firstboot by default
> > >   systemd: do not create machine-id
> > >   systemd-conf: simplify creation of machine-specific configuration
> > >   systemd: create preset files instead of installing in image
> > >   systemd-systemctl-native: simplify and support preset-all
> > >   rootfs-postcommands: call preset-all for read-only-rootfs
> >
> > I think this is close but in one of our test configurations it appears
> > the ssh server isn't starting:
> >
> > https://autobuilder.yoctoproject.org/typhoon/#/builders/72/builds/548
> >
> > (the stdio log shows the configuration its building for step 6 and
> > step6c shows it failing to ssh into the image)
> >
> > I reran it and the same error happened twice so it is consistent.
> >
>
> I'll have a look - thanks for throwing it through!
>

Bother... I've seen that before:

  DISTRO_FEATURES_append = ' systemd'
  VIRTUAL-RUNTIME_init_manager = 'sysvinit'

I fell over it myself when I was first getting the image tests
working, then completely forgot about it...

Unrelated to this error (but relevant for the patch set) - do we have
a test that runs for read-only rootfs?

-- 
Alex Kiernan


More information about the Openembedded-core mailing list