在fedora10下编译android以及常见问题解决

结合http://www.androidin.com/read.php?tid=1936出现的问题。

1.下载android源码

   http://source.android.com/

   http://code.google.com/p/android/downloads/list

我下载的是:linux-2[1].6.25-android-1.0_r1.tar.gz

2.下载androidsdk代码

下载地址是:http://dl.google.com/android/android-sdk-linux_x86-1.0_r1.zip

我下载的是:android-sdk-linux_x86-1.0_r1(2).zip

3.下载交叉编译器

http://www.codesourcery.com/gnu_toolchains/arm/download.html

我在这里选择的是->ARM GNU/Linux,以及IA32-GNU/Linux。有文章说应该选择ARM EABI,没有测试通过。(我选的是70多兆的。30多兆的没有通过)

名称为:arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

4.我的fedora10的账户是wbw1986。所以我把下载的文件都放在了wbw1986下。

5.解压arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2文件在当前目录下并改文件夹名为arm2008q3

   解压命令:tar jxvf  arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

6解压android-sdk-linux_x86-1.0_r1(2).zip在当前目录下并改文件夹名为androidsdk

7.解压linux-2[1].6.25-android-1.0_r1.tar.gz源码在当前目录下。即当前目录有kernnel.git目录更改此文件夹名为kernel

   解压命令为:tar  zxvf  linux-2[1].6.25-android-1.0_r1.tar.gz

8。设置交叉编译器和sdk的环境变量。

export PATH=$PATH:/androidsdk/tools

export PATH=$PATH:/arm2008q3/bin

测试是否设置成功:输入export回车。看PATH中是否存在这两个路径。

有时候即使设置成功也不能使用,就是说在当前目录下输入emulator或者./emulator会出现command not found错误

如果不能使用,那么下面的修改就要变动。

9.环境变量设置好后输入

  emulator

启动模拟器,启动后输入命令adb pull /proc/config.gz ./ 就会在当前目录下生成config.gz文件。(如果出现offline device错误,可以多尝试几次)

如果出command not found等很多错误就采用下面的方法:

输入emulator的绝对路径即./androidsdk/tools/emulator &

启动模拟器后,输入命令 ./adb pull /proc/config.gz ./   就会在当前目录下生成config.gz文件。(如果出现offline device错误,可以多尝试几次)

 

config.gz拷贝到解压的kernel目录,解压后将config文件改为.config文件。

 

10.进入andorid源码解压的kernel(原来的kernel.git)目录下打开Makefile文件

找到CROSS_COMPILE修改它为CROSS_COMPILE=arm-none-linux-gnueabi-

找到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,))

就是在其前面加上#符号,将器注释掉。因为现在可能不兼容此项

11.进入加压的kenenl目录

输入命令make即开始编译。

如果出现找不到arm-none-linux-gnueabi-gcc命令。使用make clean命令清除刚才编译的一些东西。

然后打开解压的kernel文件夹下修改Makefile文件,

将刚才修改的CROSS_COMPILE那一项继续修改为

../arm2008q3/bin/arm-none-linux-gnueabi-

再次输入make命令进行编译,一切就ok了。

编译完成后最后会出现

Kernel: arch/arm/boot/Image is ready

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

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

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

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

  LD      arch/arm/boot/compressed/vmlinux

  OBJCOPY arch/arm/boot/zImage

  Kernel: arch/arm/boot/zImage is ready

 

12.编译完成后会在kernel/arch/arm/boot目录下面

生成一个zImage,这个就是我们要的内核映像了。

13.我们可以测试一下刚刚编译出来的内核可以不可以用了。进入wbw1986目录输入

$emulator -kernel .kernel/arch/arm/boot/zImage

当看到red eye在晃来晃去,最终显示出来android的界面的时候,一颗悬着的心总算放下了

如果仍然出现command not found错误,那么输入以下命令就可以了。

 ./androidsdk/tools/emulator -kernel ./kernel/arch/arm/boot/zImage

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值