rk3288 android编译环境搭建,RK3288系统编译及环境搭建

准备工作

编译 Android 对机器的配置要求较高:

64 位 CPU

16GB 物理内存+交换内存

30GB 空闲的磁盘空间用于构建,源码树另外占用大约 8GB

官方推荐 Ubuntu 12.04 操作系统,实际上也可以采用更新的操作系统版本,只需要满足 http://source.android.com/source/building.html 里的软硬件配置即可。

安装 JDK 6:

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update

sudo apt-get install oracle-java6-installer

Ubuntu 12.04 软件包安装:

sudo apt-get install git gnupg flex bison gperf build-essential \

zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \

libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \

g++-multilib mingw32 tofrodos gcc-multilib ia32-libs\

python-markdown libxml2-utils xsltproc zlib1g-dev:i386

Ubuntu 13.10/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

安装 ARM 交叉编译工具链和编译内核相关软件包:

sudo apt-get install gcc-arm-linux-gnueabihf \

lzop libncurses5-dev \

libssl1.0.0 libssl-dev

下载 默认版 Android SDK

注意:如果你在 2014-12-11 之前下载过源码,请重新到云盘下载并更新。

由于 SDK 比较大,请选择以下云盘之一下载 firefly-rk3288_android4.4_git_20141211.tar.gz :

下载完成后先验证一下 MD5 码:

$ md5sum /path/to/firefly-rk3288_android4.4_git_20141211.tar.gz

8fe99f519d487ff40c8bc7b5ded62887 firefly-rk3288_android4.4_git_20141211.tar.gz

确认无误后,就可以解压:

mkdir -p ~/proj/firefly-rk3288

cd ~/proj/firefly-rk3288

tar xf /path/to/firefly-rk3288_android4.4_git_20141211.tar.gz

git reset --hard

git remote add bitbucket https://bitbucket.org/T-Firefly/firefly-rk3288.git

以后就可以直接从 bitbucket 处更新:

git pull bitbucket master:master

另外,linux-rockchip 社区搭建了 Git 镜像服务器,详见这里。 如果要下载源码,请用以下命令(可选其它镜像服务器):

下载 PAD 版 Android SDK

PAD版SDK是具有PAD特性的SDK,可用于调屏,TP,支持横竖屏显示等。

由于 SDK 比较大,请选择以下云盘之一下载firefly-rk3288_pad_android4.4_git_20141218.tar.gz

下载完成后先验证一下 MD5 码:

$ md5sum /path/to/firefly-rk3288_pad_android4.4_git_20141218.tar.gz

4ba44765fa649bc5cddadd8b349aa8af firefly-rk3288_pad_android4.4_git_20141218.tar.gz

确认无误后,就可以解压: mkdir -p ~/proj/firefly-rk3288_pad

cd ~/proj/firefly-rk3288_pad

tar xf /path/to/firefly-rk3288_pad_android4.4_git_20141218.tar.gz

git reset --hard

git remote add bitbucket https://bitbucket.org/T-Firefly/firefly-rk3288.git

以后就可以直接从 bitbucket 处更新:

git pull bitbucket pad:pad

编译内核

编译正式版(0930)开发板的内核:

cd ~/proj/firefly-rk3288/kernel

make firefly-rk3288_defconfig

make -j8 firefly-rk3288.img

编译公测版(0809)开发板的内核:

cd ~/proj/firefly-rk3288/kernel

make firefly-rk3288_beta_defconfig

make -j8 firefly-rk3288_beta.img

编译 Android

编译 Android:

cd ~/proj/firefly-rk3288

make -j8

./mkimage.sh

烧写分区映像

上一步骤的 ./mkimage.sh 会重新打包 boot.img 和 system.img, 并将其它相关的映像文件拷贝到目录 rockdev/Image-rk3288/ 中。以下列出一般固件用到的映像文件:

boot.img :Android 的初始文件映像,负责初始化并加载 system 分区。

kernel.img :内核映像。

