3. CFG配置文件¶
LubanCat-RV06 的配置文件位于 SDK中的 project/cfg/BoardConfig_IPC
BoardConfig-SPI_NAND-NONE-RV1106_LubanCat-RV06.mk
配置文件的命名规则如下:
BoardConfig-"启动介质"-"电源方案"-"硬件版本"-"应用场景".mk
警告
如果文件名前带了 . 则表示隐藏文件,不会被编译系统识别,在使用 ./build.sh lunch时不会被显示出来
3.1. 配置文件解析¶
这里以 BoardConfig-SPI_NAND-NONE-RV1106_LubanCat-RV06.mk
为例进行解析,
其他更详细的配置可以参考 project/cfg/BoardConfig_IPC/.*mk
的文件以及
project/cfg-all-items-introduction.txt
#!/bin/bash
# Target arch
export RK_ARCH=arm
# Target CHIP
export RK_CHIP=rv1106
# Target rootfs: buildroot/busybox
export RK_TARGET_ROOTFS=buildroot
# Target Toolchain Cross Compile
export RK_TOOLCHAIN_CROSS=arm-rockchip830-linux-uclibcgnueabihf
# Target boot medium: emmc/spi_nor/spi_nand
export RK_BOOT_MEDIUM=spi_nand
# Uboot defconfig
export RK_UBOOT_DEFCONFIG=rv1106_defconfig
# Uboot defconfig fragment
export RK_UBOOT_DEFCONFIG_FRAGMENT=rk-sfc.config
# Kernel defconfig
export RK_KERNEL_DEFCONFIG=rv1106_lbc_defconfig
# Kernel dts
export RK_KERNEL_DTS=rv1106g-lubancat-rv06.dts
# buildroot defconfig
export RK_BUILDROOT_DEFCONFIG=rv1106_lbc_rv06_defconfig
#misc image
export RK_MISC=wipe_all-misc.img
# Config sensor IQ files
# RK_CAMERA_SENSOR_IQFILES format:
# "iqfile1 iqfile2 iqfile3 ..."
# ./build.sh media and copy <SDK root dir>/output/out/media_out/isp_iqfiles/$RK_CAMERA_SENSOR_IQFILES
export RK_CAMERA_SENSOR_IQFILES="ov8858_HS5885-BNSM1018-V01_default.bin sc4336_OT01_40IRC_F16.bin sc3336_CMK-OT2119-PC1_30IRC-F16.bin sc530ai_CMK-OT2115-PC1_30IRC-F16.bin gc2093_SIDA209300461_60IRC_F20.bin"
# Config sensor lens CAC calibrattion bin files
export RK_CAMERA_SENSOR_CAC_BIN="CAC_sc4336_OT01_40IRC_F16 CAC_sc530ai_CMK-OT2115-PC1_30IRC-F16"
# Config CMA size in environment
export RK_BOOTARGS_CMA_SIZE="48M"
# config partition in environment
# RK_PARTITION_CMD_IN_ENV format:
# <partdef>[,<partdef>]
# <partdef> := <size>[@<offset>](part-name)
# Note:
# If the first partition offset is not 0x0, it must be added. Otherwise, it needn't adding.
# export RK_PARTITION_CMD_IN_ENV="256K(env),1M@256K(idblock),1M(uboot),5M(boot),160M(rootfs),48M(oem),32M(userdata)"
export RK_PARTITION_CMD_IN_ENV="256K(env),1M@256K(idblock),1M(uboot),5M(boot),248M(rootfs)"
# config partition's filesystem type (squashfs is readonly)
# emmc: squashfs/ext4
# nand: squashfs/ubifs
# spi nor: squashfs/jffs2
# RK_PARTITION_FS_TYPE_CFG format:
# AAAA:/BBBB/CCCC@ext4
# AAAA ----------> partition name
# /BBBB/CCCC ----> partition mount point
# ext4 ----------> partition filesystem type
# export RK_PARTITION_FS_TYPE_CFG=rootfs@IGNORE@ubifs,oem@/oem@ubifs,userdata@/userdata@ubifs
export RK_PARTITION_FS_TYPE_CFG=rootfs@IGNORE@ubifs
# config filesystem compress (Just for squashfs or ubifs)
# squashfs: lz4/lzo/lzma/xz/gzip, default xz
# ubifs: lzo/zlib, default lzo
# export RK_SQUASHFS_COMP=xz
# export RK_UBIFS_COMP=lzo
# app config
# export RK_APP_TYPE=RKIPC_RV1106
export RK_LVGL_APP_CONFIG=y
# build ipc web backend
export RK_APP_IPCWEB_BACKEND=n
# enable install app to oem partition
export RK_BUILD_APP_TO_OEM_PARTITION=n
# enable rockchip test
export RK_ENABLE_ROCKCHIP_TEST=y
# enable build wifi
export RK_ENABLE_WIFI_APP=n
export RK_ENABLE_WIFI=y
export RK_ENABLE_WIFI_CHIP=AIC8800D80
export RK_ENABLE_ADBD=y
# Config SPI NAND or SLC NAND
# RK_NAND_BLOCK_SIZE: block size (default 128 KB)
# RK_NAND_PAGE_SIZE: page size (default 2 KB)
export RK_NAND_BLOCK_SIZE=0x20000
export RK_NAND_PAGE_SIZE=2048
RK_ARCH
: arm或arm64: 定义编译32位或64位程序RK_CHIP
: 不可修改: 不同的芯片对应不同的SDKRK_TARGET_ROOTFS
: 目标文件系统,可以配置成buildroot
或者busybox
RK_TOOLCHAIN_CROSS
: 不可修改: 定义交叉工具链RK_BOOT_MEDIUM
: 启动介质,可以配置成emmc
或者spi_nor
或者spi_nand
或者sd_card
RK_UBOOT_DEFCONFIG
: Uboot 配置文件RK_UBOOT_DEFCONFIG_FRAGMENT
: Uboot 配置文件片段RK_KERNEL_DEFCONFIG
: 内核配置文件RK_KERNEL_DTS
: 内核设备树RK_BUILDROOT_DEFCONFIG
: Buildroot 配置文件RK_MISC
: misc imageRK_CAMERA_SENSOR_IQFILES
: Camera Sensor的IQ配置文件: 多个IQ文件用空格隔开RK_CAMERA_SENSOR_CAC_BIN
: Camera Module Lens 的去紫边(CAC)标定文件夹:多个bin文件可以用空格隔开RK_BOOTARGS_CMA_SIZE
: CMA 大小RK_PARTITION_CMD_IN_ENV
: 配置分区表(重要),分区表格式:<partdef>[,<partdef>]<partdef>格式:<size>[@<offset>](part-name)RK_PARTITION_FS_TYPE_CFG
: 配置分区文件系统类型以及挂载点(重要)格式说明:分区名称@分区挂载点@分区文件系统类型RK_SQUASHFS_COMP
: SquashFS 压缩算法RK_UBIFS_COMP
: UBIFS 压缩算法RK_APP_TYPE
: 应用类型,可以配置成RKIPC_RV1106
,就会使用官方的demoRK_LVGL_APP_CONFIG
: 配置lvgl
应用,开启后,系统就会启动lvgl_app
应用RK_APP_IPCWEB_BACKEND
: 配置是否编译ipcweb
后端RK_BUILD_APP_TO_OEM_PARTITION
: 配置是否将应用安装到 oem 分区RK_ENABLE_ROCKCHIP_TEST
: 配置是否编译 rockchip 测试应用RK_ENABLE_WIFI_APP
: 配置是否编译 wifi 应用RK_ENABLE_WIFI
: 配置是否使能 wifiRK_ENABLE_WIFI_CHIP
: 配置 wifi 芯片RK_ENABLE_ADBD
: 配置是否使能 adbRK_NAND_BLOCK_SIZE
: NAND 块大小RK_NAND_PAGE_SIZE
: NAND 页大小
3.2. 选择配置文件¶
需要运行下面命令选择配置文件
./build.sh lunch
运行结果如下
(base) root@dev135:~/rv1106/rv1106_ipc_linux# ./build.sh lunch
ls: cannot access 'BoardConfig*.mk': No such file or directory
You're building on Linux
Lunch menu...pick a combo:
BoardConfig-*.mk naming rules:
BoardConfig-"启动介质"-"电源方案"-"硬件版本"-"应用场景".mk
BoardConfig-"boot medium"-"power solution"-"hardware version"-"application".mk
----------------------------------------------------------------
0. BoardConfig_IPC/BoardConfig-SD_CARD-NONE-RV1106_LubanCat-RV06.mk
boot medium(启动介质): SD_CARD
power solution(电源方案): NONE
hardware version(硬件版本): RV1106_LubanCat
application(应用场景): RV06
----------------------------------------------------------------
----------------------------------------------------------------
1. BoardConfig_IPC/BoardConfig-SPI_NAND-NONE-RV1106_LubanCat-RV06.mk
boot medium(启动介质): SPI_NAND
power solution(电源方案): NONE
hardware version(硬件版本): RV1106_LubanCat
application(应用场景): RV06
----------------------------------------------------------------
当选择了配置文件后,就会在SDK的根目录下生成 .BoardConfig.mk
文件,这个文件就是编译时会直接使用的配置文件