【转】如何下载并编译Android4.0内核源码goldfish(图文)

时间:2021-10-28 23:46:26

原文网址:http://blog.csdn.net/flydream0/article/details/7070392

关于如何下载Android4.0源码,请查看我的博客内另一篇文章(同样是图文教程):

http://blog.csdn.net/flydream0/article/details/7036156

如何编译Android4.0源码请看:

http://blog.csdn.net/flydream0/article/details/7046612

下面进入正题:

第一步:下载goldfish源码

在Android源码根目录下新建kernel文件夹

  1. $mkdir kernel
  2. $cd kernel

下载源码:

  1. $git clone http://android.googlesource.com/kernel/goldfish.git

【转】如何下载并编译Android4.0内核源码goldfish(图文)
下载完毕如下图:

【转】如何下载并编译Android4.0内核源码goldfish(图文)

此时在kernel目录下会生成一个goldfish文件夹。进入此目录:

  1. $cd goldfish

此目录下有一个隐藏的目录.git,通过

  1. $ls -al

可看到此目录:

【转】如何下载并编译Android4.0内核源码goldfish(图文)

查看所有分支:

  1. git  branch -a

如下图:

【转】如何下载并编译Android4.0内核源码goldfish(图文)

check out:

  1. $git checkout remotes/origin/android-goldfish-2.6.29

【转】如何下载并编译Android4.0内核源码goldfish(图文)

此时你会看到goldfish目录下会出现很多文件:

  1. $ls

【转】如何下载并编译Android4.0内核源码goldfish(图文)

这个时候goldfish源码就已经下下来了,接下来的事情就是编译了.

第二步:编译goldfish

导出交叉编译工具目录到$PATH环境变量中去.

  1. export PATH=$PATH:~/WORKING_DIRECTORY/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin

我们将使用上述这个目录下的交叉编译器arm-eabi-gcc

然后在glodfish目录下用gedit打开Makefile文件,找到这两行文字:

# ARCH
?= (SUBARCH)

 # CROSS_COMPILE?=
修改为:
ARCH ?= arm
CROSS_COMPILE     ?= arm-eabi-
  1. $gedit Makefile

【转】如何下载并编译Android4.0内核源码goldfish(图文)
注意:ARTH ?=arm,的arm后边不要有空格,不然就会出现如下类似错误:
Make:...../kernel/goldfish/arch/arm: Is a directory.  Stop.
害我白白浪费了几个小时.

上述操作的目的是为了指定目标设备的体系架构和交叉编译器,其实也可以通过以下指令来完成:

  1. $ export ARCH=arm
  2. $ export SUBARCH=arm
  3. $ export CROSS_COMPILE=arm-eabi-

为了确保环境参数正确,接下来执行下面两条指令,否则有可能不能正常启动模拟器.(注:以下两条指令是在Android源码根目录下执行)

  1. $ source build/envsetup.sh  //缺少这条指令,可能会导致无法编译通过
  2. $ lunch full-eng            //缺少这条指令,可能会导致无法启动模块器,系统报无法找到AVD,并要求你创建AVD。

关闭gedit,接下来就开始make了,执行如下指令:

  1. $ make goldfish_armv7_defconfig
  2. $ make

注:用$make goldfish_defconfig这样配置也可以编译通过,模拟器也可以启动,但是Android的开机画机就显示不了,$adb shell也死活连不上,原因就是这个goldfish_defconfig这个配置文件问题.

提示:
$make goldfish_armv7_defconfig指令的意思是将目录WORKING_DIRECTORY/kernel/goldfish/arch/arm/configs/下的goldfish_armv7_defconfig文件内的Kconfig配置内容复制到WORKING_DIRECTORY/kernel/goldfish/目录下的.config文件中,.config文件是一个隐藏目录,保存着各个目录下Kconfig文件的配置.
最终结果如下图所示:
【转】如何下载并编译Android4.0内核源码goldfish(图文)

这样就表示编译成功了.

  1. $ ls arch/arm/boot/

可以看到zImage文件.
【转】如何下载并编译Android4.0内核源码goldfish(图文)

第三步:在模拟器中启动编译好的内核
 
按下来再运行其下指令:

  1. $ export PATH=$PATH:~/WORKING_DIRECTORY/out/host/linux-x86/bin
  2. $ export ANDROID_PRODUCT_OUT=~/WORKING_DIRECTORY/out/target/product/generic
  3. $ emulator -kernel ~/WORKING_DIRECTORY/kernel/goldfish/arch/arm/boot/zImage &

模拟器启动界面:
【转】如何下载并编译Android4.0内核源码goldfish(图文)

进入模拟器从设置里看版本信息:

【转】如何下载并编译Android4.0内核源码goldfish(图文)

从上图可以看出当前Android版本是4.0.1,内核版本是2.6.29,说明成功了.

