按照上一篇博文介绍的配置好android编译环境《ubuntu 下载编译运行android source code--gingerbread》。
以免编译工具缺失造成编译失败。
可以使用android自带的编译环境,使用方法可以google一下。
本人使用的是第三方编译工具 Code Sourcery ARM EABI Toolchain
https://sourcery.mentor.com/sgpp/lite/arm/portal/subscription3053
IA32 GNU/Linux Installer IA32 GNU/Linux TAR二选一即可,我使用的是 2011.03-42 版本,其他版本没有试过。
sudo gedit /etc/environment增加路径到PATH
PATH=/home/yuchengliu/CodeSourcery/Sourcery_G++_Lite/bin:/home/yuchengliu/bin:更新环境变量
source /etc/environment
$ git clone https://android.googlesource.com/kernel/goldfish.git下载完成功后发现代码目录中没有code,很是奇怪。
执行:
git branch
显示(没有记错的话是这么显示的,博文是编译成功之后写的,可能会记错):
* master
git branch -a显示:
* master remotes/origin/HEAD -> origin/master remotes/origin/android-goldfish-2.6.29 remotes/origin/master下面切换到 goldfish这个branch
git checkout remotes/origin/archive/android-gldfish-2.6.29一会之后,去代码目录中看看,果然代码都出来了,真是让人纳闷,非得这么搞才出来。
已经非常明确要拿goldfish的代码,非得多操作一步才行。
http://fedoraproject.org/wiki/Releases/FeatureBuildId
$mv config .config
make
emulator -avd 2.3 -kernel android/kernel/google/goldfish/arch/arm/boot/zImage其中 2.3 为你创建的 avd的名称。
上图为证:
黑屏:
查看环境变量,确认是否有 ANDROID_PRODUCT_OUT="/home/yuchengliu/android/google/gingerbread/out/target/product/generic"
这样的路径在你的环境变量中
env | grep "generic"如果存在,删除掉,更新环境变量。如果还是不行就logout一次再login(为就是这么办的)。
再测试内核
emulator -avd 2.3 -kernel android/kernel/google/goldfish/arch/arm/boot/zImage