From 230743c03de9db50665264e0c6f78c2f8542dea6 Mon Sep 17 00:00:00 2001 From: Alexandre Bard Date: Mon, 14 Nov 2022 15:50:31 +0100 Subject: [PATCH] networkmanager-conf: Add support for bridge to user-module This is a setup required for the factory testing image: the user module must be reachable from the CPU. And since the subnet of the fct ethernet port and the subnet of the user module are the same, we must bridge them together. BugzID: 81969 --- .../networkmanager/networkmanager-conf.bb | 27 ++++++++++++++----- .../bridge-slave-eth0.nmconnection | 13 +++++++++ .../bridge-slave-umnet0.nmconnection | 13 +++++++++ 3 files changed, 47 insertions(+), 6 deletions(-) create mode 100644 recipes-connectivity/networkmanager/networkmanager-conf/bridge-slave-eth0.nmconnection create mode 100644 recipes-connectivity/networkmanager/networkmanager-conf/bridge-slave-umnet0.nmconnection diff --git a/recipes-connectivity/networkmanager/networkmanager-conf.bb b/recipes-connectivity/networkmanager/networkmanager-conf.bb index 03a790b..1bb33dc 100644 --- a/recipes-connectivity/networkmanager/networkmanager-conf.bb +++ b/recipes-connectivity/networkmanager/networkmanager-conf.bb @@ -1,5 +1,3 @@ -inherit allarch - DESCRIPTION = "Configuration files for NetworkManager" LICENSE = "Proprietary" @@ -8,13 +6,15 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Proprietary;md RDEPENDS_${PN} = "networkmanager" PACKAGECONFIG ?= "" -DEFAULT_ETH ??= "eth0" +export DEFAULT_ETH ??= "eth0" PACKAGECONFIG[unmanaged-devices] = "" PACKAGECONFIG[ethernet-dhcp] = "" SRC_URI = " \ file://eth0-static \ file://eth0-dhcp \ + file://bridge-slave-eth0.nmconnection \ + file://bridge-slave-umnet0.nmconnection \ file://NetworkManager.conf \ file://00-fallback-dns.conf \ file://unmanaged-devices.conf \ @@ -25,6 +25,8 @@ SRC_URI_append_am335x-nrhw20 = " \ file://system-connections-dhcp.tar.gz \ " +PACKAGE_ARCH = "${MACHINE_ARCH}" + do_install () { install -d ${D}${sysconfdir}/NetworkManager/dnsmasq.d install -d ${D}${sysconfdir}/NetworkManager/system-connections @@ -37,11 +39,24 @@ do_install () { install -m 0600 ${WORKDIR}/eth0-static ${D}${sysconfdir}/NetworkManager/system-connections/eth0.nmconnection fi + # If the distro supports the user module we must bridge eth0 and umnet0 + # and configure br0 instead of eth0 + if ${@bb.utils.contains('COMBINED_FEATURES','user-module','true','false',d)}; then + DEFAULT_ETH="br0" + install -m 0600 ${WORKDIR}/bridge-slave-eth0.nmconnection ${D}${sysconfdir}/NetworkManager/system-connections/ + install -m 0600 ${WORKDIR}/bridge-slave-umnet0.nmconnection ${D}${sysconfdir}/NetworkManager/system-connections/ + + # Change type of main connection to bridge + sed -i "s/type=.*/type=bridge/g" ${D}${sysconfdir}/NetworkManager/system-connections/eth0.nmconnection + printf "\n[bridge]\nstp=false\n" >> ${D}${sysconfdir}/NetworkManager/system-connections/eth0.nmconnection + fi + # Handle HWs with different default interface - if [ "${DEFAULT_ETH}" != "eth0" ]; then - sed -i 's/eth0/${DEFAULT_ETH}/g' ${D}${sysconfdir}/NetworkManager/system-connections/* + if [ "$DEFAULT_ETH" != "eth0" ]; then + # Replace interface name + sed -i "s/eth0/$DEFAULT_ETH/g" ${D}${sysconfdir}/NetworkManager/system-connections/eth0.nmconnection mv ${D}${sysconfdir}/NetworkManager/system-connections/eth0.nmconnection \ - ${D}${sysconfdir}/NetworkManager/system-connections/${DEFAULT_ETH}.nmconnection + ${D}${sysconfdir}/NetworkManager/system-connections/$DEFAULT_ETH.nmconnection fi diff --git a/recipes-connectivity/networkmanager/networkmanager-conf/bridge-slave-eth0.nmconnection b/recipes-connectivity/networkmanager/networkmanager-conf/bridge-slave-eth0.nmconnection new file mode 100644 index 0000000..2deb43a --- /dev/null +++ b/recipes-connectivity/networkmanager/networkmanager-conf/bridge-slave-eth0.nmconnection @@ -0,0 +1,13 @@ +[connection] +id=bridge-slave-eth0 +uuid=06ecc0bb-7408-4ddd-b55c-dbb735c1d030 +type=ethernet +interface-name=eth0 +master=br0 +permissions= +slave-type=bridge + +[ethernet] +mac-address-blacklist= + +[bridge-port] diff --git a/recipes-connectivity/networkmanager/networkmanager-conf/bridge-slave-umnet0.nmconnection b/recipes-connectivity/networkmanager/networkmanager-conf/bridge-slave-umnet0.nmconnection new file mode 100644 index 0000000..a104c8b --- /dev/null +++ b/recipes-connectivity/networkmanager/networkmanager-conf/bridge-slave-umnet0.nmconnection @@ -0,0 +1,13 @@ +[connection] +id=bridge-slave-umnet0 +uuid=128dbe32-f484-4062-9bc5-31f90bfb1063 +type=ethernet +interface-name=umnet0 +master=br0 +permissions= +slave-type=bridge + +[ethernet] +mac-address-blacklist= + +[bridge-port]