`
maricoliu
  • 浏览: 55098 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Ubuntu环境下下载编译Android kernel源码

阅读更多
编译android源码时并不会自动编译android内核,因此需要手动编译这部分代码。编译内核所用的时间比编译android源码要少得多。

1、确定内核版本
建立一个存放android内核源码的kernel目录,进入该目录,并使用如下命令下载内核源码

引用
$ git clone https://android.googlesource.com/kernel/common.git
$ git clone https://android.googlesource.com/kernel/goldfish.git
$ git clone https://android.googlesource.com/kernel/msm.git
$ git clone https://android.googlesource.com/kernel/omap.git
$ git clone https://android.googlesource.com/kernel/samsung.git
$ git clone https://android.googlesource.com/kernel/tegra.git

我只下载了common.git与goldfish.git,以goldfish为例,进入goldfish目录
引用
root@ubuntu:/work_dir/kernel# ls
common  goldfish
root@ubuntu:/work_dir/kernel# cd goldfish/
在命令行输入以下命令,显示所有分支及当前所在的分支:
引用
root@ubuntu:/work_dir/kernel/goldfish# git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/android-goldfish-2.6.29
  remotes/origin/master

输入以下命令选择当前的最新版本(goldfish为android的模拟器描述的CPU):
引用
root@ubuntu:/work_dir/kernel/goldfish# git checkout -b android-goldfish-2.6.29 origin/android-goldfish-2.6.29

再次输入命令git branch -a,将会显示刚刚选择的最新分支,表示目前工作在这个被选择的分支上,输出如下:
引用
root@ubuntu:/work_dir/kernel/goldfish# git branch -a
* android-goldfish-2.6.29
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/android-goldfish-2.6.29
  remotes/origin/master

2、设定环境变量
在编译android内核时,需要使用交叉编译器。在所下载的android源码树中有一个prebuilt文件夹,包含了编译内核所需的交叉编译工具,因此要将其设置到环境变量中去,以方便使用。打开用户目录下的.bashrc文件,在后面添加如下代码
引用
export PATH=$PATH:/work_dir/android2.3.7_r1/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin 
export ARCH=arm

保存并退出,通过以下命令在用户目录下进行更新。
引用
source /etc/bash.bashrc

由于有可能在添加之后没有及时更新,导致在编译时提示错误,如找不到交叉编译工具目录等,因此这里需要更新(如果加入了环境变量仍在编译时提示找不到交叉编译工具目录,可以尝试多更新几次)。

3、设定交叉编译参数

在编译之前还需要设定编译时所使用的交叉编译参数。

首先,打开android/kernel/goldfish/目录下的Makefile文件,找到CROSS_COMPILE变量,将其指向android源码提供的prebuilt中的arm-eabi编译器,代码如下所示:
引用
CROSS_COMPILE   ?= arm-eabi-

之后找到如下代码:
引用
LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,\ 

                  $(call ld-option, -Wl$(comma)--build-id,))
将其删除或注释掉(建议注释掉即可,以备以后会使用到),并添加一个空的LDFLAGS_BUILD_ID定义,如下所示:
引用
#LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,\ 
#                $(call ld-option, -Wl$(comma)--build-id,)) 
LDFLAGS_BUILD_ID =

4、编译内核源码
设置完之后,就是编译android内核源码了,进入goldfish目录,输入以下命令

引用
$make goldfish_defconfig 
$make

第一条命令为编译时的默认配置文件。如果不执行这条命令,编译时可能会提示“找不到配置文件”。第一条命令执行完后,会在goldfish目录下生成一个.config文件。

之后便是一段时间的等待了。。。时间不长,一会即可编译好,比编译android源码时间要少得多。

5、编译完成之后,会在“kernel/goldfish/arch/arm/boot/”目录下生成名为zImage的文件。

如果你已经编译了SDK,可以进入SDK所在目录,使用 "- kernel" 加载编译出来的zImage启动模拟器
引用
root@ubuntu:/work_dir/android2.3.7_r1/out/host/linux-x86/sdk/android-sdk_eng.root_linux-x86/tools# ./emulator -kernel /work_dir/kernel/goldfish/arch/arm/boot/zImage


分享到:
评论
1 楼 f839903061 2012-10-09  
很好,!good!

相关推荐

    在Ubuntu下载、编译Android内核源码

    在Ubuntu上下载、编译和安装Android最新内核源代码是一项复杂但重要的任务,对于开发者而言,这能提供对系统底层更深入的理解和定制能力。本文将详细讲解这一过程。 首先,确保你已经按照前一篇文章的指导在Ubuntu...

    ubuntu下android源码下载

    在深入探讨如何在Ubuntu下下载Android源码之前,我们首先需要理解几个关键概念:Ubuntu、Android源码以及必要的软件工具。Ubuntu是一种基于Linux的操作系统,以其稳定性和安全性著称,广泛用于开发环境。Android源码...

    Ubuntu平台下Android2.3源码下载编译全过程

    总之,编译Android 2.3源码在Ubuntu环境下需要安装必要的软件,设置环境,初始化源码仓库,下载源码,最后进行编译。整个过程可能遇到各种问题,如网络连接、文件权限或配置错误等,需要根据实际情况调整和解决。在...

    Ubuntu_10.04下编译Android源码实用.pdf

    【Ubuntu 10.04下编译Android源码实用指南】 在Ubuntu 10.04系统中编译Android源码是一项复杂的过程,需要掌握Git版本控制系统以及Android的Repo工具。Git是Linux Torvalds为管理Linux内核开发而创建的分布式版本...

    Ubuntu 10.04下编译Android源码全过程

    在Ubuntu 10.04环境下编译Android源码的过程是一项复杂的任务,涉及到多个步骤和技术。首先,要了解Git,这是一个分布式版本控制系统,由Linux Torvalds创建,用于管理Linux内核开发。与传统的集中式版本控制系统如...

    (修正的)Ubuntu_10.04下编译Android源码全过程.doc

    ### Ubuntu 10.04 下编译 Android 源码全过程详解 #### 一、获取 Android 源代码 1. **Git 的介绍与安装**: - Git 是一种分布式版本控制系统,由 Linux Torvalds 为了更好地管理 Linux 内核开发而创建。 - **...

    Ubuntu-32位机安装编译Android2.3源码及内核

    总之,在Ubuntu 32位系统上编译Android 2.3源码和内核需要一系列步骤,包括安装必要软件、配置环境、克隆源码、设置编译选项以及解决可能出现的问题。完成这些步骤后,你将能够成功构建自己的Android SDK和定制化的...

    Ubuntu 8.04下编译Android源码全过程.doc

    ### Ubuntu 8.04下编译Android源码全过程知识点详解 #### 一、获取Android源代码 在本文档中,介绍了如何在Ubuntu 8.04系统环境下获取Android源代码的过程。此过程主要涉及到了Git版本控制系统的使用以及Repo脚本...

    MTK6577+Android编译之kernel

    ### MTK6577+Android编译之...以上是对MTK6577+Android编译之kernel的详细介绍,包括开发环境配置、编译流程以及关键文件的分析。通过这些内容可以帮助开发者更好地理解和掌握MTK6577平台上的Android kernel编译过程。

    完整的 ubuntu android 源码环境搭建

    ### 完整的 Ubuntu Android 源码环境搭建 #### 一、概述 本文将详细介绍如何在 Ubuntu 10.04 操作系统上搭建基于 Eclipse IDE 的 Android 源码开发环境。整个过程分为几个步骤:获取源码、编译源码前的准备、编译...

    android 9.0 源码下载(28 r6)

    首先,要下载Android源码,你需要一个Linux环境,因为官方的构建工具链和文档主要针对这个平台。Ubuntu是最常见的选择,但其他基于Debian的发行版也可以。确保你的系统安装了必要的依赖项,如Git、Repo、Java JDK...

    Ubuntu10.04下编译Android源码全过程.pdf

    ### Ubuntu 10.04 下编译 Android 源码全过程详解 #### 一、获取 Android 源代码 **Git与集中式版本控制系统对比** - **Git**:由 Linux Torvalds 开发,是一种分布式版本控制系统。与 Subversion 和 CVS 这样的...

    android 源码的下载和编译(ubuntu)

    在 Ubuntu 系统环境下下载 Android 源码的过程相对直接但也需仔细操作以确保每一步都正确无误。 1. **安装 Git:** - 使用 `sudo apt-get install git-core` 命令来安装 Git。 2. **安装 Curl:** - 通过 `sudo ...

    Ubuntu-32位机安装编译Android2.3源码及内核.doc

    这一过程涉及到多个步骤,包括Java开发环境的配置、必要的软件包安装、Android源码的获取与编译,以及最终在模拟器上运行编译好的Android系统。 首先,必须安装JDK6,因为Android 2.3需要这个版本来编译。要安装JDK...

    编译Android源码全过程

    本文详细介绍了在Ubuntu 10.04环境下从零开始编译Android源码的全过程,包括获取源代码、安装必要的依赖库以及执行编译等关键步骤。通过本文的指导,你可以顺利地完成Android源码的编译,并进一步进行定制和开发工作...

Global site tag (gtag.js) - Google Analytics