同样也可以通过adb shell来查看内核版本信息,如下图:

  1. $adb shell
  2. #cd proc
  3. #cat version

【转】如何下载并编译Android4.0内核源码goldfish(图文)

完!

【转】如何下载并编译Android4.0内核源码goldfish(图文)的更多相关文章

  1. Ubuntu12.04编译Android4.0.1源码全过程-----附wubi安装ubuntu编译android源码硬盘空间不够的问题解决

    昨晚在编译源码,make一段时间之后报错如下: # A fatal error has been detected by the Java Runtime Environment: # # SIGSE ...

  2. 如何下载和编译Android4.0内核源代码goldfish(图像)

    如何下载Android4.0源代码.请参阅我的博客文章中有(同样是图文教程): http://blog.csdn.net/flydream0/article/details/7036156 怎样编译A ...

  3. 怎样下载并编译Android4.0内核源代码goldfish(图文)

    关于怎样下载Android4.0源代码,请查看我的博客内还有一篇文章(相同是图文教程): http://blog.csdn.net/flydream0/article/details/7036156 ...

  4. 英蓓特Mars board的android4.0.3源码编译过程

    英蓓特Mars board的android4.0.3源码编译过程 作者:StephenZhu(大桥++) 2013年8月22日 若要转载,请注明出处 一.编译环境搭建及要点: 1. 虚拟机软件virt ...

  5. 基于Ubuntu 14.04 LTS编译Android4.4.2源码

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/gobitan/article/details/24367439 基于Ubuntu 14.04 LTS ...

  6. mac os 平台下载并编译android2.3.3源码

    现在在做有关android平台下的项目,最初对android环境各种不熟悉,搞了几个月终于有点眉目了,由于需要用到android本身提供的一些类似gps,tts等服务,单纯的看android提供的ja ...

  7. centos7编译linux的内核源码

    昨天编译了一个linux 内核源码,遇到一些问题, 今天把我遇到的问题和解决方法分享给大家.希望可以帮助到需要的人. 1.检查是否安装了相应的包 我第一次编译的时候只安装的“Development T ...

  8. ubuntu13.04下载android4.0.1源码过程

    最初我参考的是老罗的博客http://blog.csdn.net/luoshengyang/article/details/6559955 进行下载安装的,但弄着弄着就发现不太对劲了.这里记录下详细过 ...

  9. Ubuntu12.04下载Android4.0.1源码全过程,附若干问题解决[转]

    学校里一直在做应用层开发,考虑到日后就业问题,这次决定研究源码和驱动,并进行编译.没想到就下载源码这一步折腾了我整整两天,期间遇到很多问题,哎,记录于此,希望日后再下源码的人不要再走无谓的弯路了.事实 ...

随机推荐

  1. Scala的trait

    一:说明 1.介绍 2.功能 二:具体解释功能 1.定义接口 2.定义方法 3.定义字段 4.定义抽象字段 5.混合trait

  2. js 删除确定

    "<td><a href='shanchu.php?c={$v[0]}' onclick=\"return confirm('确定删除么?')\"&gt ...

  3. WPFの静态资源&lpar;StaticResource&rpar;和动态资源&lpar;DynamicResource&rpar;

    下面是前台代码: <Window.Resources>        <TextBlock x:Key="res1" Text="好好学习"/ ...

  4. CDOJ 1104 求两个数列的子列的交集 查询区间小于A的数有多少个 主席树

    求两个数列的子列的交集 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/1104 ...

  5. 熟悉JS中的常用选择器及属性、方法的调用

    选择器.属性及方法调用的配合使用: <style>            #a{                width: 200px;                height: 1 ...

  6. List&lt&semi;T&gt&semi;常用操作函数

    1.Add():添加单个元素2.AddRange():添加一个集合4.Insert():插入一个元素5.InsertRange():插入一个集合6.Remove():移除指定的元素7.RemoveAt ...

  7. Java知多少(12)运算符

    Java中的运算符和C/C++相差无几. 数学运算符 数学运算,结果为一个数值.见下表: 运算符 说明 举例 + 加法 1 + 2 - 减法 4 - 3.4 * 乘法 7 * 1.5 / 除法 3.5 ...

  8. MVC&plus;linq开发经验

    1.Though it is a mass,it will help you out of another mass,so,be glad to face it. 2.吃自己的狗粮.系统像一个房子,一 ...

  9. django 中多字段主键&lpar;复合、联合主键&rpar;

    django中不支持双主键.多主键. 要实现类似功能可以: classMeta: unique_together=(("driver","restaurant" ...

  10. linux系统硬件配置

    转自:http://blog.163.com/yang_jianli/blog/static/1619900062010391127338/ 一:查看cpu more /proc/cpuinfo | ...