最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

全志A31开发板编译环境搭建指导书

IT圈 admin 19浏览 0评论

2024年11月4日发(作者:章佳闲丽)

.04

文档编号

产品名称:

产品版本

密级

共页

全志A31开发板编译环境(huánjìng)搭建指导书

(仅供内部(nèibù)使用)

日期:

日期:

日期:

日期:

2013/10/25

yyyy-mm-dd

yyyy-mm-dd

yyyy-mm-dd

拟制:

审核:

核准:

签发:

黄庆丰

文档版本:

版权所有侵权必究

全志A31开发板编译环境搭建指导书密级:

文件修改(xiūgǎi)记录

修改日期

2013/10/2

5

2013/10/3

1

2013/11/0

5

版本

1.00

1.01

修改页码、章

节、条款

修改描述

初稿

作者

黄庆丰

黄庆丰

1.02

1、修改5.2和

7.2;

2、增加5.4

1、增加7.2.13

2、增加7.2.14

2013/11/0

8

1.03

1、增加7.2.14

2、把之前的

7.2.14变成7.2.15

1、增加突然出

黄庆丰

现“已杀死”信

息导致的退出;

2、增加编译成

功终端信息作为

参考

1、增加磁盘分

黄庆丰

区空间不够导致

的编译失败问题

2

全志A31开发板编译环境搭建指导书密级:

目 录

一、

二、

三、

全志A31介绍(jièshào) ............................................................................................5

编译(biānyì)环境配置要求 .....................................................................................6

vMware8.0和ubuntu12.04的安装(ānzhuāng) ........................................................6

3.1 虚拟机环境(huánjìng)确认 ...............................................................................6

3.2 vMware8.0安装(ānzhuāng) ................................................................................7

3.3 ubuntu12.04安装 ............................................................................................. 10

四、 ubuntu12.04基础环境配置 ....................................................................................31

4.1 ubuntu12.04上网配置 ..................................................................................... 31

4.2 ubuntu12.04的软件源设置 ............................................................................. 35

4.3 ubuntu12.04转换成中文显示 ......................................................................... 39

五、 编译环境安装 .........................................................................................................43

5.1 利用samba设置共享 ........................................................................................ 43

5.2 JAVA6的安装 ..................................................................................................... 49

5.3 Repo的安装 ....................................................................................................... 49

5.4 vMware安裝vMware Tools .............................................................................. 50

六、 操作技巧 .................................................................................................................53

6.1 打开终端的快捷键 .............................................................................................53

6.2 系统如何在桌面/当前目录打开终端? .......................................................... 54

6.3 快捷键查看CPU和内存使用情况 .................................................................... 56

6.4 调整虚拟机分配内存 ........................................................................................ 56

6.5 快速添加源的方法 ............................................................................................. 57

七、 附录 .........................................................................................................................58

7.1 源定义说明 ........................................................................................................ 58

7.2 疑难问题汇总 .................................................................................................... 59

3

全志A31开发板编译环境搭建指导书密级:

全志A31开发板编译(biānyì)环境搭建指导书

关键词:全志A31、编译(biānyì)、Android

摘 要:

缩略语说明(shuōmíng):

缩略语

参考资料:

英文全名

中文解释

4

全志A31开发板编译环境搭建指导书密级:

一、 全志A31介绍(jièshào)

A31是珠海(zhū hǎi)全志科技股份有限公司(Allwinner Technology)推出

的一款四核移动(yídòng)应用处理器,可应用(yìngyòng)于平板电脑,智能手机,智

能电视(diànshì)等领域。

四核移动应用处理器A31

A31采用4核Cortex-A7 CPU架构,配备 PowerVR SGX544MP2 GPU,同时

支持4Kx2K视频解码。此外,A31配备了双通道DDR,最高支持64-bit

DDR3,以及双通道NAND Flash,最高支持16-bit NAND Flash,提升系统内

存的读写速度,解决了带宽瓶颈。不仅如此,A31还拥有完善的功耗管理系

统。全志科技为A31量身打造了一颗智能电源管理芯片AXP221, A31在其配

合下可实现电源动态管理,同时,A31还配备了一颗专门用于超低功耗管理的

核心,实现了超长续航。下面是规格参数表:

ARM Cortex-A7 Quad-Core

CPU 256KB L1 Cache

1MB L2 Cache

POWER VR SGX 544 MP2@250MHz

GPU

Comply with Open GL ES2.0, Open CL1.x, DX 9_3

UHD H.264 4K ×2K video decoding

Multi-format HD video decoding

BD Directory, BD ISO and BD m2ts video decoding

Video H.264 High Profile 1080P@60fps encoding

3840x1080@30fps 3D decoding

Comply with RTSP, HTTP, HLS, RTMP, MMS streaming media

protocol

Dual-Channel LVDS 1920 ×1080@60fps

4-lane MIPI DSI 1920×1200 @60fps

Display

Dual-Channel RGB/CPU 20481536 @60fps

Integrated HDMI 1.4 1080p@60fps

Integrated Parallel & MIPI I/F sensor

Camera Integrated Powerful ISP, supporting Raw Data CMOS sensor

5M/8M/12M CMOS Sensor supported

5

全志A31开发板编译环境搭建指导书密级:

Memory

PMIC

Audio

OS

8/10/12-bit YUV/Bayer sensor supported

Dual-Channel LPDDR2/DDR3/DDR3L Controller

Dual-Channel NAND FLASH Controller

64-bit ECC

PMIC AXP221

21-CH power output and 2.2A Flash charging

Comply with USB 3.0 power supply standard

Integrated HI-FI 100dB Audio Codec

Three MIC

One MIC with Noise cancellation

Support Android 4.1/4.2 and above

Compatible with Microsoft Windows 8

二、 编译环境配置(pèizhì)要求

对于编译服务器的选择(xuǎnzé),最好是选择Ubuntu12.04(64 bit),也可以

(kěyǐ)Ubuntu12.04(32bit),但是(dànshì)并不推荐(tuījiàn)使用32bit 的。需要有

以下配置:

all:

sudo apt-get install sun-java6-jdk

ubuntu64:

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 ia32-libs

x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev

ubuntu32:

sudo apt-get install git-core gnupg flex bison gperflibsdl-dev libesd0-dev

libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind

三、 vMware8.0和ubuntu12.04的安装

下面我们采用虚拟机安装方式来实现编译环境。虚拟机安装环境就是在

windos的环境上安装虚拟机,然后在虚拟机里面安装操作系统。我们的想法

是安装vmware虚拟机,然后在vmware虚拟机上安装ubuntulinux操作系

统。

3.1 虚拟机环境确认

既然需要安装Ubuntu12.04(64 bit)的Linux操作系统环境,那么我们先需

要确认我们的电脑CPU和操作系统是不是支持64位的,桌面上单击我的电脑

->右键->属性,看到下面信息:

6

全志A31开发板编译环境搭建指导书密级:

可以看到这台电脑(diànnǎo)的操作系统是win7的64位版本(bǎnběn),

CPU是Intel的奔腾(bēnténg)G2030双核处理器,所以虚拟机安装环境是没有

(méi yǒu)问题的。

3.2 vMware8.0安装(ānzhuāng)

VMware[3],Inc. (Virtual Machine ware)是一个“虚拟PC”软件公司,提供

服务器、桌面虚拟化的解决方案。双击安装文件,出现下面窗口:

等一下会出现下一张图,不管它直接点击Next:

7

全志A31开发板编译环境搭建指导书密级:

出现(chūxiàn)下一张图,点Typical前面(qián mian)的框:

出现(chūxiàn)下面的图是让你选则安装位置,点Next默认(mòrèn)是C

盘,这个(zhè ge)一般都没有必要修改,除非你的C盘空间不够,如果要改为

别的盘点击change…:

8

全志A31开发板编译环境搭建指导书密级:

出现(chūxiàn)下面这张图,表示vMware正在(zhèngzài)向上面设置的路径进

行安装:

出现下面界面时不管,我们(wǒ men)一般都是使用破解版本,当然如果你有密

钥也是可以输入的:

9

全志A31开发板编译环境搭建指导书密级:

激活后出现下面界面,表示已经(yǐ jing)安装完成,单击Finish:

3.3 ubuntu12.04安装(ānzhuāng)

虚拟机安装完成,下面进入最重要(zhòngyào)的ubuntu12.04的安装,这个主要是安

10

全志A31开发板编译环境搭建指导书密级:

装镜像编译需要的linux环境。ubuntu12.04 precise版本(bǎnběn)首先(shǒuxiān)它是

Linux操作系统,不同于我们所习惯的windows操作系统,其次它是Ubuntu的12.04版本的

操作系统,于2012年4月26日放出,是目前最新的一个长期支持版本(Long terms

support)。鉴于Ubuntu的每一个版本都对应于一种动物,那么这次的版本precise

pangolin中文名字是精确的穿山甲。

首先肯定(kěndìng)是打开虚拟机:

我们(wǒ men)新建一个虚拟机,单击file->New Virtual Machine:

11

全志A31开发板编译环境搭建指导书密级:

弹出下面(xià mian)界面,选择Custom,单击next:

弹出下面界面,我们前面(qián mian)安装了8.0版本,单击Next:

12

全志A31开发板编译环境搭建指导书密级:

下面这个(zhè ge)界面我们选择iso镜像安装,单击Next:

13

全志A31开发板编译环境搭建指导书密级:

弹出下面界面,我们(wǒ men)选择Linux,Version选择Ubuntu 64-bit,单击Next:

14

全志A31开发板编译环境搭建指导书密级:

下面(xià mian)界面是让你确认你的选择的,单击Next就可以了:

15

全志A31开发板编译环境搭建指导书密级:

设置CPU,可以选择默认,如果你电脑的CPU核数目(shùmù)够多,可以多选几个处理器,

单击Next:

16

全志A31开发板编译环境搭建指导书密级:

下面这个界面选择虚拟机运行(yùnxíng)内存打下,一般选择768M~1024M就可以了,单击

Next:

17

全志A31开发板编译环境搭建指导书密级:

下面界面(jièmiàn)设置虚拟机的网络连接,可以选择NAT,单击Next:

18

全志A31开发板编译环境搭建指导书密级:

下面界面(jièmiàn)选择I/O适配器的类型,安装默认就可以了,单击Next:

19

全志A31开发板编译环境搭建指导书密级:

下面就是要选择的安装虚拟机磁盘类型(lèixíng),按照默认的选择就可以,都是单击

Next:

20

A31开发板编译环境搭建指导书密级:

21

全志

全志A31开发板编译环境搭建指导书密级:

下面界面是设置虚拟机磁盘(cí pán)空间大小和划分磁盘为多个文件分区,单

击Next:

下面界面表示每个磁盘文件(wénjiàn)的前缀名称定义,默认就可以,单击Next:

22

全志A31开发板编译环境搭建指导书密级:

下面是客户定制的硬件信息,需要你确认是否正确(zhèngquè),这个时候你不要急着点完

成,先单击Customize Hardware:

23

全志A31开发板编译环境搭建指导书密级:

