编译android kernel遇到的问题

前段时间下载并make了Android源码,趁这个周末,就打算把kernel的代码也checkout下来,make试试。

当然,我在make kernel面前还是一张白纸。于是就边参考杨丰盛的《Android技术内幕:系统篇》,边在网上搜索方法。

主要参考了以下这位大侠的文章:

http://blog.csdn.net/luoshengyang/article/details/6564592

具体的过程,会在后面附上上述地址文章的内容。这儿只是说说我在整个过程中遇到的问题。

一、关于goldfish

杨丰盛书中说到,最新版本是android-goldfish-2.6.35,可是我执行git branch -a后得到的内容如下:

  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

没有android-goldfish-2.6.35。

我就想,关它是不是金鱼,先用最新的试试。于是就checkout下来了android-2.6.39。

结果在操作到了meke goldfish_defconfig时,提示找不到文件:arch/arm/configs/goldfish_defconfig

(后来想了下,是否可以meke defconfig呢?以后有机会试试)

自己也不熟,只能按部就班,重新checkout金鱼了。

再去checkout android-gldfish-2.6.29时,还遇到点问题,就是我已经修改过Makefile问题,结果不让改变branch,没办法,只能回复修改,重新checkout。


二、关于ARCH

注意需要修改Makefile下的ARCH。我参考杨丰盛书中,没有修改该 变量。结果在make goldfish_defconfig时,提示找不到文件arch/x86/configs/goldfish_defconfig

后来发现,杨丰盛 书中没在Makefile中修改,而是在.bashrc文件中修改了。

而参考网址中是在Makefile文件中修改的。


三 关于PATH

有一步需要修改.bashrc文件中的PATH环境变量。

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

我比着葫芦画瓢,按照自己的Android源码路径,将该语句添加到了.bashrc文件中。结果在make的时候,提示找不到命令arm-eabi-gcc。我到相应路径下找了找,发现arm-eabi-gcc是有的,说明PATH配置不对。

于是就想把PATH的内容打出来看看,执行命令:env | grep PATH,打印出来,发现使用的arm-eabi-4.4.3/bin路径为/root/Android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin,而真正的路径在home下我的用户的目录中。

干脆改用绝对路径。source ~/.bashrc之后,跳到kernel代码所在目录,然后make,终于一切OK。



posted @ 2011-07-31 22:54  andriod2012  阅读(1978)  评论(1编辑  收藏  举报