From a2aac05dd334465f72a954d0203a8c8c658a770c Mon Sep 17 00:00:00 2001 From: Vasyl Vavrychuk Date: Wed, 2 Nov 2022 09:42:45 +0100 Subject: meta-agl-core: systemd: Disable `BitRate` setting for `can*` network for VIRTIO. VIRTIO CAN [1] does not support bitrate configuration, it assumes bitrate configuration is done on backend. Fixes systemd-networkd failure: can0: Failed to set CAN interface configurations: Operation not supported File `canbus-virtio-can.network` is copied from `canbus-can.network` with `BitRate=` setting removed. v2: rework patchset to use own systemd-conf-canbus package to avoid changes in main systemd package. [1]: https://lists.oasis-open.org/archives/virtio-dev/202208/msg00159.html Bug-AGL: SPEC-4597 Change-Id: Idb132203501bb99103e76098eea3bb6394b645da Signed-off-by: Vasyl Vavrychuk Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/28104 Tested-by: Jenkins Job builder account ci-image-build: Jenkins Job builder account ci-image-boot-test: Jenkins Job builder account Reviewed-by: Jan-Simon Moeller (cherry picked from commit e01f289d60c4f25b5483bc2a5e4d6887f50eb309) Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/28150 Reviewed-by: Scott Murray --- .../systemd/systemd-conf-canbus/canbus-can.network | 6 +++++ .../systemd-conf-canbus/canbus-virtio.network | 5 ++++ .../systemd/systemd-conf-canbus_1.0.bb | 27 ++++++++++++++++++++++ .../systemd/systemd/canbus-can.network | 6 ----- .../recipes-core/systemd/systemd_aglcore.inc | 4 ---- .../packagegroup-agl-core-connectivity.bb | 1 + 6 files changed, 39 insertions(+), 10 deletions(-) create mode 100644 meta-agl-core/recipes-core/systemd/systemd-conf-canbus/canbus-can.network create mode 100644 meta-agl-core/recipes-core/systemd/systemd-conf-canbus/canbus-virtio.network create mode 100644 meta-agl-core/recipes-core/systemd/systemd-conf-canbus_1.0.bb delete mode 100644 meta-agl-core/recipes-core/systemd/systemd/canbus-can.network diff --git a/meta-agl-core/recipes-core/systemd/systemd-conf-canbus/canbus-can.network b/meta-agl-core/recipes-core/systemd/systemd-conf-canbus/canbus-can.network new file mode 100644 index 000000000..ae5514bca --- /dev/null +++ b/meta-agl-core/recipes-core/systemd/systemd-conf-canbus/canbus-can.network @@ -0,0 +1,6 @@ +[Match] +Name=can* + +[CAN] +BitRate=500K +RestartSec=0.1 diff --git a/meta-agl-core/recipes-core/systemd/systemd-conf-canbus/canbus-virtio.network b/meta-agl-core/recipes-core/systemd/systemd-conf-canbus/canbus-virtio.network new file mode 100644 index 000000000..cc33d86d6 --- /dev/null +++ b/meta-agl-core/recipes-core/systemd/systemd-conf-canbus/canbus-virtio.network @@ -0,0 +1,5 @@ +[Match] +Name=can* + +[CAN] +RestartSec=0.1 diff --git a/meta-agl-core/recipes-core/systemd/systemd-conf-canbus_1.0.bb b/meta-agl-core/recipes-core/systemd/systemd-conf-canbus_1.0.bb new file mode 100644 index 000000000..33b986245 --- /dev/null +++ b/meta-agl-core/recipes-core/systemd/systemd-conf-canbus_1.0.bb @@ -0,0 +1,27 @@ +SUMMARY = "Systemd canbus configuration" +DESCRIPTION = "Systemd may require slightly different configuration for \ +different machines. This injects configuration for the CAN bus." +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +PE = "1" + +SRC_URI = "\ + file://canbus-can.network \ + file://canbus-virtio.network \ +" + +CANBUS_NETWORK_CONFIG ??= "canbus-can.network" +CANBUS_NETWORK_CONFIG:virtio-all ?= "canbus-virtio.network" + +do_install() { + # Install canbus network script + install -d ${D}${nonarch_base_libdir}/systemd/network/ + install -m 0644 ${WORKDIR}/${CANBUS_NETWORK_CONFIG} ${D}${nonarch_base_libdir}/systemd/network/60-canbus-can.network +} + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +FILES:${PN} = " \ + ${nonarch_base_libdir}/systemd/network/*.network \ +" diff --git a/meta-agl-core/recipes-core/systemd/systemd/canbus-can.network b/meta-agl-core/recipes-core/systemd/systemd/canbus-can.network deleted file mode 100644 index ae5514bca..000000000 --- a/meta-agl-core/recipes-core/systemd/systemd/canbus-can.network +++ /dev/null @@ -1,6 +0,0 @@ -[Match] -Name=can* - -[CAN] -BitRate=500K -RestartSec=0.1 diff --git a/meta-agl-core/recipes-core/systemd/systemd_aglcore.inc b/meta-agl-core/recipes-core/systemd/systemd_aglcore.inc index 6dd6698fc..b74a60fb7 100644 --- a/meta-agl-core/recipes-core/systemd/systemd_aglcore.inc +++ b/meta-agl-core/recipes-core/systemd/systemd_aglcore.inc @@ -2,7 +2,6 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/systemd:" SRC_URI += "\ file://e2fsck.conf \ - file://canbus-can.network \ ${@bb.utils.contains('VIRTUAL-RUNTIME_net_manager','systemd','file://wired.network','',d)} \ " @@ -15,9 +14,6 @@ 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 - # Install canbus network script - install -m 0644 ${WORKDIR}/canbus-can.network ${D}${nonarch_base_libdir}/systemd/network/60-canbus-can.network - if ${@bb.utils.contains('VIRTUAL-RUNTIME_net_manager','systemd','true','false',d)}; then # Install DHCP configuration for Ethernet adapters install -m 644 ${WORKDIR}/wired.network ${D}${sysconfdir}/systemd/network 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 a794d1aae..7f3c95174 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 @@ -15,4 +15,5 @@ RDEPENDS:${PN} += "\ ${@bb.utils.contains('VIRTUAL-RUNTIME_net_manager','connman','connman connman-client connman-conf \ connman-tests connman-tools connman-ncurses' ,'',d)} \ ${@bb.utils.contains('AGL_FEATURES', 'agl-devel', '${PKGGROUP_ZEROCONF}', '', d)} \ + systemd-conf-canbus \ " -- cgit 1.2.3-korg