弹出下面界面(jièmiàn),选择New CD/DVD,把我们需要安装的ubuntu12.04的iso镜像导

入,单击关闭:

24

全志A31开发板编译环境搭建指导书密级:

然后(ránhòu)在返回的界面选中Power On…,单击完成(wán chéng):

25

全志A31开发板编译环境搭建指导书密级:

下面就是安装ubuntu12.04,下面只说几个关键的地方,下面界面是选择你所在(suǒzài)

的时区:

26

全志A31开发板编译环境搭建指导书密级:

下面是你的操作系统安全管理设置(shèzhì),包括设置用户名和密码:

下面界面是安装(ānzhuāng)等待界面:

27

全志A31开发板编译环境搭建指导书密级:

28

全志A31开发板编译环境搭建指导书密级:

安装完成(wán chéng)后,回出现桌面生成等待界面:

29

全志A31开发板编译环境搭建指导书密级:

最后(zuìhòu)生成的桌面是这个样子,已经和windos类似了:

30

全志A31开发板编译环境搭建指导书密级:

四、 ubuntu12.04基础环境(huánjìng)配置

4.1 ubuntu12.04上网(shànɡ wǎnɡ)配置

第一步我们进行(jìnxíng)网络设置,单击菜单栏VM->Settings:

31

全志A31开发板编译环境搭建指导书密级:

确认网络设置是否是NAT,配置成VMWARE使用NAT方式使用和win7相同(xiānɡ tónɡ)的

网络配置一起上网:

32

全志A31开发板编译环境搭建指导书密级:

然后确认ubuntu操作系统的网络设置是否正确,进入ubuntu12.04的桌面(zhuōmià

n),左边菜单栏选择system settings->hardware->network:

33

全志A31开发板编译环境搭建指导书密级:

可以看到下面(xià mian)界面,单击右下角的options->Ipv4 Settings,确认method

是否选择了下面(xià mian)的自动DHCP:

34

全志A31开发板编译环境搭建指导书密级:

设置成这个样子后,你的ubuntu就可以和你的windos一样(yīyàng)可以上网了。

4.2 ubuntu12.04的软件(ruǎn jiàn)源设置

你需要下载软件安装,例如(lìrú)你需要把英文界面更改成中文界面,那么你要下载

中文语言包,这些你都要告诉ubuntu在那个源上进行软件更新和下载(xià zǎi),这样才

能下载得快,因为ubuntu默认都是在国外的源上下载和更新软件的。Ubuntu12.04有图形

界面来方便你找到最快的源,先需要(xūyào)找到ubuntu的软件中心,单击打开,界面如

下:

35

全志A31开发板编译环境搭建指导书密级:

然后找到左上角的编辑菜单(cài dān),单击,选择软件源,应该会出现下面界面:

36

全志A31开发板编译环境搭建指导书密级:

选择(xuǎnzé)下载自,从下拉菜单选中其他(qítā)站点,出现下面界面:

然后单击选择最佳服务器,系统(xìtǒng)会弹出下面测试界面:

37

全志A31开发板编译环境搭建指导书密级:

这样你就可以在中国列表里面选择最快的源了,一般都可以使用(shǐyòng)163的源,

然后单击关闭:

38

全志A31开发板编译环境搭建指导书密级:

上面软件源选择完成,当然你也可以在网上搜索通过修改(xiūgǎi)文件

的方式来修改软件源。这里就不在详细介绍。

4.3 ubuntu12.04转换成中文(zhōngwén)显示

有些人看英文怎不习惯,那么(nà me)我们可以把ubuntu的界面转换成中文显示。单

击system settings:

39

全志A31开发板编译环境搭建指导书密级:

然后(ránhòu)在personal中单击language support:

进度条完成后,选择“添加和删除语言栏”,由于我系统已经设置成中文,所以大家

看到的都是中文,但是(dànshì)不影响:

40

全志A31开发板编译环境搭建指导书密级:

选择上面的中文简体,然后(ránhòu)应用变更,系统就开始自动下载和更新系统:

更新完成(wán chéng)后,你需要把“汉语中国”拖动到第一列:

41

全志A31开发板编译环境搭建指导书密级:

再单击应用到整个系统(xìtǒng)就可以了:

然后再重新启动ubuntu,这样中文(zhōngwén)就生效了。系统都转换成了中文语言格

式。

42

全志A31开发板编译环境搭建指导书密级:

五、

编译(biānyì)环境安装

5.1 利用(lìyòng)samba设置(shèzhì)共享

对开发人员来说,第二个需要安装的就是samba,完成(wán chéng)windos和ubuntu之

间的文件共享和拷贝,samba的安装可以在终端上完成:

Samba 是一款功能强大的共享工具,可以实现与windows的共享,就是我们(wǒ men)

经常在windows计算机之间使用的网上邻居功能,可以共享文件和打印机等。今天要介绍

的是在 ubuntu 12.04 中安装和设置,当然也可以在以前的版本上使用。

5.1.1 下面(xià mian)是samba的安装步骤:

1 安装Samba文件

我们需要做的第一件事是安装Samba,你可以在Ubuntu软件中心搜索软

件,然后安装。如果你想通过终端安装,可复制这个命令:

sudo apt-get install samba samba-common

2 为配置工具安装一些依赖包(不要忘记安装python-glade2)

sudo apt-get install python-glade2

3 安装 samba 系统配置图形界面工具

sudo apt-get install system-config-samba

5.1.2 文件共享实现

Samba安装完成后,我们打开samba,先单击桌面上的Dash主页:

43

全志A31开发板编译环境搭建指导书密级:

可以看到里面有samba应用程序,这是图形化的:

单击打开,会弹出界面要求(yāoqiú)输入密码,输入密码后进行下面界面:

你可以(kěyǐ)单击左上角的“”图标,弹出下面(xià mian)界面:

44

全志A31开发板编译环境搭建指导书密级:

这个设置(shèzhì)方法和windos上类似了,设置你要共享的目录(mùlù)、文

件夹和属性:

在访问(fǎngwèn)页里设置谁可以访问:

45

全志A31开发板编译环境搭建指导书密级:

下一步(yī bù)完成在win7电脑上进行驱动器映射,打开我的电脑,单击上

面(shàng miɑn)的映射网络驱动,弹出下面界面,输入要访问的共享文件夹,

单击完成:

46

全志A31开发板编译环境搭建指导书密级:

然后会要求你输入(shūrù)凭据:

然后你的电脑(diànnǎo)上类似下面的显示:

这个(zhè ge)时候你可以把你的文件拷贝到这个文件夹里面:

47

全志A31开发板编译环境搭建指导书密级:

如果(rúguǒ)提示没有权限,你可以在ubuntu上的终端(zhōnɡ duān)里面修

改,下面图片的白色部分:

很简单(jiǎndān)吧,这样你就可以把windos上存放的文件(wénjiàn)或者编

译代码拷贝到ubuntu上,然后(ránhòu)在windos上修改代码(dài mǎ),利用

48

全志A31开发板编译环境搭建指导书密级:

windos强大(qiángdà)的软件支持,对代码进行编辑、Lint等编译前工作,然后

在ubuntu上进行编译。

5.2 JAVA6的安装

用户手册上面强调需要安装JAVA,而ubuntu自带的JAVA版本是

OPENJAVA。所以我们需要使用下面命令安装JAVA6

sudo apt-get install sun-java6-jdk

但是安装时出现了错误:

怎么解决上面这个错误:

sudo add-apt-repository "deb /webupd8team/java/ubuntu

precise main"

sudo apt-get update

sudo apt-get install oracle-java6-installer

这个是因为ubuntu12.04 precise版本对应的JAVA6版本在PPA上存放路径

已经修改到webupd8team下面导致的。安装完成后你可以使用命令查询java的

版本:java–version。

5.3 Repo的安装(ānzhuāng)

Repo是用于android的源码同步(tóngbù),下面以从google网站(wǎnɡ zhàn)

下载安卓源码的方式repo来表明(biǎomíng)repo的安装(ānzhuāng):

49

全志A31开发板编译环境搭建指导书密级:

1、安装git:

sudo apt-get install git-core

2、安装curl:

sudo apt-get install git-core curl

3、安装repo, 通过curl下载repo:

curl /files/repo-1.12 > ~/bin/repo

4、给repo可执行权限:

chmoda+x ~/bin/repo

5、修改~/bin/repo文件将第五行:

REPO_URL='/p/git-repo/'

改为

REPO_URL='/p/git-repo/'

否则会出现error:Failed connect to :443; Operation now in

progress while accessing /p/git-repo//info/refs

6、然后向PATH中添加bin路径:

export PATH=$PATH:~/bin

5.4 vMware安裝vMware Tools

vmware tools是虚拟机VMware Workstation自带的一款工具,它的作用就

是使用户可以从物理主机直接往虚拟机里面拖文件。如果不安装它,我们是无

法进行虚拟机和物理机之间的文件传输的,当然它的功效不止于此,平时我们

操作虚拟机的时候,在物理机和虚拟机之间必须使用CTRL切换,如果安装之

后我们就不必使用键盘切换,直接便可退出,使得虚拟机真正成为了电脑的一

部分,那么这么神奇的vmware tools应该怎么安装呢?

先把vmware tools放入虚拟光盘,会弹出下面的选择框,选择yes:

50

全志A31开发板编译环境搭建指导书密级:

然后(ránhòu)在ubuntu的桌面(zhuōmiàn)左上角找到主文件夹单击打开(dǎ k

āi),也有可能(kěnéng)是自动弹出:

在VMware文件夹上单击右键选择提取(tíqǔ)到你的工作目录下(不能解压在当

前目录下,当前目录/media/VMware Tools是只读的:

51

全志A31开发板编译环境搭建指导书密级:

这里解压在下面(xià mian)目录,在上面执行脚本,可能(kěnéng)没有权

限,前面可以增加sudo:

安装(ānzhuāng)时一路回车就可以了:

52

全志A31开发板编译环境搭建指导书密级:

安装成功会有下面(xià mian)信息:

六、 操作(cāozuò)技巧

6.1

打开(dǎ kāi)终端的快捷键

Ctrl+Alt+T打开shell进行命令(mìng lìng)输入。

53

全志A31开发板编译环境搭建指导书密级:

6.2 系统如何在桌面/当前目录打开(dǎ kāi)终端?

你只需要执行以下代码(dài mǎ)就可以啦:

sudo apt-get install nautilus-open-terminal

重启后,就可以在任何(rènhé)目录下打开终端了:

54

全志A31开发板编译环境搭建指导书密级:

例如我在桌面上打开效果(xiàoguǒ)如下:

55

全志A31开发板编译环境搭建指导书密级:

6.3 快捷键查看CPU和内存使用(shǐyòng)情况

在调试(diào shì)终端上输入:gnome-system-monitor,界面(jièmiàn)如

下:

6.4 调整(tiáozhěng)虚拟机分配内存

Ubuntu12.04跑起来的内存消耗大概在400M左右,这个依赖于你安装和运

行的服务多少,现在我们可以动态调整分配(fēnpèi)给虚拟机的内存大小,单

击vMware菜单栏上的VM->Settings,弹出如下界面,你可以在蓝色框中进行

ubuntu运行内存限制的调整:

56

全志A31开发板编译环境搭建指导书密级:

6.5 快速添加(tiān jiā)源的方法

两条命令(mìng lìng)就可以完成:

sudo add-apt-repository "deb /ubuntu/

hardy multiverse",

sudo apt-get update

注: 如果系统提示没有add-apt-repository命令,则需要(xūyào)先安装

python-software-properties,命令sudo apt-get install python-

software-properties。另外,有些版本的ubuntu即使安装了python-

software-properties也无add-apt-repository命令,此时需要手动添加此行

"deb /ubuntu maverick partner"到

/etc/apt/文件(wénjiàn)中。)

