summaryrefslogtreecommitdiffstats
path: root/meta-agl-core
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2024-02-21 10:12:09 -0500
committerScott Murray <scott.murray@konsulko.com>2024-03-18 21:12:15 +0000
commit4a1aef10f2aefc964e26e1bbb400249476324cd8 (patch)
tree06774fa91e2ea1d16eefd155604c338eafa6add0 /meta-agl-core
parent6bdb73d02d076a439ad02070d733998d17a2f28b (diff)
meta-agl-core: Improve connman-wait-online usability
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> (cherry picked from commit 4f764134d2f307c1eb63cea7cc0950a7873a2e43) Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/29635
Diffstat (limited to 'meta-agl-core')
-rw-r--r--meta-agl-core/recipes-core/systemd/systemd/wait-disable.conf3
-rw-r--r--meta-agl-core/recipes-core/systemd/systemd_aglcore.inc22
-rw-r--r--meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-connectivity.bb2
3 files changed, 18 insertions, 9 deletions
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
index 000000000..e5d4f4b28
--- /dev/null
+++ b/meta-agl-core/recipes-core/systemd/systemd/wait-disable.conf
@@ -0,0 +1,3 @@
+[Service]
+ExecStart=
+ExecStart=/usr/bin/true
diff --git a/meta-agl-core/recipes-core/systemd/systemd_aglcore.inc b/meta-agl-core/recipes-core/systemd/systemd_aglcore.inc
index a61497ec3..9681329be 100644
--- a/meta-agl-core/recipes-core/systemd/systemd_aglcore.inc
+++ b/meta-agl-core/recipes-core/systemd/systemd_aglcore.inc
@@ -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"
diff --git a/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-connectivity.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-connectivity.bb
index 7f3c95174..aeee0f8d3 100644
--- a/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-connectivity.bb
+++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-connectivity.bb
@@ -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 \
"