summaryrefslogtreecommitdiffstats
path: root/recipes-config/cluster-demo-network-config
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2020-05-25 17:14:16 +0000
committerScott Murray <scott.murray@konsulko.com>2020-05-26 14:36:11 +0000
commitb83de510d5e50285805b557866b94c5be3dd2a3f (patch)
tree8cff013155d94a7f97c8521249fc0ba1f3dacd97 /recipes-config/cluster-demo-network-config
parent2e30ec6f8131deacec2861d43000e42515d66019 (diff)
Cluster demo support updates
Changes include: - Rework cluster-demo-network-config recipe to have the installed service file be a template, allowing the recipe to potentially change the target network device easily. A new variable AGL_CLUSTER_NET_DEVICE has been added to do so, with a default value of eth1. The interface configuration has been moved to a helper shell script, cluster-demo-network-conf.sh, with some additional logic added to update the interface blacklist in the connman configuration. This makes things more generic and allows setting up the cluster demo on boards other than H3+KF. - Update agl-cluster-demo-support feature dependency with new agl-weston-remoting feature that replaces agl-gstrecorder. Bug-AGL: SPEC-3395 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I9109b8e7782112d5504866f67e6bb5953c79d4a8
Diffstat (limited to 'recipes-config/cluster-demo-network-config')
-rw-r--r--recipes-config/cluster-demo-network-config/cluster-demo-network-config_1.0.bb18
-rw-r--r--recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf.service15
-rw-r--r--recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf.sh17
-rw-r--r--recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf@.service12
4 files changed, 43 insertions, 19 deletions
diff --git a/recipes-config/cluster-demo-network-config/cluster-demo-network-config_1.0.bb b/recipes-config/cluster-demo-network-config/cluster-demo-network-config_1.0.bb
index a5386b409..ab725c056 100644
--- a/recipes-config/cluster-demo-network-config/cluster-demo-network-config_1.0.bb
+++ b/recipes-config/cluster-demo-network-config/cluster-demo-network-config_1.0.bb
@@ -5,19 +5,29 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
inherit systemd allarch
-SRC_URI = "file://cluster-demo-network-conf.service"
+SRC_URI = "file://cluster-demo-network-conf@.service \
+ file://cluster-demo-network-conf.sh \
+"
+
+# Network device for dedicated connection to cluster
+AGL_CLUSTER_NET_DEVICE ?= "eth1"
do_configure[noexec] = "1"
do_compile[noexec] = "1"
do_install() {
- # Install cluster demo network configuration service unit
+ # Install helper script
+ install -d ${D}${sbindir}
+ install -m 0755 ${WORKDIR}/cluster-demo-network-conf.sh ${D}${sbindir}/
+
+ # Install service unit
install -d ${D}${systemd_system_unitdir}
- install -m 0644 ${WORKDIR}/cluster-demo-network-conf.service ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/cluster-demo-network-conf@.service ${D}${systemd_system_unitdir}/
# Add symlink to network.target.wants
install -d ${D}${sysconfdir}/systemd/system/network.target.wants
- ln -s ${systemd_system_unitdir}/cluster-demo-network-conf.service ${D}${sysconfdir}/systemd/system/network.target.wants/
+ ln -s ${systemd_system_unitdir}/cluster-demo-network-conf@.service \
+ ${D}${sysconfdir}/systemd/system/network.target.wants/cluster-demo-network-conf@${AGL_CLUSTER_NET_DEVICE}.service
}
FILES_${PN} += "${systemd_system_unitdir}"
diff --git a/recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf.service b/recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf.service
deleted file mode 100644
index 1a6e2d8b7..000000000
--- a/recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf.service
+++ /dev/null
@@ -1,15 +0,0 @@
-[Unit]
-Description=Configure dedicated link for cluster demo network
-After=sys-subsystem-net-devices-eth1.device
-Requires=sys-subsystem-net-devices-eth1.device
-Before=network.target
-
-[Service]
-# Note that this is done as opposed to using connman as configuring an
-# interface on a second network separate from the rest of the interfaces
-# is non-trivial in connman and needs further investigation.
-ExecStart=/sbin/ifconfig eth1 192.168.20.93
-Type=oneshot
-
-[Install]
-WantedBy=network.target
diff --git a/recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf.sh b/recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf.sh
new file mode 100644
index 000000000..3f538175f
--- /dev/null
+++ b/recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+CONNMAN_CONF=/etc/connman/main.conf
+CLUSTER_ADDRESS=192.168.20.93
+
+if [ -z "$1" ]; then
+ echo "Usage: $0 <network device>"
+ exit 1
+fi
+
+# Need to blacklist given device with connman if it isn't already,
+# otherwise connman will over-ride address configuration.
+if ! grep '^NetworkInterfaceBlacklist=' ${CONNMAN_CONF} | grep -q $1; then
+ sed -i "s/^\(NetworkInterfaceBlacklist=.*\)/\1,$1/" ${CONNMAN_CONF}
+fi
+
+/sbin/ifconfig $1 ${CLUSTER_ADDRESS}
diff --git a/recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf@.service b/recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf@.service
new file mode 100644
index 000000000..5fc29b7a0
--- /dev/null
+++ b/recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf@.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Configure dedicated link for cluster demo network
+After=sys-subsystem-net-devices-%i.device
+Requires=sys-subsystem-net-devices-%i.device
+Before=network.target
+
+[Service]
+ExecStart=/usr/sbin/cluster-demo-network-conf.sh %i
+Type=oneshot
+
+[Install]
+WantedBy=network.target