基于Android 10系统的ROC-RK3399-PC Pro源码编译

news/2024/7/3 0:34:01

基于Android 10系统的ROC-RK3399-PC Pro源码编译

      • 一、开发环境搭建
      • 二、下载Android 10 SDK
      • 三、编译Android 10 SDK

在这里插入图片描述

ROC-RK3399-PC Pro资料下载处:https://www.t-firefly.com/doc/download/145.html

一、开发环境搭建

Android 10 SDK的编译对PC机的要求不低,据官方介绍:

64 位 CPU
16GB 物理内存 + 交换内存
30GB 空闲的磁盘空间用于构建,源码树另外占用大约 25GB, 如果要编译源码则还需要 150GB 的磁盘空间

安装 OpenJDK 8:

$ sudo apt-get install openjdk-8-jdk

提示:安装 openjdk-8-jdk,会更改 JDK 的默认链接,这时可用:

$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac

来切换 JDK 版本。SDK 在找不到操作系统默认 JDK 的时候会使用内部设定的 JDK 路径,因此,为了让同一台机器可以编译 Android 5.1 及之前的版本,去掉链接更方便:

$ sudo /var/lib/dpkg/info/openjdk-8-jdk:amd64.prerm remove

编译系统最好选用Ubuntu 18.04,以下是基于18.04的环境搭建:

$ sudo apt-get update

$ sudo apt-get install git gnupg flex bison gperf libsdl1.2-dev \
libesd-java libwxgtk3.0-dev squashfs-tools build-essential zip curl \
libncurses5-dev zlib1g-dev pngcrush schedtool libxml2 libxml2-utils \
xsltproc lzop libc6-dev schedtool g++-multilib lib32z1-dev lib32ncurses5-dev \
lib32readline-dev gcc-multilib libswitch-perl libssl-dev unzip zip

编译过程中如何存在缺少某些依赖包,根据提示去安装即可!

二、下载Android 10 SDK

