Re: [OE-core] [PATCH 2/2] connman: set service to conflict with systemd-networkd

Jack Mitchell
2020-12-02T12:11:44Z

On 02/12/2020 02:20, Yi Zhao wrote:
>
> On 12/1/20 5:02 AM, Jack Mitchell wrote:
>> On 02/11/2020 09:20, Yi Zhao wrote:
>>> Do not run systemd-networkd and connman simultaneously. These two
>>> network managers may conflict with each other.
>>>
>>> Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
>>> ---
>>> ...stop-systemd-networkd-when-using-con.patch | 29 +++++++++++++++++++
>>> .../connman/connman_1.38.bb | 1 +
>>> 2 files changed, 30 insertions(+)
>>> create mode 100644 meta/recipes-connectivity/connman/connman/0001-connman.service-stop-systemd-networkd-when-using-con.patch
>>>
>>> diff --git a/meta/recipes-connectivity/connman/connman/0001-connman.service-stop-systemd-networkd-when-using-con.patch b/meta/recipes-connectivity/connman/connman/0001-connman.service-stop-systemd-networkd-when-using-con.patch
>>> new file mode 100644
>>> index 0000000000..dd012750a4
>>> --- /dev/null
>>> +++ b/meta/recipes-connectivity/connman/connman/0001-connman.service-stop-systemd-networkd-when-using-con.patch
>>> @@ -0,0 +1,29 @@
>>> +From 9fea099d0a3ece37d80ad70d32ebb8a93f8f3280 Mon Sep 17 00:00:00 2001
>>> +From: Yi Zhao <yi.zhao@windriver.com>
>>> +Date: Fri, 30 Oct 2020 13:48:45 +0800
>>> +Subject: [PATCH] connman.service: stop systemd-networkd when using connman
>>> +
>>> +Stop systemd-networkd service when we use connman as network manager.
>>> +
>>> +Upstream-Status: Inappropriate [configuration]
>>> +
>>> +Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
>>> +---
>>> + src/connman.service.in | 1 +
>>> + 1 file changed, 1 insertion(+)
>>> +
>>> +diff --git a/src/connman.service.in b/src/connman.service.in
>>> +index 79e75d6..014eafe 100644
>>> +--- a/src/connman.service.in
>>> ++++ b/src/connman.service.in
>>> +@@ -6,6 +6,7 @@ RequiresMountsFor=@localstatedir@/lib/connman
>>> + After=dbus.service network-pre.target systemd-sysusers.service
>>> + Before=network.target multi-user.target shutdown.target
>>> + Wants=network.target
>>> ++Conflicts=systemd-networkd.service systemd-networkd.socket
>>> + Conflicts=systemd-resolved.service
>>> +
>>> + [Service]
>>> +--
>>> +2.17.1
>>> +
>>> diff --git a/meta/recipes-connectivity/connman/connman_1.38.bb b/meta/recipes-connectivity/connman/connman_1.38.bb
>>> index 027c41e9af..45c2934dec 100644
>>> --- a/meta/recipes-connectivity/connman/connman_1.38.bb
>>> +++ b/meta/recipes-connectivity/connman/connman_1.38.bb
>>> @@ -3,6 +3,7 @@ require connman.inc
>>> SRC_URI = "${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \
>>> file://0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch \
>>> file://0001-connman.service-stop-systemd-resolved-when-we-use-co.patch \
>>> + file://0001-connman.service-stop-systemd-networkd-when-using-con.patch \
>>> file://connman \
>>> file://no-version-scripts.patch \
>>> "
>>>
>> Hi Yi,
>>
>> This breaks our usecase where we have been using connman and
>> systemd-networkd in tandem for a long time. IMO this should be reverted
>> as if the two applications are conflicting then the correct fix is that
>> they should be configured so that they don't both try to configure the
>> same interfaces. As systemd-networkd doesn't ship with any rules by
>> default it shouldn't be doing anything to interfere?
>
>
> Currently, A systemd-networkd configuration file 80-wired.network from
> systemd-conf package is also installed by default on HW BSPs. Comman is
> the default network-manager in Yocto. It will manage the wired interface
> automatically. But with this configuration file, the systemd-networkd
> will also try to manage the wired interface as connman does. They may
> conflict with each other.In addition to revert this patch, I think we
> should consider whether to install this configuration file by default.
> Maybe it’s better to install it as an example and users can enable it as
> needed.
>
> Thanks,
> Yi
>

Hi Yi,

I see, thank you for pointing that out. I agree that we shouldn't be
shipping custom catch-all networkd snippets. Perhaps it should be
something appended by the Poky distro rather than installed by default?
I assume it is included so that network interfaces come up with a DHCP
address by default so people can ssh into the machine without an extra
config.

Cc kai.kang@windriver.com as it looks like they were the original author.

Regards,
Jack.

>
>> With this patch I can no-longer run both services as it's a hard
>> conflict with no option to either revert locally, or bbappend this patch
>> out.
>>
>> Regards,
>> Jack.
>>
>
>
>
>