文档章节

4412开发板搭建Uboot、Kernel和Android4.0的编译环境方法

topeet
 topeet
发布于 2016/06/22 16:13
字数 1723
阅读 91
收藏 0

本文转自迅为4412开发板实战教程书籍:http://www.topeetboard.com

 

 

迅为是基于Ubuntu12.04.2平台做开发,所有的配置和编译脚本也是基于此平台,没有在其它平台上测试过。如果你对Linux和Android开发很熟悉,相信你会根据错误提示逐步找到原因并解决,错误提示一般是选用的平台缺少了某些库文件或者工具等原因造成的;建议初学者使用和迅为一致的平台。

 

Uboot、Kernel以及Android等的编译环境看似复杂,其实只需要抓住以下四个要点。

(1)Uboot、Kernel编译器的安装。编译器在光盘中都有提供,在需要使用的步骤中,会说明编译器在光盘中的位置。

(2)设置环境变量。Uboot、Kernel、QtE、Qtopia编译器的环境变量设置后,编译的时候,系统才能找到编译器。

(3)Android文件系统的编译器。编译器需要使用Ubuntu系统自带的gcc编译器,但是版本不对,所以需要降低版本。迅为将这个过程编写了成几个简单的命令,用户只需要挨个执行命令即可。

(4)库文件。搭建过程中会给通过执行简单的脚本命令来安装库文件,复杂的步骤变的简单有效。

另外,如果用户想了解编译环境具体是怎么搭建起来的,可以利用提供的脚本文件和命令来学习。

1. 使用搭建好的编译环境

两种搭建编译环境的方式,一种方法是用户安装虚拟机,然后安装基础的Ubuntu12.04.2系统,利用迅为提供工具和详细的使用步骤,搭建编译环境;另外一种方法是用户安装虚拟机,然后直接加载“搭建好的Ubuntu镜像”,用户只需要修改一下编译器的环境变量,就可以直接用来编译源码。

以下详细讲解如何搭建编译环境。

需要注意的是,搭建过程中用到的各类软件,都需要和手册提到的版本保持一致,如果使用的是“搭建好的镜像”,则可以跳过这一节,但是编译的时候要针对性的设置一下环境变量。

2.安装基本软件

Ubuntu系统需要一些基础软件,便于后续使用。

(1)安装虚拟机“Vmware_Workstaion_wm”

(2)然后使用虚拟机安装“Ubuntu12.04.2初始系统”。

(3)安装完成后进入Ubuntu的终端,激活root用户;

(4)接着登录root用户;

(5)虚拟机设置联网、CPU、内存、USB等;

(6)将Ubuntu数据源地址修改为国内163服务器地址;

(7)使用“apt-get update命令”更新数据源;

(8)在Ubuntu安装软件vim,apt-get install vim;

(9)在Ubuntu安装软件ssh,apt-get install ssh。

3.交叉编译工具

编译的时候需要用到交叉编译工具,本小节介绍如何安装编译Uboot和Kernel的编译工具arm-2009q3。

提供的交叉编译工具是用户光盘“02_编译器以及烧写工具”→“arm交叉编译器”文件夹中的压缩包“arm-2009q3.tar.bz2”。

使用SSH工具将交叉编译工具拷贝到 Ubuntu12.04.2系统的文件夹“usr”-->“local”-->“arm”中,local下默认没有arm文件夹,可以新建一个。

使用命令“cd /usr/local/arm/”进入/usr/local/arm文件夹,然后使用解压命令“tar -vxf arm-2009q3.tar.bz2”解压压缩包。

接着修改交叉编译工具路径,需要修改环境变量。在Ubuntu命令行中,执行命令“cd /root”和“vim .bashrc”,打开环境变量文件“.bashrc”。

如下图所示,在“.bashrc”文件中的最后一行添加如下信息:

“export PATH=$PATH:/usr/local/arm/arm-2009q3/bin”

修改完成后保存退出。执行更新环境变量“source .bashrc”的命令。

最后,在Ubuntu命令行中输入命令“arm”,然后按TAB键,如果在命令行中能够看到arm编译器的信息,就表明交叉编译工具安装成功。如下图所示。

4.安装库文件、JDK以及降低GCC版本

为了方便用户,我们将库文件和JDK的安装命令制作成了脚本文件,用户只要执行两个脚本就可以安装库文件和JDK。这两个脚本在用户光盘“02_编译器以及烧写工具”→“tools”文件夹下的压缩包“Android_JDK.tar.bz2”中。

用户将压缩包拷贝到Ubuntu系统中,解压压缩包会生成文件夹“Android_JDK”。使用cd命令,进入解压出来的“Android_JDK” -->“jdk6”文件夹。如下图所示,使用命令“./install-sun-java6.sh”运行脚本文件“install-sun-java6.sh”。需要注意的是,这条命令执行完毕可能会耗时15分钟以上。执行脚本的时,根据提示输入对应的选择命令。