misc.img :misc 分区映像,负责启动模式切换和急救模式的参数传递。

recovery.img :急救模式映像。

resource.img :资源映像,内含开机图片和内核的设备树信息。

system.img :Android 的 system 分区映像,ext4 文件系统格式。

请参照 如何升级固件 一文来烧写分区映像文件。

如果使用的是 Windows 系统,将上述映像文件拷贝到 AndroidTool (Windows 下的固件升级工具)的 rockdev\Image 目录中,之后参照升级文档烧写分区映像即可,这样的好处是使用默认配置即可,不用修改文件的路径。

打包成统一固件 update.img

在 Windows 下打包统一固件 update.img 很简单,按上一步骤将文件拷贝到 AndroidTool 的 rockdev\Image 目录中,然后运行 rockdev 目录下的mkupdate.bat 批处理文件即可创建 update.img 并存放到 rockdev\Image 目录里。

update.img 方便固件的发布,供终端用户升级系统使用。一般开发时使用分区映像比较方便。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/488222.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

50 days before NOI2017

2017.5.31 今天开了这个博客,打算每天来写点东西,嗯。。。毕竟要NOI了嘛。。。 第一天跑到常州里集训,打开题目一看湖南集训题。。。 T1刷一下写完,然后交了然后发现错了。。。赶紧改过来,大概1h吧。。。 T2刷一下发现…

2020城市大脑与超级智能建设规范研究报告(附下载)

报告下载地址: https://pan.baidu.com/s/1x85xZrAG6df4BcVkJqtcqw提取码: 6ytv21世纪以来,21世纪以来,眼花缭乱的前沿科技新概念喷薄而出,从Web2.0、社交网络、物联网、移动互联网、大数据、工业4.0、工业互联网到云机器人、深度学习、边缘计…

android按钮点击无响应时间,AndroidStudio下的点击事件不响应

