diff options
| author | Alex Kiernan <alex.kiernan@gmail.com> | 2020-03-27 17:25:11 +0000 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-03-31 13:58:01 +0100 |
| commit | e3037b54ea348685f06edf1bded6ae2f7d53a903 (patch) | |
| tree | 60ad29aecdad106e650679b2ea7214862391b328 /meta/recipes-core | |
| parent | 06a02da2d28e7a27441f0222b7330f7232f7ac88 (diff) | |
| download | poky-e3037b54ea348685f06edf1bded6ae2f7d53a903.tar.gz | |
systemd: Reinstate systemd-hwdb-update.service
systemd supports a distribution hwdb.bin in /usr/lib/udev/hwdb.bin,
which is used if /etc/udev/hwdb.bin is not present. When generating the
install time hwdb, for systemd, ensure that we put it in /usr/lib/udev,
which then ensures that at boot time we do not regenerate it, unless the
system is marked for update.
This allows fragments dropped into /etc/udev/hwdb.d to be processed
correctly, but without requiring a first boot time build:
root@qemumips:~# systemctl status systemd-hwdb-update.service
* systemd-hwdb-update.service - Rebuild Hardware Database
Loaded: loaded (/usr/lib/systemd/system/systemd-hwdb-update.service; static; vendor preset: disabled)
Active: inactive (dead)
Condition: start condition failed at Wed 2020-03-04 15:18:11 UTC; 44s ago
|- ConditionPathExists=|!/usr/lib/udev/hwdb.bin was not met
|- ConditionPathExists=|/etc/udev/hwdb.bin was not met
`- ConditionDirectoryNotEmpty=|/etc/udev/hwdb.d was not met
Docs: man:hwdb(7)
man:systemd-hwdb(8)
(From OE-Core rev: 78ff610e571e4d739326520c391a37ee1f1290ae)
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Acked-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core')
| -rw-r--r-- | meta/recipes-core/systemd/systemd_244.3.bb | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/meta/recipes-core/systemd/systemd_244.3.bb b/meta/recipes-core/systemd/systemd_244.3.bb index 1595198f53..b11321f87c 100644 --- a/meta/recipes-core/systemd/systemd_244.3.bb +++ b/meta/recipes-core/systemd/systemd_244.3.bb | |||
| @@ -295,10 +295,6 @@ do_install() { | |||
| 295 | # install default policy for presets | 295 | # install default policy for presets |
| 296 | # https://www.freedesktop.org/wiki/Software/systemd/Preset/#howto | 296 | # https://www.freedesktop.org/wiki/Software/systemd/Preset/#howto |
| 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 |
| 298 | |||
| 299 | # We use package postinsts for the hwdb update, as the update service is | ||
| 300 | # easily triggered for no reason and will slow down boots. | ||
| 301 | find ${D} -name systemd-hwdb-update.service -delete | ||
| 302 | } | 298 | } |
| 303 | 299 | ||
| 304 | python populate_packages_prepend (){ | 300 | python populate_packages_prepend (){ |
| @@ -638,7 +634,9 @@ FILES_udev += "${base_sbindir}/udevd \ | |||
| 638 | ${datadir}/bash-completion/completions/udevadm \ | 634 | ${datadir}/bash-completion/completions/udevadm \ |
| 639 | " | 635 | " |
| 640 | 636 | ||
| 641 | FILES_udev-hwdb = "${rootlibexecdir}/udev/hwdb.d" | 637 | FILES_udev-hwdb = "${rootlibexecdir}/udev/hwdb.d \ |
| 638 | ${systemd_unitdir}/system/systemd-hwdb-update.service \ | ||
| 639 | " | ||
| 642 | 640 | ||
| 643 | RCONFLICTS_${PN} = "tiny-init ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'resolvconf', '', d)}" | 641 | RCONFLICTS_${PN} = "tiny-init ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'resolvconf', '', d)}" |
| 644 | 642 | ||
| @@ -698,7 +696,7 @@ pkg_prerm_${PN}_libc-glibc () { | |||
| 698 | PACKAGE_WRITE_DEPS += "qemu-native" | 696 | PACKAGE_WRITE_DEPS += "qemu-native" |
| 699 | pkg_postinst_udev-hwdb () { | 697 | pkg_postinst_udev-hwdb () { |
| 700 | if test -n "$D"; then | 698 | if test -n "$D"; then |
| 701 | $INTERCEPT_DIR/postinst_intercept update_udev_hwdb ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX} | 699 | $INTERCEPT_DIR/postinst_intercept update_udev_hwdb ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX} rootlibexecdir="${rootlibexecdir}" PREFERRED_PROVIDER_udev="${PREFERRED_PROVIDER_udev}" |
| 702 | else | 700 | else |
| 703 | udevadm hwdb --update | 701 | udevadm hwdb --update |
| 704 | fi | 702 | fi |
