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

richard.purdie at linuxfoundation.org richard.purdie at linuxfoundation.org
Tue Apr 30 10:59:51 UTC 2019


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.

Cheers,

Richard



More information about the Openembedded-core mailing list