Hi,

I'm using the linux-yocto kernel recipes together with additional kernel config fragments that I append in our custom distro layer. All required functionality is built into the kernel, so we don't install any kernel modules on target.

What would be the correct way to save compilation time and skip building/packaging the kernel modules ? Do I need to provide a custom defconfig that explicitly disables all modules ?

I can monkey-patch oe-core with the attached patch in order to achieve that goal, but I'm guessing something like this wouldn't be suitable for upstreaming ?

Cheers,
Jacob

From: Jacob Kroon <[email protected]>
Date: Mon, 16 Mar 2020 09:47:58 +0100
Subject: [PATCH] Handle KERNEL_MODULES

---
 meta/classes/kernel.bbclass | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index a724645466..538e769f89 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -329,7 +329,12 @@ kernel_do_compile() {
 	fi
 }
 
+KERNEL_MODULES ?= "1"
+
 do_compile_kernelmodules() {
+	if [ "${KERNEL_MODULES}" = "0" ]; then
+		exit 0
+	fi
 	unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
 	if (grep -q -i -e '^CONFIG_MODULES=y$' ${B}/.config); then
 		cc_extra=$(get_cc_option)
@@ -353,7 +358,7 @@ kernel_do_install() {
 	# First install the modules
 	#
 	unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
-	if (grep -q -i -e '^CONFIG_MODULES=y$' .config); then
+	if [ "${KERNEL_MODULES}" = "1" ] && (grep -q -i -e '^CONFIG_MODULES=y$' .config); then
 		oe_runmake DEPMOD=echo MODLIB=${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION} INSTALL_FW_PATH=${D}${nonarch_base_libdir}/firmware modules_install
 		rm "${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/build"
 		rm "${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/source"
-- 
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to