RK3399 Android7.1 编译

ARM嵌入式笔记——编译瑞芯微RK3399 编译 Android 固件 安装 OpenJDK 8: sudo apt-get install openjdk-8-jdk 提示:安装 openjdk-8-jdk,会更改 JDK 的默认链接,这时可用: $ sudo update-alternatives --config java $ sudo update-alternatives --config javac ... 阅读详情

RK3399 Android7.1 编译

前言

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 执行,ok

2.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 indentation
  File "device/rockchip/common/auto_generator.py", line 114
    continue
这个是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编译 参考官网开始编译 官网 下载地址 编译前准备: 环境搭建 安装openjdk8 sudo add-apt-repository ppa:openjdk-r/ppa sudo apt-get update sudo apt-get install openjdk-8-jdk 安装其他依赖库 sudo apt-get install git-core gnupg flex bison gperf l... 阅读详情

相关推荐

openssl 生成client.jks与server.jks文件的方法

openssl 生成client.jks与server.jks文件的方法 在做WS安全性设计的时候 利用rampat时候需要使用的jks文件

firefly-rk3399开发板100篇 之 001 编译android代码,给开发板下载固件

firefly-rk3399开发板学习笔记第一篇 下载代码,编译代码。 给开发板下载固件。

sz189981的博客 3316

STM32CubeMX-电机控制2-电机相关配置部分

STM32CubeMX-电机霍尔传感器 写在前面的话:之前一直使用库函数,调程序时总会觉得是配置出现问题,要画一些时间去检查配置程序,所以目前转到了STM32CubeMX。写这些内容一方面是整理记录,因为是刚入门,所以难免出现错误,希望能得到大家指正;另一方面是因为自己一个人调试,走了很多弯路,写下来希望能给相同处境的人一些参考。 步骤一: 电机霍尔传感器接口 我目前使用的是STM32F4,电机的...

niker_co的博客 1万+

记录一次坎坷的Android7.1编译经过

1.迅为的4418开发板,Ubuntu14.04编译Android7.1。使用迅为搭建好的开发环境并下载Android7.1源码。 2.解压得到的虚拟机设置我进行了调整。硬盘2原来是5G我给到了300。直接上代码: //看到添加的硬盘信息 fdisk -l //因为是在原基础上更改,就先给sdb卸载下来了 umount /dev/sdb //把硬盘格式化成ext3格式 mkfs -t ext3 /dev/sdb //原文说的是在/home下建立work文件夹,然后挂载硬.

weixin_43955528的博客 2219

银河麒麟V10离线升级OpenSSH实战:从编译到回滚全流程

OpenSSH作为Linux系统远程登录的核心组件,其版本升级直接关系到系统安全与等保合规。在信创环境下,银河麒麟V10自带的OpenSSH版本往往无法满足漏洞扫描与安全加固要求,而离线编译升级涉及依赖处理、编译参数、服务替换与回滚方案等多个技术环节。本文围绕银河麒麟V10(x86_64)平台,详细讲解OpenSSH离线升级的完整实操流程,包括环境摸底、依赖包安装、源码编译、配置文件兼容性处理、服务重启验证以及常见问题排查,并分享批量升级与安全加固的工程经验,帮助运维人员在不断网、不重装的前提下一次成功完成

weixin_30582943的博客 383

零中频接收机实战:DC Offset的5种常见解决方案与调试技巧

本文针对零中频接收机中DC Offset这一核心挑战,深入剖析了其产生机理与对信号解调的严重影响。文章从实战角度出发,系统性地介绍了五种解决方案,包括硬件预防、数字域校正、I/Q不平衡联合校正等,并分享了关键的实验室调试与产线测试技巧,旨在帮助射频工程师有效提升接收机性能。

weixin_29234509的博客 397

在RK3399 Android7.1环境下交叉编译安装opencv

本文描述了在RK3399、Android7.1开发环境中,下载opencv源码、交叉编译生成opencv库的完整过程。特别地,对cmake过程需要注意问题进行了详细说明。

mosha_2018的博客 961

使用spacy规则化提取自然语言文本信息

1. 安装spacy pip install spicy spicy还需要载入文本库,使用pip的下载方式: python3 -m spacy download en_core_web_sm 但是很有可能因为网络问题下载速度非常缓慢,所以可以选择到github上去直接下载(注意和自己的spacy版本匹配):github下载链接 下载*.tar.gz文件即可。 然后切换到下载路径, pip install en_core_web_sm-3.1.0.tar.gz 2. spacy的一些基础用法 使用spa

