meta-agl-core: Improve connman-wait-online usability 97/29697/2
authorScott Murray <scott.murray@konsulko.com>
Wed, 21 Feb 2024 15:12:09 +0000 (10:12 -0500)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Fri, 8 Mar 2024 17:08:44 +0000 (17:08 +0000)
Changes:
- Ship connman-wait-online in packagegroup-agl-core-connectivity.
- Add installation of a systemd drop-in configuration file for
  systemd-networkd-wait-online when VIRTUAL_RUNIME_net_manager
  is set to connman that will disable it.  This is required to
  avoid boot hangs if a unit does add a dependency on the
  network-online target.  The approach is not ideal, but it is
  not clear how to avoid systemd-networkd-wait-online getting
  enabled without actually modifying the systemd-networkd unit.

Bug-AGL: SPEC-5082

Change-Id: Id0a1276e35c68ecb6087f89a880fc069594caca4
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/29697
ci-image-build: Jenkins Job builder account
Tested-by: Jenkins Job builder account
ci-image-boot-test: Jenkins Job builder account
Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
meta-agl-core/recipes-core/systemd/systemd/wait-disable.conf [new file with mode: 0644]
meta-agl-core/recipes-core/systemd/systemd_aglcore.inc
meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-connectivity.bb

diff --git a/meta-agl-core/recipes-core/systemd/systemd/wait-disable.conf b/meta-agl-core/recipes-core/systemd/systemd/wait-disable.conf
new file mode 100644 (file)
index 0000000..e5d4f4b
--- /dev/null
@@ -0,0 +1,3 @@
+[Service]
+ExecStart=
+ExecStart=/usr/bin/true
index a61497e..9681329 100644 (file)
@@ -2,29 +2,35 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/systemd:"
 
 SRC_URI += "\
     file://e2fsck.conf \
-    ${@bb.utils.contains('VIRTUAL-RUNTIME_net_manager','systemd','file://wired.network','',d)} \
+    file://wait-disable.conf \
+    file://wired.network \
 "
 
-# enable networkd/resolved support
+# Enable networkd/resolved support if using systemd for network management
 PACKAGECONFIG:append = " \
    ${@bb.utils.contains('VIRTUAL-RUNTIME_net_manager','systemd','networkd resolved','',d)} \
    iptc \
 "
 
+# SPEC-737: connmand also has a NTP client which races with systemd-timesyncd
+PACKAGECONFIG:remove = "timesyncd"
+
+# Enable systemd-coredump when agl-devel is set on
+PACKAGECONFIG:append:agl-devel = " coredump"
+
 do_install:append() {
     # Install /etc/e2fsck.conf to avoid boot stuck by wrong clock time
     install -m 644 -p -D ${WORKDIR}/e2fsck.conf ${D}${sysconfdir}/e2fsck.conf
 
-    if ${@bb.utils.contains('VIRTUAL-RUNTIME_net_manager','systemd','true','false',d)}; then
+    if [ "${VIRTUAL-RUNTIME_net_manager}" = "systemd" ]; then
        # Install DHCP configuration for Ethernet adapters
        install -m 644 ${WORKDIR}/wired.network ${D}${sysconfdir}/systemd/network
+    elif [ "${VIRTUAL-RUNTIME_net_manager}" = "connman" ]; then
+       # Disable systemd-networkd-wait-online by default
+       install -d ${D}${systemd_system_unitdir}/systemd-networkd-wait-online.service.d
+       install -m 0644 ${WORKDIR}/wait-disable.conf ${D}${systemd_system_unitdir}/systemd-networkd-wait-online.service.d/
     fi
 }
 
 FILES:${PN} += "${sysconfdir}/e2fsck.conf "
 
-# SPEC-737: connmand also has a NTP client which races with systemd-timesyncd
-PACKAGECONFIG:remove = "timesyncd"
-
-# Enable systemd-coredump when agl-devel is set on
-PACKAGECONFIG:append:agl-devel = " coredump"
index 7f3c951..aeee0f8 100644 (file)
@@ -13,7 +13,7 @@ PKGGROUP_ZEROCONF = "${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'packag
 
 RDEPENDS:${PN} += "\
     ${@bb.utils.contains('VIRTUAL-RUNTIME_net_manager','connman','connman connman-client connman-conf \
-        connman-tests connman-tools connman-ncurses' ,'',d)} \
+        connman-wait-online connman-tests connman-tools connman-ncurses' ,'',d)} \
     ${@bb.utils.contains('AGL_FEATURES', 'agl-devel', '${PKGGROUP_ZEROCONF}', '', d)} \
     systemd-conf-canbus \
     "