From 57a12856b1d168577397d64ffbde9d6b51b79606 Mon Sep 17 00:00:00 2001 From: egg12138 Date: Tue, 1 Jul 2025 18:01:09 +0800 Subject: [PATCH 1/2] yocto: fix unexpected udev in openeuler-image rootfs when it's disabled Fix an unexpected case where even if both INTI_MANAGER and VIRTUAL-RUNTIME_ dev_manager are assigned to use busybox, the openeuler-image rootfs contains no mdev and related files, while udev occurred. Related commit@2d71b6b585b57990389e407132584c19c3a2c788 The solution is a temporary workaround, we will sniffer deeper in days. * Remove PACKAGECONFIG of dhcpcd, libusb1 when udev is unused. * Add a conditional udev removal in packagegroup-core-boot bbappend Signed-off-by: egg12318 --- .../recipes-connectivity/dhcpcd/dhcpcd_%.bbappend | 11 +++++++++++ .../packagegroup-core-base-utils.bbappend | 2 ++ .../packagegroups/packagegroup-core-boot.bbappend | 2 ++ .../recipes-support/libusb/libusb1_%.bbappend | 3 +-- 4 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 meta-openeuler/recipes-connectivity/dhcpcd/dhcpcd_%.bbappend diff --git a/meta-openeuler/recipes-connectivity/dhcpcd/dhcpcd_%.bbappend b/meta-openeuler/recipes-connectivity/dhcpcd/dhcpcd_%.bbappend new file mode 100644 index 00000000000..852d3818612 --- /dev/null +++ b/meta-openeuler/recipes-connectivity/dhcpcd/dhcpcd_%.bbappend @@ -0,0 +1,11 @@ +# dhcpcd bbappend to disable udev when using busybox-mdev +# +# When VIRTUAL-RUNTIME_dev_manager +# is set to busybox-mdev, udev integration is disabled to avoid unnecessary udev +# dependencies. +# udev is integrated into system. Therefore, only if dev_manager is busybox-mdev, +# should we remove the udev options +PACKAGECONFIG:remove = "\ + ${@bb.utils.contains('INIT_MANAGER', 'mdev-busybox', 'udev', '', d)}\ + ${@bb.utils.contains('INIT_MANAGER', 'none', 'udev', '', d)}\ +" diff --git a/meta-openeuler/recipes-core/packagegroups/packagegroup-core-base-utils.bbappend b/meta-openeuler/recipes-core/packagegroups/packagegroup-core-base-utils.bbappend index f1d8030a046..875b8fe134a 100644 --- a/meta-openeuler/recipes-core/packagegroups/packagegroup-core-base-utils.bbappend +++ b/meta-openeuler/recipes-core/packagegroups/packagegroup-core-base-utils.bbappend @@ -6,6 +6,7 @@ # * kea is not used # * audit, auditd, audispd-plugins are fore secure reasons. # kexec-tools for kernel core dump +# * dhcpcd serves as a client for dhcp and dhcpv6. # RDEPENDS:${PN} = "\ base-passwd \ @@ -102,3 +103,4 @@ RDEPENDS:${PN}:append:x86-64 = " \ intel-cmt-cat \ linuxptp \ " + diff --git a/meta-openeuler/recipes-core/packagegroups/packagegroup-core-boot.bbappend b/meta-openeuler/recipes-core/packagegroups/packagegroup-core-boot.bbappend index 7aa1a5c6540..b9dcff3c4bc 100644 --- a/meta-openeuler/recipes-core/packagegroups/packagegroup-core-boot.bbappend +++ b/meta-openeuler/recipes-core/packagegroups/packagegroup-core-boot.bbappend @@ -18,4 +18,6 @@ RDEPENDS:${PN}:remove:x86-64 = "kernel-img" RDEPENDS:${PN}:remove = " \ netbase \ ${@bb.utils.contains("MACHINE_FEATURES", "efi", "${EFI_PROVIDER} kernel", "", d)} \ + ${@bb.utils.contains("INIT_MANAGER", "mdev-busybox", "udev", "", d)} \ + ${@bb.utils.contains("INIT_MANAGER", "none", "udev", "", d)} \ " diff --git a/meta-openeuler/recipes-support/libusb/libusb1_%.bbappend b/meta-openeuler/recipes-support/libusb/libusb1_%.bbappend index c3211fbe30e..3b182a64005 100644 --- a/meta-openeuler/recipes-support/libusb/libusb1_%.bbappend +++ b/meta-openeuler/recipes-support/libusb/libusb1_%.bbappend @@ -2,8 +2,7 @@ OPENEULER_LOCAL_NAME = "libusbx" -# no udev in openeuler -PACKAGECONFIG:class-target:remove = "udev" +PACKAGECONFIG:class-target:remove = "${@bb.utils.contains('VIRTUAL-RUNTIME_dev_manager', 'busybox-mdev', 'udev', '', d)}" SRC_URI:append = " \ file://libusb-${PV}.tar.bz2 \ -- Gitee From 2687adef2430165bfb74ec3908131c829e301093 Mon Sep 17 00:00:00 2001 From: egg12138 Date: Thu, 3 Jul 2025 16:03:17 +0800 Subject: [PATCH 2/2] yocto: turn off 3g DISTRO_FEATURES when udev is disabled 1. when using mdev, remove "3g, phone" (current distro feature contains no `phone`, but remove it in case phone is enabled in future), which rise a dep chain: 3g -> ofono -> udev 2. in both packagroup-base-extended and packagegroup-base, pkg group 3g is enabled 2. add a warn message for ofono do_compile Signed-off-by: egg12318 --- meta-openeuler/conf/distro/openeuler.conf | 5 ++++- .../recipes-connectivity/ofono/ofono_%.bbappend | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 meta-openeuler/recipes-connectivity/ofono/ofono_%.bbappend diff --git a/meta-openeuler/conf/distro/openeuler.conf b/meta-openeuler/conf/distro/openeuler.conf index fc456a03945..afcd0c812e6 100644 --- a/meta-openeuler/conf/distro/openeuler.conf +++ b/meta-openeuler/conf/distro/openeuler.conf @@ -26,7 +26,10 @@ DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} ${OPENEULER_DEFAULT_DISTRO_FEATUR DISTRO_FEATURES += "${@['', 'sysvinit']['${INIT_MANAGER}' == 'mdev-busybox']}" # remove currently unsupported features -DISTRO_FEATURES_DEFAULT:remove = "x11" +DISTRO_FEATURES_DEFAULT:remove = "x11 \ + ${@bb.utils.contains('INIT_MANAGER', 'mdev-busybox', '3g phone', '', d)} \ + ${@bb.utils.contains('INIT_MANAGER', 'none', '3g phone', '', d)} \ +" ## kernel related configurations # the oldest kernel supported by openeuler embedded is 5.10 diff --git a/meta-openeuler/recipes-connectivity/ofono/ofono_%.bbappend b/meta-openeuler/recipes-connectivity/ofono/ofono_%.bbappend new file mode 100644 index 00000000000..5bd38156085 --- /dev/null +++ b/meta-openeuler/recipes-connectivity/ofono/ofono_%.bbappend @@ -0,0 +1,10 @@ + +do_compile:append() { + if [[ "${VIRTUAL-RUNTIME_dev_manager}" = "busybox-mdev" || -z "${VIRTUAL-RUNTIME_dev_manager}" ]]; then + bbwarn "${PN} depends udev. \ +Current device manager: '${VIRTUAL-RUNTIME_dev_manager}'. \ +To resolve this issue, either: \ +1. Configure udev or systemd-udev as your device manager, or \ +2. Remove DISTRO_FEATURES that depend on ${PN} (e.g., 3g, phone)." + fi +} \ No newline at end of file -- Gitee