您的位置:首页 > 移动开发 > Android开发

android kernel goldfish 3.4.0 编译

2014-10-05 20:17 351 查看
把自己编译 android kernel 的步骤写下来,以防忘记。

1. 下载android-goldfish-3.4.0.

   按道理所本来可以在goole的 android.googlesouce.com上使用$git clone http://android.googlesource.com/kernel/goldfish.git  
下载的。可是不知道咋的老是报错:time out(很是郁闷现在还不知是什么原因,网站又能通过浏览器访问?如果你知道请告诉我).

无赖之下在github 上找到了源码。具体网址我忘了,不过在github 上搜索android goldfish肯定能搜到的。我会把我下载的源码放到百度云盘上(在最后会给出下载地址),如需要可以下载。

2. 配置变量

export PATH=$PATH:~/WORKING_DIRECTORY/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin

export ARCH=arm

export SUBARCH=arm

export CROSS_COMPILE=arm-eabi-

export ANDROID_BUILD_TOP=~/WORKING_DIRECTORY  //这一个可以不要

注意:WORKING_DIRECTORY 目录是我下载的android 4.4 源码(不包括kernel部分)的目录,根据你自己的设置。

2. 由于我是在window 系统下载的源文件,所一在编译前,需要把所有的文件格式有dos格式转换为unix格式,通过下面命令。

$ cd kernel_goldfish_3.4/

$ find ./ -type f | xargs dos2unix

3. 编译:$make

 SYSMAP  .tmp_System.map

  OBJCOPY arch/arm/boot/Image

  Kernel: arch/arm/boot/Image is ready

  AS      arch/arm/boot/compressed/head.o

  GZIP    arch/arm/boot/compressed/piggy.gzip

  AS      arch/arm/boot/compressed/piggy.gzip.o

  CC      arch/arm/boot/compressed/misc.o

  CC      arch/arm/boot/compressed/decompress.o

  CC      arch/arm/boot/compressed/string.o

  SHIPPED arch/arm/boot/compressed/lib1funcs.S

  AS      arch/arm/boot/compressed/lib1funcs.o

  SHIPPED arch/arm/boot/compressed/ashldi3.S

  AS      arch/arm/boot/compressed/ashldi3.o

  LD      arch/arm/boot/compressed/vmlinux

  OBJCOPY arch/arm/boot/zImage

  Kernel: arch/arm/boot/zImage is ready

这一步在我的机器上用不了多久,与编译android 4.4 源码相比,简直不值一提。

4.运行。运行这个你必须要有模拟器。由于我以前编译好了android 4.4源码,所以模拟器存在了。把下面相关的变量设置在环境变量中。

export ANDROID_PRODUCT_OUT=~/WORKING_DIRECTORY/out/target/product/generic 

export ANDROID_PRODUCT_OUT_BIN=~/WORKING_DIRECTORY/out/host/linux-x86/bin

export PATH=${PATH}:${ANDROID_PRODUCT_OUT_BIN}:${ANDROID_PRODUCT_OUT};

最后运行

$cd kernel_goldfish_3.4/arch/arm/boot

$emulator -kernel ./zImage -partition-size 600   //-partition-size 600 这个可以不要。

注: 我在github上也下个另外一个老兄的goldfish3.4 但是编译的时候, fs/ yaffs2中的.c文件报错,什么没定义啊。。。这是由于kernel 3.4 源码的改动,但yaffs2没有跟上。具体如何解决可以到网上去搜。我试过,编译成功了但在模拟器运行时没反应。

能编译通过且能正常执行的源码稍候我会传到网上。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  kernel android 源码