RK3568系列2——编译环境搭建

  工欲善其事,必先利其器,对于有相关经验的人士来说,准备开发环境可谓轻车熟路,但是这里还是写一篇简略的教程把这个步骤记录下来,让初次接触的新手少走弯路。

预备知识

  • 必要的编程能力(C & C++ & Java)
  • 会使用Linux系统
  • git版本管理

环境准备

  SDK只能在Linux环境下编译,无法在Windows环境编译,因此必须准备一台安装Linux的服务器或虚拟机,内存至少要16GB以上,实测8GB无法完成编译,CPU核心越多越好。这里采用Ubuntu最新的LTS版本20.04,22.04版本也可以正常使用。安装操作系统的教程这里不再给出,可在互联网上搜索。

安装依赖

准备编译环境

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sudo apt update
sudo apt upgrade
sudo apt install vim wget curl tree lsof screen unzip git make gcc
sudo apt install openjdk-8-jdk
# ubuntu 20.04
sudo apt install git gnupg flex bison gperf build-essential zip curl \
zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses-dev \
x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev \
libxml2-utils xsltproc unzip python-pyelftools python3-pyelftools \
device-tree-compiler libfdt-dev libfdt1 libssl-dev liblz4-tool \
python-dev-is-python2 python3-dev libncurses5
# ubuntu 22.04
sudo apt install device-tree-compiler bison flex libssl-dev lz4 libncurses5 python2 libncurses-dev
# ubuntu 22.04 Android 8
sudo apt install gawk libc6:i386 libxml2-utils lib32stdc++6

  如果服务器装有CUDA,编译的时候会有问题,需要先给CUDA改个名字。/usr/local下cuda相关的目录都要更名。

1
sudo mv /usr/local/cuda /usr/local/cudaa

安装repo工具

  Google开源的Android系统源码由众多的子模块构成,每个模块都使用git进行版本管理,然而模块众多因此开发了repo工具来统一管理众多git子模块。这里必须采用RK的repo工具,不能直接克隆Google的原版工具。

1
2
3
git clone ssh://[email protected]:2222/repo-release/tools/repo
# 为repo设个别名,也可以将repo的路径加入path环境变量
echo "alias repo="/home/ubuntu/repo/repo"" > ~/.bashrc

拉取RK发布的SDK

  如果代理商提供了SDK的初始压缩包,则先解压初始压缩包,然后更新到最新代码;也可以直接从头拉取最新代码,大概需要12小时左右。两个方法更新到最新的SDK代码时,都需要代码仓库的访问权限。申请访问权限需要填写申请表并新建SSH密钥,发送给[email protected]。务必要将代码更新至最新版本,最初的代码有很多bug,且文档不完善,导致踩了一个多礼拜的坑。

1
2
3
4
5
6
7
# 解压初始压缩包
mkdir ROCKCHIP_ANDROID11.0_SDK_RELEASE
cat ROCKCHIP_ANDROID11.0_SDK_RELEASE.tar.gz* | tar -zx -C

# 更新至最新代码
.repo/repo/repo sync -l
.repo/repo/repo sync -c
1
2
3
4
# 直接拉取最新Android 11代码
repo init -u ssh://[email protected]:2222/Android_r/manifests.git -m Android11.xml
# 直接拉取最新Android 12代码
repo init -u ssh://[email protected]:2222/Android_S/manifests.git -m Android12.xml

生成Android Studio项目文件

1
2
3
4
chmod 755 .classpath
# ./development/tools/idegen/excluded-paths 排除除frameworks外的目录
make idegen
./development/tools/idegen/idegen.sh

参考文档

  • RKDocs/android/Rockchip_Developer_Guide_Android11_SDK_V1.1.6_CN.pdf