当我使用更改的配置(来自 )重建内核时,该文件/proc/config.gz
不会更新make menuconfig
。例如,我重建了内核,BLK_DEV_IO_TRACE
它工作正常,但config.gz
仍然显示# CONFIG_BLK_DEV_IO_TRACE is not set
.该.config
文件不是在我们启用时包含在内核二进制文件中的内核源代码的根目录中吗CONFIG_IKCONFIG
?
顺便说一句,事实config.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
config.gz
显示Linux/arm64 3.18.71 Kernel Configuration
当前为Linux/arm64 3.18.140 Kernel Configuration
。而且它实际配置和*defconfig
与arch/arm64/configs/
.config.gz
.最初我用的是arch/arm64/configs/franco_mido_defconfig
;由定制内核开发人员提供的。
答案1
在发布这个问题之前我应该做更多的研究,但我想我可能遗漏了一些东西。作为参考,该问题表明该问题特定于我的内核源代码。定制内核开发人员应用了修补始终在内核二进制文件中包含较旧的配置。所以这应该被撤消(考虑到风险,如果有的话):
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
答案2
生成的内核选项/proc/config.gz
是 IKCONFIG_PROC,而不仅仅是 IKCONFIG。并且 IKCONFIG_PROC 不能是模块。
另外,请注意有kernel/configs/android-base.config
和kernel/configs/android-recommended.config
。这些可用于覆盖某些内核配置设置,请参阅https://lore.kernel.org/linux-arm-kernel/[电子邮件受保护]/
如果您的内核编译过程使用这样的命令(上面链接的 Linux-ARM-Kernel 列表帖子中提到的示例)
make ARCH=arm multi_v7_defconfig android-base.config android-recommended.config
那么这些文件确实正在被使用。并android-base.config
包括将CONFIG_IKCONFIG
和设置CONFIG_IKCONFIG_PROC
为y
。
你确定你的工具链没有做类似的事情吗
make ARCH=arm <oldconfig or some other config target> android-base.config
在真正开始构建内核之前?