● rk3566_r 的内核 defconfig 绑定链路
通过以下 3 层 mk 文件叠加决定:
第1层:rk356x/BoardConfig.mk(第26行)— 基座
PRODUCT_KERNEL_CONFIG ?= rockchip_defconfig
→ 对应文件:kernel/arch/arm64/configs/rockchip_defconfig
第2层:rk3566_r/BoardConfig.mk — 未覆盖
rk3566_r 没有重新赋值 PRODUCT_KERNEL_CONFIG,所以沿用基座的 rockchip_defconfig。
第3层:common/BoardConfig.mk(第72-84行)— 追加 fragment
BUILD_WITH_GO_OPT ?= false # 第72行,rk3566_r 设为了 false
ifeq ($(BUILD_WITH_GO_OPT), true)
PRODUCT_KERNEL_CONFIG += android-11-go.config # GO 版本
else
PRODUCT_KERNEL_CONFIG += android-11.config # ← rk3566_r 走这条
endif
# user 版本额外追加
ifeq ($(TARGET_BUILD_VARIANT), user)
PRODUCT_KERNEL_CONFIG += non_debuggable.config
endif
最终结果
┌────────────────────┬────────────────────────────────────────────────────────────────┐
│ 编译变体 │ 实际使用的 defconfig │
├────────────────────┼────────────────────────────────────────────────────────────────┤
│ rk3566_r-userdebug │ rockchip_defconfig + android-11.config │
├────────────────────┼────────────────────────────────────────────────────────────────┤
│ rk3566_r-user │ rockchip_defconfig + android-11.config + non_debuggable.config │
└────────────────────┴────────────────────────────────────────────────────────────────┘
编译时通过 scripts/kconfig/merge_config.sh 将 base + fragment 合并为 .config,实际对应的内核源码路径是:
kernel/arch/arm64/configs/rockchip_defconfig