文档章节

Ubuntu16.06编译AndroidM(SoC:Allwinner A64)

ka布
 ka布
发布于 2016/10/31 15:50
字数 456
阅读 168
收藏 0

本文旨开记录从全新安装Ubuntu到构建AndroidM编译环境,成功编译全志A64 AndroidM SDK的过程。

一、安装Ubuntu 16.06 x64
编译Android SDK需要64位的Ubuntu,因此选择在机器上安装64位版本的Ubuntu 16.04,桌面版、服务器版均可。安装Ubuntu比较简单,在此不作详细描述。

二、配置编译Android SDK的环境
打开网页https://source.android.com/source/initializing.html,根据里面的步骤进行安装,针对本次在Ubuntu 16.04编译A64 AndroidM SDK,主要要安装的东西有,
1、OpenJDK
上文网址说到,Ubuntu15.04以上要安装OpenJDK 8。从A64 AndroidM SDK的android/build/core/main.mk里面可以找到以下内容

ifneq ($(EXPERIMENTAL_USE_JAVA8),)  
required_version := "1.8.x"  
required_javac_version := "1.8"  
java_version := $(shell echo '$(java_version_str)' | grep 'openjdk .*[ "]1\.8[\. "$$]')  
javac_version := $(shell echo '$(javac_version_str)' | grep '[ "]1\.8[\. "$$]')  
else # default  
required_version := "1.7.x"  
required_javac_version := "1.7"  
java_version := $(shell echo '$(java_version_str)' | grep '^java .*[ "]1\.7[\. "$$]')  
javac_version := $(shell echo '$(javac_version_str)' | grep '[ "]1\.7[\. "$$]')  
endif # if EXPERIMENTAL_USE_JAVA8  

EXPERIMENTAL_USE_JAVA8是没有定义的,也就是说不会使用1.8.x版本。往下跟踪,不难发现

requires_openjdk := false  
ifeq ($(HOST_OS), linux)  
requires_openjdk := true  
endif  

在Linux系统中编译,requires_openjdk会被赋值true,也就是说,需要用到OpenJDK。因此,编译A64 AndroidM SDK需要用OpenJDK 7。Ubuntu 16.04中只有OpenJDK 8,可以通过以下方法安装OpenJDK 7。

sudo add-apt-repository ppa:openjdk-r/ppa      
sudo apt-get update       
sudo apt-get install openjdk-7-jdk 

2、安装必要的依赖

sudo apt-get install git-core gnupg flex bison gperf build-essential \  
  zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \  
  lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \  
  libgl1-mesa-dev libxml2-utils xsltproc unzip u-boot-tools

3、安装gawk
将安装gawk特别提出来,是因为安装完2的依赖项以后,编译lichee仍会报错

awk: line 2: function strtonum never defined  
awk: line 2: function strtonum never defined  
ERROR: build kernel Failed  

这时候,需要安装gawk解决。

sudo apt-get install gawk

三、编译A64 AndroidM SDK
根据平台文档《A64_Tablet SDK Quick Start Guide.pdf》操作即可。

© 著作权归作者所有

共有 人打赏支持
ka布
粉丝 0
博文 20
码字总数 6282
作品 0
东莞
技术主管
pcDuino的u-boot移植与分析

一、准备工作 1.获取支持pcDuino的u-boot源码 https://github.com/linux-sunxi/u-boot-sunxi 在XP下直接点ZIP即可开始下载 2.获取交叉编译链 http://code.google.com/p/smp-on-qemu/downloa...

pc朵拉
2013/07/02
0
0
CubieTech Will Promote A80 Highperformance Mini PC

(These are 3D simulation pictures of CC-A80. These are not real photoes!!!) We have always had a dream to spread the open source Linux system to millions of households. Closed A......

cubieboard
2014/08/07
0
2
Allwinner 全志科技继续违反 (L)GPL 协议

中国民族企业 全志 Allwinner多次因为不开放涉及Linux/Android/U-Boot内核源代码而被控违反(L)GPL协议,警告之后全志继续使用(L)GPL协议提供二进制,并改代码使其变得不可辨识。Phoronix网站...

oschina
2015/03/27
18.1K
61
2014年4月1日 pcDuino V3今天全球正式发布,4月6日全球同步限量发售,

pcDuino 3照片和配置公布 pcDuino官网链接:http://www.pcduino.com/?pageid=1960 接口图: 基本配置: 硬件 软件

pc朵拉
2014/04/01
3.1K
3
有关pcduino 内核编译问题

@pc朵拉 你好,想跟你请教个问题:本人刚接触PCduino开发板,因为内核不支持NAT,现在想重新编译内核,到最后发现有过程如下: make[1]: Leaving directory `/arm/kernel/linux-sunxi' cd /a...

sonyxing
2013/07/29
1K
2

没有更多内容

加载失败,请刷新页面

加载更多

Bash重定向详解

Bash重定向详解 Bash的重定向指的是将命令的输入和输出导向不同地方,而不是默认的标准输入、标准输出和标准错误。Bash的重定向实际上是对标准输入、标准输出和标准错误的重置,进而将所需输...

小陶小陶
15分钟前
1
0
EventBus原理深度解析

一、问题描述 在工作中,经常会遇见使用异步的方式来发送事件,或者触发另外一个动作:经常用到的框架是MQ(分布式方式通知)。如果是同一个jvm里面通知的话,就可以使用EventBus。由于Event...

yangjianzhou
今天
5
0
OpenCV图像处理实例:libuv+cvui显示摄像头视频

#include <iostream>#include <opencv2/opencv.hpp>#define CVUI_IMPLEMENTATION#include <cvui.h>extern "C"{#include <uv.h>}using namespace std;#define WINDOW_NAM......

IOTService
今天
3
0
openJDK之JDK9的String

1.openJDK8的String 先来看下openJDK8的String的底层,如下图1.1所示: 图1.1 底层上使用的是char[],即char数组 每个char占16个bit,Character.SIZE的值是16。 2.openJDK9中的String 图2.1...

克虏伯
今天
3
0
UEFI 模式下如何安装 Ubuntu 16.04

作者:知乎用户 链接:https://www.zhihu.com/question/52092661/answer/259583475 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 针对UEFI模式下安装U...

寻知者
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部