On 2015年07月24日 14:18, ChenQi wrote:
ping

Anybody has objection for this one?

Best Regards,
Chen Qi

ping

-R


On 06/30/2015 01:16 PM, [email protected] wrote:
From: Chen Qi <[email protected]>

The new version of systemd has implemented the following feature.
Opointer.de/blog/projects/stateless.html

As a result, the systemd-udev-hwdb-update.service would always run
at first boot. This will cause failure if the target device doesn't
have enough storage space. Besides, as we run `udevadm hwdb --update' as
a postinst of udev-hwdb at rootfs time, there's no need to run this
again at system start-up.

The purpose of this patch is as follows.
If `udev hwdb --update' fails at rootfs time,
systemd-udev-hwdb-update.service
is executed at first boot; otherwise, the service is not executed.

This patch achieves the above goal by setting CondistonNeedsUpdate to
"/etc/udev" in the service file, and creating /etc/udev/.updated file
if the
postinst succeeds.

Signed-off-by: Chen Qi <[email protected]>
Signed-off-by: Robert Yang <[email protected]>
---
  meta/recipes-core/systemd/systemd_219.bb | 18 +++++++++++++++---
  1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/meta/recipes-core/systemd/systemd_219.bb
b/meta/recipes-core/systemd/systemd_219.bb
index 6ed4fe0..dc5c7b3 100644
--- a/meta/recipes-core/systemd/systemd_219.bb
+++ b/meta/recipes-core/systemd/systemd_219.bb
@@ -180,6 +180,10 @@ do_install() {
      if [ -s ${D}${libdir}/tmpfiles.d/systemd.conf ]; then
          ${@bb.utils.contains('PACKAGECONFIG', 'networkd', ':', 'sed
-i -e "\$ad /run/systemd/netif/links 0755 root root -"
${D}${libdir}/tmpfiles.d/systemd.conf', d)}
      fi
+
+    # Make systemd-udev-hwdb-update to check /etc/udev
+    cp ${D}${systemd_unitdir}/system/systemd-udev-hwdb-update.service
${D}${sysconfdir}/systemd/system
+    sed -i -e
's#ConditionNeedsUpdate=/etc#ConditionNeedsUpdate=/etc/udev#g'
${D}${sysconfdir}/systemd/system/systemd-udev-hwdb-update.service
  }
  do_install_ptest () {
@@ -381,10 +385,18 @@ ALTERNATIVE_PRIORITY[runlevel] ?= "300"
  pkg_postinst_udev-hwdb () {
      if test -n "$D"; then
-        ${@qemu_run_binary(d, '$D', '${base_bindir}/udevadm')} hwdb
--update \
-            --root $D
+        if ${@qemu_run_binary(d, '$D', '${base_bindir}/udevadm')}
hwdb --update \
+            --root $D; then
+            touch $D/etc/udev/.updated
+        else
+            exit 1
+        fi
      else
-        udevadm hwdb --update
+        if udevadm hwdb --update; then
+            touch $D/etc/udev/.updated
+        else
+            exit 1
+        fi
      fi
  }


--
Best Reagrds,
Roy | RongQing Li
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to