本文转载自:https://blog.csdn.net/buqingbuyuan/article/details/43370199

在安装Ubuntu系统之后,安装编译所需的GCC等工具,一般选用GCC4.4版本的,因为自己在编译时安装的是arm-linuc-gnueabi-4.6.3等,所以在编译时一直报CC1:error等错误,在网上查了很多资料,大多数解释为cc1文件所在文件夹权限不够,后来发现是自己的arm-linux-gcc版本号过高,后来改成了arm-linux-gcc-4.4.3版本,是在友善之臂的官网上下载的,网址如下:http://www.arm9.net/download.asp

下载如上第一个文件。下载完之后

1.解压:tar -xzvf arm-linux-gcc-4.4.3.tar.gz -C/ (解压到根目录,可以根据自己情况更改)

2.更改环境变量:

#:cd /root/
#:vi .bashrc
#:source ~/.bashrc  (立即生效)     (好像只能本终端,注销一下就永远都有这个环境变量的)
3.测试一下
 arm-
    然后按两下Tab,看有没有像下图一样

4.然后按照A20安卓编译官方手册将需要安装的库什么的全部安装一遍

然后开始接压文件,再之后就是按照官方提示的进行操作,首先在lichee目录下进行操作,出现错误的话按照提示去搜一下,大多数错误是由于我们少安装了东西所导致的,按提示安装就可以了。另外要说的就是JDK1.6的安装了,这个简单些。下载的是jdk-6u43-linux-x64.bin,安装过程如下:

1、打开终端。

2、执行:sudo chmod u+x jdk-6u43-linux-x64.bin

3、执行:sudo ./jdk-6u43-linux-x64.bin

4、执行: sudo mv jdk1.6.0_43 /usr/local/

5、修改环境变量,在终端执行:sudo gedit /etc/environment,加入如下两行:

CLASSPATH="/usr/local/jdk1.6.0_43/lib"
       JAVA_HOME="/usr/local/jdk1.6.0_43"

同时在PATH变量的值后面加上:/usr/local/jdk1.6.0_43/bin

6、执行:source /etc/environment

7、执行:java -version,检测是否安装成功。

基本上出错误都是因为我们环境配置或者少下载了工具所导致的,在百度多次下一一解决了。

在lichee目录下编译内核成功后就可以在android目录下开始编译安卓了,在这里遇到了很多问题,从网上也找了很多答案终于一一解决了。主要步骤是

1、选择android 产品

#:source build/envsetup.sh
#:lunch

屏幕上会出现以下信息

选择跟自己开发板对应的产品 (开发板对应15 wing_k70)所以选15
2、 拷贝内核和模块到android 中device/softwinner/xxx-xxx

命令#:extract-bsp

3、编译

#:make -j8

然后就开始编译了,这个过程有点长,大家可以去干些别的事情。

编译成功后会在out/target/product/xxx-xxx/ 目录下面会生成boot.img, recovery.img, system.img 3个包。

 
3、打包
#:pack
打印成功后显示如下信息
--------release version, donnot have uart printf-------------
INFO: Packing for android
>>> script_parse 0.9.1
>>> check sys_config line format
>>> done.
>>> check partition config
>>> done.
>>> script_parse 0.9.1
>>> check sys_config line format
>>> done.
>>> check mainkey unique
>>> done.
>>> check module rule
>>> not implement yet
cp /disk2/kylin/A20_v1.2/lichee/out/android/common/u-boot.bin bootfs/linux/ [OK]
script sys_config.fex [OK]
script sys_partition.fex [OK]
update_mbr sys_partition.bin 4 [OK]
update_boot0 boot0_nand.bin sys_config.bin NAND [OK]
update_boot0 boot0_sdcard.fex sys_config.bin SDMMC_CARD [OK]
update_boot1 boot1_nand.fex sys_config.bin NAND [Uncheck]
update_boot1 boot1_sdcard.fex sys_config.bin SDMMC_CARD [Uncheck]
fsbuild bootfs.ini split_xxxx.fex [OK]
dragon image.cfg sys_partition.fex [OK]
----------image is at----------
/disk2/kylin/A20_v1.2/lichee/tools/pack/sun7i_android_wing-k70.img
然后lichee/tools/pack/sun7i_android_wing-k70.img就是我们需要的文件

