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://git@www.rockchip.com.cn:2222/repo-release/tools/repo
# 为repo设个别名,也可以将repo的路径加入path环境变量
echo "alias repo="/home/ubuntu/repo/repo"" > ~/.bashrc

拉取 RK 发布的 SDK

  如果代理商提供了 SDK 的初始压缩包,则先解压初始压缩包,然后更新到最新代码;也可以直接从头拉取最新代码,大概需要 12 小时左右。两个方法更新到最新的 SDK 代码时,都需要代码仓库的访问权限。申请访问权限需要填写申请表并新建 SSH 密钥,发送给 daisy.zeng@rock-chips.com。务必要将代码更新至最新版本,最初的代码有很多 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://git@www.rockchip.com.cn:2222/Android_r/manifests.git -m Android11.xml
# 直接拉取最新Android 12代码
repo init -u ssh://git@www.rockchip.com.cn: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