前言:
在上一篇文章中,我们已经配置好了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相关编译过程,在编译过程中,若是遇到一些错误,可以跟我们技术支持取得联系获取解决方案。
全部0条评论
快来发表一下你的评论吧 !