内核配置中缺少的设置是否应该被解释为`=n` 还是使用了 `defaults`?

内核配置中缺少的设置是否应该被解释为`=n` 还是使用了 `defaults`?

为了解决问题我正在内核配置设置中查找:CONFIG_SECCOMPCONFIG_HAVE_ARCH_SECCOMP_FILTERCONFIG_SECCOMP_FILTER

第一个存在于内核的配置文件中,如下所示:CONFIG_SECCOMP=y但其他两个根本不存在。这让我想知道如何解释它..

内核配置中缺少的设置是否应该被解释为<setting>=n或被defaults使用?

答案1

对于布尔或三态是/否/模块设置,missing 和n是等效的。

布尔设置对应于已定义或未定义的 C 预处理器宏。源文件检查宏是否用#ifdef.如果设置为n,则宏未定义,相当于默认状态。

是/否/模块三态设置在 makefile 中扩展。设置选项以y编译源文件并将生成的目标文件链接到主内核映像中。设置选项以m编译源文件并将生成的目标文件作为单独的模块链接。设置为n不会导致构建任何内容的选项。

某些配置选项不会对文件产生直接影响,而只会导致配置界面提示您输入一类设置。

.config如果内核源代码树中有一个文件,则可以运行make oldconfig以重新生成该文件,并删除未知选项,并添加文件中不存在的选项并添加其默认设置。如果通过将类别提示选项设置为 来跳过某些选项的类别,则会从结果文件中跳过某些选项n

相关内容