rk3399 SDK做的很完善了,里面直接有一个build.sh的脚本。脚本的某一处如下:
RK_CFG_BUILDROOT板端的配置变量,在哪赋值的了,就是.BoardConfig.mk
!/bin/bash
# Target arch
export RK_ARCH=arm64
# Uboot defconfig
export RK_UBOOT_DEFCONFIG=rk3399
# Kernel defconfig
export RK_KERNEL_DEFCONFIG=alpix_rk3399_linux_defconfig
# Kernel dts
export RK_KERNEL_DTS=rk3399-alpix-linux
# boot image type
export RK_BOOT_IMG=boot.img
# kernel image path
export RK_KERNEL_IMG=kernel/arch/arm64/boot/Image
# parameter for GPT table
export RK_PARAMETER=parameter.txt
# Buildroot config
export RK_CFG_BUILDROOT=rockchip_rk3399 //就是这个配置文件
# Debian 10 config
export RK_DISTRO_DEFCONFIG=rk3399_defconfig
# Recovery config
export RK_CFG_RECOVERY=rockchip_rk3399_recovery
# ramboot config
export RK_CFG_RAMBOOT=
# Pcba config
export RK_CFG_PCBA=rockchip_rk3399_pcba
# Build jobs
export RK_JOBS=12
# target chip
export RK_TARGET_PRODUCT=rk3399
# Set rootfs type, including ext2 ext4 squashfs
export RK_ROOTFS_TYPE=ext4
# yocto machine
export RK_YOCTO_MACHINE=rockchip-rk3399-sapphire-excavator
# rootfs image path
export RK_ROOTFS_IMG=rockdev/rootfs.${RK_ROOTFS_TYPE}
# Set oem partition type, including ext2 squashfs
export RK_OEM_FS_TYPE=ext2
# Set userdata partition type, including ext2, fat
export RK_USERDATA_FS_TYPE=ext2
#OEM config
export RK_OEM_DIR=oem_normal
#userdata config
export RK_USERDATA_DIR=userdata_normal
#misc image
#export RK_MISC=wipe_all-misc.img
export RK_MISC=blank-misc.img
#choose enable distro module
export RK_DISTRO_MODULE=
.BoardConfig.mk其实软连接到你自己在rk3399下面这个文件夹下的配置文件
由上面的第二张截图里的build_buildroot函数可知,接下来会执行mk-buildroot.sh ,路径如下:
看看mk-buildroot.sh里面的内容:
主要就是执行这条语句,source $TOP_DIR/buildroot/build/envsetup.sh $RK_CFG_BUILDROOT。
根目录的envsetup.sh是软链接的
最后其实配置文件就是rockchip_rk3399_defconfig这个文件,内容如下:
另外说一个make menuconfig.buildroot以及其子文件夹下的Config.in文件构成了menuconfig界面的各个菜单项及其选项,网上的分析很多,这就不写了。