本文主要是开发rk3288的android(和linux)平台软件运行环境搭建描述文档。基于此文档,用户可以了解搭建开发环境目的,怎么搭建开发环境?
主要描述以下几个方面:
开发环境是什么,为什么要开发搭建?
开发环境搭建的步骤;
官方sdk下载和粗略编译和下载描述。
何为开发环境
对于任何一个电子处理器或微处理器,要有自己的逻辑思想,就要有自己程序。要有自己的程序,就要人去编写。人编写的语言只是人能识别(看到想到)的语言,机器只能识别二进制码,如何让人编写的语言变成机器识别的语言,就要翻译,额,是编译。
同时人编写的语言是否规范,是否合法,是否符合当前处理器设备运行(如处理器是否有相应运算设备资源)这就要一个检查。这在编译中叫做预处理。
为了让代码可读性强,独立性强,就有“对象”的概念。设计者必须有天马星空的思维,编出来的分散各个模块,就需要编译器在编译之前,就要将这些代码有效的组织。
综述。编译器就是将人的思想产生代码编程机器能识别的代码。所以就搭建对应的开发编写/编译的环境。
为了rk3288的linux或者android开发,就要搭建对应的编译环境。
搭建开发环境
开发一套设备的程序,一般官方会有一套sdk。Rk3288开发android,瑞星微官方提供了开发的sdk。SDK的编译需要运行在Linux的操作系统上。
所以和其他linux之类的平台一样。为了开发linux这种基础语言,需要搭建对应linux操作系统,而众多开发者是使用的Windows系统。此时我们需要在windows系统中安装Linux的运行环境,这里搭建虚拟机,加载一个linux系统。
当前选用的linux操作系统为ubantu,下面为具体搭建步骤如下:
虚拟机和操作系统下载
这里我们使用的虚拟机是VMware Workstation 15 Player.
如下图安装好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 libusb-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里面有。打开对应工具后,将硬件的usb otg口接到电脑上,将板子的模式设置成 loader或者maskrom模式后即可通过Android开发工具完成下载。
总结
要完成上述功能,可以搭建rk3288的开发环境。上述的编译和烧录只是粗劣描述,具体见后续核心板出来时,做具体开发时对应文档。
原作者:匠心源