mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 12:59:02 +02:00
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>
This commit is contained in:
parent
06a02da2d2
commit
e3037b54ea
|
@ -295,10 +295,6 @@ do_install() {
|
|||
# install default policy for presets
|
||||
# https://www.freedesktop.org/wiki/Software/systemd/Preset/#howto
|
||||
install -Dm 0644 ${WORKDIR}/99-default.preset ${D}${systemd_unitdir}/system-preset/99-default.preset
|
||||
|
||||
# We use package postinsts for the hwdb update, as the update service is
|
||||
# easily triggered for no reason and will slow down boots.
|
||||
find ${D} -name systemd-hwdb-update.service -delete
|
||||
}
|
||||
|
||||
python populate_packages_prepend (){
|
||||
|
@ -638,7 +634,9 @@ FILES_udev += "${base_sbindir}/udevd \
|
|||
${datadir}/bash-completion/completions/udevadm \
|
||||
"
|
||||
|
||||
FILES_udev-hwdb = "${rootlibexecdir}/udev/hwdb.d"
|
||||
FILES_udev-hwdb = "${rootlibexecdir}/udev/hwdb.d \
|
||||
${systemd_unitdir}/system/systemd-hwdb-update.service \
|
||||
"
|
||||
|
||||
RCONFLICTS_${PN} = "tiny-init ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'resolvconf', '', d)}"
|
||||
|
||||
|
@ -698,7 +696,7 @@ pkg_prerm_${PN}_libc-glibc () {
|
|||
PACKAGE_WRITE_DEPS += "qemu-native"
|
||||
pkg_postinst_udev-hwdb () {
|
||||
if test -n "$D"; then
|
||||
$INTERCEPT_DIR/postinst_intercept update_udev_hwdb ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX}
|
||||
$INTERCEPT_DIR/postinst_intercept update_udev_hwdb ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX} rootlibexecdir="${rootlibexecdir}" PREFERRED_PROVIDER_udev="${PREFERRED_PROVIDER_udev}"
|
||||
else
|
||||
udevadm hwdb --update
|
||||
fi
|
||||
|
|
|
@ -5,5 +5,17 @@
|
|||
|
||||
set -e
|
||||
|
||||
PSEUDO_UNLOAD=1 ${binprefix}qemuwrapper -L $D $D${libexecdir}/${binprefix}udevadm hwdb --update --root $D
|
||||
chown root:root $D${sysconfdir}/udev/hwdb.bin
|
||||
case "${PREFERRED_PROVIDER_udev}" in
|
||||
systemd)
|
||||
UDEV_EXTRA_ARGS="--usr"
|
||||
UDEVLIBDIR="${rootlibexecdir}"
|
||||
;;
|
||||
|
||||
*)
|
||||
UDEV_EXTRA_ARGS=""
|
||||
UDEVLIBDIR="${sysconfdir}"
|
||||
;;
|
||||
esac
|
||||
|
||||
PSEUDO_UNLOAD=1 ${binprefix}qemuwrapper -L $D $D${libexecdir}/${binprefix}udevadm hwdb --update --root $D ${UDEV_EXTRA_ARGS}
|
||||
chown root:root $D${UDEVLIBDIR}/udev/hwdb.bin
|
||||
|
|
Loading…
Reference in New Issue
Block a user