关于全志A20的Ubuntu12.04 64位系统下环境配置及编译过程笔记【转】的更多相关文章

  1. ubuntu12.04(64位)下安装Adobe Flash Player

    2012-06-14 10:10:37   第一步,去adobe官方网站就可以,使用方便,打开网站:http://get.adobe.com/cn/flashplayer/根据自己的版本下载需要的.本 ...

  2. ubuntu14.04 64位系统下编译3.13.11内核源码

    该过程一共分为四步: 1.下载内核:我下载的是3.13.11这个版本的内核! 2.解压内核:我将其解压/home/jello/Downloads/linux-3.13.11目录下!下文将会基于此目录编 ...

  3. win7硬盘安装Ubuntu12.04 64位时显示Error 15: File not found.

    安装Ubuntu12.04 -64位时,用EasyBCD建好引导文件重启电脑后出现如下错误: Error 15: File not found 原因一个是安装文件所在盘符不对,另一个是文件名.Ubun ...

  4. 从零到一,利用kubeadm在ubuntu server 16.04 64位系统离线安装kubernetes v1.10.0

    说明 初步接触kubernets,记录学习过程 本教程目的利用kubeadm在ubuntu server 16.04 64位系统离线安装kubernets v1.10.0 环境信息 节点IP地址 角色 ...

  5. 64位系统下注册32位dll文件

    64位系统下注册32位dll文件 在64位系统里注册32位软件所需的一些dll会提示不兼容,大概因为32 位进程不能加载64位Dll,64位进程也不可以加载32的导致. 若要支持的32 位和64 位C ...

  6. PL/SQL Developer 在windows7 64位系统下连Oaracle11g64位系统的解决经验

    PL/SQL Developer 在windows7 64位系统下连Oaracle11g64位系统的解决经验 一.问题现象及解决方法 现象: 1.PL/SQL 无法登录64位数据库 2.在PL/SQL ...

  7. 64位系统下System32文件系统重定向

    前言 因为一次偶然的机会,需要访问系统目录“C:/Windows/System32“文件夹下的内容,使用的测试机器上预装了win7 64系统.在程序运行中竟然发生了该文件路径不存在的问题!!通过查看网 ...

  8. win7 64位系统下安装autoitlibrary库遇到问题解决

    转载来自http://blog.sina.com.cn/s/blog_53f023270101skyq.html 今天需要在win7 64位系统下安装autoitlibrary库,起初安装好了robo ...

  9. (转)Win7 64位系统下 Retional rose 2003 安装及破解

    网上关于Retional rose 2003安装和破解的文章比较多,这里,我结合自己的亲身体验,和大家分享一下win7 旗舰版 64位系统下Retional rose 2003(下面简称rose200 ...

随机推荐

  1. spring-redis SortedSet类型成员的过期时间处理

    redis默认是只支持简单key的过期处理的,像SortedSet类型,也是针对整个set的过期处理,不支持对set的某个成员的过期处理: 为了解决这个问题,做法如下: 1.存储key及值信息到red ...

  2. nginx已经启动 无法访问页面

    通过IP访问,可以看到  welcome nginx 的提示 下面我重启linux服务器,重启后通过ip访问,死活连接不上了?没办法了,只有在百度和google 最后发现问题不是出在nginx上,而是 ...

  3. [MongoDB]学习笔记--User管理

    1. 创建一个超级用户 use admin db.createUser( { user: "adminUserName", pwd: "userPassword" ...

  4. c#的小技巧

    很多.net的使用小技巧,总是要自己记下来的,给自己. 一:时间格式话中H和h的区别 DateTime.ToString("yyyy-MM-dd HH:mm:ss");//转化成2 ...

  5. [HackerRank] The Longest Common Subsequence

    This is the classic LCS problem. Since it requires you to print one longest common subsequence, just ...

  6. bootstrap 媒体查询

    //各类设备的分辨率 /*超小设备(手机,小于768px)*/ /* Bootstrap 中默认情况下没有媒体查询 */ /*超小型设备(小于768px)*/ @media (min-width:@s ...

  7. 160803、如何在ES6中管理类的私有数据

    如何在ES6中管理类的私有数据?本文为你介绍四种方法: 在类的构造函数作用域中处理私有数据成员 遵照命名约定(例如前置下划线)标记私有属性 将私有数据保存在WeakMap中 使用Symbol作为私有属 ...

  8. Class.forName()用法

    主要功能 Class.forName(xxx.xx.xx)返回的是一个类. Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段. ...

  9. Java 之单例设计模式

    设计模式: 对问题行之有效的解决方式, 其实它是一种思想. 单例设计模式 解决的问题:就是可以保证一个类在内存中的对象唯一性. 即单个实例. 比如对于A 和 B 两个程序使用同一个配置信息对象时, A ...

  10. JS练习--嵌套列表(for循环)

    CSS: ;;} ul,li{list-style: none;} .cont{ width: 600px; margin:30px auto; } .cont h3{ border-bottom: ...