瑞芯微RK3568|SDK开发之环境安装及编译操作

2023年09月26日 16:14    发布者:武汉万象奥科
1. SDK简介一个通用 Linux SDK 工程目录包含有buildroot、app、kernel、device、docs、external 等目录。其中一些特性芯片如RK3308/RV1108/RV1109/RV1126等,会有所不同。● app:存放上层应用 app,主要是 qcamera/qfm/qplayer/settings 等一些应用程序。● buildroot:基于 buildroot (2018.02-rc3) 开发的根文件系统。● device/rockchip:存放各芯片板级配置和Parameter文件,以及一些编译与打包固件的脚本和预备文件。● docs:存放芯片模块开发指导文档、平台支持列表、芯片平台相关文档、Linux开发指南等。● IMAGE:存放每次生成编译时间、XML、补丁和固件目录。● external:存放第三方相关仓库,包括音频、视频、网络、recovery 等。● kernel:存放 kernel 4.4 或 4.19 开发的代码。● prebuilts:存放交叉编译工具链。● rkbin:存放 Rockchip 相关的 Binary 和工具。● rockdev:存放编译输出固件。● tools:存放 Linux 和 Windows 操作系统环境下常用工具。
2. SDK环境安装本 SDK 开发环境是在Ubuntu 系统上开发测试。我们推荐使用 Ubuntu 18.04 的系统进行编译。其他的Linux 版本可能需要对软件包做相应调整。除了系统要求外,还有其他软硬件方面的要求。●硬件要求:64 位系统,硬盘空间大于40G。如果您进行多个构建,将需要更大的硬盘空间。●软件要求:Ubuntu 18.04 系统。 编译 SDK 环境搭建所依赖的软件包安装命令如下:
sudo apt-get installuuid uuid-dev zlib1g-dev liblz-dev liblzo2-2 liblzo2-dev git curl \u-boot-tools mtd-utilsandroid-tools-fsutils openjdk-8-jdk device-tree-compiler gdisk m4 \gnupg flex bison gperflibsdl1.2-dev libesd-java libwxgtk3.0-dev squashfs-tools \build-essential zipunzip libncurses5-dev pngcrush schedtool libxml2 libxml2-utils xsltproc \lzop libc6-devg++-multilib lib32z1-dev lib32ncurses5-dev lib32readline-dev gcc-multilib \libswitch-perllibssl-dev liblz4-tool gconf2 net-tools lib32ncurses5-dev tree vim gparted \g++ libyaml-devlibpython2.7-dev make libssl-dev lib32z1 p7zip-full python-pip libgmp-dev \libmpc-dev
建议使用 Ubuntu18.04 系统或更高版本开发,若编译遇到报错,可以查看报错信息,安装对应的软件包。 3. SDK整体编译3.1       查询操作在SDK目录下输入./build.sh -h可以得知SDK支持的命令,如下所示。
https://18821080.s21i.faiusr.com/4/ABUIABAEGAAg4ZbKqAYoyISW-QMwuQY4xAQ.png

[*]-h可查看各部分模块的详细编译命令,例如:./build.sh-h kernel可以查看单独编译内核的详细步骤,详细信息将在后续章节逐一介绍。
3.2      整体编译操作SDK支持单独编译以及整体编译,单独编译。单独编译在下面独立章节会详细介绍,此处先介绍整体编译方法。步骤如下:·  选择默认配置,./build.sh lunch,选择第5个配置(rk3568评估套件)https://18821080.s21i.faiusr.com/4/ABUIABAEGAAgtJfKqAYotsGO6gYw-gQ4tQI.png·  执行编译操作,./build.sh all·  执行打包操作,./mkfirmware.sh·  等待编译完成获取编译固件具体操作命令如下:./build.shBoardConfig-rk3568-evb1-ddr4-v10.mk./build.shall./mkfirmware.sh 编译到内核阶段时,第一次编译需要对电源域进行判断,这里全部选择第2个3300000,如下图所示:https://18821080.s21i.faiusr.com/4/ABUIABAEGAAgxJfKqAYomZeOhwYwyAU47QI.png 得到的编译固件路径为SDK包根目录下的rockdev目录,如下所示。 https://18821080.s21i.faiusr.com/4/ABUIABAEGAAg3JfKqAYo4pL-lAUwswU4TQ.png 然后再更新万象提供的光盘资料出厂镜像中的对应固件即可,如下所示。 https://18821080.s21i.faiusr.com/4/ABUIABAEGAAg65fKqAYo4qGIxAQwkAY4zAQ.pngrockdev目录内的烧录文件实际是把各个组成部分的编译结果链接到此目录,各个编译结果的链接情况如下所示。https://18821080.s21i.faiusr.com/4/ABUIABAEGAAg-ZfKqAYowPqknQUwuQY4qgE.png图3.1 rockdev目录内容所以各个组成部分的来源如下所示。


来源文件描述
UbootMiniLoaderAll.bin引导文件
uboot.imguboot代码主体
Kernelboot.imgkernel代码主体
Buildrootrecovery.img来源于buildroot
rootfs.ext4这两个文件为同一个文件,为buildroot代码主体
rootfs.img
杂项misc.img来自rockchip的自定义文件
oem.imgoem分区的固件镜像
parameter.txt参数保存文件,由原厂定义
userdata.img用户空间的固件镜像


3.3       部分编译操作3.3.1  配置SDK./build.shBoardConfig-rk3568-evb1-ddr4-v10.mk3.3.2  编译kernel./build.sh kernel3.3.3  编译rootfs./build.sh rootfs3.3.4  打包update.img./build.sh updateimg