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