通过 menuconfig 对内核进行配置,配置丢失的问题
RK35x8 的内核配置我们是进入 SDK 的 kernel 文件夹中执行make ARCH=arm64 menuconfig 进入内核的图形化配置界面进行配置,配置完成后保存退出配置界面,但是使用 SDK 提供的脚本
./build.sh kernel
或者
./build.sh
编译内核的时候;发现之前图形化界面配置的内核选项并没有生效
查找配置丢失的原因
./build.sh 脚本文件中 function build_kernel() 函数中的:
make ARCH=$RK_ARCH $RK_KERNEL_DEFCONFIG $RK_KERNEL_DEFCONFIG_FRAGMENT
会使用默认的 defconfig 重新生成 ./config 文件,会覆盖之前 图形化界面配置生成的 ./config ,导致图形化界面配置的生效。
解决方案
- 修改 ./build.sh
将其中function build_kernel()函数中的:
#make ARCH=$RK_ARCH $RK_KERNEL_DEFCONFIG $RK_KERNEL_DEFCONFIG_FRAGMENT 注释掉,使我们make ARCH=arm64 menuconfig 的配置不会被覆盖即可。

注意:注释这个之前需要先使用 ./build.sh 完成过源码全编译后操作,否则会缺少.config文件导致报错 - 使用图形化界面配置内核后,替换 defconfig 文件
- 首先备份一下默认的内核配置文件(可选操作)
mv arch/arm64/configs/rockchip_linux_defconfig arch/arm64/configs/rockchip_linux_defconfig_bk
- 修改完内核配置后保存内核配置选项菜单:
make ARCH=arm64 savedefconfig
- 保存后SDK根目录会生成defconfig文件,将新生成的 defconfig 替换原来的 defconfig:
cp defconfig arch/arm64/configs/rockchip_linux_defconfig
- 接着在SDK 根目录下编译内核:
./build.sh kernel