在ubuntu10.04中用git和repo获得的android源码目录中没有kernel目录, kernel需要我们在重新下载。

编译linux内核映像
a)准备交叉编译工具链
android代码树中有一个prebuilt项目,包含了我们编译内核所需的交叉编译工具。

b)设定环境变量
$ emacs ~/.bashrc
增加如下两行:
export PATH=$PATH:~/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin
export ARCH=arm
保存后,同步变化:
$ source ~/.bashrc

c)获得合适的内核源代码
$ cd ~/android
获得内核源代码仓库
$ git clone git://android.git.kernel.org/kernel/common.git kernel
$ cd kernel
$ git branch
显示
* android-2.6.27
说明你现在在android- 2.6.27这个分支上,也是kernel/common.git的默认主分支。
显示所有head分支:
$ git branch -a
显示
* android-2.6.27
remotes/origin/HEAD -> origin/android-2.6.27
remotes/origin/android-2.6.25
remotes/origin/android-2.6.27
remotes/origin/android-2.6.29
remotes/origin/android-goldfish-2.6.27
remotes/origin/android-goldfish-2.6.29
我们选取最新的android-goldfish-2.6.29,其中goldfish是 android的模拟器模拟的CPU。
$ git checkout -b android-goldfish-2.6.29 origin/android-goldfish-2.6.29
$ git branch
显示
android-2.6.27
* android-goldfish-2.6.29
我们已经工作在android-goldfish-2.6.29分支上了。

d)设定交叉编译参数
打开kernel目录下的Makefile文件,把CROSS_COMPILE指向刚才下载的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 =

e)编译内核映像
$ cd ~/android/kernel
$ make goldfish_defconfig
$ make

f)测试生成的内核映像
$ emulator -avd myavd -kernel ~/android/kernel/arch/arm/boot/zImage

更多相关文章

  1. Android 内核驱动——电源管理
  2. 如何构建Android 1.5系统映像
  3. Android内核学习笔记—Binder分析
  4. Android底层开发技术实战详解——内核、移植和驱动
  5. 下载android的linux内核的方法

随机推荐

  1. Android系统的四大组件详解
  2. ps图片黑白调整算法——Android实现及性
  3. android 保存Bitmap到本地图片
  4. 懒人爱家务_Android中的Selector的用法
  5. 使用startForeground让android服务前台运
  6. 用桌面做应用的背景
  7. AspectJ
  8. Android(安卓)Hook神器——XPosed入门(登
  9. Android属性动画详解(二),插值器和估值器
  10. 关于Android(安卓)的导入android.support