Linux 使oldconfig覆盖.config中的值

Linux 使oldconfig覆盖.config中的值,linux,linux-kernel,makefile,Linux,Linux Kernel,Makefile,我正在尝试编译linux内核并使用一个自定义的.config文件 因此,我将.config复制到内核源所在的文件夹中,并在该文件上运行“makeoldconfig”,查看是否缺少任何内容。但是,这样做似乎会将我的一些值修改回编辑它们之前的状态: < CONFIG_TRACEPOINTS=y --- > CONFIG_TRACEPOINTS=n < # CONFIG_DEBUG_RODATA is not set < # CONFIG_DEBUG_SET_MODULE_RO

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

因此,我将.config复制到内核源所在的文件夹中,并在该文件上运行“makeoldconfig”,查看是否缺少任何内容。但是,这样做似乎会将我的一些值修改回编辑它们之前的状态:

< 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
配置跟踪点=n
<#未设置配置调试数据
<#配置调试设置模块未设置
---
>配置调试数据=n
>配置调试设置模块RONX=n
如何让oldconfig在修改值时保留这些值


谢谢

通常内核配置选项依赖于其他配置选项。因此,即使您禁用了一个配置选项,由于它被其他配置选项启用,在您执行
makeoldconfig

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

尝试将它们中的一个设置为
=n
以及
CONFIG\u TRACEPOINTS=n
并查看在执行
make oldconfig
后其是否持久。对于我来说,设置
CONFIG\u FTRACE=n
工作正常


如何找到依赖关系。运行
makemenuconfig
。按
/
搜索配置选项并查看
选择的
。这些是同时设置配置选项的配置标志。查看它们旁边的当前值。例如,您可以看到
TRACING\u SUPPORT
设置为
y

do
make menuconfig
,复制
.config
,然后再次执行
make menuconfig
当我复制文件时,运行oldconfig,修改值并再次运行oldconfig,它执行我上面写的操作。只有这三个值被更改。我也尝试过运行make mrproper,但没有成功。您是否在
.CONFIG
中手动设置了
CONFIG\u TRACEPOINTS=n
?是的。当我运行oldconfig时,它会将其更改回CONFIG_TRACEPOINTS=y。我不需要通过menuconfig来完成,是吗?我认为这就是oldconfig的要点,它基于旧的更改。configTry使其
。\CONFIG\u跟踪点未设置。。我从来没有见过像CONFIG\u TRACEPOINTS=n这样的东西,是的,看起来是CONFIG\u FTRACE对我的依赖。谢谢