直接从ROC-RK3399-PC Pro资料下载处(https://www.t-firefly.com/doc/download/145.html)找到SDK下载即可!

下载完成后验证一下MD5码,参考官方维基:

$ md5sum /path/to/Firefly-RK3399_Android10.0_git_20211222.7z.001
$ md5sum /path/to/Firefly-RK3399_Android10.0_git_20211222.7z.002
$ md5sum /path/to/Firefly-RK3399_Android10.0_git_20211222.7z.003
$ md5sum /path/to/Firefly-RK3399_Android10.0_git_20211222.7z.004
$ md5sum /path/to/Firefly-RK3399_Android10.0_git_20211222.7z.005

fb41fcdc48b1cf90ecac4a5bb8fafc7a  Firefly-RK3399_Android10.0_git_20211222.7z.001
82d665fb54fb41245d9317312e7b7578  Firefly-RK3399_Android10.0_git_20211222.7z.002
0dd40827976200a6fb61623c9e87fe7c  Firefly-RK3399_Android10.0_git_20211222.7z.003
32324c3afe615394ee4cdf842c53ea8d  Firefly-RK3399_Android10.0_git_20211222.7z.004
9b1656ae07b4fe9ddf7d9ef2dfa2f95a  Firefly-RK3399_Android10.0_git_20211222.7z.005

在一般目录解压SDK(非共享文件夹、非挂载文件夹以及非英文目录):

$ ./Firefly-RK3399_Android10.0_git_20210114.7z.001 -ork3399_Android10.0
$ cd ./rk3399_Android10.0
$ git reset --hard

更新SDK:

$ cd ./RK356X_Android11.0

# 下载远程 bundle 仓库
$ git clone https://gitlab.com/TeeFirefly/rk3399-android10.0-bundle.git .bundle

# 若下载仓库失败,目前 bundle 仓库占用空间较大,所以同步的时候可能会出现卡住或失败的问题,
# 可以从云盘下载 bundle 并解压到 SDK 根目录,解压指令如下:
$ 7z x rk3399-android10.0-bundle.7z  -r -o. && mv rk3399-android10.0-bundle/ .bundle/

# 更新 SDK,并且后续更新不需要再次拉取远程仓库,直接执行以下命令即可
$ .bundle/update

# 按照提示已经更新内容到 FETCH_HEAD,同步 FETCH_HEAD 到 firefly 分支
$ git rebase FETCH_HEAD

三、编译Android 10 SDK

由于 ROC-RK3399-PC Pro 是对 ROC-RK3399-PC PLUS 硬件上的迭代,所以软件的编译方法是一致。最终生成的固件如:ROC-RK3399-PC-Pro_xxx.img 对 ROC-RK3399-PC PLUS 也是兼容的。

Firefly官方为了降低用户的编译成本,支持了SDK的一键编译操作!

目前有两种编译选择,一种是支持HDMI + DP:

$ ./FFTools/make.sh -d rk3399-roc-pc-plus -j8 -l rk3399_roc_pc_plus-userdebug
$ ./FFTools/mkupdate/mkupdate.sh -l rk3399_roc_pc_plus-userdebug

另一种是支持官方10.1寸显示屏 DM-M10R800 V2(MIPI_DSI0) + HDMI:

$ ./FFTools/make.sh -j8 -d rk3399-roc-pc-plus-mipi101-JDM101014_BC45_A1 -l rk3399_roc_pc_plus_mipi-userdebug
$ ./FFTools/mkupdate/mkupdate.sh -l rk3399_roc_pc_plus_mipi-userdebug

生成的固件位于rockdev/Image-XXX/目录下!


http://lihuaxi.xjx100.cn/news/1719383.html

相关文章

vue2 系列:vue-property-decorator 用法

前言:vue2.0 支持 ts,需要用到 vue-property-decorator 1. 安装 npm i -D vue-property-decorator 2. 用法 // vue, compnent 必引入,其他按需引用 import { Vue, Component, Prop, PropSync, Watch, Emit } from "vue-property-dec…

使用aspera下载组学数据

1. 安装 # 使用conda安装 conda install -c hcc aspera-cli# 测试是否安装成功 ascp -h2. 蛋白组学 用例1. 从iprox下载蛋白组 ascp -d -v -QT -l100m -P 33001 --file-manifesttext -k 2 -o Overwritediff userdownload.iprox.org:/pid /path# user替换成自己注册的账户名#…

【经验分享】在Kylin桌面版操作系统中配置openGauss的ODBC数据源

引言 openGauss是一款开源的关系型数据库管理系统,它提供了强大的功能和性能,可以满足各种企业级应用的需求。与此同时,ODBC(Open Database Connectivity)是一个标准的数据库访问接口,它允许应用程序通过统…

如何在用pip配置文件设置HTTP爬虫IP

目录 一、pip配置文件概述 二、设置HTTP爬虫IP的步骤 三、注意事项和技巧 总结 在进行网络爬虫的开发过程中,更换IP地址是一种常见的需求,这是为了防止被目标网站识别并封禁。代理IP是一种常用的解决方案,通过代理服务器转发请求&#xf…

Kubernetes 部署 kubeflow1.7.0

KubeFlow 是一个开源的项目,旨在为 Kubernetes 提供可组合、便携式、可扩展的机器学习技术栈。它最初是为了解决在 Kubernetes 上运行分布式机器学习任务所带来的挑战而创建的。Kubernetes 本身是一个容器平台,但在近年来,越来越多的公司开始…

Nodejs和Node-red的关系

NPM相关知识 npm概念 npm:Node Package Manager,Node包管理器。是Node.js默认的,以JavaScript编写的软件包管理系统。 npm工作原理 npm的操作原理是各个官网使用npm publish把代码提交到npm的服务器,其他人想要使用这些代码&am…

高数基础常用公式(持续更新)

1、求根公式 2、三角函数特殊度数对应值 3、三角函数常用公式

迎重阳,话养老:平安养老险如何助力国民“养老梦”?

10月23日,我们将迎来传统节日重阳节,又称敬老节,自古就有祭祖、登高、赏菊三大风俗,流传至今,已成为人们孝老敬老的重要节日。 随着老龄化日益加深,在“敬老”的同时如何“备老”成为人民群众长期热议的话题…