一、使用git下载android内核部分源码

首先新建要保存android内核源码的目录

mkdir android_kernel

cd android_kernel

android kernel的网站http://android.git.kernel.org/

git clone git://android.git.kernel.org/kernel/common.git

下载android内核源码,完成之后会看到common目录,内核的源码就算下载完成了

如果想下载某一内核的版本,可以使用下面几个命令:

git branch -a // 显示所有的分支

git branch -r // 显示romote端的分支

git checkout // 检出某一分支

二、设置交叉编译环境

交叉编译的环境在android源码已经存在,源码的下载可以参考《下载编译android源码》。在源码目录的android_source/prebuilt/linux-x86/toolchain/,可以看到多个交叉编译的工具

mac@mac-desktop:~/works/android_dev/prebuilt/linux-x86/toolchain$ ls -all

总用量 44

drwxr-xr-x 9 mac mac 4096 2011-08-28 15:16 arm-eabi-4.2.1

drwxr-xr-x 9 mac mac 4096 2011-08-28 15:16 arm-eabi-4.3.1

drwxr-xr-x 10 mac mac 4096 2011-08-28 15:16 arm-eabi-4.4.0

drwxr-xr-x 10 mac mac 4096 2011-08-28 15:16 arm-eabi-4.4.3

drwxr-xr-x 10 mac mac 4096 2011-08-28 15:16 arm-linux-androideabi-4.4.x

drwxr-xr-x 6 mac mac 4096 2011-08-28 15:16 i686-android-linux-4.4.3

drwxr-xr-x 8 mac mac 4096 2011-08-28 15:17 i686-linux-glibc2.7-4.4.3

drwxr-xr-x 10 mac mac 4096 2011-08-28 15:17 i686-unknown-linux-gnu-4.2.1

drwxr-xr-x 6 mac mac 4096 2011-08-28 15:17 sh-4.3.3

一般使用最新版本。

三、配置编译时的config文件

因为编译的镜像是要刷到模拟器运行的,模拟器的处理器架构是基于goldfish,所以需要下载有关goldfishconfig文件。下载方法:

mac@mac-desktop:~/works/kernel-2.6.29$ git branch -a

* (no branch)

android-2.6.29

android-2.6.36

remotes/origin/HEAD -> origin/android-2.6.36

remotes/origin/android-2.6.35

remotes/origin/android-2.6.36

remotes/origin/android-2.6.37

remotes/origin/android-2.6.38

remotes/origin/android-2.6.39

remotes/origin/android-3.0

remotes/origin/archive/android-2.6.25

remotes/origin/archive/android-2.6.27

remotes/origin/archive/android-2.6.29

remotes/origin/archive/android-2.6.32

remotes/origin/archive/android-gldfish-2.6.29

remotes/origin/archive/android-goldfish-2.6.27

remotes/origin/linux-bcm43xx-2.6.39

remotes/origin/linux-wl12xx-2.6.39

下载remotes/origin/archive/android-gldfish-2.6.29 版本:

git checkout origin/archive/android-gldfish-2.6.29

然后就可以到arch/arm/configs下看到goldfish_defconfig这个文件了。

goldfish_defconfig文件拷贝到android_kernel目录,并重命名为.config

四、make编译

首先设置环境:

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

然后修改Makefile

ARCH = arm #体系结构为arm

CROSS_COMPILE = arm-eabi- #交叉编译工具链前缀,参考/toolchain/arm-eabi-4.4.3/bin

然后就可以make编译了,编译过程中会连续提示yes/not,能看懂的多注意几眼,看不懂的一路狂按Enter,最后如果前面的设置正确,编译完整后会看到下面的提示:

OBJCOPY arch/arm/boot/zImage

Kernel: arch/arm/boot/zImage is ready

五、编译得到zImage,用新内核启动模拟器

./emulator -avd android2.1 -kernel ~/kernel-2.6.29/arch/arm/boot/zImage

在模拟器上查看系统信息:

Android内核源码交叉编译

更多相关文章

  1. android切换效果、Flutter信息类App、仿饿了么点餐、仿爱壁纸应
  2. Android统计图集合源码
  3. android柱状图源码
  4. Android 开启闪光灯做手电筒 源码
  5. 编译android源码出现的问题解析
  6. Android Handler机制13之AsyncTask源码解析
  7. 短视频源码,实现文字横向移动效果(跑马灯效果)
  8. Ubuntu下编译android的linux内核
  9. Android Studio 官方示例源码地址

随机推荐

  1. Android拟器不能正常上网
  2. Android(安卓)动画之补间动画(View Anima
  3. Android学习笔记:NDK入门一些总结
  4. Eclipse Android(安卓)ADT 安装问题详解
  5. Android之WebView简单执行一条JS代码
  6. Android(安卓)挂载 NFS
  7. Android6.0 设置永不休眠
  8. Android(安卓)View 下拉刷新之头部效果自
  9. Android(安卓)SDK 2.2 开发环境安装
  10. android ksoap2 访问webservice,连续两次