RK3588 SDK入门之编译使用篇

描述


 

前言:

        在上一篇文章中,我们已经配置好了Ubuntu虚拟机。本期将重点介绍如何Ubuntu虚拟机中使用RK3588的SDK。具体内容包括SDK的下载与安装、环境变量的配置、以及编译调试的步骤和注意事项。通过这篇文章,你将能够快速掌握在虚拟机中高效使用RK3588 SDK的关键技巧,为后续的开发工作打下坚实基础。

 

编译

图1 EVM-RK3588 评估板外观(正面)

 

一、编译环境
 

 1.1  编译环境注意事项

        如无特别说明,本文档所有操作均基于1.2节硬件、软件环境下完成。本文档操作不需要使用 root 用户,配置编译环境安装软件使用 sudo 即可。在 ubuntu18.04下,将 android 源码拷贝、下载到当前用户目录下,拷贝、下载、解压、编译源码均在普通用户下执行。请勿使用 root 用户或者 sudo 命令拷贝、下载、解压、编译源码,否则可能会导致编译出错。特别说明:不能放在虚拟机的共享文件夹中编译!!!

 1.2  编译环境要求
        SDK 开发环境是在 Ubuntu 系统上开发与测试。我们推荐使用 Ubuntu18.04 的系统进行编译。其他的 Linux 版本可能需要对软件包做相应调整。
        硬件要求:64 位系统,硬盘空间大于50G。如果您进行多个构建,将需要更大的硬盘空间。
        软件要求:Ubuntu 18.04 系统
 1.3  编译环境配置
        编译 SDK 环境搭建所依赖的软件包安装命令下: 
 

  •  
  •  
  •  
  •  
  •  

sudo apt-get install repo git ssh make gcc libssl-dev liblz4-tool \expect g++ patchelf chrpath gawk texinfo chrpath diffstat binfmt-support \qemu-user-static live-build bison flex fakeroot cmake gcc-multilib g++-multilibunzip \device-tree-compiler python-pip ncurses-dev pyelftools \

        建议使用 Ubuntu18.04 系统或更高版本开发,若编译遇到报错,可以视报错信息,安装对应的软件包。

二、源码获取与解压

 2.1  源码获取        

源码通常由我司相关人员发布在网盘,百度网盘发布的还包括使用文档、镜像、工具等,网盘上的源码包是基础包,后续将持续更新(若需要请联系我司)。将源码拷贝到 ubuntu 18.04 当前登录用户目录或新建 sdk 目录下。

 2.2  源码解压

        执行解压命令:

  •  

$ tar -xvf sdk/ talowe-evmrk3588-linux-**.tar.gz # 解压

        解压完成后进入 sdk 后可以看到:
 

编译

图2-1-sdk 目录下的文件


 

        sdk 目录说明:

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

SDK├──app:#存放上层应用 APP,主要是 qcamera/qfm/qplayer/qseting 等一些应用程序。├──buildroot:#基于 Buildroot(2018.02-rc3)开发的根文件系统。├──debian:#基于 debian 10 开发的根文件系统,支持部分芯片。├──device/rockchip:#存放各芯片板级配置以及一些编译和打包固件的脚本和预备文件。├──docs:#存放开发指导文件、平台支持列表、工具使用文档、Linux 开发指南等。├──IMAGE:#存放每次生成编译时间、XML、补丁和固件目录。├──external:#存放第三方相关仓库,包括音频、视频、网络、recovery 等。├──kernel:#存放 Kernel 4.19 开发的代码。├──linux_rootfs:#用于存放 Linux 根文件系统(Root File System)的相关文件和配置├──lz4:#用于存放与 LZ4 压缩算法相关的文件和工具。├──prebuilts:#存放交叉编译工具链。├──recovery:#用于存放恢复系统用的恢复环境文件。├──rkbin:#存放 Rockchip 相关 Binary 和工具。├──rockdev:#存放编译输出固件。├──tools:#存放 Linux 和 Window 操作系统下常用工具。├──u-boot:#存放基于 v2017.09 版本进行开发的 U-Boot 代码。└──uefi:#存放与 Unified Extensible Firmware Interface (统一可扩展固件接口,简称 UEFI)相关的文件和工具。

 

三、 Buildroot (Linux)系统编译无论最后要使用什么系统,都请先全局编译一次 buildroot,之后再进行其他系统的编译,以避免出现需要某个依赖的工具找不到的情况。以下操作,若无特殊说明,均在 SDK 根目录下进行。

 3.1  全局编译
    环境资源配置,再 SDK 目录下输入 source envsetup.sh,选择 11 :

编译

图3-1-选择环境组合
 

        选择完成后,进行首次编译,执行全局编译,命令如下:
 

  •  

$ ./build.sh # 全局编译,编译 uboot、kernel、recovery

        编译成功后将会在 sdk/linux/rockdev/目录下生成如下镜像文件。

  •  

$ ls rockdev/ #查看该目录下的文件

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

MiniLoaderAll.bin #引导 uboot、检测启动方式parameter.txt #系统分区表、内核传参uboot.img #引导系统分区trust.img #ARM TrustZone 特性分区misc.img #记录 recovery 升级信息boot.img #内核、设备树、logo 分区
recovery.img #恢复还原分区rootfs.img #根文件系统分区oem.img #存放 OEM 资源分区update-***.img #带日期后缀的完整固件 用于整包烧写

        至此全局编译完成,可使用上述生成的整包固件烧写到板子内为板子添加系统。
      在实际的SDK运用中还会使用到单独编译uboot、kernal、buildroot等等操作,下面向大家简单介绍一下相关操作。
 3.2  单独编译uboot
        执行命令:
 

  •  

./build.sh u-boot

        生成镜像路径:u-boot/
        生成镜像:uboot.img、trust.img 等
 3.3  单独编译kernal
        执行命令:
 

  •  

./build.sh kernel

        生成镜像路径:rockdev/
        生成镜像:boot.img
 3.4  单独编译buildroot
        编译完 buildroot 完成后会自动编译 rootfs
 

  •  

./build.sh buildroot

        生成镜像路径:rockdev/
        生成镜像:rootfs.img
 3.5  单独编译recovery
 

  •  

./build.sh recovery

 3.6  单独编译buildroot应用
        sdk 可以单独编译 buildroot 的单个应用设置单个模块,比如单独编译QFacialGate 应用.。
 

  •  

$ make qcamera -dirclean && make qcamera -rebuild -j8

        单独编译 rkwifibt
 

  •  

$ make rkwifibt-dirclean && make rkwifibt-rebuild -j8

 

四、使用完结

 

通过本篇内容,主要是向大家展示RK3588的SDK相关编译过程,在编译过程中,若是遇到一些错误,可以跟我们技术支持取得联系获取解决方案。

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分