瑞芯微Rockchip开发者社区
直播中

维生素B2

12年用户 952经验值
私信 关注
[问答]

怎样去搭建基于rk3288的android(和linux)平台软件运行环境呢

怎样去搭建基于rk3288的android(和linux)平台软件运行环境呢?有哪些搭建步骤呢?

回帖(1)

陈逸群

2022-3-9 11:25:31
搭建开发环境

       开发一套设备的程序,一般官方会有一套sdk。Rk3288开发android,瑞星微官方提供了开发的sdk。SDK的编译需要运行在Linux的操作系统上。

      所以和其他linux之类的平台一样。为了开发linux这种基础语言,需要搭建对应linux操作系统,而众多开发者是使用的Windows系统。此时我们需要在windows系统中安装Linux的运行环境,这里搭建虚拟机,加载一个linux系统。

当前选用的linux操作系统为ubantu,下面为具体搭建步骤如下:

虚拟机和操作系统下载

这里我们使用的虚拟机是VMware Workstation 15 Player.软件下载地址如下:

https://www.vmware.com/cn.html)。

ubuntu下载地址 http://mirrors.aliyun.com/ubuntu-releases/16.04/

如下图安装好VMware软件后即可进行ubuntu的安装了。
                                

安装ubuntu

如上图点击右边创建虚拟机按钮。
                                       

然后添加ubuntu镜像后,点击下一步即可。
                                          

设置Linux 的用户信息后,点击下一步。
                                       

设置虚拟机的位置,选定后,点击下一步继续设置。                                                

由于SDK所占存储比较大,这里设置磁盘容量为200G.
                           

点击完成即可进行 Ubuntu的安装了。



  • 安装软件依赖包


SDK开发环境的搭建需要根据Linux的版本进行调整,我们使用的是Ubuntu16.04的系统进行SDK的编译的,需要安装以下软件。

安装SDK编译所需依赖包:

      其他版本的系统编译时需要根据编译的LOG进行对应软件的安装(编译时出错,一般为复制时中间的空格问题)。



     
     sudo apt-get install git gcc-arm-linux-gnueabihf u-boot-tools device-tree-compiler mtools parted libudev-dev libu***-1.0-0-dev python-linaro-image-tools linaro-image-tools libssl-dev autotools-dev libsigsegv2 m4 libdrm-dev curl sed make binutils build-essential gcc g++ bash patch gzip bzip2 perl tar cpio python unzip rsync file bc wget libncurses5 libglib2.0-dev openssh-client

   

由于开发android需要java的环境支持,所以这里安卓5.1的编译需要安装JDK7

              sudo apt-get install openjdk-7-jdk
配置环境变量

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
SDK下载及编译

SDK下载

        RK3288 Android5.1 SDK的获取有2种方式。直接向Rockchip公司的技术窗口申请SDK的授权密钥,然后使用密钥通过git来下载。或者联系Rockchip的供应商获取SDK代码的网盘下载权限,直接通过网盘下载。SDK完成编译差不多占用100GB存储空间,在分配虚拟机磁盘的时候需要注意。

SDK git下载指令如下,此种方式需要Rockchip授权的密钥。

repo init --repo-url ssh://git@www.rockchip.com.cn/repo/rk/tools/repo

-u ssh://git@www.rockchip.com.cn/repo/rk/platform/manifest -b android-5.1

-m rk3288_lollipop_release

SDK 目录结



                     .. (up a dir)         /home/kane/RK_Android_SDK/         |+abi/         |+art/         |+bionic/         |+bootable/         |+build/         |+cts/         |+dalvik/         |+developers/         |+development/         |+device/         |+docs/         |+external/         |+frameworks/         |+hardware/         |+kernel/         |+libcore/         |+libnativehelper/         |+ndk/         |+out/         |+packages/         |+pdk/         |+prebuilts/         |+RKDocs/         |+rkst/         |+RKTools/         |+rockdev/         |+sdk/         |+system/         |+tools/         |+u-boot/         |+vendor/         |-build.sh*         |-buildspec.mk         |-Makefile         |-manifest.xml*         `-mkimage.sh*        

SDK 编译

整个SDK的编译分为3部分 uboot、kernel、 Android。

Uboot的编译

RK3288的uboot是使用的DM(Driver Model)进行设备和驱动的管理的。uboot启动的第一阶段使用的是uboot內部的最简DTB只加载基础模块,第二阶段读取内核的DTB加载相应的硬件驱动。所以uboot的config无需改动。开发者只需根据硬件资源定制好内核的设备树文件及内核配置文件即可。Uboot这里采用RK的默认配置文件即可

在终端上执行命令

cd u-boot

make rk3288_defconfig

make

完成编译后再uboot目录下产生 rk3288_loader_xxxx.bin uboot.img和 trust.img这三个文件。

Kernel的编译

kernel的编译需要根据实际的硬件信息进行设备树的编译和内核config文件的编写。以RK3288原厂的EVB样机为例,

cd kernel

make ARCH=arm rocckchip_defconfig

make ARCH=arm rk3288-evb-android-rk808-edp-avb.img -j8

这里的 rockchip_defconfig 为RK3288的默认内核配置,我们可以根据自己的实际情况进行删减和添加。

第二条指令就是以设备树文件 rk3288-evb-android-rk808-edp-avb.dts进行内核镜像的编译。

完成以上的编译后内核目录会产生 kernel.img resource.img两个镜像文件。

Android的编译

在SDK目录下执行配置环境变量的命令

Source build.sh

make -j4

安卓的编译耗时比较长,此时只需等待其编译完成即可。安卓编译的过程中可能会出现报错一般情况是缺少对应的工具此时根据错误代码安装相应的软件即可。

完成安卓的编译后执行脚本 mkimages.sh,

固件将会复制到在 rockdev/Image-rk3288目录下。

固件的下载
                                       

       下载软件在官方sdk里面有。打开对应工具后,将硬件的u*** otg口接到电脑上,将板子的模式设置成 loader或者maskrom模式后即可通过Android开发工具完成下载。

总结

      要完成上述功能,可以搭建rk3288的开发环境。上述的编译和烧录只是粗劣描述,具体见后续核心板出来时,做具体开发时对应文档。

      
举报

更多回帖

发帖
×
20
完善资料,
赚取积分