[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:45:27 UTC 2019


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!

-- 
Alex Kiernan


More information about the Openembedded-core mailing list