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: 不可修改: 不同的芯片对应不同的SDK

  • RK_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 image

  • RK_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 ,就会使用官方的demo

  • RK_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: 配置是否使能 wifi

  • RK_ENABLE_WIFI_CHIP: 配置 wifi 芯片

  • RK_ENABLE_ADBD: 配置是否使能 adb

  • RK_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 文件,这个文件就是编译时会直接使用的配置文件