前一个脚本运行完毕之后,如下图所示,进入解压出来的文件夹“Android_JDK”中,执行命令“./install-devel-packages.sh”运行脚本“install-devel-packages.sh”,安装库文件,需要注意的是,这条命令可能会耗时40分钟以上。上面脚本执行的时候,需要根据提示输入选择命令。

上面这个脚本执行完毕的时候,要注意一下是否有些库文件提示没有安装。如果发现有库文件没有安装的情况,有可能是网络不好或者下载源丢失。这个时候请使用一下更新下载源的命令”apt-get update“,然后再执行一下上面的两个脚本。

例如,如下图所示,再次运行“./install-devel-packages.sh”之后,如没有提示‘无法安装的库和软件’,那么表明已经安装完整了。

最后介绍降低Android编译器GCC版本的方法。

使用Ubuntu编译Android的时候需要用到Ubuntu系统自带的GCC4.4.7编译器,但是安装的Ubuntu12.04.2版本,它的GCC版本过高,所以这里需将GCC编译器的版本降低到4.4.7。

进入前面解压的文件夹“Android_JDK”中,找到文本“update_gcc.txt”,打开文本“update_gcc.txt”后会看到里面有8条命令,这8条命令需要在Ubuntu命令行中依次执行。

使用命令打开“update_gcc.txt”文件,如下图所示。

在依次执行了这8条命令之后,Ubuntu系统就将gcc的版本降低到4.4.7。使用命令“gcc -v”,可以看到gcc的版本为4.4.7了。

在执行这8条命令时,只有第一条命令会耗时10分钟左右,其它的都会很快完成。需要注意的是,命令一定要依次执行,不能有遗漏。

 

© 著作权归作者所有

topeet
粉丝 3
博文 28
码字总数 14856
作品 0
东城
私信 提问
[初学嵌入式]完全没有接触过linux也可以轻松玩转4412开发板

需要按照以下方法和步骤来学习,轻松玩转开发板。 以下学习内容均有配套视频。 1.开发板上电测试以及提供的基本资料介绍:所 学手册的章节包括(第一章节) 2.安装超级终端,理解uboot模式和...

topeet
2015/08/03
778
0
iTOP4412精英版Ubuntu16.04系统编译uboot

iTOP4412精英版Ubuntu16.04系统编译uboot uboot 的编译 ① 源码目录: Uboot 源码在光盘“06源码uboot 和 kernel”目录下,如下图所示。 ② 编译器: 如下图所示,编译器是使用的光盘目录下,...

书白
09/03
29
0
itop4412开发板Android4.4旧源码编译

注意:本小节,介绍的旧源码指的是“20170803”之前的源码。 在网盘目录中“iTOP4412 开发板资料汇总(不含光盘内容)iTOP-4412 开发板系统源 码及镜像(其他)android_4.4.4 源码以及对应 ...

书白
06/24
8
0
X210刷机--利用markdown尝试编写

刷系统需要的原材料:开发板、串口数据线、USB数据线 破坏uboot 对于linux+Qt系统的刷机,我们需要注意的细节: 首先先明白一个概念: 什么是系统控制台?什么是uboot控制台? 系统控制台:是...

qq_38124709
2018/04/15
0
0
迅为4412开发板源码分析之协处理器

本文分析 4412 的 uboot 源码,结合 uboot 源码来分析 uboot 完成了哪些工作。分析的源码文件是“cpu/arm_cortexa9/start.S”文件。 1 源码分析 .globl start :globl 类似 C 语言中的 Exte...

tb9204778_2012
07/29
54
1

没有更多内容

加载失败,请刷新页面

加载更多

Vue warn]: Computed property "activeNames" was assigned to but it has no setter.

在使用 vue,element-ui时,如下代码 <template> <el-form :model="numberValidateForm" ref="numberValidateForm"> <el-form-item> <el-tabs v-model="activeNames" @tab-cl......

牧云橙
33分钟前
6
0
重构-改善既有代码的设计-6.2内联函数

6.2内联函数 动机 本书经常以简短的函数表现动作意图,这样会使代码更清晰易读。但有时候你会遇到某些函数,其内部代码和函数名称同样清晰易读。也可能你充够了该函数的内部实现,使其内容和...

还仙
34分钟前
6
0
Less 混入

混合类似于编程语言中的函数。 Mixins 是一组CSS属性,允许我们将一个类的属性嵌套于另一个类,被嵌入的类可以看作是变量,并且包含类名作为其属性,也就是说我们可以用一个类定义样式然后把...

凌兮洛
37分钟前
6
0
频繁FGC的真凶原来是它

频繁FGC的真凶原来是它 上周排查了一个线上问题,主要现象是CPU占用过高,jvm old区占用过高,同时频繁fgc,我简单排查了下就草草收场了,但是过后我对这个问题又进行了复查,发现问题没有那...

每天晒白牙
38分钟前
6
0
简单的树形菜单如何写

业务需求 数据结构中含有图片、名称、children的树形结构,需要展示出每一级的图片名称和图片,找了些树形图的插件,都没有展示大的图片的,一般都是小图标,就自己试着写一个包含图的简单的...

tianyawhl
39分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部