当我使用更改的配置(从)重建内核时,该文件/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
; 由自定义内核开发人员提供的一种。
在发布这个问题之前,我应该做更多的研究,但我想可能是我遗漏了一些东西。作为参考,问题显示特定于我的内核源。自定义内核开发人员应用了一个补丁以始终在内核二进制文件中包含较旧的配置。所以这应该被撤消(考虑到风险,如果有的话):
产生的内核选项
/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/[email protected]/如果您的内核编译过程使用这样的命令(上面链接的 Linux-ARM-Kernel 列表帖子中提到的示例)
那么这些文件确实被使用了。并
android-base.config
包括将CONFIG_IKCONFIG
和设置CONFIG_IKCONFIG_PROC
为y
。你确定你的工具链没有做类似的事情吗
在真正开始构建内核之前?