如何跟踪 linux 内核配置更改?

How to track linux kernel configuration changes?

我正在开发 linux 内核模块,想跟踪我的内核 配置更改(例如启用其他模块、激活动态调试等)以供将来参考。

git add .config 感觉不对。

有更好的方法吗?

为您的开发板(硬件)添加新的 defconfig。

路径:arch/arm/configs/ 用于 ARM 架构。

您可以通过 make menuconfig -> Save 添加新的。要应用您自己的配置,只需 运行 make your_board_defconfig

.config 在 Git 下是个坏主意,正如您正确提到的那样(主要是因为它在 make distclean 之后消失了,所以这个解决方案不可生产)。另外,如果您已经有 defconfig 文件用于您的电路板,您不应该再创建一个,这可能被认为是不好的做法。

而是查看 scripts/kconfig/merge_config.sh 脚本。您可以创建自己的配置文件,它只包含对某些现有 defconfig 文件的更改,然后将您的这个文件与您正在使用的一些基本 defconfig 文件合并。

例如,查看 TI kernel branch,他们只是创建另一个目录 (ti_config_fragments/),其中包含配置块和脚本以生成最终的 .config 文件。

另一种使用 merge_config.sh 脚本的方法是为您的体系结构修改 Makefile,添加一些新规则以将您的配置片段合并到现有的 .config 文件中,就像为kvmconfig 规则在 arch/x86/Makefile.

无论如何,主要思想是将您的配置增量保存在单独的文件中(在 arch/.../configs/ 中的某处或在全新的目录中),然后将您的配置片段与现有的 .config 文件(即通常从一些 defconfig 文件生成)。当然,您可以在 Git.

下跟踪您的配置片段文件