六六六六神的博客 1818

[RK3399][Android7.1] 调试笔记 --- 编译出来的APP在源码中编译失败问题

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 背景: APK是通过Android Studio使用高版本的SDK Version(API Level 28)编译生成的,然后被放到了Android源码(API Level 25)中当作第三方APK来编译,编译出错。 Error Log: [ 35% 105/294] build out/targe...

Kris Fei's blog 3746

superpowers-中文使用说明

《obra/superpowers:AI辅助开发的流程纪律工具集》 摘要:obra/superpowers是一套面向AI辅助软件开发的系统化流程规范,包含14个核心技能,强调"先理解后行动"的纪律性开发方法。该工具集定义了从头脑风暴到代码评审的完整工作流,要求严格遵循测试驱动开发、子代理隔离执行等原则。核心特色包括:1) 任何实现前必须完成设计和评审;2) 采用红-绿-重构的TDD循环;3) 复杂任务通过独立子代理串行处理;4) 所有产出需经过双重验证(规格合规+代码质量)。该工具集特别注重文档化和可验证性

qq_22786633的博客 765

无源元器件-电容选型参数总结

电容选型时,需要考虑的参数多种多样,这些参数的选择会直接影响到电路的性能、稳定性、成本等多个方面。本文对电阻电容磁珠电感的参数进行详细介绍并总结。

fydar的博客 835

RK3399:WSL-Ubuntu16.04编译Android7.1 Industry

RK3399:WSL-Ubuntu16.04编译Android7.1 文章目录RK3399:WSL-Ubuntu16.04编译Android7.1一、非系统盘安装WSL-Ubuntu16.041. 开启子系统功能(如果已经安装过WSL,则卸载之,但不需要这一步)3. 下载Linux发行版并解压4. 安装并使用二、下载相关Android资源包三、编译及相关问题1.No jack server running问题2.Jack server SSL error问题 一、非系统盘安装WSL-Ubuntu16.04

逍遥游的博客 1036

【AI大模型】角色设定:给模型定身份的高效使用方法

摘要: AI大模型角色设定(RolePrompting)是提示词工程的核心优化技巧,通过赋予模型特定职业、领域和风格约束,显著提升输出专业度与适配性。文章系统拆解了角色设定的原理、万能公式(领域+身份+技能+风格+场景)、三级分层写法(基础/进阶/专家),并提供10类高频场景的模板。通过无角色与有角色输出的对比实验(Python代码量化验证),证明角色设定可使模型综合得分提升35%以上,尤其优化场景适配度与风格统一性。该技巧作为高阶提示词(如CoT、Few-Shot)的前置模块,能以零成本实现AI输出的专业

unber的博客 41

[RK3399][Android7.1] 调试笔记 --- 编译otapackage失败

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 现象: 编译otapackage,提示如下error: creating system.img... Running: mkuserimg.sh -s /tmp/targetfiles-NuIdO9/system /tmp/system-2Ij3G9.img ext4 system 16106127...

Kris Fei's blog 1522

Python爬虫实战:携程旅游平台数据爬取(酒店+机票+景点),破解加密与反爬(附完整代码)

携程的反爬机制再复杂,核心逻辑都是“识别非真实用户的请求”,而爬虫的核心就是“让请求看起来像真实用户的行为”。本文的方案从登录态处理、参数加密破解、动态数据抓取,到反爬应对,都是围绕“模拟真实”展开:用Playwright模拟真实浏览器登录,用住宅代理模拟真实用户IP,用随机延迟模拟真实用户的操作频率。掌握了这个核心思路,无论平台的反爬如何升级,都能找到应对方法。当然,爬虫技术是一把双刃剑,合理使用才能发挥其价值。如果你的爬虫项目中遇到了携程的反爬问题,不妨按照本文的步骤试试,大概率能解决问题。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2605

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

5.3 物联网RK3399项目开发实录-Android开发之编译 Android7.1 Industry 固件(wulianjishu666)

物联网嵌入式ARM开发之RK3399笔记。欢迎关注点赞,更多笔记请查看个人主页。349014857

vx349014857的博客 1615

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

[RK3399][Android7.1] Ubuntu编译环境内存要求

