When running kernel-overlays-setup as a systemd service we have
a short window where /lib/firmware isn't available.
This causes drm edid override to occasionally fail if the edid file
is requested between switching to sysroot and completion of the
kernel-overlays-setup script.
Setting up firmware and module overlays in init, before switching
to sysroot, closes the gap and also has the benefit that we no longer
need to care about the rather tedious systemd unit ordering.
Signed-off-by: Matthias Reichl <hias@horus.com>
kernel-overlays.service needs to be ordered before the modprobe@
instances, which were introduced in systemd 245, otherwise
modprobe@drm.service can run before /lib/firmware exists and
edid-override will fail.
Fix that by adding modprobe@.service template drop-in to order it
after kernel-overlays.service
Signed-off-by: Matthias Reichl <hias@horus.com>
This fixes systemd hanging on boot if no LAN cable is plugged
in (and thus time not set from NTP) with one core spinning at
100% CPU load.
Signed-off-by: Matthias Reichl <hias@horus.com>
Use systemd-hwdb instead of deprecated udevadm hwdb command
and fix ordering - it should be pulled in by sysinit.target,
not basic.target.
Signed-off-by: Matthias Reichl <hias@horus.com>
Create the module and firmware symlink trees in /run/kernel-overlays
instead of /var/lib as recommended by FHS 3.0. This also allows us
to drop the After=var.mount ordering in the systemd service.
Signed-off-by: Matthias Reichl <hias@horus.com>