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


    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支持的命令,如下所示。

    SDK1.png

    • -h可查看各部分模块的详细编译命令,例如:./build.sh-h kernel可以查看单独编译内核的详细步骤,详细信息将在后续章节逐一介绍。

    3.2      整体编译操作

    SDK支持单独编译以及整体编译,单独编译。单独编译在下面独立章节会详细介绍,此处先介绍整体编译方法。步骤如下:

    ·  选择默认配置,./build.sh lunch,选择第5个配置(rk3568评估套件)

    SDK2.png

    ·  执行编译操作,./build.sh all

    ·  执行打包操作,./mkfirmware.sh

    ·  等待编译完成获取编译固件

    具体操作命令如下:

    ./build.shBoardConfig-rk3568-evb1-ddr4-v10.mk

    ./build.shall

    ./mkfirmware.sh

    编译到内核阶段时,第一次编译需要对电源域进行判断,这里全部选择第2个3300000,如下图所示:

    SDK3.png

    得到的编译固件路径为SDK包根目录下的rockdev目录,如下所示。

    SDK4.png

    然后再更新万象提供的光盘资料出厂镜像中的对应固件即可,如下所示。

    SDK5.png

    rockdev目录内的烧录文件实际是把各个组成部分的编译结果链接到此目录,各个编译结果的链接情况如下所示。

    SDK6.png

    图3.1 rockdev目录内容

    所以各个组成部分的来源如下所示。

    来源

    文件

    描述

    Uboot

    MiniLoaderAll.bin

    引导文件

    uboot.img

    uboot代码主体

    Kernel

    boot.img

    kernel代码主体

    Buildroot

    recovery.img

    来源于buildroot

    rootfs.ext4

    这两个文件为同一个文件,为buildroot代码主体

    rootfs.img

    杂项

    misc.img

    来自rockchip的自定义文件

    oem.img

    oem分区的固件镜像

    parameter.txt

    参数保存文件,由原厂定义

    userdata.img

    用户空间的固件镜像

    3.3       部分编译操作

    3.3.1  配置SDK

    ./build.shBoardConfig-rk3568-evb1-ddr4-v10.mk

    3.3.2  编译kernel

    ./build.sh kernel

    3.3.3  编译rootfs

    ./build.sh rootfs

    3.3.4  打包update.img

    ./build.sh updateimg

  • 相关阅读:
    文本四字节unicode解析出错
    【C++项目】高并发内存池第六讲 当申请内存大于256K时的处理
    本地跟单EA安装教程详解
    UE4 虚幻引擎 GitSourceControl源码解析
    设置Windows主机的浏览器为wls2的默认浏览器
    标准化研究院云迁移相关能力要求发布,万博智云参与能力要求和白皮书编写
    GitHub标星65k,阿里面试核心技术手册,我不允许还有人没看过!
    与大语言模型Transformer的奇妙旅程
    华为云ECS随时获取资源,企业功成在云间
    UE5读取json文件
  • 原文地址:https://blog.csdn.net/m0_62877454/article/details/133312585