本来是测试自定义Toast,发现implements View.OnClickListener的Onclick事件怎么都不响应,开始以为是自定义的问题。结果当然不是;需要clean项目就好了,AndroidStudio的问题还是很多~Overridepublic void onBackPressed() {ToastUt…

同步带周长计算公式_同步带的长度计算和常见问题

同步带的长度计算公式如下:lb ((df dm) 1.5708 ) (2 lfm)其中lb是同步带的长度,df是大同步带轮的直径,dm是小同步带轮的直径,lfm是大同步带轮的中心和小同步带轮中心的距离。从上述同步带长度的计算公式可以看出同步带轮的直径对…

nodejs中处理回调函数的异常

假设是使用nodejsexpress3这个经典的组合。那么有一种非常方面的处理回调函数异常的方法: 1. 安装模块:express-domain-middleware 2. 增加例如以下的代码: app.use(require(express-domain-middleware)); app.use(function errorHandler(err…

5G新标准将延迟3个月发布,但5G“新战场”已经明确

来源:雷锋网2019年,5G开启商用元年。2020年开年,5G智能手机的发布就迎来了一个发布高峰,2月份至今,国内就有10多款5G手机发布。5G手机的数量和销量也迅速增长,根据工信部副部长辛国斌给出的数据&#xff0c…

python copy deepcopy_python-copy-deepcopy

1.结论:—–我们寻常意义的复制就是深复制,即将被复制对象完全再复制一遍作为独立的新个体单独存在。所以改变原有被复制对象不会对已经复制出来的新对象产生影响。—–而浅复制并不会产生一个独立的对象单独存在,他只是将原有的数据块打上一…

android 2个界面抽屉,Android使用DrawerLayout创建左右两个抽屉菜单

在Android support.v4 中有一个抽屉视图控件DrawerLayout。使用这个控件,可以生成通过在屏幕上水平滑动打开或者关闭菜单,能给用户一个不错的体验效果。最近在项目中,设计中有用到这个效果,但是是左右两边都能划出这样的一个菜单效…

报告:100家AI初创公司榜单 这五大趋势不得不看!

来源: 网易智能用新药治疗一系列慢性疾病;抵御各种网络攻击;让城市更加智能;更精准地预报天气和野火,从而提高安全性并降低风险。此外,还有深度伪造技术(deepfakes)的商业化。这些看…

android默认exported_AndroidManifest.xml文件中exported属性解析

4、目标Activity的属性Android:exported”true”如果组件包含有intent-filter则 exported默认值为true;没有intent-filter则exported默认值为false。当exported为 true时可以被外部其他App所调用当exported为 false时可以被外部其他App所调用5、目标Activity具有相应的IntentFi…

android外接键盘打汉字,Android在外接物理键盘时,如何强制调用系统软键盘

Android在外接物理键盘时,如何强制调用系统软键盘?第一次写,写的不好请见谅参考:物理键盘映射过程:手机/system/usr/keylayout/*.kl :内核将keyCode映射成有含义的字符串KeycodeLabels.h : framework 将字符…

20155204 2016-2017-2《Java程序设计》课程总结

20155204 2016-2017-2《Java程序设计》课程总结 目录 作业链接汇总作业总结实验报告链接汇总代码托管链接课堂项目实践学习经验问卷调查链接二维码(按顺序)每周作业链接汇总 预备作业1:我对师生关系的思考预备作业2:做中学感悟预备…

android网络测试上传速度慢,Android:如何获得互联网连接上传速度和延迟?

要获取当前网络连接类型:TelephonyManager telephonyManager (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);int networkType telephonyManager.getNetworkType();并为延迟:String host "172.16.0.2";int timeOut 3000…

复杂性科学与还原论

来源:陶勇科学网博客1984年,两位诺贝尔物理学奖得主盖尔曼(Murray Gell-mann)、安德森(Philip Anderson)和诺贝尔经济学奖得主阿罗(Kenneth Arrow)聚集了一批从事物理、经济、生物、…

ios math 那个头文件_C++ 头文件系列(ios)

1 简介我们都知道,平时常用的那些标准流,诸如iostream、ofstream、ifstream等等,其实都是对应的basic_XXX模版的实例类。 而这些basic_XXX类模版又都是继承自同一个基类模版----basic_ios。2 basic_ios模版定义这个基类模版应该是出于可重用的…

Nim游戏(初谈博弈)

通常的Nim游戏的定义是这样的:有若干堆石子,每堆石子的数量都是有限的,合法的移动是“选择一堆石子并拿走若干颗(不能不拿)”, 如果轮到某个人时所有的石子堆都已经被拿空了,则判负(…

android 如何使用aar,Android Studio如何使用aar依赖包?

ps:2013-12-25 号更新,升级到0.4以后 这种方法已经完美使用!因为项目里面要用到actionbarsherlock,所以研究了一下如何导入到android studio中。arr(Android Archive):名字是谷歌到的,至于中文叫什么我也不知道。不过好像依赖都要…

第二百七十九节,MySQL数据库-pymysql模块操作数据库

MySQL数据库-pymysql模块操作数据库 pymysql模块是python操作数据库的一个模块 connect()创建数据库链接,参数是连接数据库需要的连接参数使用方式:   模块名称.connect()   参数:   host数据库ip   port数据库端口   user数据库用户名   pa…

宇航员能用GPS在月球上导航吗?美国宇航局的科学家给出了肯定答案

Illustration: NASA来源:IEEE电气电子工程师如果宇航员按照美国宇航局Artemis计划登录月球,他们的主要目标之一就是在月球南极附近的陨石坑中挖冰,这些冰层不仅对水有用,而且可以分解成氢和氧。但它们需要导航,才能精确…

android getdecorview 出现空指针,android – 为什么我从TabWidget得到一个空指针异常?...

我正在编写一个android程序,其中我有一个使用制表符的活动.活动public class UnitActivity extends TabActivity {Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);TabHost tabHost getTabHost();TabSpec spec;Resources res …