RK3399 Android7.1 编译
RK3399 Android7.1 编译
文章目录
- RK3399 Android7.1 编译
- 前言
- 设置 Linux 编译环境
- 安装 JDK
- 可选- 更新默认的 Java 版本
- 安装所需的程序包(Ubuntu 14.04)
- 下载 Android SDK
前言
RK官网编译
Android搭建编译环境
设置 Linux 编译环境
使用的环境Linux 16.0.4
安装 JDK
如果 Ubuntu >= 15.04
请运行以下命令:
sudo apt-get update
sudo apt-get install openjdk-8-jdk
可选- 更新默认的 Java 版本
运行以下命令来更新默认的 Java 版本:
sudo update-alternatives --config java
sudo update-alternatives --config javac
SDK 在找不到操作系统默认 JDK 的时候会使用内部设定的 JDK 路径,因此,为了让同一台机器可以编译 Android 5.1 及之前的版本,去掉链接更方便
sudo /var/lib/dpkg/info/openjdk-8-jdk:amd64.prerm remove
安装所需的程序包(Ubuntu 14.04)
sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev \
libesd0-dev libwxgtk2.8-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-gplv2-dev gcc-multilib libswitch-perl \
libssl1.0.0 libssl-dev
安装程序包问题
Unable to locate package libwxgtk2.8-dev因为使用的Ubuntu系统是16.04 所以应该用sudo apt-get install libwxgtk3.0-dev
下载 Android SDK
- Android SDK 源码包比较大,可以通过如下方式获取Android7.1源码包:
- 下载链接
下载完成后先验证一下 MD5 码:
$md5sum rk3399_firefly_industry_android7.1_20190628.7z.001
92084d35f40bebea6466d39d52bf9704 rk3399_firefly_industry_android7.1_20190628.7z.001
$md5sum rk3399_firefly_industry_android7.1_20190628.7z.002
f25da955fdb9700fcf53569b27debdfe rk3399_firefly_industry_android7.1_20190628.7z.002
确认无误后,就可以解压:
$mkdir firefly-rk3399
$cd ~/proj/
$7z x ./rk3399_firefly_industry_android7.1_20190628.7z.001 -ofirefly-rk3399
$cd ./firefly-rk3399
$git reset --hard //回退、撤销
注意:解压后务必要先更新远程仓库。 以下为从 gitlab 处更新的方法:
# 进入SDK根目录
1. cd ~/proj/firefly-rk3399 # 下载远程bundle仓库,若下载仓库失败,则可以从下方百度云下载[bundle压缩包]并解压到SDK根目录
2. git clone https://gitlab.com/TeeFirefly/rk3399-nougat-bundle.git .bundle# 更新SDK,并且后续更新不需要再次拉取远程仓库,直接执行bundle文件下的update脚本即可
3. .bundle/update 或者 ./rk3399-nougat-bundle/update# 按照提示已经更新内容到 FETCH_HEAD,同步FETCH_HEAD到firefly-rk3399分支
4. git rebase FETCH_HEAD
百度云下载bundle压缩包
下面是执行编译流程
可以参考官方文档
这边就直接执行了同时编译ubooot、kernel、android
执行./FFTools/make.sh -j8
遇到问题
1.Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compiler
参考:https://stackoverflow.com/questions/40772003/cannot-use-config-cc-stackprotector-strong-fstack-protector-strong-not-support/40772208 这并不能效果
经同事指导, 这样sudo ./FFTools/make.sh -j8 执行,ok2.target thumb C++: libskia_static_32 <= external/skia/src/images/SkImageDecoder_libbmp.cppninja: fatal: fork: Cannot allocate memory
build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed需要设置虚拟内存大小:
https://bogdancornianu.com/change-swap-size-in-ubuntu/
打包成统一固件update.img
编译完可以用Firefly官方的脚本打包成统一固件,执行如下命令:
./FFTools/mkupdate/mkupdate.sh update遇到问题
TabError: inconsistent use of tabs and spaces in indentationFile "device/rockchip/common/auto_generator.py", line 114continue
这个是tab和空格的问题
也可以这样执行 sudo ./FFTools/mkupdate/mkupdate.sh update
还有这个问题:
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa3 in position 20: invalid start byte
查找文件是在open('','r')方法中
解决方法:’r‘ 改为’rb‘
参考:(result, consumed) = self._buffer_decode(data, self.errors, final)
结果如图:映像文件已生成
参考:
RK3399编译Android固件
ubuntu 18.04编译Android 7.1源码
RK3399编译
AOSP 安卓源码7.1-ubuntu17.04编译问题
ubuntu中swap(虚拟内存)设置
RK3399 Android7.1 编译相关推荐
- java获取apk启动activity_[RK3399] android7.1 设置开机启动apk
平台: RK3399+android7.1 开机启动apk (1)修改类: ./frameworks/base/services/core/java/com/android/server/am/Act ...
- android手机底噪,[RK3399][Android7.1] 调试笔记 --- Codec播放音乐会有底噪
Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 背景: 移植完Codec RT5640之后,发现播放声音的时候底部有噪声. 用示波器测量到的左右声道波 ...
- [RK3399][Android7.1] 调试笔记 --- 系统默认时钟配置
OS: Android 7.1 Board: Firefly-RK3399 Kernel: v4.4.55 分两个模块,一个是cpu,还有一个是pmu模块,这里只举例cpu,cpu又分在两个文件中定义 ...
- [RK3399][Android7.1] 调试笔记 --- I2S1工作输出是12MHz问题
Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 现象: 使用I2S1通道,测量到的I2S MCLK是12MHz. 理论上应该是11.288MHz. 原 ...
- gcc android开发环境,[RK3399][Android7.1]开发环境搭建
最后还是安装了双系统,在Ubuntu16.04下编译的,以下的解决方法依然后效:/(ㄒoㄒ)/~~ ######################黄金分割线####################### ...
- [RK3399][Android7.1]触摸屏TP,敦泰FT5436驱动移植
最近在RK3399上移植了敦泰的FT5436触摸屏驱动,分享出来供大家参考. 找敦泰厂家索取FT5436的驱动包,驱动包名称:focaltech_touch 没有什么需要特别注意的地方,按照驱动包里面 ...
- [RK3399][Android7.1] 调试笔记 --- sdcard守护进程启动位置
Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 Board: Firefly-RK3399 之前版本sdcard守护进程都是放在init.rc中启动: ...
- [RK3399] [Android7.1] UAC配置,使用USB转音频喇叭播放声音
因为接口问题,需要在RK3399的板子上使用USB转音频接音箱外放,从网上购买了USB转音频模块,在电脑上和手机上测试接音箱都可以正常播放,但是接到RK3399时,没有声音,从网上查资料发现,原来是R ...
- RK3399 Android7.1 try 'jack-diagnose' or see Jack server log
CPU:RK3399 系统:Android 7.1 Android 7.1系统使用 jack-server 作为 Java 代码编译器 jack-server 由两个配置文件来决定用户使用的端口 /h ...
最新文章
- 前端开发进阶手册.pdf
- 10 个最值得 Python 新人练手的有趣项目 | 赠书
- android 拖动的view,Android实现随意拖动View效果
- ITK:创建拉普拉斯内核
- [Vue 牛刀小试]:第八章 - 组件的基础知识
- 高级 | Java中获取类名的3种方法
- [转载]用UglifyJS2合并压缩混淆JS代码——javascript系列
- 1进程 ppid_杀死僵尸进程,你需要这些神奇的Linux命令行
- Oracle日志切换及频率跟踪脚本
- 行业动态_天才、忽悠与炮灰
- Web服务器是什么意思?
- 腾讯优图|人脸3D重建与渲染技术研究与应用
- C++常用函数(刷PAT甲级总结)
- 生产制造管理系统快速提高生产效率
- vscode远程开发环境配置
- GaussDB高斯数据库(SQL语法分类)
- 老男孩教育|0基础转行学Linux,完美逆袭,收获满意Offer!
- 41.83亿元!985北京航空航天大学青岛校区最新进展来了
- Controll 和service、DAO的区别和联系
- STC15W408AS最小系统开发板注意事项与烧写实际操作
热门文章
- GitHub安装包下载
- MacX DVD Ripper Pro for Mac(DVD格式转换工具)
- JMeter 组件2:Logic Controllers 逻辑控制器
- Hadoop Delegation Tokens详解
- 我开源了一个私人云盘——蓝眼云盘 1
- Linux桌面池,24个值得尝试的Linux桌面环境
- 什么是SSD固态硬盘的QLC、SLC、MLC、TLC
- C++ Primer Plus 读书笔记
- 高校严查学位论文复制比!降至10%!博士论文需打印40份!
- 基于springboot垃圾分类网站设计实现【毕业论文、源码】