@@ -34,5 +34,6 @@ COMPATIBLE_MACHINE:soquartz = "soquartz"
SRC_URI:append:rockchip = " file://rockchip-kmeta;type=kmeta;name=rockchip-kmeta;destsuffix=rockchip-kmeta"
SRC_URI:append:nanopi-r4s = " file://realtek-r8169.cfg"
+KERNEL_FEATURES:append:rockchip = " bsp/rockchip/lttng.scc"
KERNEL_FEATURES:append:rockchip:arm = " bsp/rockchip/remove-non-rockchip-arch-arm.scc"
KERNEL_FEATURES:append:rockchip:aarch64 = " bsp/rockchip/remove-non-rockchip-arch-arm64.scc"
new file mode 100644
@@ -0,0 +1,16 @@
+# Prerequisites for building lttng-modules.
+#
+# These symbols are what ktypes/standard gives every BSP that has a
+# yocto-kernel-cache description, via features/kprobes and
+# features/ftrace, trimmed to what lttng-modules uses: kprobes is a hard
+# compile requirement (src/wrapper/kallsyms.c), and the tracing
+# infrastructure is what it traces with - without it the build produces
+# no modules at all rather than failing.
+#
+# CONFIG_KALLSYMS_ALL is deliberately absent: ktypes/base sets it to n,
+# so the lttng "writeback" probe is dropped on every linux-yocto BSP and
+# this layer has no reason to diverge.
+CONFIG_KPROBES=y
+CONFIG_FTRACE=y
+CONFIG_FUNCTION_TRACER=y
+CONFIG_FTRACE_SYSCALLS=y
new file mode 100644
@@ -0,0 +1 @@
+kconf non-hardware lttng.cfg
The machines in this layer have no BSP description in yocto-kernel-cache and build from an in-tree defconfig via KBUILD_DEFCONFIG, so the standard kernel type's configuration never reaches them. Neither the arm nor the arm64 defconfig enables what lttng-modules needs: kprobes is a hard compile failure, and without the tracing infrastructure the build silently produces no modules at all. Ship the missing subset as a fragment in the layer's own kmeta, so it resolves for any recipe here rather than only for ones that fetch the kernel cache. AI-Generated: codex/claude-opus 5 (xhigh) Signed-off-by: Trevor Woerner <twoerner@gmail.com> --- changes in v3: - move the fragment into the layer's own kmeta and reference it from KERNEL_FEATURES, rather than adding a bare .cfg to SRC_URI, so it sits with the layer's other kernel metadata and can be named - enable CONFIG_FTRACE_SYSCALLS, and justify the symbol set by what ktypes/standard already gives a cache-described BSP (features/kprobes, features/ftrace) rather than deriving it from first principles - leave CONFIG_KALLSYMS_ALL unset: ktypes/base sets it to n, so the lttng writeback probe is dropped everywhere and this layer should not diverge - considered yocto-cfg-fragments (as meta-virtualization does) and CONFIG_ENABLE_DEFAULT_TRACERS as a lighter route to tracepoints; both were dropped in favour of matching the standard kernel type, which every other linux-yocto BSP already gets --- recipes-kernel/linux/linux-rockchip.inc | 1 + .../rockchip-kmeta/bsp/rockchip/lttng.cfg | 16 ++++++++++++++++ .../rockchip-kmeta/bsp/rockchip/lttng.scc | 1 + 3 files changed, 18 insertions(+) create mode 100644 recipes-kernel/linux/linux-rockchip/rockchip-kmeta/bsp/rockchip/lttng.cfg create mode 100644 recipes-kernel/linux/linux-rockchip/rockchip-kmeta/bsp/rockchip/lttng.scc