使 oldconfig 覆盖 .config 中的值

make oldconfig overwriting value in .config

我正在尝试编译 linux 内核并使用自定义 .config 文件。

所以我将 .config 复制到我的内核源所在的文件夹,然后 运行 "make oldconfig" 在文件上查看是否遗漏了任何内容。但是,这样做似乎会将我的一些值修改回我编辑它们之前的值:

< CONFIG_TRACEPOINTS=y
---
> CONFIG_TRACEPOINTS=n
< # CONFIG_DEBUG_RODATA is not set
< # CONFIG_DEBUG_SET_MODULE_RONX is not set
---
> CONFIG_DEBUG_RODATA=n
> CONFIG_DEBUG_SET_MODULE_RONX=n

如何让 oldconfig 保留修改后的值?

谢谢

通常内核配置选项依赖于其他配置选项。因此,即使您禁用了一个配置选项,因为它被其他某个配置选项启用,它也会在您执行 make oldconfig

后恢复到其原始值

CONFIG_TRACEPOINTS 的情况下,它取决于或由其他几个标志设置 TRACING [=y] || BLK_DEV_IO_TRACE [=y] && TRACING_SUPPORT [=y] && FTRACE [=y] && SYSFS [=y] && BLOCK [=y]

尝试将它们一一设置为 =nCONFIG_TRACEPOINTS=n 并在执行 make oldconfig 后看看它是否持久。对我来说,设置 CONFIG_FTRACE=n 有效

如何找到依赖。 运行 make menuconfig。按 / 搜索配置选项并查看 Selected by。这些是也在设置您的配置选项的配置标志。查看它们旁边的当前值。例如在上面你可以看到 TRACING_SUPPORT 设置为 y