Platform: RK3399 OS: Android 7.1 Platform: Firefly-RK3399 现象: 本地编译Android 7.1时出现如下错误: [ 2% 764/34600] Building with Jack: out/targe...framework_intermediates/with-local/classes.dex FAILED...

Kris Fei's blog 3343

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

[RK3399][Android7.1] 简易编译系统images脚本

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 系统自带的编译脚本功能不是很全,重新写了个,编译的rk3399_mid eng版本。 wifi driver编译部分是参考build-rk3399-mid.sh中的,先放这里,后面再做验证是否确实需要。 #!/bin/bash #Kris,180619, Created from rk3...

Kris Fei's blog 1722

[RK3399][Android7.1] Ubuntu 编译环境之Jdk版本切换

Platform: RK3399 OS: Android 7.1 PC: Ubuntu 14.04 LTS 默认是OpenJDK 7 kris@eco:~/Downloads$ java -version java version “1.7.0_131” OpenJDK Runtime Environment (IcedTea 2.6.9) (7u131-2.6.9-...

Kris Fei's blog 2001

RK3399 Android 7.1 删除repo后编译报错

CPU:RK3399 系统:Android 7.1 瑞芯微使用的是 repo 来进行代码管理,但我们需要用 git 来管理,所以就删除了 repo,但是编译就报错,如下: Server is already running Bad request, see Jack server log [ 1% 231/20884] build out/target/product/rk3399_mid/gen/EXECUTABLES/iw_intermediates/version.c FAILED: /bin/bas

xuangelouzhu的博客 461

Ubuntu 16.04/18.04/20.04 LTS Android 7.1 RK3399编译环境

Ubuntu 16.04 LTS 编译 Android 7.1 编译环境 系统: Ubuntu 16.0.4,U盘安装即可(不要双系统或者单独安装) gcc/g++: 5.4.0 (系统自带,不用自己安装) python: 2.7.12 (系统自带,不用自己安装) GUN make: 4.1 (系统自带,不用自己安装) OpenJDK 8: sudo apt-get install openj...

half_bottle的博客 2127

【RK3399】【Android7.1】Ubuntu16.04配置开发编译环境出现的问题

(1) ubuntu16.04 安装 lib32readline-gplv2-dev 出错,解决办法 直接用 lib32readline6-dev 替代:lib32readline-gplv2-dev 使用命令: sudo apt-get install lib32readline6-dev (2) Android N 源码编译错误:Communication error with Jack...

karaskass的博客 614

[RK3399][Android7.1] 调试笔记 --- 编译提示"Communication error with Jack server (58)"

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 现象: 服务器上帮同事搭建了rk3399 android7.1编译环境之后自己的7.1代码编译不通过了。 error log如下: 原因: 同一台服务器上不允许不同用户同时进行andorid7.1的编译,原因就是后面开始编译的用户无法正常启动jack server。 而且有发现编译完成之后对应的j...

Kris Fei's blog 1138

20230318解决编译友善之臂的RK3399的Android7.1.2的ninja_wrapper出错

删除/etc/java-8-openjdk/security/java.security 文件里jdk.tls.disabledAlgorithms 的 TLSv1, TLSv1.1。发现是配置文件的权限不对造成的,把文件$HOME/.jack-server/config.properties的权限由rwx改为rw即可解决问题。把文件$HOME/.jack-server/config.properties的权限由rwx改为rw即可解决问题。Android7.1编译时jack-server不工作。

南岭笑笑生之家 2185

[RK3399][Android7.1] 调试笔记 --- 模块编译32位动态库

Platform: RK3399 OS: Android 7.1 Board: Firefly-RK3399 需求: 系统HAL的camera库camera.rk30board.so使用的是32位版本的。 而单独编译模块(命令是#make camera.rk30board_32 -j8 )出来却只有64位版本,位于 system/lib64/hw下面。 理论上根据Android.m...

Kris Fei's blog 3031

[RK3399][Android7.1] 调试笔记 --- 模块编译32位动态库【转】

本文转载自:http://blog.csdn.net/kris_fei/article/details/78923784 Platform: RK3399OS: Android 7.1Board: Firefly-RK3399 需求:系统HAL的camera库camera.rk30board.so使用的是32位版本的。而单独编译模块(命令是#make camera.r...

246
上一篇: Room 使用遇到的问题
下一篇: SIP2
K_Hello
博客等级 码龄12年 33粉丝 115原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值