From patchwork Wed Aug 26 23:34:12 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anis Bougrine X-Patchwork-Id: 96518 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 82605C61DC2 for ; Wed, 26 Aug 2026 23:35:17 +0000 (UTC) Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.25441.1787787311340118641 for ; Wed, 26 Aug 2026 16:35:11 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20251104 header.b=f0wA8Kda; spf=pass (domain: gmail.com, ip: 209.85.221.48, mailfrom: anis.bougrine10@gmail.com) Received: by mail-wr1-f48.google.com with SMTP id ffacd0b85a97d-4798bea72f9so12358f8f.1 for ; Wed, 26 Aug 2026 16:35:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787787309; x=1788392109; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=aFoaCGU/E7r35Ev/015AJ40oWtNKX5BLk/CBSImuQ+k=; b=f0wA8Kdaoz8/tJW/DCA8WbjkxYAn2nyHTjveBUyqGsDQDy4eCGWKXd1kyBQw2pOUDY ugsiqYPwQH9ozUGrtNcXu04sNrvUVaiCMjGmp2WYw4EzuM8mSO+va25+t9YMcBcPVasG /BwYMl6kds2rNAjsjknBio+gf3gKu3hyLA82c/WfqfYdriGjavdLtE+7dxlyj2uB7ij4 rt/Z2CpXxdXA0Q4oMkXqo65HvKipm/bRgZX5MN+ipbs8IxHx0NRXMwonNdH/Mk8z19fa Y7HZm1dCCyhMPl/EuoTj5PUAN8MwyVQhtm41nblXvnGnwZ76MlL7hJzd8aUFXN1axTOy 5pug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787787309; x=1788392109; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=aFoaCGU/E7r35Ev/015AJ40oWtNKX5BLk/CBSImuQ+k=; b=kuG0XgPaQ4GBuQvk5q74rcBxb42VWUT4QQd2OBj8eC0Sa9GfzvTcHmmBmB5NazoLT8 1aigLNFtHJM+UTPFukdUnIXnYrUMKJdp7u+vKSpMypOUleuPxgr9rsUGEakguNRlBINL 4G1q0pk12jpUfzbPw19h0NHfgUGhDmL0OMmHgV+zfdkAv+aMFh24urIfnsILto8NwNvd 4jYEYw45tCUiX8CCGJls4JtCeNgCZWNgxyWkB/6Rh3iphNALiHfV3ZL/ria/EtNpRxDv qugOXHi7QYeASVU3evRkgl6ecwYDGEdtk/Mk0uEPedYU1/QNpAiSiAmP8EGRydMYJFL/ JExA== X-Gm-Message-State: AFuF++kCTPom+lxOjuMfdU+VkILl6+njZj2t5GVmDc6xHDaPY1dq9K+o +7npY+PYlx2dcsmomQscSwz+kNpzxeMeuPb3QHLBI29dQpDIOzehChFaSXPsP5WTgrs= X-Gm-Gg: AR+sD113mpyy8M7Dxyk/Rng+mcmjBE5SQziwa2QgOiYtPiC/0UPJzDt7+GQsyegZrBO tLdiipbroghcbgHyDwb96NHOn8sjXh9r2YroY22G9x7e2gUrHJ+Wvj1C/fXHTVB1pDlICngRlHb eTus/LXQp7D2/qOjHkGecifZUdfORDb0mypCvKtU7zVaa/MOos+THAPZjObkPGBFkK3ip1lgq6U pAVCgCJnvW2iRumuO7Oe8D1WQgwct3/lXieIxeBe9OSmbHVjyecTOYvXCwnxqSTMkyhvZeSoEnZ QyZUpbTWTP/L2GCHuqUjj7LNiOSHKXYa58eShylz7mULCY3BmzwGsK2i5X0Po3P4oLuWiiffbDp InYZkifriNTyHGA1MbCbeGsFF5Ta5tGNgrEOvPuviqte+1zw/nIyItifWgwB+swrvEgfhp3IT5G LVCXUj0sv97eS8w+mzQ1ZbwVb+4X3F/+X5kunyJheKt5MKAVtKqiM8JoFRwRMFf/ylhYXHXnl7o VF/a/ipT4UGmRk7057hE2GE1/Sl9bSpIACAw8bCGNOFvXo++xvwih8z7DRQjlSlbZ1zl6NjqnPQ Hu0gHZW5uc8= X-Received: by 2002:a05:6000:2889:b0:47f:96f9:a99f with SMTP id ffacd0b85a97d-482e26b375cmr10909377f8f.13.1787787309391; Wed, 26 Aug 2026 16:35:09 -0700 (PDT) Received: from device-137.home ([2a01:cb15:80cf:2100:f9af:e499:eded:1124]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-482e27ab569sm4586872f8f.16.2026.08.26.16.35.08 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 26 Aug 2026 16:35:09 -0700 (PDT) From: Anis Bougrine To: openembedded-core@lists.openembedded.org Cc: richard.purdie@linuxfoundation.org, Anis Bougrine , Ross Burton Subject: [OE-core][PATCH v7 1/5] lib/oe/kernel_module.py: add get_ext_mod function for module signing Date: Thu, 27 Aug 2026 01:34:12 +0200 Message-ID: <20260826233416.37047-2-anis.bougrine10@gmail.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260826233416.37047-1-anis.bougrine10@gmail.com> References: <20260826233416.37047-1-anis.bougrine10@gmail.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 26 Aug 2026 23:35:17 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/244436 Fixes [YOCTO #12927] Out-of-tree module Makefiles invoke the kernel Makefile by appending the M= (the module directory) variable to the MAKEFLAGS. However, they usually do not provide a modules_sign target. Therefore, the kernel modules_sign target has to be invoked manually after retrieving M= variable from package source code Makefile. This function retrieves the M= variable from an external module Makefile. Reported-by: Ross Burton Signed-off-by: Anis Bougrine --- meta/lib/oe/__init__.py | 2 +- meta/lib/oe/kernel_module.py | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/meta/lib/oe/__init__.py b/meta/lib/oe/__init__.py index d8db84dc9a..7357a71f27 100644 --- a/meta/lib/oe/__init__.py +++ b/meta/lib/oe/__init__.py @@ -12,4 +12,4 @@ __path__ = extend_path(__path__, __name__) BBIMPORTS = ["qa", "data", "path", "utils", "types", "package", "packagedata", \ "packagegroup", "sstatesig", "lsb", "cachedpath", "license", "qemu", \ "reproducible", "rust", "buildcfg", "go", "spdx30_tasks", "spdx_common", \ - "cve_check", "tune", "classextend", "purl", "kernel", "sanity"] + "cve_check", "tune", "classextend", "purl", "kernel", "kernel_module", "sanity"] diff --git a/meta/lib/oe/kernel_module.py b/meta/lib/oe/kernel_module.py index 0d27fbaa57..edf723033f 100644 --- a/meta/lib/oe/kernel_module.py +++ b/meta/lib/oe/kernel_module.py @@ -25,3 +25,24 @@ def kernel_module_os_env(d, env_dict): env_dict['KBUILD_EXTRA_SYMBOLS'] = kbuild_extra_symbols else: env_dict['KBUILD_EXTRA_SYMBOLS'] = '' + +def get_ext_mod(d): + """ + Extract the resolved Kbuild M= variable from an out of tree module Makefile variable database. + """ + import re + import bb.process + + try: + output = bb.process.run( + "make -C %s --dry-run --print-data-base" % d.getVar("B") + )[0] + except bb.process.ExecutionError: + return d.getVar("S") + + for line in output.splitlines(): + m = re.match(r'^M\s*=\s*(.*)$', line) + if m: + return m.group(1).strip() + + return d.getVar("S") From patchwork Wed Aug 26 23:34:13 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anis Bougrine X-Patchwork-Id: 96517 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9AD3FC61DC6 for ; Wed, 26 Aug 2026 23:35:17 +0000 (UTC) Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.54]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.25442.1787787312041304675 for ; Wed, 26 Aug 2026 16:35:12 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20251104 header.b=fuEQZs2H; spf=pass (domain: gmail.com, ip: 209.85.221.54, mailfrom: anis.bougrine10@gmail.com) Received: by mail-wr1-f54.google.com with SMTP id ffacd0b85a97d-482e257a23aso796083f8f.0 for ; Wed, 26 Aug 2026 16:35:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787787310; x=1788392110; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=zzKdMTyixJtiQxBIPa7dnpyi0s6unMAjm2qWHyh3k4A=; b=fuEQZs2Hxa2DDT4TpbPKxoYJp/ePQlT9Hzo3sU5DWa5zjkUGN4ynbzOprKWe08akkp /LUNF1n0u8EMybyvvyAwEPMq7xJqLgbGTTGpciOpq/icptNANUMss3V2SQsoMDfw+Ggy kk4HE9HD9HjwzT+rz5uJeb61xAryr3tOp1qxhLDIUeGvPlnKI5P36OXxyjnpZFHv02VW sPYmxUxC/iTHLegqU6dYBVe+B+rXGtJ3y0IwrqJp+J32Y6S2ZeIXcOlXb+S7To2AGu37 P4J/XID+926HSJYLQ1erOyc2YfGBGmp8OWwhijAp7EQ+2E4KkObc3EooJwkl10q7NNvP R2iQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787787310; x=1788392110; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=zzKdMTyixJtiQxBIPa7dnpyi0s6unMAjm2qWHyh3k4A=; b=BVOjvgXllZ/zkVpJnu3rKC1pWpT0mhPk5+HOTzgBXLN5CmIGMgt12Sn9D9pbLn0cXi l7P955/qcWXMMKrgpLAk7IMupeECMnud0z5Tw8+rai3t1StguJeGaXt5RSaOu7OSIkCB UIMsaRWrH6npGmOKI15xKpLpdtaJ+bm7qQG3K0INvjjTKGdYlXq2nHmd/VwbbotsBZD8 OR2SaGTWos1BzHTN13LUXXuRuuj52RpCKUSQ/rHxJ0GzS+zztI5SM6+6h5h27yyOj+V5 AtEMWgS/Ky/cHIb8oT33bFMInwaYcHUr4qP2QTnWaz1snQ6j+IW8QtlJzIuql5N+OOr8 Lz9g== X-Gm-Message-State: AFuF++nsj1Uuv54lD5CFJ2NUBK07shIHOgdsFJlNIURM4O59fxgSNC1V GOcyG3Qj1QjId+hAWnKkXLa4CNA0Q3KfEB5WgejrkoS1Zk/RJqD9fZCFJs7B/noOrJA= X-Gm-Gg: AR+sD12/Rn9GSYos6/qIVpCrOvnOV9JB1s0E8FTSUclQX2mHPdHKzqMXTh8K+BsEu8+ SU+F+6dxrfT0iMqz40eNYnmt03CW1FKbK24MqnM1WiuGJGaIlQ5A9oEKke1gGiZmnq6YAC9dQ7O ochcgto9bSd6Hl8gMwhX4vMpzlEFbK4j2IpgoB42Vfl6+dFX24RqYQB5AXo83oegWKIDmBM8qOy o/fs6NJoS/katLCKK0pIRK7L0Yx1nDZVJuxnOgq14SsNseArmNCiwXx8oNPUWmXZZx9K8AsqOp5 GyTxn8GJ2I2QUXBZnqkyjzsW4/1KfsPpLW+Gf8L4rO9QT1J+pVnRuK+oe1JnoEKjO1SQ7JXoCEe uSljrD/rC1i8F9gfjZEUlj1++aFeFmOkvc8pZ7hkdG+luYpRYLxooHYTlyzzvbucHeXqxk5PtGi IYkqTSdQZn9QigHLkPZRowEydsbH3Xp3/OVljSHTt9kAoJLcAAK96M1vL0IM4Xj8gNGoI2Ap8PN z/x2mUT7+Flbx+D001eh6d9x6Z8e6ogvSj15nw6qEvpy7EBbGntm7NS8PC8nzc3eUtnr24/kNLd CqaHhC7pBQ0= X-Received: by 2002:a05:6000:3c9:b0:480:268:8f04 with SMTP id ffacd0b85a97d-482e26f855amr12763167f8f.11.1787787310258; Wed, 26 Aug 2026 16:35:10 -0700 (PDT) Received: from device-137.home ([2a01:cb15:80cf:2100:f9af:e499:eded:1124]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-482e27ab569sm4586872f8f.16.2026.08.26.16.35.09 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 26 Aug 2026 16:35:09 -0700 (PDT) From: Anis Bougrine To: openembedded-core@lists.openembedded.org Cc: richard.purdie@linuxfoundation.org, Anis Bougrine , Ross Burton Subject: [OE-core][PATCH v7 2/5] kernel: re-sign kernel modules after package stripping process Date: Thu, 27 Aug 2026 01:34:13 +0200 Message-ID: <20260826233416.37047-3-anis.bougrine10@gmail.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260826233416.37047-1-anis.bougrine10@gmail.com> References: <20260826233416.37047-1-anis.bougrine10@gmail.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 26 Aug 2026 23:35:17 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/244437 Fixes [YOCTO #12927] Currently, signed kernel modules are not stripped in order to preserve their valid signatures. See commit 4c47e5f. Therefore, this commit makes kernel modules stripped and correctly signed. Two options are possible: - Strip the kernel modules after installation and before signing. - Re-sign the kernel modules after stripping and before package splitting. The first option was rejected because debug symbols would be dropped early in the build workflow, which may impact the SPDX process. The second option is adopted because it does not impact the build flow. Reported-by: Ross Burton Signed-off-by: Anis Bougrine --- .../kernel-module-split.bbclass | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/meta/classes-recipe/kernel-module-split.bbclass b/meta/classes-recipe/kernel-module-split.bbclass index ab2f0d1c37..2b40437cc2 100644 --- a/meta/classes-recipe/kernel-module-split.bbclass +++ b/meta/classes-recipe/kernel-module-split.bbclass @@ -35,6 +35,11 @@ modprobedir ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${nonarch_b KERNEL_SPLIT_MODULES ?= "1" PACKAGESPLITFUNCS =+ "split_kernel_module_packages" +# Order matters: +# 1. Strip the modules +# 2. Re-sign the modules (if enabled) +# 3. Split the packages +PACKAGESPLITFUNCS =+ "post_strip_kernel_modules_signing" KERNEL_MODULES_META_PACKAGE ?= "${@ d.getVar("KERNEL_PACKAGE_NAME") or "kernel" }-modules" @@ -42,6 +47,26 @@ KERNEL_MODULE_PACKAGE_PREFIX ?= "" KERNEL_MODULE_PACKAGE_SUFFIX ?= "-${KERNEL_VERSION}" KERNEL_MODULE_PROVIDE_VIRTUAL ?= "1" +# This function supports both in-tree and out-of-tree modules. +post_strip_kernel_modules_signing(){ + # Read .config values to determine if module auto-signing is enabled + is_modules="$(${STAGING_KERNEL_DIR}/scripts/config --file ${KBUILD_OUTPUT}/.config --state MODULES)" + is_module_sig="$(${STAGING_KERNEL_DIR}/scripts/config --file ${KBUILD_OUTPUT}/.config --state MODULE_SIG)" + is_module_sig_all="$(${STAGING_KERNEL_DIR}/scripts/config --file ${KBUILD_OUTPUT}/.config --state MODULE_SIG_ALL)" + + if [ "$is_modules" = "y" ] && [ "$is_module_sig" = "y" ] && [ "$is_module_sig_all" = "y" ]; then + # Sign modules under ${PKGD}, with M= if out-of-tree module. + # Out-of-tree module Makefiles invoke the kernel Makefile by appending M= (the module directory) to MAKEFLAGS. + # However, they usually do not provide a modules_sign target. Therefore, the kernel modules_sign target has to + # be invoked manually after retrieving M= variable from package source code Makefile. + oe_runmake \ + -C ${KBUILD_OUTPUT} \ + MODLIB=${PKGD}${nonarch_base_libdir}/modules/${KERNEL_VERSION} \ + ${@'M=%s' % oe.kernel_module.get_ext_mod(d) if not "virtual/kernel" in d.getVar('PROVIDES') else ''} \ + modules_sign + fi +} + python split_kernel_module_packages () { import re From patchwork Wed Aug 26 23:34:14 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anis Bougrine X-Patchwork-Id: 96516 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id DD2D5C61DC7 for ; Wed, 26 Aug 2026 23:35:17 +0000 (UTC) Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.50]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.25204.1787787312758527314 for ; Wed, 26 Aug 2026 16:35:13 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20251104 header.b=CkvZN/Kj; spf=pass (domain: gmail.com, ip: 209.85.221.50, mailfrom: anis.bougrine10@gmail.com) Received: by mail-wr1-f50.google.com with SMTP id ffacd0b85a97d-482e1bfcc63so290394f8f.1 for ; Wed, 26 Aug 2026 16:35:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787787311; x=1788392111; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=5qSvb5QMgjn9VY62lxA2lAF4XB0Y0EtVxVEboMw/XGw=; b=CkvZN/Kju+h9CkOry5ZXA9ufZ1wtTGoikA0qGUL10Hpu3kWFu8PT4oHPt9pRlc/Yjp MSShpet/c1IPtbLPk+ui9JKhbtFPg07ez51CCzrzpZ89nPIAwwrCS7Os++l4Pgs9eZhU bsTQCgUZk1LFHtMG+SVh/hU7bFKUpunaWYplaT3M7zyXHHRdbBjMcbvLiAvliQharF/9 LVMSnh3GbacdVCrim5q4QfhVrF6JpoiQx7RHMKeZPgNVva0lq3y8NWX1IPURzpM2FS0Q si3wFdyvkEWy1qHBEq0uyMLgPFJpSKa0en8XJx90FjpJknLlTOpuVjE97pRNqn+MGRSv Fc6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787787311; x=1788392111; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=5qSvb5QMgjn9VY62lxA2lAF4XB0Y0EtVxVEboMw/XGw=; b=JOqijmxbcitN/i9Ec7cbRoTC7WY/YKIaMJVmIxtyyM3uj6T+wfJb0tReUZ5dbI3G8V RX2mA0KG/ck0aDjJ43WRcEhwTUNBWLV5m0tUniejc+cFLG3d8x6Pg5nRP2ZadpNIm6Uf 5rHRs61+gq5MpMs4N7gHgIHQ/Uu9DB7L2y33ttou4If1PeTIByH/tTGHiVConDtJvZQa LoOozT7Fb+U8FPwgPhgWxAborprKUxaNRTu43L/G+skBPFIQUneUsjxZ7N/4+GvHAU14 VN6stVRCr9JrNdekrieFVV0LcNu3q3z+YAPLzHlxRdGlErVm/pb0vSjYphRAYKNgVf80 Vdkw== X-Gm-Message-State: AFuF++kYKkSQn//uy55ZIovFrQ/iJWbSUmklEdFXqjCUU6WidmxICMdy DyJfpfnzv8T+m0nziyivtz03YvNgFjfOUSLikCxVAXq+P5wAy6PzLj1IFOKWEU2ymro= X-Gm-Gg: AR+sD13d1oycNPSYIZiKOWNCb9UkrAHgb2ro9OILV5JsayRvDVHWLBuyAvU9RZ+V7gB N4EUh/7F1JBQC4IEyASrsOaBYdn4uIac1xu2b9/wucYwzN9vMIEtqN+ovPj1Fjv2qVC+6x1Vjgp +CoJxXBjR4xrjhHZbbjH1HlgUHAm3Ni5Wv5QmdtrWLvfpmktkA/LpsiJ5D6iWaCK//Nz5P3g/aZ GpjiIVd8Bmq04hXH6wZKFV7Pxw1fPrjAfZxNCSf9JMgRNOytT7xPQwIA5AfqDsepuHesg4EZPsT K+SUT2aKySacM3yePiJ4Dd1Vh32kB67fyh7oNZxoZRwaleJ/N491rPNwcmOZoS8Jg8/4EzYeuEA aSY511pnbph0R4Q0mwWXPgdmsy1jUHrQfNcx6dzK8Oxdro8RgGtcO6cQCuRGgzTQa9nvnFJi3T6 dnJhIS2i0fsM8LR3HNDmWv7wdJol0PDvmZRJeeMBSTPUcdw2clOdqTmEG94devgCz2R/cloSy4p tZHxt+CIisC1NlN2CsFehNKTKsjzjNZ2mBlEvL9V3DrUYBWojCy0naGGB16zLs5luZy+YwQY46r Kb9uTGyetJ97+//gZ8G6AQ== X-Received: by 2002:a5d:64e8:0:b0:482:e740:18ca with SMTP id ffacd0b85a97d-482eab7b5fcmr2902573f8f.7.1787787310983; Wed, 26 Aug 2026 16:35:10 -0700 (PDT) Received: from device-137.home ([2a01:cb15:80cf:2100:f9af:e499:eded:1124]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-482e27ab569sm4586872f8f.16.2026.08.26.16.35.10 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 26 Aug 2026 16:35:10 -0700 (PDT) From: Anis Bougrine To: openembedded-core@lists.openembedded.org Cc: richard.purdie@linuxfoundation.org, Anis Bougrine , Ross Burton Subject: [OE-core][PATCH v7 3/5] package.py: remove stripping and splitting skip for signed kernel modules Date: Thu, 27 Aug 2026 01:34:14 +0200 Message-ID: <20260826233416.37047-4-anis.bougrine10@gmail.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260826233416.37047-1-anis.bougrine10@gmail.com> References: <20260826233416.37047-1-anis.bougrine10@gmail.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 26 Aug 2026 23:35:17 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/244438 Fixes [YOCTO #12927] Now kernel modules are re-signed after package stripping process. Therefore, they can be stripped and splitted securely. Reported-by: Ross Burton Signed-off-by: Anis Bougrine --- meta/lib/oe/package.py | 26 +++----------------------- 1 file changed, 3 insertions(+), 23 deletions(-) diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py index 4a244ec980..1657eaad93 100644 --- a/meta/lib/oe/package.py +++ b/meta/lib/oe/package.py @@ -36,16 +36,9 @@ def runstrip(file, elftype, strip, extra_strip_sections=''): os.chmod(file, newmode) stripcmd = [strip] - skip_strip = False - # kernel module: use --strip-debug and --preserve-dates (required for - # module signing to remain valid after stripping) + # kernel module if elftype & 16: - if is_kernel_module_signed(file): - bb.debug(1, "Skip strip on signed module %s" % file) - skip_strip = True - else: - stripcmd.extend(["--strip-debug", "--remove-section=.comment", - "--remove-section=.note", "--preserve-dates"]) + stripcmd.extend(["--strip-debug", "--remove-section=.comment", "--remove-section=.note"]) # .so and shared library elif ".so" in file and elftype & 8: stripcmd.extend(["--remove-section=.comment", "--remove-section=.note", "--strip-unneeded"]) @@ -59,8 +52,7 @@ def runstrip(file, elftype, strip, extra_strip_sections=''): stripcmd.append(file) bb.debug(1, "runstrip: %s" % stripcmd) - if not skip_strip: - output = subprocess.check_output(stripcmd, stderr=subprocess.STDOUT) + output = subprocess.check_output(stripcmd, stderr=subprocess.STDOUT) if newmode: os.chmod(file, origmode) @@ -70,13 +62,6 @@ def is_kernel_module(path): with open(path) as f: return mmap.mmap(f.fileno(), 0, prot=mmap.PROT_READ).find(b"vermagic=") >= 0 -# Detect if .ko module is signed -def is_kernel_module_signed(path): - with open(path, "rb") as f: - f.seek(-28, 2) - module_tail = f.read() - return "Module signature appended" in "".join(chr(c) for c in bytearray(module_tail)) - # Return type (bits): # 0 - not elf # 1 - ELF @@ -810,11 +795,6 @@ def splitdebuginfo(file, dvar, dv, d): debugfile = dvar + dest sources = [] - if file.endswith(".ko") and file.find("/lib/modules/") != -1: - if oe.package.is_kernel_module_signed(file): - bb.debug(1, "Skip strip on signed module %s" % file) - return (file, sources) - # Split the file... bb.utils.mkdirhier(os.path.dirname(debugfile)) #bb.note("Split %s -> %s" % (file, debugfile)) From patchwork Wed Aug 26 23:34:15 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anis Bougrine X-Patchwork-Id: 96519 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4414DC61DD2 for ; Wed, 26 Aug 2026 23:35:18 +0000 (UTC) Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.54]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.25443.1787787313349253827 for ; Wed, 26 Aug 2026 16:35:13 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20251104 header.b=oy1/4OjR; spf=pass (domain: gmail.com, ip: 209.85.221.54, mailfrom: anis.bougrine10@gmail.com) Received: by mail-wr1-f54.google.com with SMTP id ffacd0b85a97d-47fde295992so342212f8f.0 for ; Wed, 26 Aug 2026 16:35:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787787311; x=1788392111; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=SycdilbJAN0QSRln7pWd2ADGndojs1lgRNgfweubH1A=; b=oy1/4OjR0y7UXtGcZOlD9rjFjVW3vSKl0jYc/yd5ptXW9UT4Szf80xmm9DDF9i0lN6 b7/s05N7Rq1SaWiTWxgivjaILyXbPILLpq6n/0J18TusYhe+5rwowUpisbYmIrr2xP/m Ryi0oDOkOKm/2m2+7Gjtw79CoGKzXftjX0V3sbu3Reyf5AY3XXT3HwWJaFeGR5rq/gXe eJIWgEIMFnTxQRz37aJx9hNsOAEkqRWAuxYWAvo58jDQmbdk/PTWScmOq9xlMToOmy3k Cndal9zqNVWBLfTGON958gioU0pzLP+pivhnD7VkvMD/t7Pt7AqKKe6aAhMF6JbxzKLW CyjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787787311; x=1788392111; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=SycdilbJAN0QSRln7pWd2ADGndojs1lgRNgfweubH1A=; b=kniikAyhpvGh0YJH/YfetIu3srwqx//XDYdHGPOhEN2ILd0K1oh6hsSPZyY4TBweI2 XMuXhdIBJ17sTTPCf5Q0Qjjx6KwBYpGSudhoRTsGm05U0q8m0HC31n5OuIbj5tJSO+ON uebCW7v17+Q8snnuKG/wE97J32mYzG8jgdSx9MB422K1vIVhOfOovJCvqbSYhjJFRvPi tBhlXpPivOh1yKzKC0/l9Q6aM3YMy8ToSzWgD1H+2mfcMdB3Yux6BVx1iPEmHwakFmoN R0LyBpe5PwF+LzQVWLNE5VAgt7kGO7cct+zqDOfNsZX43LbMQMxc/o8jid9k0xJWmqdW Op/g== X-Gm-Message-State: AFuF++mkMVSDzjfM+lYl31cBuwSjlXkDydVKaJNgutyjng1OIBM11+l7 AfSSPGymL5VGalZYuBFnfzky8x/+hI1QBqdJSjNr9U0zpi/1RJejrbICIW9aV5Eqs6I= X-Gm-Gg: AR+sD100nceQA0Mi/x91vnPCCBVz3prSFAlqmYix6Fy+mVVQWvt1XWxCl/JYWOSkILL e8ByGwirT2LMQHJpLE2L7FEO7a1Gf/sI9SzawmYGdLcIln4rpbhfhMTXtGlmwTbzYnpwr5PmVT1 Wits43MjUkCYgDRgzwGMbBiipewU3zkclL6dnIS/qpXy+nzQHyL9BhCkZB4LE1JZrHozHv2q1I/ 3bZtNaYHUsCmQzgGWm7AI4S9W58VQYLqhAb2adujkfjqAoANYPIHjDW2Pz273KX7kWcTzzqHe4E QuiXSx8x3pQC2z+7c//YUMMatbve3LKWMqmmL+J/9clYd2QWgjpBvHW6HNAKP5qg7kjzISuEFam 3fV/kocY2+tvy26GdfaPUpHU4a2J3S1Y8C/jomCHBB3TiND1j+2HRS1Cj+hfEmV0prnchUYlRZ+ 9F+AL2VaB8Ne/UwI+I3Uo+Cj2lbqC1G9F5eX6MmdKkt2ZkWDh51UfMP0J/MB8mh9LgoIqzJ8xvC IwcLBts4iCgq9CRtwlmG4ZZwpeBHVIedMz9Z3RMjwSAN75vA3Mtl0YY7UqX7PJboSwshSm83tlF obYCuz5mkPw= X-Received: by 2002:a05:6000:2608:b0:482:b823:cc3a with SMTP id ffacd0b85a97d-482eaba7efamr2869162f8f.12.1787787311546; Wed, 26 Aug 2026 16:35:11 -0700 (PDT) Received: from device-137.home ([2a01:cb15:80cf:2100:f9af:e499:eded:1124]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-482e27ab569sm4586872f8f.16.2026.08.26.16.35.11 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 26 Aug 2026 16:35:11 -0700 (PDT) From: Anis Bougrine To: openembedded-core@lists.openembedded.org Cc: richard.purdie@linuxfoundation.org, Anis Bougrine Subject: [OE-core][PATCH v7 4/5] kernel: centralize kernel module installation path in one variable Date: Thu, 27 Aug 2026 01:34:15 +0200 Message-ID: <20260826233416.37047-5-anis.bougrine10@gmail.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260826233416.37047-1-anis.bougrine10@gmail.com> References: <20260826233416.37047-1-anis.bougrine10@gmail.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 26 Aug 2026 23:35:18 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/244439 The kernel module installation path is currently defined in multiple places, although it is used 10 times throughout the code. This increases the risk of bugs due to inconsistencies or desynchronization. Centralizing the path in a single variable makes the code more reliable and easier to maintain. This commit introduce KERNEL_MODULE_INSTALL_PREFIX to resolve this issue. Signed-off-by: Anis Bougrine --- meta/classes-recipe/kernel-arch.bbclass | 1 + meta/classes-recipe/kernel-module-split.bbclass | 2 +- meta/classes-recipe/kernel.bbclass | 12 ++++++------ meta/classes-recipe/module.bbclass | 2 +- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/meta/classes-recipe/kernel-arch.bbclass b/meta/classes-recipe/kernel-arch.bbclass index 26b8a1a67f..91cceb8dc1 100644 --- a/meta/classes-recipe/kernel-arch.bbclass +++ b/meta/classes-recipe/kernel-arch.bbclass @@ -10,6 +10,7 @@ TARGET_CC_KERNEL_ARCH ?= "" TARGET_LD_KERNEL_ARCH ?= "" TARGET_AR_KERNEL_ARCH ?= "" TARGET_OBJCOPY_KERNEL_ARCH ?= "" +KERNEL_MODULE_INSTALL_PREFIX ?= "${nonarch_base_libdir}/modules/${KERNEL_VERSION}" KERNEL_CC:toolchain-gcc = "${CCACHE}${HOST_PREFIX}gcc ${TARGET_CC_KERNEL_ARCH} \ -fuse-ld=bfd ${DEBUG_PREFIX_MAP} \ diff --git a/meta/classes-recipe/kernel-module-split.bbclass b/meta/classes-recipe/kernel-module-split.bbclass index 2b40437cc2..413f39d641 100644 --- a/meta/classes-recipe/kernel-module-split.bbclass +++ b/meta/classes-recipe/kernel-module-split.bbclass @@ -61,7 +61,7 @@ post_strip_kernel_modules_signing(){ # be invoked manually after retrieving M= variable from package source code Makefile. oe_runmake \ -C ${KBUILD_OUTPUT} \ - MODLIB=${PKGD}${nonarch_base_libdir}/modules/${KERNEL_VERSION} \ + MODLIB=${PKGD}${KERNEL_MODULE_INSTALL_PREFIX} \ ${@'M=%s' % oe.kernel_module.get_ext_mod(d) if not "virtual/kernel" in d.getVar('PROVIDES') else ''} \ modules_sign fi diff --git a/meta/classes-recipe/kernel.bbclass b/meta/classes-recipe/kernel.bbclass index a82bdf7ecb..0a6d754108 100644 --- a/meta/classes-recipe/kernel.bbclass +++ b/meta/classes-recipe/kernel.bbclass @@ -453,11 +453,11 @@ kernel_do_install() { # unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE if (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}${firmwaredir} modules_install - rm -f "${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/build" - rm -f "${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/source" + oe_runmake DEPMOD=echo MODLIB=${D}${KERNEL_MODULE_INSTALL_PREFIX} INSTALL_FW_PATH=${D}${firmwaredir} modules_install + rm -f "${D}${KERNEL_MODULE_INSTALL_PREFIX}/build" + rm -f "${D}${KERNEL_MODULE_INSTALL_PREFIX}/source" # Remove empty module directories to prevent QA issues - [ -d "${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/kernel" ] && find "${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/kernel" -type d -empty -delete + [ -d "${D}${KERNEL_MODULE_INSTALL_PREFIX}/kernel" ] && find "${D}${KERNEL_MODULE_INSTALL_PREFIX}/kernel" -type d -empty -delete else bbnote "no modules to install" fi @@ -680,9 +680,9 @@ EXPORT_FUNCTIONS do_compile do_transform_kernel do_transform_bundled_initramfs d # kernel-image becomes kernel-image-${KERNEL_VERSION} PACKAGES = "${KERNEL_PACKAGE_NAME} ${KERNEL_PACKAGE_NAME}-base ${KERNEL_PACKAGE_NAME}-vmlinux ${KERNEL_PACKAGE_NAME}-image ${KERNEL_PACKAGE_NAME}-dev ${KERNEL_PACKAGE_NAME}-modules ${KERNEL_PACKAGE_NAME}-dbg" FILES:${PN} = "" -FILES:${KERNEL_PACKAGE_NAME}-base = "${nonarch_base_libdir}/modules/${KERNEL_VERSION}/modules.order ${nonarch_base_libdir}/modules/${KERNEL_VERSION}/modules.builtin ${nonarch_base_libdir}/modules/${KERNEL_VERSION}/modules.builtin.modinfo" +FILES:${KERNEL_PACKAGE_NAME}-base = "${KERNEL_MODULE_INSTALL_PREFIX}/modules.order ${KERNEL_MODULE_INSTALL_PREFIX}/modules.builtin ${KERNEL_MODULE_INSTALL_PREFIX}/modules.builtin.modinfo" FILES:${KERNEL_PACKAGE_NAME}-image = "" -FILES:${KERNEL_PACKAGE_NAME}-dev = "/${KERNEL_IMAGEDEST}/System.map* /${KERNEL_IMAGEDEST}/Module.symvers* /${KERNEL_IMAGEDEST}/config* ${KERNEL_SRC_PATH} ${nonarch_base_libdir}/modules/${KERNEL_VERSION}/build" +FILES:${KERNEL_PACKAGE_NAME}-dev = "/${KERNEL_IMAGEDEST}/System.map* /${KERNEL_IMAGEDEST}/Module.symvers* /${KERNEL_IMAGEDEST}/config* ${KERNEL_SRC_PATH} ${KERNEL_MODULE_INSTALL_PREFIX}/build" FILES:${KERNEL_PACKAGE_NAME}-vmlinux = "/${KERNEL_IMAGEDEST}/vmlinux-${KERNEL_VERSION_NAME}" FILES:${KERNEL_PACKAGE_NAME}-modules = "" FILES:${KERNEL_PACKAGE_NAME}-dbg = "/usr/lib/debug /usr/src/debug" diff --git a/meta/classes-recipe/module.bbclass b/meta/classes-recipe/module.bbclass index ce5898125b..985c24bed5 100644 --- a/meta/classes-recipe/module.bbclass +++ b/meta/classes-recipe/module.bbclass @@ -46,7 +46,7 @@ module_do_compile() { module_do_install() { unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS - oe_runmake DEPMOD=echo MODLIB="${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}" \ + oe_runmake DEPMOD=echo MODLIB="${D}${KERNEL_MODULE_INSTALL_PREFIX}" \ INSTALL_FW_PATH="${D}${firmwaredir}" \ CC="${KERNEL_CC}" LD="${KERNEL_LD}" OBJCOPY="${KERNEL_OBJCOPY}" \ STRIP="${KERNEL_STRIP}" \ From patchwork Wed Aug 26 23:34:16 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anis Bougrine X-Patchwork-Id: 96515 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 54F6EC5DF97 for ; Wed, 26 Aug 2026 23:35:17 +0000 (UTC) Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.25206.1787787314141088768 for ; Wed, 26 Aug 2026 16:35:14 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20251104 header.b=oeZViikL; spf=pass (domain: gmail.com, ip: 209.85.221.48, mailfrom: anis.bougrine10@gmail.com) Received: by mail-wr1-f48.google.com with SMTP id ffacd0b85a97d-47f3b39f2a1so1223373f8f.2 for ; Wed, 26 Aug 2026 16:35:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787787312; x=1788392112; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=aKTYs9lyCcNRmYEsmaSqJfiCdy1eSfgmbWdv/G/vUMs=; b=oeZViikL7ZGQI48hTFcbMHhvhmmpNA5UllNlroh6SgztErwicgNVuAVywXi3cAoTI1 C8UFg79QdWgIN+1ahheFFlNCQZZwag6gj/p54KRNsK2PNW4zuAwS6/CzPSOx9FvdJ6t2 pyKD8gCAbaqTAzue2puqHKo9MOH3XlTx3qDiGx2S4sa60ztAOlQKyLZtRulVbM/vJZVj nsHNu6WdFTiM3xvHGToAcP0efjDwN1HO7fatXOdPFmOCXhkS3KqeyuZrMKwpLuNgjhmS oREMP1GyMZl2HCwwo01yk1nzyq/IJvP46VsC8illQREMtP+S34FlY/d2V1hp0TK9bYUb Tg7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787787312; x=1788392112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=aKTYs9lyCcNRmYEsmaSqJfiCdy1eSfgmbWdv/G/vUMs=; b=VRshoVMK0Qh0EQwxFGZ9bctNYdmPMWFmb0uFRo7i1oylfZCvSiEA6UqYo3F3wsd9fZ yhi/Qk/zSMUKIhQwIKHFZq++AkaTI/LCqu5rfbaXQwwI6KHsk90LNL3cY+dME1jAjwCZ i1xeGnp+dp1QO6zdmheZ3TE5mC64Dr10SkkeEqsIIDLrR/w12X+HhmpSowQB+32C8Sq3 C4Lyl239mGfDz1Sc/hNMiQ0QazwV1F0eaSqOvKQVVRey43ftVk7AFbZpc+XL0lYzyY9O gr4so2AcBgnJf9HQrRVK8MgJ5VaKsQoXnJvMaoTct9C95E1Lh3HCFEjjZhk/YTKZi3ti qESw== X-Gm-Message-State: AFuF++nUjnzeWBbKhGgPsRt83BtftjM5pI9/yIoJM4LFQqnvr4hvbHvr yWTfLUfsLzzTa7Yiu6LfoyX/1kqt8MtNJ7fhSvQwQIdN55i4kB76CpwPACfcUmw38S4= X-Gm-Gg: AR+sD11zR3Qean0dkchN3WAhVvEiRguVE9J5dHBaHQP1EPmXpQtTQ5Pio55Kckv0I+1 rS3CFdy6xr8FHV89Z1nyIeCNWyGVBQRpjJtIdW+BDFR6ceNOLUVyeBFt8WdaVlJ1eFACjfTBcQ2 AOd7SCdCUeAgUU+MZtK7pIf9mdOLl9uMJArgCqXRndMPjgj1HJLgWCnYDn/bV2nw5p2II2VU0P8 dONjdSY3VN8OkCiKsEBwl64BkS+SjsX7f3acWC8Cm+nnYZuVlYGw8kCXHfsrgjAb78DyZED9Z6D dVOClDrvTuw6DfnZMpi7+SVtkVq2KBTeLPMEeTHDEjAuEZuNjKk0auisJYjVrVar119W29PkpY1 R6TeZRXSlypgtkOAWX85tuvOX3oiHAQATEosz8rhwm+r7jae8MIbtz+xy9aPny++gWchCr41rll 8rKgdH26/a9qK6AmX9+3ty/JcKRjLdAK1DgRMBc/152tasUSJFMgeHULXp4TdGh7sZnJJnIRiSz u+lJblbVcg8WRK3l4nsvLrgXDvcXD0nwbkmPr+i5rGdv3CuXtz/KxO5g1AD1kUNheeX2KUvG0mW zUS5czUhWqEB X-Received: by 2002:a05:6000:2f89:b0:47f:d011:f644 with SMTP id ffacd0b85a97d-482e26963f8mr12158740f8f.4.1787787312367; Wed, 26 Aug 2026 16:35:12 -0700 (PDT) Received: from device-137.home ([2a01:cb15:80cf:2100:f9af:e499:eded:1124]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-482e27ab569sm4586872f8f.16.2026.08.26.16.35.11 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 26 Aug 2026 16:35:12 -0700 (PDT) From: Anis Bougrine To: openembedded-core@lists.openembedded.org Cc: richard.purdie@linuxfoundation.org, Anis Bougrine Subject: [OE-core][PATCH v7 5/5] documentation.conf: add documentation for KERNEL_MODULE_INSTALL_PREFIX variable Date: Thu, 27 Aug 2026 01:34:16 +0200 Message-ID: <20260826233416.37047-6-anis.bougrine10@gmail.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260826233416.37047-1-anis.bougrine10@gmail.com> References: <20260826233416.37047-1-anis.bougrine10@gmail.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 26 Aug 2026 23:35:17 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/244440 Signed-off-by: Anis Bougrine --- meta/conf/documentation.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/meta/conf/documentation.conf b/meta/conf/documentation.conf index 72513296e2..93949c7ff8 100644 --- a/meta/conf/documentation.conf +++ b/meta/conf/documentation.conf @@ -239,6 +239,7 @@ KERNEL_FEATURES[doc] = "Includes additional metadata from the Yocto Project kern KERNEL_IMAGETYPE[doc] = "The type of kernel to build for a device, usually set by the machine configuration files and defaults to 'zImage'." KERNEL_IMAGETYPES[doc] = "The list of types of kernel to build for a device, usually set by the machine configuration files and defaults to KERNEL_IMAGETYPE." KERNEL_MODULE_AUTOLOAD[doc] = "Lists kernel modules that need to be auto-loaded during boot" +KERNEL_MODULE_INSTALL_PREFIX[doc] = "When a recipe inherits the module class, this variable specifies the directory to which kernel modules are installed on target." KERNEL_MODULE_PROBECONF[doc] = "Lists kernel modules for which the build system expects to find module_conf_* values that specify configuration for each of the modules" KERNEL_PACKAGE_NAME[doc] = "Name prefix for kernel packages. Defaults to 'kernel'." KERNEL_PATH[doc] = "The location of the kernel sources. This variable is set to the value of the STAGING_KERNEL_DIR within the module class (module.bbclass)."