rootfs: Eliminate circular dependency between systemd units
rpi-reconfigure-raspi-firmware.service requires /boot/firmware to be mounted, but mounting local filesystems requires local-fs-pre.target, so trying to run rpi-reconfigure-raspi-firmware.service before local-fs-pre.target results in a cyclic order dependency. systemd breaks the cycle in an arbitrary place, and the result is unlikely to be what we want. Instead, delay reconfiguration of config.txt until after local filesystems are mounted, but before sysinit.target. This breaks the cycle (image-specs#49). This still orders it before all non-early-boot services, because sysinit.target is part of the DefaultDependencies; so in particular it will finish before rpi-generate-ssh-host-keys.service starts, which avoids the two services fighting over the dpkg lock (image-specs#45). Resolves: image-specs#45 Resolves: image-specs#49 Signed-off-by: Simon McVittie <smcv@debian.org>
This commit is contained in:
parent
09805aa49b
commit
44b845e83f
|
@ -1,6 +1,6 @@
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Reconfigure raspi-firmware to regenerate config.txt matching actual hardware
|
Description=Reconfigure raspi-firmware to regenerate config.txt matching actual hardware
|
||||||
Before=local-fs-pre.target
|
Before=sysinit.target
|
||||||
DefaultDependencies=no
|
DefaultDependencies=no
|
||||||
RequiresMountsFor=/boot/firmware
|
RequiresMountsFor=/boot/firmware
|
||||||
|
|
||||||
|
@ -11,4 +11,4 @@ ExecStart=/usr/sbin/dpkg-reconfigure raspi-firmware
|
||||||
ExecStart=/bin/systemctl --no-reload disable %n
|
ExecStart=/bin/systemctl --no-reload disable %n
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
RequiredBy=local-fs-pre.target
|
RequiredBy=sysinit.target
|
||||||
|
|
Loading…
Reference in New Issue