From 1665d1e2ad2244171dcdb580df4f54739d6444bd Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Wed, 2 Oct 2024 17:38:56 -0500 Subject: linux-yocto_virtualization.inc: If using externalsrc adjust dependency When using externalsrc, the system will disable a number of tasks such as do_validate_branches, do_unpack and do_patch. The do_kernel_metadata task is configured to run after do_validate_branches do_unpack and before do_patch. Since all of these have been removed, the task will never run. The do_kernel_metadata task is responsible for populating the recipe-sysroot-native/kcfg directory via it's own dependency to yocto-cfg-fragments-native:do_populate_sysroot. Without do_kernel_metadata running, do_kernel_configme will fail to run with errors like: ERROR: linux-xlnx-6.6.40+git-r0 do_kernel_configme: Feature '../recipe-sysroot-native/kcfg/cfg/virtio.scc' not found, this will cause configuration failures. ERROR: linux-xlnx-6.6.40+git-r0 do_kernel_configme: Check the SRC_URI for meta-data repositories or directories that may be missing ERROR: linux-xlnx-6.6.40+git-r0 do_kernel_configme: Set KERNEL_DANGLING_FEATURES_WARN_ONLY to ignore this issue Fix this issue by detecting if we're running with externalsrc, and then adding the task do_kernel_metadata (from the current recipe) as a dependency of do_kernel_configme. To reproduce th original issue: $ . ./oe-initbuild-env $ bitbake linux-yocto -c patch $ cp -r tmp/work-shared//kernel-source linux-yocto edit the conf/local.conf adding: DISTRO_FEATURES:append = " virtualization" INHERIT += "externalsrc" EXTERNALSRC:pn-linux-yocto = "${TOPDIR}/linux-yocto" $ rm -rf tmp $ bitbake linux-yocto -c menuconfig Signed-off-by: Mark Hatle Signed-off-by: Bruce Ashfield --- recipes-kernel/linux/linux-yocto_virtualization.inc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/recipes-kernel/linux/linux-yocto_virtualization.inc b/recipes-kernel/linux/linux-yocto_virtualization.inc index 283be0f8..bc2f4040 100644 --- a/recipes-kernel/linux/linux-yocto_virtualization.inc +++ b/recipes-kernel/linux/linux-yocto_virtualization.inc @@ -61,6 +61,12 @@ KERNEL_FEATURES:append = " ${KERNEL_CACHE_FEATURES}" # features can be enabled via the fragments do_kernel_metadata[depends] += "${KERNEL_CFG_DEPENDS}" +# if externalsrc is enabled, do_kernel_metadata dependency on +# yocto-cfg-fragments-native won't be run to populate +# recipe-sysroot-native/kcfg because do_patch is not run. Manully add +# the dependency to do_kernel_configme for this special case +do_kernel_configme[depends] += "${@['', d.getVar('PN') + ':do_kernel_metadata'][(bb.data.inherits_class('externalsrc', d))]}" + # xen kernel support # SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'xen', ' file://xen.scc', '', d)}" KERNEL_FEATURES:append = "${@distro_cond_feature('cfg/xen.scc', 'xen', d )}" -- cgit v1.2.3-54-g00ecf