57

全志A31开发板编译环境搭建指导书密级:

七、 附录(fùlù)

7.1 源定义(dìngyì)说明

源列表主文件为 /etc/apt/,另兼取

/etc/apt/.d/*,最终结果以并集论。源列表文件以行为单位,

每行分多个字段,字段间以空白符分隔(fēngé)。井号(#)开头行为注释行。

那么(nà me)deb /ubuntu maverick partner

这样的源语句是什么意思?大家(dàjiā)应该不一定很清楚。下面进行一下各

个字段的说明:

第一字段,指示包类型:

取值只有「deb」「deb-src」两个,分别对应二进制包和源码包。通常只有二

进制包对我们有用。

第二字段,指示镜像站点,即「源」:

URL 通常需要定位到某个目录,一般是打开该目录就能看到有「dists」

「pool」两个子目录。看看 /ubuntu/。

第三字段,指示包的「版本」,姑且称为「仓库」:

打开一个源,再进入「dists」子目录可见该「源」中有哪些「版本」可用,

就是那些子目录。通常都是大小版本用减号(-)连在一起命名。很明显大版

本号即系统的版本名称,比如「squeeze」「wheezy」。没有减号连接小版本

的就是主版本。除主版本外,小版本有:

「security」:Ubuntu 用于指安全性更新。即影响系统安全的 bug 修补。

「updates」:非安全性更新。即不影响到系统安全的 bug 修补。

「proposed-updates」:预更新。小 beta 版。过后会进入「updates」或

「security」。

Ubuntu 仅用「proposed」,无后缀「updates」。

「backports」:后备。某系统版本自正式发行后,其所有软件便会冻结版本

号(按原始软件发布时间论),所有软件只修 bug,不增加任何功能。但有些

人可能需要更新的版本所提供的新功能,甚至某些较新的软件根本就没有。该

仓库正因此而设,但欠官方维护,且可能在系统正式发布之后过一段时间才有

效。此仓库版本处于第二优先顺序,除非特别指明或原来没有的软件,否则不

会被安装。其余版本都处于第一优先顺序。

第四字段,后续字段,指示包许可类型:

后续字段排名不分先后,最终结果取其并集。按包本身的许可及所直接依赖的

包的许可划分。打开一个源,进入「dists」子目录,然后再进入某个版本目

录,又可见几个子目录。Ubuntu 最多有四种:

「main」,官方维护的自由软件。

「universe」,社区维护的自由软件。

「restricted」,设备专有驱动。

「multiverse」,同 Debian 的「non-free」。某些另类(lìnɡ lèi)的第三方

源,不排除存在上述几种之外的可能。总之,打开仓库目录自己看。

58

全志A31开发板编译环境搭建指导书密级:

7.2 疑难问题汇总(huìzǒng)

7.2.1 解决(jiějué)访问PPA时缺少许可证方法(fāngfǎ):

ubuntu下许多(xǔduō)软件的最新版往往需要使用ppa源才能获得,但是前

一阵子我用ppa源更新时却弹出了一些警告信息,比如:

W: GPG error:

intrepid Release: The following signatures couldn't be verified because

the public key is not available: NO_PUBKEY 2EA8F35793D8809A

在终端上使用下面命令就可以解决:

gpg --keyserver --recv 2EA8F35793D8809A

gpg --export --armor 2EA8F35793D8809A | sudo apt-key add –

7.2.2 解决waiting for jockey-backend to exit 方法:

终端输入:

ps -e | grep jockey

得到jockey的id

然后:sudo kill “id”

7.2.3 解决编译内核uImage出现问题“mkimage” command not found - U-

Boot images will not be built方法:

Sudoapt-get installuboot-mkimage

7.2.4 解决安装lib32readline5-dev 出现问题“E: 软件包

lib32readline5-dev 没有可供安装的候选者”的方法:

sudo apt-get install lib32readline-gplv2-dev

或者安装:

sudo apt-get install lib32readline6-dev

7.2.5 软链接无效的解决办法:

1、下面是全志A31编译linux的modules时出现的无效链接,ls–l时出

现红色表示链接无效:

/work/lichee/linux-

3.3/modules/eurasia_km/eurasiacon/binary2_sunxi_android_release/targ

et/kbuild/services4/3rdparty/dc_sunxi$ ls -l

总用量 8

59

全志A31开发板编译环境搭建指导书密级:

lrwxrwxrwx 1 hqfhqf 121 Jul 25 10:00 dc_sunxi_displayclass.c ->

/disk2/kylin/a31-v4.2-v3.2-kfb-ok/lichee/linux-

3.3/modules/eurasia_km/services4/3rdparty/dc_sunxi/dc_sunxi_displayc

lass.c

lrwxrwxrwx 1 hqfhqf 114 Jul 25 10:00 dc_sunxi_linux.c ->

/disk2/kylin/a31-v4.2-v3.2-kfb-ok/lichee/linux-

3.3/modules/eurasia_km/services4/3rdparty/dc_sunxi/dc_sunxi_linux.c

2、在SDK里面(lǐmiàn)找到这两个文件的存放路径:

Z:licheelinux-

3.3moduleseurasia_kmservices43rdpartydc_sunxi

3、然后使用rm命令删除下面路径(lùjìng)下的两个无效链接文件:

/work/lichee/linux-

3.3/modules/eurasia_km/eurasiacon/binary2_sunxi_android_release/targ

et/kbuild/services4/3rdparty/dc_sunxi:dc_sunxi_displayclass.c、

dc_sunxi_linux.c

4、最后使用下面命令建立(jiànlì)新的链接:

hqf@ubuntu:~/work/lichee/linux-

3.3/modules/eurasia_km/eurasiacon/binary2_sunxi_android_release/targ

et/kbuild/services4/3rdparty/dc_sunxi$ ln -s

/home/hqf/work/lichee/linux-

3.3/modules/eurasia_km/services4/3rdparty/dc_sunxi/dc_sunxi_displayc

lass.c dc_sunxi_displayclass.c

hqf@ubuntu:~/work/lichee/linux-

3.3/modules/eurasia_km/eurasiacon/binary2_sunxi_android_release/targ

et/kbuild/services4/3rdparty/dc_sunxi$ ln -s

/home/hqf/work/lichee/linux-

3.3/modules/eurasia_km/services4/3rdparty/dc_sunxi/dc_sunxi_linux.c

dc_sunxi_linux.c

5、建立后使用下面命令查看是否软链接使用建立成功(chénggōng),绿色

表示链接建立成功:

hqf@ubuntu:~/work/lichee/linux-

3.3/modules/eurasia_km/eurasiacon/binary2_sunxi_android_release/targ

et/kbuild/services4/3rdparty/dc_sunxi$ ls -l

总用量 8

lrwxrwxrwx 1 hqfhqf 102 Oct 29 10:25 dc_sunxi_displayclass.c ->

/home/hqf/work/lichee/linux-

3.3/modules/eurasia_km/services4/3rdparty/dc_sunxi/dc_sunxi_displayc

lass.c

lrwxrwxrwx 1 hqfhqf 95 Oct 29 10:24 dc_sunxi_linux.c ->

/home/hqf/work/lichee/linux-

3.3/modules/eurasia_km/services4/3rdparty/dc_sunxi/dc_sunxi_linux.c

6、送一个(yī ɡè)文件夹建立软链接的方法:

文件夹建立软链接(liàn jiē)(用绝对地址)

ln -s 源地址 目的(mùdì)地址

60

全志A31开发板编译环境搭建指导书密级:

比如(bǐrú)我把linux文件系统rootfs_dir软链接到/home/jyg/目录

ln -s /opt/linux/rootfs_dir /home/jyg/rootfs_dir就可以(kěyǐ)了

7、全志A31缺少软链接的解决方法:

ln -s /home/huangqingfeng/work/lichee/linux-

3.3/modules/eurasia_km/services4/home/huangqingfeng/work/lichee/linu

x-

3.3/modules/eurasia_km/eurasiacon/binary2_sunxi_android_release/targ

et/kbuild/services4

7.2.6 解决问题“./scripts/build_: 行 19: fakeroot: 未找到命

令”的方法:

sudogedit /etc/profile

在文件profile添加语句:

export PATH=$PATH:/home/hqf/work/lichee/buildroot/target/tools/host/usr/bin

最后同步一下:

source /etc/profile

7.2.7 解决问题“fakeroot: preload library not found, aborting.”的方

法:

sudo apt-get install cramfsprogs

sudo apt-get install fakeroot

7.2.8 安卓编译时问题“/bin/bash: xsltproc: 未找到命令”等的解决方

法:

sudo apt-get install xsltproc

7.2.9 Android4.2.2在ubuntu12.04(64)位版本编译(biānyì)时出现问题(w

èntí)“find: `../../vendor/unbundled google/libs/gcm/gcm-

client/src': No such file or directory”等错误信息的解决(jiějué)

方法:

1、原因(yuányīn)是ubuntu12.04自带的Gcc/G++都是4.6太高导致(dǎ

ozhì),先安装gcc4.4的版本:

sudo apt-get install gcc-4.4 gcc-4.4-multilib libstdc++6-4.4-

dev

61

全志A31开发板编译环境搭建指导书密级:

2、我们把系统默认的降级到4.4:

$sudo update-alternatives --install /usr/bin/gcc

gcc/usr/bin/gcc-4.4 40 (这里“40” 是优先级,值越大优先级越高)

$sudo update-alternatives --install /usr/bin/gcc gcc

/usr/bin/gcc-4.6 60 (本机自带的设置为60更高的优先级)

选择系统默认的gcc:

$sudo update-alternatives ––config gcc

Selection Path Priority Status

------------------------------------------------------------

* 0 /usr/bin/gcc-4.6 60 auto mode

1 /usr/bin/gcc-4.4 40 manual

mode

2 /usr/bin/gcc-4.6 60 manual

mode

默认系统用最高优先级的, 这里我们选择1就可以了

接下来,g++ 同样的步骤操作

$sudo update-alternatives --install /usr/bin/g++ g++

/usr/bin/g++-4.4 40

$sudo update-alternatives --install /usr/bin/g++ g++

/usr/bin/g++-4.6 60

$sudo update-alternatives --config g++

Selection Path Priority Status

------------------------------------------------------------

* 0 /usr/bin/g++-4.6 60 auto mode

1 /usr/bin/g++-4.4 40 manual

mode

2 /usr/bin/g++-4.6 60 manual

mode

选择1.

3、设置默认gcc完成后,可以使用gcc–v查看是否切换成gcc4.4的版

本了;

4、如果想改为高版本的随时用update-alternatives --config 命令切

换!

7.2.10 Android4.2.2在ubuntu12.04(64)位版本(bǎnběn)编译时出现

问题“/bin/bash: xmllint: command not found”错误信息的解决(jiě

jué)方法:

sudo apt-get install libxml2-utils

62

全志A31开发板编译环境搭建指导书密级:

7.2.11 Android4.2.2在ubuntu12.04(64)位版本编译时出现(chūxiàn)

问题“ollect2: error: ld terminated with signal 9”错误信息的解

决(jiějué)方法:

增加(zēngjiā)ubuntu的虚拟内存。具体操作如下:

1、查看系统虚拟内存,命令:free -m

[html] view plaincopyprint?

carson@carson-pc:~$ free -m

total used free shared buffers cached

Mem: 1998 1528 469 0 6 423

-/+ buffers/cache:1098 900

Swap: 2036 361 1675

我这是已经增加swap的,一般swap2G左右就足够编译android用的。在编译过程中,

虽然增加了2G,但在编译时,若做一些操作比较占用swap的话,也会出现此问题。比如从

移动硬盘copy android 源码。

2、在当前路径下创建一个 Swap 文件。

sudo dd if=/dev/zero of= bs=1M count=1k (count=1k创建1G的

Swap,如果要创建6G则count=6k;这步比较慢)

出现下列提示,上面命令中的 count 即代表swap文件大小,即增加的虚拟内存大

小。此命令出现如下信息:

100000+0 records in

100000+0 records out

102400000 bytes (102 MB) copied, 0.377325 s, 271 MB/s

1.

3、把生成的文件转换成 Swap 文件

sudo mkswap -f

此命令出现如下信息:

Setting up swapspace version 1, size = 99996 KiB

no label, UUID=b26fe88c-11c2-40ad-8139-6e69e96b6b68

4、激活 Swap 文件。

sudo swapon

此时free -m 查看Swap信息

total used free shared buffers cached

1998 FAMILY: Arial, Helvetica, sans-

serif"> 1189 809 0 34 624 -

/+ buffers/cache: 530 1468

Swap: 2134 986 1148

至此,swap已经增加成功了,如果想卸载刚增加的swap;

sudo swapoff

63

全志A31开发板编译环境搭建指导书密级:

5、如果(rúguǒ)需要一直保持这个 swap ,可以sudo -s换到root

然后(ránhòu)把它写入 /etc/fstab 文件:

/路径(lùjìng)/ none swap defaults 0 0

7.2.12 Ubuntu12.04(64)安装(ānzhuāng)android库时找不到

“lib32readline5-dev lib32z-dev”问题(wèntí)解决办法:

安装下面的库代替:

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 ia32-libs

x11proto-core-dev libx11-dev lib32readline6-devlib32z1-dev

7.2.13 编译过程中突然出现“已杀死”等问题的解决办法:

之前编译正常,没有发生错误,突然打印“make:……..已杀死”等类似

信息,那么都是由于系统设置的交换内存和虚拟机内存不够导致的,下面是我

在Ubuntu12.04(64)编译4.2.2的android时监控到底内存和交换使用大小:

64

全志A31开发板编译环境搭建指导书密级:

所以建议(jiànyì)给虚拟机分配的内存至少2G,交换空间(kōngjiān)至少

2G。

7.2.14 Ubuntu12.04编译(biānyì)android4.2.2时出现异常打印导致编

译失败“symbols/system/lib/libmock_': No space left on

device”问题(wèntí):

这个问题一般都是由于(yóuyú)虚拟磁盘空间不够导致,你可以通过命令查

看:

hqf@ubuntu:~/work/android4.2/android$ df

文件系统 1K-块 已用 可用 已用% 挂载点

/dev/sda1 50574012 47963820 41184 100% /

udev 2014396 4 2014392 1% /dev

tmpfs 809284 1080 808204 1% /run

none 5120 0 5120 0% /run/lock

none 2023208 200 2023008 1% /run/shm

/dev/sr0 59088 59088 0 100% /media/VMware Tools

可以看到sda1已经用完了(sda表示的是你的第一块sata硬盘,sda1表

示的是你的第一块sata硬盘的第一个分区。)。所以你要释放或者增加你的

磁盘分区空间,方法你可以到网上搜索清理磁盘空间。如果空间还不够的话,

你可以通过下面方式来扩大:

65

全志A31开发板编译环境搭建指导书密级:

当然你这样(zhèyàng)操作只是增加了整个磁盘空间大小,还需要进入

linux系统进行分区大小的调整。这个可以(kěyǐ)在网上搜索解决办法。

但是(dànshì)如果system free还不够的话,你只能(zhī nénɡ)重新安装

系统,选择更大的分区了。

如果出现这个(zhè ge)信息:No space left on device – running out

of Inodes,表明文件系统的inodes不够,需要清理。你可以通过命令df –i

来确认inode的使用情况:

Filesystem Inodes IUsed IFree IUse% Mounted on

/dev/xvda 2080768 2080768 0 100% /

tmpfs 92187 3 92184 1% /lib/init/rw

varrun 92187 38 92149 1% /var/run

varlock 92187 4 92183 1% /var/lock

udev 92187 4404 87783 5% /dev

tmpfs 92187 1 92186 1% /dev/shm

IUse%这一列如果接近100%,那么就会出现这个错误。你可以调用下面3

条命令:

for i in /*; do echo $i; find $i |wc -l; done

for i in /home/*; do echo $i; find $i |wc -l; done

sudo rm -rf /home/bad_user/directory_with_lots_of_empty_files

然后再调用df –i确认。

你也可以到网上搜索解决方法。

66

全志A31开发板编译环境搭建指导书密级:

7.2.15 最后送一个(yī ɡè)android4.2.2编译成功后的终端输出信息:

Combining NOTICE files into HTML

Combining NOTICE files into text

Installed file list: out/target/product/fiber-3g/

Target system fs image: out/target/product/fiber-

3g/obj/PACKAGING/systemimage_intermediates/

Running: -s out/target/product/fiber-3g/system

out/target/product/fiber-

3g/obj/PACKAGING/systemimage_intermediates/ ext4 system

805306368

+ echo 'in PATH=out/host/linux-x86/bin/:/usr/lib/jvm/java-6-

sun/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/

bin:/usr/games:/home/huangqingfeng/work/lichee/buildroot/target/tools/host/usr/bin:/

home/huangqingfeng/work/android/out/host/linux-

x86/bin:/home/huangqingfeng/work/android/prebuilts/gcc/linux-x86/arm/arm-linux-

androideabi-4.6/bin:/home/huangqingfeng/work/android/prebuilts/gcc/linux-

x86/mips/mipsel-linux-android-

4.6/bin:/home/huangqingfeng/work/android/development/emulator/qtools:/home/hua

ngqingfeng/work/android/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-

4.6/bin:/home/huangqingfeng/work/android/prebuilts/gcc/linux-x86/arm/arm-eabi-

4.6/bin:/home/huangqingfeng/work/android/development/scripts'

in PATH=out/host/linux-x86/bin/:/usr/lib/jvm/java-6-

sun/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/

bin:/usr/games:/home/huangqingfeng/work/lichee/buildroot/target/tools/host/usr/bin:/

home/huangqingfeng/work/android/out/host/linux-

x86/bin:/home/huangqingfeng/work/android/prebuilts/gcc/linux-x86/arm/arm-linux-

androideabi-4.6/bin:/home/huangqingfeng/work/android/prebuilts/gcc/linux-

x86/mips/mipsel-linux-android-

4.6/bin:/home/huangqingfeng/work/android/development/emulator/qtools:/home/hua

ngqingfeng/work/android/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-

4.6/bin:/home/huangqingfeng/work/android/prebuilts/gcc/linux-x86/arm/arm-eabi-

4.6/bin:/home/huangqingfeng/work/android/development/scripts

+ ENABLE_SPARSE_IMAGE=

+ '[' -s = -s ']'

+ ENABLE_SPARSE_IMAGE=-s

+ shift

+ '[' 5 -ne 4 -a 5 -ne 5 -a 5 -ne 6 ']'

+ SRC_DIR=out/target/product/fiber-3g/system

+ '[' '!' -d out/target/product/fiber-3g/system ']'

+ OUTPUT_FILE=out/target/product/fiber-

3g/obj/PACKAGING/systemimage_intermediates/

+ EXT_VARIANT=ext4

67

全志A31开发板编译环境搭建指导书密级:

+ MOUNT_POINT=system

+ SIZE=805306368

+ FC=

+ case $EXT_VARIANT in

+ '[' -z system ']'

+ '[' -z 805306368 ']'

+ '[' -n '' ']'

+ MAKE_EXT4FS_CMD='make_ext4fs -s -l 805306368 -a system

out/target/product/fiber-

3g/obj/PACKAGING/systemimage_intermediates/

out/target/product/fiber-3g/system'

+ echo make_ext4fs -s -l 805306368 -a system out/target/product/fiber-

3g/obj/PACKAGING/systemimage_intermediates/

out/target/product/fiber-3g/system

make_ext4fs -s -l 805306368 -a system out/target/product/fiber-

3g/obj/PACKAGING/systemimage_intermediates/

out/target/product/fiber-3g/system

+ make_ext4fs -s -l 805306368 -a system out/target/product/fiber-

3g/obj/PACKAGING/systemimage_intermediates/

out/target/product/fiber-3g/system

Creating filesystem with parameters:

Size: 805306368

Block size: 4096

Blocks per group: 32768

Inodes per group: 8192

Inode size: 256

Journal blocks: 3072

Label:

Blocks: 196608

Block groups: 6

Reserved block group size: 47

Created filesystem with 1231/49152 inodes and 102667/196608 blocks

+ '[' 0 -ne 0 ']'

Running: simg2img out/target/product/fiber-

3g/obj/PACKAGING/systemimage_intermediates/

out/target/product/fiber-

3g/obj/PACKAGING/systemimage_intermediates/unsparse_

Running: e2fsck -f -n out/target/product/fiber-

3g/obj/PACKAGING/systemimage_intermediates/unsparse_

e2fsck 1.41.14 (22-Dec-2010)

Pass 1: Checking inodes, blocks, and sizes

Pass 2: Checking directory structure

Pass 3: Checking directory connectivity

Pass 4: Checking reference counts

68

全志A31开发板编译环境搭建指导书密级:

Pass 5: Checking group summary information

out/target/product/fiber-

3g/obj/PACKAGING/systemimage_intermediates/unsparse_: 1231/49152

files (0.0% non-contiguous), 102667/196608 blocks

Install system fs image: out/target/product/fiber-3g/

out/target/product/fiber-3g/+out/target/product/fiber-

3g/obj/PACKAGING/recovery_patch_intermediates/recovery_from_boot.p

maxsize=822163584 blocksize=4224 total=411852740 reserve=8308608

内容总结

69

2024年11月4日发(作者:章佳闲丽)

.04

文档编号

产品名称:

产品版本

密级

共页

全志A31开发板编译环境(huánjìng)搭建指导书

(仅供内部(nèibù)使用)

日期:

日期:

日期:

日期:

2013/10/25

yyyy-mm-dd

yyyy-mm-dd

yyyy-mm-dd

拟制:

审核:

核准:

签发:

黄庆丰

文档版本:

版权所有侵权必究

全志A31开发板编译环境搭建指导书密级:

文件修改(xiūgǎi)记录

修改日期

2013/10/2

5

2013/10/3

1

2013/11/0

5

版本

1.00

1.01

修改页码、章

节、条款

修改描述

初稿

作者

黄庆丰

黄庆丰

1.02

1、修改5.2和

7.2;

2、增加5.4

1、增加7.2.13

2、增加7.2.14

2013/11/0

8

1.03

1、增加7.2.14

2、把之前的

7.2.14变成7.2.15

1、增加突然出

黄庆丰

现“已杀死”信

息导致的退出;

2、增加编译成

功终端信息作为

参考

1、增加磁盘分

黄庆丰

区空间不够导致

的编译失败问题

2

全志A31开发板编译环境搭建指导书密级:

目 录

一、

二、

三、

全志A31介绍(jièshào) ............................................................................................5

编译(biānyì)环境配置要求 .....................................................................................6

vMware8.0和ubuntu12.04的安装(ānzhuāng) ........................................................6

3.1 虚拟机环境(huánjìng)确认 ...............................................................................6

3.2 vMware8.0安装(ānzhuāng) ................................................................................7

3.3 ubuntu12.04安装 ............................................................................................. 10

四、 ubuntu12.04基础环境配置 ....................................................................................31

4.1 ubuntu12.04上网配置 ..................................................................................... 31

4.2 ubuntu12.04的软件源设置 ............................................................................. 35

4.3 ubuntu12.04转换成中文显示 ......................................................................... 39

五、 编译环境安装 .........................................................................................................43

5.1 利用samba设置共享 ........................................................................................ 43

5.2 JAVA6的安装 ..................................................................................................... 49

5.3 Repo的安装 ....................................................................................................... 49

5.4 vMware安裝vMware Tools .............................................................................. 50

六、 操作技巧 .................................................................................................................53

6.1 打开终端的快捷键 .............................................................................................53

6.2 系统如何在桌面/当前目录打开终端? .......................................................... 54

6.3 快捷键查看CPU和内存使用情况 .................................................................... 56

6.4 调整虚拟机分配内存 ........................................................................................ 56

6.5 快速添加源的方法 ............................................................................................. 57

七、 附录 .........................................................................................................................58

7.1 源定义说明 ........................................................................................................ 58

7.2 疑难问题汇总 .................................................................................................... 59

3

全志A31开发板编译环境搭建指导书密级:

全志A31开发板编译(biānyì)环境搭建指导书

关键词:全志A31、编译(biānyì)、Android

摘 要:

缩略语说明(shuōmíng):

缩略语

参考资料:

英文全名

中文解释

4

全志A31开发板编译环境搭建指导书密级:

一、 全志A31介绍(jièshào)

A31是珠海(zhū hǎi)全志科技股份有限公司(Allwinner Technology)推出

的一款四核移动(yídòng)应用处理器,可应用(yìngyòng)于平板电脑,智能手机,智

能电视(diànshì)等领域。

四核移动应用处理器A31

A31采用4核Cortex-A7 CPU架构,配备 PowerVR SGX544MP2 GPU,同时

支持4Kx2K视频解码。此外,A31配备了双通道DDR,最高支持64-bit

DDR3,以及双通道NAND Flash,最高支持16-bit NAND Flash,提升系统内

存的读写速度,解决了带宽瓶颈。不仅如此,A31还拥有完善的功耗管理系

统。全志科技为A31量身打造了一颗智能电源管理芯片AXP221, A31在其配

合下可实现电源动态管理,同时,A31还配备了一颗专门用于超低功耗管理的

核心,实现了超长续航。下面是规格参数表:

ARM Cortex-A7 Quad-Core

CPU 256KB L1 Cache

1MB L2 Cache

POWER VR SGX 544 MP2@250MHz

GPU

Comply with Open GL ES2.0, Open CL1.x, DX 9_3

UHD H.264 4K ×2K video decoding

Multi-format HD video decoding

BD Directory, BD ISO and BD m2ts video decoding

Video H.264 High Profile 1080P@60fps encoding

3840x1080@30fps 3D decoding

Comply with RTSP, HTTP, HLS, RTMP, MMS streaming media

protocol

Dual-Channel LVDS 1920 ×1080@60fps

4-lane MIPI DSI 1920×1200 @60fps

Display

Dual-Channel RGB/CPU 20481536 @60fps

Integrated HDMI 1.4 1080p@60fps

Integrated Parallel & MIPI I/F sensor

Camera Integrated Powerful ISP, supporting Raw Data CMOS sensor

5M/8M/12M CMOS Sensor supported

5

全志A31开发板编译环境搭建指导书密级:

Memory

PMIC

Audio

OS

8/10/12-bit YUV/Bayer sensor supported

Dual-Channel LPDDR2/DDR3/DDR3L Controller

Dual-Channel NAND FLASH Controller

64-bit ECC

PMIC AXP221

21-CH power output and 2.2A Flash charging

Comply with USB 3.0 power supply standard

Integrated HI-FI 100dB Audio Codec

Three MIC

One MIC with Noise cancellation

Support Android 4.1/4.2 and above

Compatible with Microsoft Windows 8

二、 编译环境配置(pèizhì)要求

对于编译服务器的选择(xuǎnzé),最好是选择Ubuntu12.04(64 bit),也可以

(kěyǐ)Ubuntu12.04(32bit),但是(dànshì)并不推荐(tuījiàn)使用32bit 的。需要有

以下配置:

all:

sudo apt-get install sun-java6-jdk

ubuntu64:

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 ia32-libs

x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev

ubuntu32:

sudo apt-get install git-core gnupg flex bison gperflibsdl-dev libesd0-dev

libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind

三、 vMware8.0和ubuntu12.04的安装

下面我们采用虚拟机安装方式来实现编译环境。虚拟机安装环境就是在

windos的环境上安装虚拟机,然后在虚拟机里面安装操作系统。我们的想法

是安装vmware虚拟机,然后在vmware虚拟机上安装ubuntulinux操作系

统。

3.1 虚拟机环境确认

既然需要安装Ubuntu12.04(64 bit)的Linux操作系统环境,那么我们先需

要确认我们的电脑CPU和操作系统是不是支持64位的,桌面上单击我的电脑

->右键->属性,看到下面信息:

6

全志A31开发板编译环境搭建指导书密级:

可以看到这台电脑(diànnǎo)的操作系统是win7的64位版本(bǎnběn),

CPU是Intel的奔腾(bēnténg)G2030双核处理器,所以虚拟机安装环境是没有

(méi yǒu)问题的。

3.2 vMware8.0安装(ānzhuāng)

VMware[3],Inc. (Virtual Machine ware)是一个“虚拟PC”软件公司,提供

服务器、桌面虚拟化的解决方案。双击安装文件,出现下面窗口:

等一下会出现下一张图,不管它直接点击Next:

7

全志A31开发板编译环境搭建指导书密级:

出现(chūxiàn)下一张图,点Typical前面(qián mian)的框:

出现(chūxiàn)下面的图是让你选则安装位置,点Next默认(mòrèn)是C

盘,这个(zhè ge)一般都没有必要修改,除非你的C盘空间不够,如果要改为

别的盘点击change…:

8

全志A31开发板编译环境搭建指导书密级:

出现(chūxiàn)下面这张图,表示vMware正在(zhèngzài)向上面设置的路径进

行安装:

出现下面界面时不管,我们(wǒ men)一般都是使用破解版本,当然如果你有密

钥也是可以输入的:

9

全志A31开发板编译环境搭建指导书密级:

激活后出现下面界面,表示已经(yǐ jing)安装完成,单击Finish:

3.3 ubuntu12.04安装(ānzhuāng)

虚拟机安装完成,下面进入最重要(zhòngyào)的ubuntu12.04的安装,这个主要是安

10

全志A31开发板编译环境搭建指导书密级:

装镜像编译需要的linux环境。ubuntu12.04 precise版本(bǎnběn)首先(shǒuxiān)它是

Linux操作系统,不同于我们所习惯的windows操作系统,其次它是Ubuntu的12.04版本的

操作系统,于2012年4月26日放出,是目前最新的一个长期支持版本(Long terms

support)。鉴于Ubuntu的每一个版本都对应于一种动物,那么这次的版本precise

pangolin中文名字是精确的穿山甲。

首先肯定(kěndìng)是打开虚拟机:

我们(wǒ men)新建一个虚拟机,单击file->New Virtual Machine:

11

全志A31开发板编译环境搭建指导书密级:

弹出下面(xià mian)界面,选择Custom,单击next:

弹出下面界面,我们前面(qián mian)安装了8.0版本,单击Next:

12

全志A31开发板编译环境搭建指导书密级:

下面这个(zhè ge)界面我们选择iso镜像安装,单击Next:

13

全志A31开发板编译环境搭建指导书密级:

弹出下面界面,我们(wǒ men)选择Linux,Version选择Ubuntu 64-bit,单击Next:

14

全志A31开发板编译环境搭建指导书密级:

下面(xià mian)界面是让你确认你的选择的,单击Next就可以了:

15

全志A31开发板编译环境搭建指导书密级:

设置CPU,可以选择默认,如果你电脑的CPU核数目(shùmù)够多,可以多选几个处理器,

单击Next:

16

全志A31开发板编译环境搭建指导书密级:

下面这个界面选择虚拟机运行(yùnxíng)内存打下,一般选择768M~1024M就可以了,单击

Next:

17

全志A31开发板编译环境搭建指导书密级:

下面界面(jièmiàn)设置虚拟机的网络连接,可以选择NAT,单击Next:

18

全志A31开发板编译环境搭建指导书密级:

下面界面(jièmiàn)选择I/O适配器的类型,安装默认就可以了,单击Next:

19

全志A31开发板编译环境搭建指导书密级:

下面就是要选择的安装虚拟机磁盘类型(lèixíng),按照默认的选择就可以,都是单击

Next:

20

A31开发板编译环境搭建指导书密级:

21

全志

全志A31开发板编译环境搭建指导书密级:

下面界面是设置虚拟机磁盘(cí pán)空间大小和划分磁盘为多个文件分区,单

击Next:

下面界面表示每个磁盘文件(wénjiàn)的前缀名称定义,默认就可以,单击Next:

22

全志A31开发板编译环境搭建指导书密级:

下面是客户定制的硬件信息,需要你确认是否正确(zhèngquè),这个时候你不要急着点完

成,先单击Customize Hardware:

23

全志A31开发板编译环境搭建指导书密级:

弹出下面界面(jièmiàn),选择New CD/DVD,把我们需要安装的ubuntu12.04的iso镜像导

入,单击关闭:

24

全志A31开发板编译环境搭建指导书密级:

然后(ránhòu)在返回的界面选中Power On…,单击完成(wán chéng):

25

全志A31开发板编译环境搭建指导书密级:

下面就是安装ubuntu12.04,下面只说几个关键的地方,下面界面是选择你所在(suǒzài)

的时区:

26

全志A31开发板编译环境搭建指导书密级:

下面是你的操作系统安全管理设置(shèzhì),包括设置用户名和密码:

下面界面是安装(ānzhuāng)等待界面:

27

全志A31开发板编译环境搭建指导书密级:

28

全志A31开发板编译环境搭建指导书密级:

安装完成(wán chéng)后,回出现桌面生成等待界面:

29

全志A31开发板编译环境搭建指导书密级:

最后(zuìhòu)生成的桌面是这个样子,已经和windos类似了:

30

全志A31开发板编译环境搭建指导书密级:

四、 ubuntu12.04基础环境(huánjìng)配置

4.1 ubuntu12.04上网(shànɡ wǎnɡ)配置

第一步我们进行(jìnxíng)网络设置,单击菜单栏VM->Settings:

31

全志A31开发板编译环境搭建指导书密级:

确认网络设置是否是NAT,配置成VMWARE使用NAT方式使用和win7相同(xiānɡ tónɡ)的

网络配置一起上网:

32

全志A31开发板编译环境搭建指导书密级:

然后确认ubuntu操作系统的网络设置是否正确,进入ubuntu12.04的桌面(zhuōmià

n),左边菜单栏选择system settings->hardware->network:

33

全志A31开发板编译环境搭建指导书密级:

可以看到下面(xià mian)界面,单击右下角的options->Ipv4 Settings,确认method

是否选择了下面(xià mian)的自动DHCP:

34

全志A31开发板编译环境搭建指导书密级:

设置成这个样子后,你的ubuntu就可以和你的windos一样(yīyàng)可以上网了。

4.2 ubuntu12.04的软件(ruǎn jiàn)源设置

你需要下载软件安装,例如(lìrú)你需要把英文界面更改成中文界面,那么你要下载

中文语言包,这些你都要告诉ubuntu在那个源上进行软件更新和下载(xià zǎi),这样才

能下载得快,因为ubuntu默认都是在国外的源上下载和更新软件的。Ubuntu12.04有图形

界面来方便你找到最快的源,先需要(xūyào)找到ubuntu的软件中心,单击打开,界面如

下:

35

全志A31开发板编译环境搭建指导书密级:

然后找到左上角的编辑菜单(cài dān),单击,选择软件源,应该会出现下面界面:

36

全志A31开发板编译环境搭建指导书密级:

选择(xuǎnzé)下载自,从下拉菜单选中其他(qítā)站点,出现下面界面:

然后单击选择最佳服务器,系统(xìtǒng)会弹出下面测试界面:

37

全志A31开发板编译环境搭建指导书密级:

这样你就可以在中国列表里面选择最快的源了,一般都可以使用(shǐyòng)163的源,

然后单击关闭:

38

全志A31开发板编译环境搭建指导书密级:

上面软件源选择完成,当然你也可以在网上搜索通过修改(xiūgǎi)文件

的方式来修改软件源。这里就不在详细介绍。

4.3 ubuntu12.04转换成中文(zhōngwén)显示

有些人看英文怎不习惯,那么(nà me)我们可以把ubuntu的界面转换成中文显示。单

击system settings:

39

全志A31开发板编译环境搭建指导书密级:

然后(ránhòu)在personal中单击language support:

进度条完成后,选择“添加和删除语言栏”,由于我系统已经设置成中文,所以大家

看到的都是中文,但是(dànshì)不影响:

40

全志A31开发板编译环境搭建指导书密级:

选择上面的中文简体,然后(ránhòu)应用变更,系统就开始自动下载和更新系统:

更新完成(wán chéng)后,你需要把“汉语中国”拖动到第一列:

41

全志A31开发板编译环境搭建指导书密级:

再单击应用到整个系统(xìtǒng)就可以了:

然后再重新启动ubuntu,这样中文(zhōngwén)就生效了。系统都转换成了中文语言格

式。

42

全志A31开发板编译环境搭建指导书密级:

五、

编译(biānyì)环境安装

5.1 利用(lìyòng)samba设置(shèzhì)共享

对开发人员来说,第二个需要安装的就是samba,完成(wán chéng)windos和ubuntu之

间的文件共享和拷贝,samba的安装可以在终端上完成:

Samba 是一款功能强大的共享工具,可以实现与windows的共享,就是我们(wǒ men)

经常在windows计算机之间使用的网上邻居功能,可以共享文件和打印机等。今天要介绍

的是在 ubuntu 12.04 中安装和设置,当然也可以在以前的版本上使用。

5.1.1 下面(xià mian)是samba的安装步骤:

1 安装Samba文件

我们需要做的第一件事是安装Samba,你可以在Ubuntu软件中心搜索软

件,然后安装。如果你想通过终端安装,可复制这个命令:

sudo apt-get install samba samba-common

2 为配置工具安装一些依赖包(不要忘记安装python-glade2)

sudo apt-get install python-glade2

3 安装 samba 系统配置图形界面工具

sudo apt-get install system-config-samba

5.1.2 文件共享实现

Samba安装完成后,我们打开samba,先单击桌面上的Dash主页:

43

全志A31开发板编译环境搭建指导书密级:

可以看到里面有samba应用程序,这是图形化的:

单击打开,会弹出界面要求(yāoqiú)输入密码,输入密码后进行下面界面:

你可以(kěyǐ)单击左上角的“”图标,弹出下面(xià mian)界面:

44

全志A31开发板编译环境搭建指导书密级:

这个设置(shèzhì)方法和windos上类似了,设置你要共享的目录(mùlù)、文

件夹和属性:

在访问(fǎngwèn)页里设置谁可以访问:

45

全志A31开发板编译环境搭建指导书密级:

下一步(yī bù)完成在win7电脑上进行驱动器映射,打开我的电脑,单击上

面(shàng miɑn)的映射网络驱动,弹出下面界面,输入要访问的共享文件夹,

单击完成:

46

全志A31开发板编译环境搭建指导书密级:

然后会要求你输入(shūrù)凭据:

然后你的电脑(diànnǎo)上类似下面的显示:

这个(zhè ge)时候你可以把你的文件拷贝到这个文件夹里面:

47

全志A31开发板编译环境搭建指导书密级:

如果(rúguǒ)提示没有权限,你可以在ubuntu上的终端(zhōnɡ duān)里面修

改,下面图片的白色部分:

很简单(jiǎndān)吧,这样你就可以把windos上存放的文件(wénjiàn)或者编

译代码拷贝到ubuntu上,然后(ránhòu)在windos上修改代码(dài mǎ),利用

48

全志A31开发板编译环境搭建指导书密级:

windos强大(qiángdà)的软件支持,对代码进行编辑、Lint等编译前工作,然后

在ubuntu上进行编译。

5.2 JAVA6的安装

用户手册上面强调需要安装JAVA,而ubuntu自带的JAVA版本是

OPENJAVA。所以我们需要使用下面命令安装JAVA6

sudo apt-get install sun-java6-jdk

但是安装时出现了错误:

怎么解决上面这个错误:

sudo add-apt-repository "deb /webupd8team/java/ubuntu

precise main"

sudo apt-get update

sudo apt-get install oracle-java6-installer

这个是因为ubuntu12.04 precise版本对应的JAVA6版本在PPA上存放路径

已经修改到webupd8team下面导致的。安装完成后你可以使用命令查询java的

版本:java–version。

5.3 Repo的安装(ānzhuāng)

Repo是用于android的源码同步(tóngbù),下面以从google网站(wǎnɡ zhàn)

下载安卓源码的方式repo来表明(biǎomíng)repo的安装(ānzhuāng):

49

全志A31开发板编译环境搭建指导书密级:

1、安装git:

sudo apt-get install git-core

2、安装curl:

sudo apt-get install git-core curl

3、安装repo, 通过curl下载repo:

curl /files/repo-1.12 > ~/bin/repo

4、给repo可执行权限:

chmoda+x ~/bin/repo

5、修改~/bin/repo文件将第五行:

REPO_URL='/p/git-repo/'

改为

REPO_URL='/p/git-repo/'

否则会出现error:Failed connect to :443; Operation now in

progress while accessing /p/git-repo//info/refs

6、然后向PATH中添加bin路径:

export PATH=$PATH:~/bin

5.4 vMware安裝vMware Tools

vmware tools是虚拟机VMware Workstation自带的一款工具,它的作用就

是使用户可以从物理主机直接往虚拟机里面拖文件。如果不安装它,我们是无

法进行虚拟机和物理机之间的文件传输的,当然它的功效不止于此,平时我们

操作虚拟机的时候,在物理机和虚拟机之间必须使用CTRL切换,如果安装之

后我们就不必使用键盘切换,直接便可退出,使得虚拟机真正成为了电脑的一

部分,那么这么神奇的vmware tools应该怎么安装呢?

先把vmware tools放入虚拟光盘,会弹出下面的选择框,选择yes:

50

全志A31开发板编译环境搭建指导书密级:

然后(ránhòu)在ubuntu的桌面(zhuōmiàn)左上角找到主文件夹单击打开(dǎ k

āi),也有可能(kěnéng)是自动弹出:

在VMware文件夹上单击右键选择提取(tíqǔ)到你的工作目录下(不能解压在当

前目录下,当前目录/media/VMware Tools是只读的:

51

全志A31开发板编译环境搭建指导书密级:

这里解压在下面(xià mian)目录,在上面执行脚本,可能(kěnéng)没有权

限,前面可以增加sudo:

安装(ānzhuāng)时一路回车就可以了:

52

全志A31开发板编译环境搭建指导书密级:

安装成功会有下面(xià mian)信息:

六、 操作(cāozuò)技巧

6.1

打开(dǎ kāi)终端的快捷键

Ctrl+Alt+T打开shell进行命令(mìng lìng)输入。

53

全志A31开发板编译环境搭建指导书密级:

6.2 系统如何在桌面/当前目录打开(dǎ kāi)终端?

你只需要执行以下代码(dài mǎ)就可以啦:

sudo apt-get install nautilus-open-terminal

重启后,就可以在任何(rènhé)目录下打开终端了:

54

全志A31开发板编译环境搭建指导书密级:

例如我在桌面上打开效果(xiàoguǒ)如下:

55

全志A31开发板编译环境搭建指导书密级:

6.3 快捷键查看CPU和内存使用(shǐyòng)情况

在调试(diào shì)终端上输入:gnome-system-monitor,界面(jièmiàn)如

下:

6.4 调整(tiáozhěng)虚拟机分配内存

Ubuntu12.04跑起来的内存消耗大概在400M左右,这个依赖于你安装和运

行的服务多少,现在我们可以动态调整分配(fēnpèi)给虚拟机的内存大小,单

击vMware菜单栏上的VM->Settings,弹出如下界面,你可以在蓝色框中进行

ubuntu运行内存限制的调整:

56

全志A31开发板编译环境搭建指导书密级:

6.5 快速添加(tiān jiā)源的方法

两条命令(mìng lìng)就可以完成:

sudo add-apt-repository "deb /ubuntu/

hardy multiverse",

sudo apt-get update

注: 如果系统提示没有add-apt-repository命令,则需要(xūyào)先安装

python-software-properties,命令sudo apt-get install python-

software-properties。另外,有些版本的ubuntu即使安装了python-

software-properties也无add-apt-repository命令,此时需要手动添加此行

"deb /ubuntu maverick partner"到

/etc/apt/文件(wénjiàn)中。)

57

全志A31开发板编译环境搭建指导书密级:

七、 附录(fùlù)

7.1 源定义(dìngyì)说明

源列表主文件为 /etc/apt/,另兼取

/etc/apt/.d/*,最终结果以并集论。源列表文件以行为单位,

每行分多个字段,字段间以空白符分隔(fēngé)。井号(#)开头行为注释行。

那么(nà me)deb /ubuntu maverick partner

这样的源语句是什么意思?大家(dàjiā)应该不一定很清楚。下面进行一下各

个字段的说明:

第一字段,指示包类型:

取值只有「deb」「deb-src」两个,分别对应二进制包和源码包。通常只有二

进制包对我们有用。

第二字段,指示镜像站点,即「源」:

URL 通常需要定位到某个目录,一般是打开该目录就能看到有「dists」

「pool」两个子目录。看看 /ubuntu/。

第三字段,指示包的「版本」,姑且称为「仓库」:

打开一个源,再进入「dists」子目录可见该「源」中有哪些「版本」可用,

就是那些子目录。通常都是大小版本用减号(-)连在一起命名。很明显大版

本号即系统的版本名称,比如「squeeze」「wheezy」。没有减号连接小版本

的就是主版本。除主版本外,小版本有:

「security」:Ubuntu 用于指安全性更新。即影响系统安全的 bug 修补。

「updates」:非安全性更新。即不影响到系统安全的 bug 修补。

「proposed-updates」:预更新。小 beta 版。过后会进入「updates」或

「security」。

Ubuntu 仅用「proposed」,无后缀「updates」。

「backports」:后备。某系统版本自正式发行后,其所有软件便会冻结版本

号(按原始软件发布时间论),所有软件只修 bug,不增加任何功能。但有些

人可能需要更新的版本所提供的新功能,甚至某些较新的软件根本就没有。该

仓库正因此而设,但欠官方维护,且可能在系统正式发布之后过一段时间才有

效。此仓库版本处于第二优先顺序,除非特别指明或原来没有的软件,否则不

会被安装。其余版本都处于第一优先顺序。

第四字段,后续字段,指示包许可类型:

后续字段排名不分先后,最终结果取其并集。按包本身的许可及所直接依赖的

包的许可划分。打开一个源,进入「dists」子目录,然后再进入某个版本目

录,又可见几个子目录。Ubuntu 最多有四种:

「main」,官方维护的自由软件。

「universe」,社区维护的自由软件。

「restricted」,设备专有驱动。

「multiverse」,同 Debian 的「non-free」。某些另类(lìnɡ lèi)的第三方

源,不排除存在上述几种之外的可能。总之,打开仓库目录自己看。

58

全志A31开发板编译环境搭建指导书密级:

7.2 疑难问题汇总(huìzǒng)

7.2.1 解决(jiějué)访问PPA时缺少许可证方法(fāngfǎ):

ubuntu下许多(xǔduō)软件的最新版往往需要使用ppa源才能获得,但是前

一阵子我用ppa源更新时却弹出了一些警告信息,比如:

W: GPG error:

intrepid Release: The following signatures couldn't be verified because

the public key is not available: NO_PUBKEY 2EA8F35793D8809A

在终端上使用下面命令就可以解决:

gpg --keyserver --recv 2EA8F35793D8809A

gpg --export --armor 2EA8F35793D8809A | sudo apt-key add –

7.2.2 解决waiting for jockey-backend to exit 方法:

终端输入:

ps -e | grep jockey

得到jockey的id

然后:sudo kill “id”

7.2.3 解决编译内核uImage出现问题“mkimage” command not found - U-

Boot images will not be built方法:

Sudoapt-get installuboot-mkimage

7.2.4 解决安装lib32readline5-dev 出现问题“E: 软件包

lib32readline5-dev 没有可供安装的候选者”的方法:

sudo apt-get install lib32readline-gplv2-dev

或者安装:

sudo apt-get install lib32readline6-dev

7.2.5 软链接无效的解决办法:

1、下面是全志A31编译linux的modules时出现的无效链接,ls–l时出

现红色表示链接无效:

/work/lichee/linux-

3.3/modules/eurasia_km/eurasiacon/binary2_sunxi_android_release/targ

et/kbuild/services4/3rdparty/dc_sunxi$ ls -l

总用量 8

59

全志A31开发板编译环境搭建指导书密级:

lrwxrwxrwx 1 hqfhqf 121 Jul 25 10:00 dc_sunxi_displayclass.c ->

/disk2/kylin/a31-v4.2-v3.2-kfb-ok/lichee/linux-

3.3/modules/eurasia_km/services4/3rdparty/dc_sunxi/dc_sunxi_displayc

lass.c

lrwxrwxrwx 1 hqfhqf 114 Jul 25 10:00 dc_sunxi_linux.c ->

/disk2/kylin/a31-v4.2-v3.2-kfb-ok/lichee/linux-

3.3/modules/eurasia_km/services4/3rdparty/dc_sunxi/dc_sunxi_linux.c

2、在SDK里面(lǐmiàn)找到这两个文件的存放路径:

Z:licheelinux-

3.3moduleseurasia_kmservices43rdpartydc_sunxi

3、然后使用rm命令删除下面路径(lùjìng)下的两个无效链接文件:

/work/lichee/linux-

3.3/modules/eurasia_km/eurasiacon/binary2_sunxi_android_release/targ

et/kbuild/services4/3rdparty/dc_sunxi:dc_sunxi_displayclass.c、

dc_sunxi_linux.c

4、最后使用下面命令建立(jiànlì)新的链接:

hqf@ubuntu:~/work/lichee/linux-

3.3/modules/eurasia_km/eurasiacon/binary2_sunxi_android_release/targ

et/kbuild/services4/3rdparty/dc_sunxi$ ln -s

/home/hqf/work/lichee/linux-

3.3/modules/eurasia_km/services4/3rdparty/dc_sunxi/dc_sunxi_displayc

lass.c dc_sunxi_displayclass.c

hqf@ubuntu:~/work/lichee/linux-

3.3/modules/eurasia_km/eurasiacon/binary2_sunxi_android_release/targ

et/kbuild/services4/3rdparty/dc_sunxi$ ln -s

/home/hqf/work/lichee/linux-

3.3/modules/eurasia_km/services4/3rdparty/dc_sunxi/dc_sunxi_linux.c

dc_sunxi_linux.c

5、建立后使用下面命令查看是否软链接使用建立成功(chénggōng),绿色

表示链接建立成功:

hqf@ubuntu:~/work/lichee/linux-

3.3/modules/eurasia_km/eurasiacon/binary2_sunxi_android_release/targ

et/kbuild/services4/3rdparty/dc_sunxi$ ls -l

总用量 8

lrwxrwxrwx 1 hqfhqf 102 Oct 29 10:25 dc_sunxi_displayclass.c ->

/home/hqf/work/lichee/linux-

3.3/modules/eurasia_km/services4/3rdparty/dc_sunxi/dc_sunxi_displayc

lass.c

lrwxrwxrwx 1 hqfhqf 95 Oct 29 10:24 dc_sunxi_linux.c ->

/home/hqf/work/lichee/linux-

3.3/modules/eurasia_km/services4/3rdparty/dc_sunxi/dc_sunxi_linux.c

6、送一个(yī ɡè)文件夹建立软链接的方法:

文件夹建立软链接(liàn jiē)(用绝对地址)

ln -s 源地址 目的(mùdì)地址

60

全志A31开发板编译环境搭建指导书密级:

比如(bǐrú)我把linux文件系统rootfs_dir软链接到/home/jyg/目录

ln -s /opt/linux/rootfs_dir /home/jyg/rootfs_dir就可以(kěyǐ)了

7、全志A31缺少软链接的解决方法:

ln -s /home/huangqingfeng/work/lichee/linux-

3.3/modules/eurasia_km/services4/home/huangqingfeng/work/lichee/linu

x-

3.3/modules/eurasia_km/eurasiacon/binary2_sunxi_android_release/targ

et/kbuild/services4

7.2.6 解决问题“./scripts/build_: 行 19: fakeroot: 未找到命

令”的方法:

sudogedit /etc/profile

在文件profile添加语句:

export PATH=$PATH:/home/hqf/work/lichee/buildroot/target/tools/host/usr/bin

最后同步一下:

source /etc/profile

7.2.7 解决问题“fakeroot: preload library not found, aborting.”的方

法:

sudo apt-get install cramfsprogs

sudo apt-get install fakeroot

7.2.8 安卓编译时问题“/bin/bash: xsltproc: 未找到命令”等的解决方

法:

sudo apt-get install xsltproc

7.2.9 Android4.2.2在ubuntu12.04(64)位版本编译(biānyì)时出现问题(w

èntí)“find: `../../vendor/unbundled google/libs/gcm/gcm-

client/src': No such file or directory”等错误信息的解决(jiějué)

方法:

1、原因(yuányīn)是ubuntu12.04自带的Gcc/G++都是4.6太高导致(dǎ

ozhì),先安装gcc4.4的版本:

sudo apt-get install gcc-4.4 gcc-4.4-multilib libstdc++6-4.4-

dev

61

全志A31开发板编译环境搭建指导书密级:

2、我们把系统默认的降级到4.4:

$sudo update-alternatives --install /usr/bin/gcc

gcc/usr/bin/gcc-4.4 40 (这里“40” 是优先级,值越大优先级越高)

$sudo update-alternatives --install /usr/bin/gcc gcc

/usr/bin/gcc-4.6 60 (本机自带的设置为60更高的优先级)

选择系统默认的gcc:

$sudo update-alternatives ––config gcc

Selection Path Priority Status

------------------------------------------------------------

* 0 /usr/bin/gcc-4.6 60 auto mode

1 /usr/bin/gcc-4.4 40 manual

mode

2 /usr/bin/gcc-4.6 60 manual

mode

默认系统用最高优先级的, 这里我们选择1就可以了

接下来,g++ 同样的步骤操作

$sudo update-alternatives --install /usr/bin/g++ g++

/usr/bin/g++-4.4 40

$sudo update-alternatives --install /usr/bin/g++ g++

/usr/bin/g++-4.6 60

$sudo update-alternatives --config g++

Selection Path Priority Status

------------------------------------------------------------

* 0 /usr/bin/g++-4.6 60 auto mode

1 /usr/bin/g++-4.4 40 manual

mode

2 /usr/bin/g++-4.6 60 manual

mode

选择1.

3、设置默认gcc完成后,可以使用gcc–v查看是否切换成gcc4.4的版

本了;

4、如果想改为高版本的随时用update-alternatives --config 命令切

换!

7.2.10 Android4.2.2在ubuntu12.04(64)位版本(bǎnběn)编译时出现

问题“/bin/bash: xmllint: command not found”错误信息的解决(jiě

jué)方法:

sudo apt-get install libxml2-utils

62

全志A31开发板编译环境搭建指导书密级:

7.2.11 Android4.2.2在ubuntu12.04(64)位版本编译时出现(chūxiàn)

问题“ollect2: error: ld terminated with signal 9”错误信息的解

决(jiějué)方法:

增加(zēngjiā)ubuntu的虚拟内存。具体操作如下:

1、查看系统虚拟内存,命令:free -m

[html] view plaincopyprint?

carson@carson-pc:~$ free -m

total used free shared buffers cached

Mem: 1998 1528 469 0 6 423

-/+ buffers/cache:1098 900

Swap: 2036 361 1675

我这是已经增加swap的,一般swap2G左右就足够编译android用的。在编译过程中,

虽然增加了2G,但在编译时,若做一些操作比较占用swap的话,也会出现此问题。比如从

移动硬盘copy android 源码。

2、在当前路径下创建一个 Swap 文件。

sudo dd if=/dev/zero of= bs=1M count=1k (count=1k创建1G的

Swap,如果要创建6G则count=6k;这步比较慢)

出现下列提示,上面命令中的 count 即代表swap文件大小,即增加的虚拟内存大

小。此命令出现如下信息:

100000+0 records in

100000+0 records out

102400000 bytes (102 MB) copied, 0.377325 s, 271 MB/s

1.

3、把生成的文件转换成 Swap 文件

sudo mkswap -f

此命令出现如下信息:

Setting up swapspace version 1, size = 99996 KiB

no label, UUID=b26fe88c-11c2-40ad-8139-6e69e96b6b68

4、激活 Swap 文件。

sudo swapon

此时free -m 查看Swap信息

total used free shared buffers cached

1998 FAMILY: Arial, Helvetica, sans-

serif"> 1189 809 0 34 624 -

/+ buffers/cache: 530 1468

Swap: 2134 986 1148

至此,swap已经增加成功了,如果想卸载刚增加的swap;

sudo swapoff

63

全志A31开发板编译环境搭建指导书密级:

5、如果(rúguǒ)需要一直保持这个 swap ,可以sudo -s换到root

然后(ránhòu)把它写入 /etc/fstab 文件:

/路径(lùjìng)/ none swap defaults 0 0

7.2.12 Ubuntu12.04(64)安装(ānzhuāng)android库时找不到

“lib32readline5-dev lib32z-dev”问题(wèntí)解决办法:

安装下面的库代替:

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 ia32-libs

x11proto-core-dev libx11-dev lib32readline6-devlib32z1-dev

7.2.13 编译过程中突然出现“已杀死”等问题的解决办法:

之前编译正常,没有发生错误,突然打印“make:……..已杀死”等类似

信息,那么都是由于系统设置的交换内存和虚拟机内存不够导致的,下面是我

在Ubuntu12.04(64)编译4.2.2的android时监控到底内存和交换使用大小:

64

全志A31开发板编译环境搭建指导书密级:

所以建议(jiànyì)给虚拟机分配的内存至少2G,交换空间(kōngjiān)至少

2G。

7.2.14 Ubuntu12.04编译(biānyì)android4.2.2时出现异常打印导致编

译失败“symbols/system/lib/libmock_': No space left on

device”问题(wèntí):

这个问题一般都是由于(yóuyú)虚拟磁盘空间不够导致,你可以通过命令查

看:

hqf@ubuntu:~/work/android4.2/android$ df

文件系统 1K-块 已用 可用 已用% 挂载点

/dev/sda1 50574012 47963820 41184 100% /

udev 2014396 4 2014392 1% /dev

tmpfs 809284 1080 808204 1% /run

none 5120 0 5120 0% /run/lock

none 2023208 200 2023008 1% /run/shm

/dev/sr0 59088 59088 0 100% /media/VMware Tools

可以看到sda1已经用完了(sda表示的是你的第一块sata硬盘,sda1表

示的是你的第一块sata硬盘的第一个分区。)。所以你要释放或者增加你的

磁盘分区空间,方法你可以到网上搜索清理磁盘空间。如果空间还不够的话,

你可以通过下面方式来扩大:

65

全志A31开发板编译环境搭建指导书密级:

当然你这样(zhèyàng)操作只是增加了整个磁盘空间大小,还需要进入

linux系统进行分区大小的调整。这个可以(kěyǐ)在网上搜索解决办法。

但是(dànshì)如果system free还不够的话,你只能(zhī nénɡ)重新安装

系统,选择更大的分区了。

如果出现这个(zhè ge)信息:No space left on device – running out

of Inodes,表明文件系统的inodes不够,需要清理。你可以通过命令df –i

来确认inode的使用情况:

Filesystem Inodes IUsed IFree IUse% Mounted on

/dev/xvda 2080768 2080768 0 100% /

tmpfs 92187 3 92184 1% /lib/init/rw

varrun 92187 38 92149 1% /var/run

varlock 92187 4 92183 1% /var/lock

udev 92187 4404 87783 5% /dev

tmpfs 92187 1 92186 1% /dev/shm

IUse%这一列如果接近100%,那么就会出现这个错误。你可以调用下面3

条命令:

for i in /*; do echo $i; find $i |wc -l; done

for i in /home/*; do echo $i; find $i |wc -l; done

sudo rm -rf /home/bad_user/directory_with_lots_of_empty_files

然后再调用df –i确认。

你也可以到网上搜索解决方法。

66

全志A31开发板编译环境搭建指导书密级:

7.2.15 最后送一个(yī ɡè)android4.2.2编译成功后的终端输出信息:

Combining NOTICE files into HTML

Combining NOTICE files into text

Installed file list: out/target/product/fiber-3g/

Target system fs image: out/target/product/fiber-

3g/obj/PACKAGING/systemimage_intermediates/

Running: -s out/target/product/fiber-3g/system

out/target/product/fiber-

3g/obj/PACKAGING/systemimage_intermediates/ ext4 system

805306368

+ echo 'in PATH=out/host/linux-x86/bin/:/usr/lib/jvm/java-6-

sun/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/

bin:/usr/games:/home/huangqingfeng/work/lichee/buildroot/target/tools/host/usr/bin:/

home/huangqingfeng/work/android/out/host/linux-

x86/bin:/home/huangqingfeng/work/android/prebuilts/gcc/linux-x86/arm/arm-linux-

androideabi-4.6/bin:/home/huangqingfeng/work/android/prebuilts/gcc/linux-

x86/mips/mipsel-linux-android-

4.6/bin:/home/huangqingfeng/work/android/development/emulator/qtools:/home/hua

ngqingfeng/work/android/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-

4.6/bin:/home/huangqingfeng/work/android/prebuilts/gcc/linux-x86/arm/arm-eabi-

4.6/bin:/home/huangqingfeng/work/android/development/scripts'

in PATH=out/host/linux-x86/bin/:/usr/lib/jvm/java-6-

sun/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/

bin:/usr/games:/home/huangqingfeng/work/lichee/buildroot/target/tools/host/usr/bin:/

home/huangqingfeng/work/android/out/host/linux-

x86/bin:/home/huangqingfeng/work/android/prebuilts/gcc/linux-x86/arm/arm-linux-

androideabi-4.6/bin:/home/huangqingfeng/work/android/prebuilts/gcc/linux-

x86/mips/mipsel-linux-android-

4.6/bin:/home/huangqingfeng/work/android/development/emulator/qtools:/home/hua

ngqingfeng/work/android/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-

4.6/bin:/home/huangqingfeng/work/android/prebuilts/gcc/linux-x86/arm/arm-eabi-

4.6/bin:/home/huangqingfeng/work/android/development/scripts

+ ENABLE_SPARSE_IMAGE=

+ '[' -s = -s ']'

+ ENABLE_SPARSE_IMAGE=-s

+ shift

+ '[' 5 -ne 4 -a 5 -ne 5 -a 5 -ne 6 ']'

+ SRC_DIR=out/target/product/fiber-3g/system

+ '[' '!' -d out/target/product/fiber-3g/system ']'

+ OUTPUT_FILE=out/target/product/fiber-

3g/obj/PACKAGING/systemimage_intermediates/

+ EXT_VARIANT=ext4

67

全志A31开发板编译环境搭建指导书密级:

+ MOUNT_POINT=system

+ SIZE=805306368

+ FC=

+ case $EXT_VARIANT in

+ '[' -z system ']'

+ '[' -z 805306368 ']'

+ '[' -n '' ']'

+ MAKE_EXT4FS_CMD='make_ext4fs -s -l 805306368 -a system

out/target/product/fiber-

3g/obj/PACKAGING/systemimage_intermediates/

out/target/product/fiber-3g/system'

+ echo make_ext4fs -s -l 805306368 -a system out/target/product/fiber-

3g/obj/PACKAGING/systemimage_intermediates/

out/target/product/fiber-3g/system

make_ext4fs -s -l 805306368 -a system out/target/product/fiber-

3g/obj/PACKAGING/systemimage_intermediates/

out/target/product/fiber-3g/system

+ make_ext4fs -s -l 805306368 -a system out/target/product/fiber-

3g/obj/PACKAGING/systemimage_intermediates/

out/target/product/fiber-3g/system

Creating filesystem with parameters:

Size: 805306368

Block size: 4096

Blocks per group: 32768

Inodes per group: 8192

Inode size: 256

Journal blocks: 3072

Label:

Blocks: 196608

Block groups: 6

Reserved block group size: 47

Created filesystem with 1231/49152 inodes and 102667/196608 blocks

+ '[' 0 -ne 0 ']'

Running: simg2img out/target/product/fiber-

3g/obj/PACKAGING/systemimage_intermediates/

out/target/product/fiber-

3g/obj/PACKAGING/systemimage_intermediates/unsparse_

Running: e2fsck -f -n out/target/product/fiber-

3g/obj/PACKAGING/systemimage_intermediates/unsparse_

e2fsck 1.41.14 (22-Dec-2010)

Pass 1: Checking inodes, blocks, and sizes

Pass 2: Checking directory structure

Pass 3: Checking directory connectivity

Pass 4: Checking reference counts

68

全志A31开发板编译环境搭建指导书密级:

Pass 5: Checking group summary information

out/target/product/fiber-

3g/obj/PACKAGING/systemimage_intermediates/unsparse_: 1231/49152

files (0.0% non-contiguous), 102667/196608 blocks

Install system fs image: out/target/product/fiber-3g/

out/target/product/fiber-3g/+out/target/product/fiber-

3g/obj/PACKAGING/recovery_patch_intermediates/recovery_from_boot.p

maxsize=822163584 blocksize=4224 total=411852740 reserve=8308608

内容总结

69

发布评论

评论列表 (0)

  1. 暂无评论