diff options
authorRoss Burton <>2019-10-07 19:39:07 (GMT)
committerRichard Purdie <>2019-10-08 10:22:24 (GMT)
commit3fd81b0db24776432d35e1bfb84a68bdfec5e0d2 (patch)
parent9553dae95832201c09c3dda313a4da60a128b91b (diff)
systemd: don't install systemd-hwdb-update.service
This service file is designed to do first-boot initialisation of the udev hwdb database, but the condition logic to fire it is suboptimal: it can fire if not needed, and can also not fire if needed. Specifically it will always fire on first boot, even though as part of rootfs generation we build the hwdb database. On slow machines this can take a significant amount of time, the pathological case being qemumips where the service can time out after 90 seconds of processing. Other distributions have also noticed this problem (specifically, at least Debian and Clear) and solve it by using traditional postinst scripts to generate the hwdb (which we already do) and deleting the service file (which we don't). Finish the fix and improve boot times across all boards by deleting the service file. [ YOCTO #13504 ] (From OE-Core rev: b1fffd407029d5936e01ba6988b9e82279d98285) Signed-off-by: Ross Burton <> Signed-off-by: Richard Purdie <>
1 files changed, 3 insertions, 6 deletions
diff --git a/meta/recipes-core/systemd/ b/meta/recipes-core/systemd/
index e874a45..6e7f956 100644
--- a/meta/recipes-core/systemd/
+++ b/meta/recipes-core/systemd/
@@ -295,13 +295,10 @@ do_install() {
295 # install default policy for presets 295 # install default policy for presets
296 # 296 #
297 install -Dm 0644 ${WORKDIR}/99-default.preset ${D}${systemd_unitdir}/system-preset/99-default.preset 297 install -Dm 0644 ${WORKDIR}/99-default.preset ${D}${systemd_unitdir}/system-preset/99-default.preset
299 298
300do_install_append () { 299 # We use package postinsts for the hwdb update, as the update service is
301 # Mips qemu is extremely slow, allow more time for the hwdb update 300 # easily triggered for no reason and will slow down boots.
302 # This is a workaround until is resolved 301 find ${D} -name systemd-hwdb-update.service -delete
303 [ ! -e ${D}${systemd_unitdir}/system/systemd-hwdb-update.service ] ||
304 sed -i -e s#TimeoutSec=90s#TimeoutSec=180s# ${D}${systemd_unitdir}/system/systemd-hwdb-update.service
305} 302}
306 303
307python populate_packages_prepend (){ 304python populate_packages_prepend (){