为什么“/proc/config.gz”显示配置错误?

Irf*_*tif 5 configuration cross-compilation android linux-kernel

/proc/config.gz当我使用更改的配置(来自make menuconfig)重建内核时,文件不会更新。例如,我重建了内核,BLK_DEV_IO_TRACE它运行良好,但config.gz仍然显示# CONFIG_BLK_DEV_IO_TRACE is not set. .config当我们启用时,内核二进制文件中包含的内核源代码根目录中的文件不是CONFIG_IKCONFIG吗?

和BTWconfig.gz显示CONFIG_IKCONFIG=y,而在实际它是CONFIG_IKCONFIG=m

我正在使用 Android NDK 独立 GCC 工具链来构建这个内核(3.18 arm64)。

笔记:

只是为了澄清,因为它会引起混乱,我确定我的新内核正在以新配置运行。我已经启用了对我的默认配置的一长串更改,这些更改现在正在运行,许多用户空间程序依赖于这些配置:

CONFIG_IKCONFIG=m
CONFIG_IKCONFIG_PROC=y
CONFIG_VETH=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_NFS_FS=m
CONFIG_NFS_V2=m
CONFIG_NFS_V3=m
CONFIG_NFS_V4=m
CONFIG_NFS_V4_1=y
CONFIG_NFS_V4_2=y
CONFIG_NFSD=m
CONFIG_NFSD_V3=y
CONFIG_NFSD_V4=y
CONFIG_NFSD_V4_SECURITY_LABEL=y
CONFIG_KEYS_DEBUG_PROC_KEYS=y
CONFIG_OVERLAY_FS=m
CONFIG_UTS_NS=y
CONFIG_USER_NS=y
CONFIG_PID_NS=y
CONFIG_NET_CLS_CGROUP=m
CONFIG_CGROUP_NET_CLASSID=y
CONFIG_NETFILTER_XT_MATCH_CGROUP=m
CONFIG_NETFILTER_NETLINK=m
CONFIG_ISO9660_FS=m
CONFIG_SQUASHFS=m
CONFIG_UDF_FS=m
CONFIG_UNIX_DIAG=m
CONFIG_PSTORE=y
CONFIG_FANOTIFY=y
CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
CONFIG_DEBUG_FS=y
CONFIG_FTRACE=y
CONFIG_BLK_DEV_IO_TRACE=y
Run Code Online (Sandbox Code Playgroud)

config.gzLinux/arm64 3.18.71 Kernel Configuration当电流为 时显示Linux/arm64 3.18.140 Kernel Configuration此外,它不与任何16个相匹配*defconfig的文件arch/arm64/configs/实际配置和config.gz. 最初我使用arch/arm64/configs/franco_mido_defconfig; 由自定义内核开发人员提供的一种。

Irf*_*tif 3

在发布这个问题之前我应该​​做更多的研究,但我想我可能遗漏了一些东西。作为参考,该问题表明该问题特定于我的内核源代码。自定义内核开发人员应用了补丁以始终在内核二进制文件中包含较旧的配置。所以这应该被撤消(考虑到风险,如果有的话):

ifeq ($(CONFIG_MACH_XIAOMI_MIDO),y)
    $(obj)/config_data.gz: arch/arm64/configs/mido_defconfig FORCE
else ifeq ($(CONFIG_MACH_XIAOMI_TISSOT),y)
    $(obj)/config_data.gz: arch/arm64/configs/tissot_defconfig FORCE
else
    $(obj)/config_data.gz: $(KCONFIG_CONFIG) FORCE
endif
Run Code Online (Sandbox Code Playgroud)