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

woo*_*ing 5 configuration kernel-modules linux-kernel

为了解决一个问题,我正在查看我的内核配置设置:CONFIG_SECCOMP,CONFIG_HAVE_ARCH_SECCOMP_FILTERCONFIG_SECCOMP_FILTER.

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

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

Gil*_*il' 6

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

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

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

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

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