path: root/meta/classes/kernel-yocto.bbclass
diff options
authorBruce Ashfield <>2018-08-24 10:59:51 -0400
committerRichard Purdie <>2018-08-28 10:30:28 +0100
commitc8bc6f29a775ea25611d835ff0c2760de41abf80 (patch)
tree18d643fb63ad0742bb8dc685429d12137813068c /meta/classes/kernel-yocto.bbclass
parentf13ff77f4d8a3bd96d27152722f15edc3657d0c9 (diff)
kernel-yocto: restore BSP audit visibility
During the re-working of kernel fragments and status output cleanup the visibility for BSP level errors was dropped/removed. The audit phase can detect errors, redefinition and invalid configuration fragments. We control the visibility of these reports via the existing KCONF_BSP_AUDIT_LEVEL variable. By default, errors and invalid configuration values will be displayed as a warning. If redefinition values are to be shown the audit level must be raised above the deafult value of '2'. We inhibit these by default, since there are many valid reasons why a BSP will change a default / base config .. and showing them offers no value to the BSP user. (From OE-Core rev: 4933b686b0f75d6841630917a2d90832df41cac7) Signed-off-by: Bruce Ashfield <> Signed-off-by: Richard Purdie <>
Diffstat (limited to 'meta/classes/kernel-yocto.bbclass')
1 files changed, 22 insertions, 0 deletions
diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
index 19d74a7875..2ecd060093 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -350,6 +350,7 @@ python do_kernel_configcheck() {
config_check_visibility = int(d.getVar("KCONF_AUDIT_LEVEL") or 0)
+ bsp_check_visibility = int(d.getVar("KCONF_BSP_AUDIT_LEVEL") or 0)
# if config check visibility is non-zero, report dropped configuration values
mismatch_file = d.expand("${S}/%s/cfg/mismatch.txt" % kmeta)
@@ -358,6 +359,27 @@ python do_kernel_configcheck() {
with open (mismatch_file, "r") as myfile:
results =
bb.warn( "[kernel config]: specified values did not make it into the kernel's final configuration:\n\n%s" % results)
+ if bsp_check_visibility:
+ invalid_file = d.expand("${S}/%s/cfg/invalid.cfg" % kmeta)
+ if os.path.exists(invalid_file) and os.stat(invalid_file).st_size > 0:
+ with open (invalid_file, "r") as myfile:
+ results =
+ bb.warn( "[kernel config]: This BSP sets config options that are not offered anywhere within this kernel:\n\n%s" % results)
+ errors_file = d.expand("${S}/%s/cfg/fragment_errors.txt" % kmeta)
+ if os.path.exists(errors_file) and os.stat(errors_file).st_size > 0:
+ with open (errors_file, "r") as myfile:
+ results =
+ bb.warn( "[kernel config]: This BSP contains fragments with errors:\n\n%s" % results)
+ # if the audit level is greater than two, we report if a fragment has overriden
+ # a value from a base fragment. This is really only used for new kernel introduction
+ if bsp_check_visibility > 2:
+ redefinition_file = d.expand("${S}/%s/cfg/redefinition.txt" % kmeta)
+ if os.path.exists(redefinition_file) and os.stat(redefinition_file).st_size > 0:
+ with open (redefinition_file, "r") as myfile:
+ results =
+ bb.warn( "[kernel config]: This BSP has configuration options defined in more than one config, with differing values:\n\n%s" % results)
# Ensure that the branches (BSP and meta) are on the locations specified by